From b66af7c769f254e995870a4e21e88c2e749b29d9 Mon Sep 17 00:00:00 2001 From: Steve Pfister Date: Thu, 3 Dec 2020 13:29:31 -0500 Subject: [PATCH 01/87] Adds support for testing tvOS (#45043) XHarness already supports tvOS as a target, so this change supplies the right info Co-authored-by: Steve Pfister --- eng/testing/AppleRunnerTemplate.sh | 31 +++++++++----- eng/testing/tests.mobile.targets | 9 ++++- eng/testing/tests.targets | 2 +- src/mono/netcore/sample/iOS/Makefile | 2 +- src/mono/netcore/sample/iOS/Program.csproj | 5 ++- .../AppleAppBuilder/AppleAppBuilder.cs | 19 ++++++--- .../Templates/CMakeLists.txt.template | 2 +- .../AppleAppBuilder/Templates/main-console.m | 6 ++- .../AppleAppBuilder/Templates/runtime.m | 6 +-- .../mobile.tasks/AppleAppBuilder/Utils.cs | 6 +++ .../mobile.tasks/AppleAppBuilder/Xcode.cs | 40 ++++++++++++++----- 11 files changed, 90 insertions(+), 38 deletions(-) diff --git a/eng/testing/AppleRunnerTemplate.sh b/eng/testing/AppleRunnerTemplate.sh index 44987ab48b563..7ea80e1c976b3 100644 --- a/eng/testing/AppleRunnerTemplate.sh +++ b/eng/testing/AppleRunnerTemplate.sh @@ -3,21 +3,34 @@ EXECUTION_DIR=$(dirname $0) [[RunCommands]] +TARGET_DEVICE=ios-device +TARGET_SIMULATOR=ios-simulator-64 +TARGET_SDK=iphoneos +TARGET_SIMULATOR_SDK=iphonesimulator + +if [ "$TARGET_OS" == "tvOS" ]; then + TARGET_DEVICE=tvos-device + TARGET_SIMULATOR=tvos-simulator + TARGET_SDK=appletvos + TARGET_SIMULATOR_SDK=appletvsimulator +fi + + # "Release" in SCHEME_SDK is what xcode produces (see "bool Optimized" property in AppleAppBuilderTask) if [ "$TARGET_ARCH" == "arm" ]; then - TARGET=ios-device - SCHEME_SDK=Release-iphoneos + TARGET=$TARGET_DEVICE + SCHEME_SDK="Release-$TARGET_SDK" elif [ "$TARGET_ARCH" == "arm64" ]; then - TARGET=ios-device - SCHEME_SDK=Release-iphoneos + TARGET=$TARGET_DEVICE + SCHEME_SDK="Release-$TARGET_SDK" elif [ "$TARGET_ARCH" == "x64" ]; then - TARGET=ios-simulator-64 - SCHEME_SDK=Release-iphonesimulator -elif [ "$TARGET_ARCH" == "x86" ]; then + TARGET=$TARGET_SIMULATOR + SCHEME_SDK="Release-$TARGET_SIMULATOR_SDK" +elif [ "$TARGET_ARCH" == "x86" ] && [ "$TARGET_OS" == "iOS" ]; then TARGET=ios-simulator-32 - SCHEME_SDK=Release-iphonesimulator + SCHEME_SDK="Release-$TARGET_SIMULATOR_SDK" else - echo "Unknown architecture: $TARGET_ARCH" + echo "Unknown OS & architecture: $TARGET_OS $TARGET_ARCH" exit 1 fi diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index ef94fd017269a..7dc9baf12891d 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -18,6 +18,7 @@ + @@ -79,7 +80,7 @@ - + @@ -87,6 +88,9 @@ + + true + @(MonoAOTCompilerDefaultAotArguments, ';') @@ -111,6 +115,7 @@ and produce an app bundle (with xcode project) --> diff --git a/eng/testing/tests.targets b/eng/testing/tests.targets index be296d75f02bf..90d5981318c92 100644 --- a/eng/testing/tests.targets +++ b/eng/testing/tests.targets @@ -2,7 +2,7 @@ RunnerTemplate.cmd RunnerTemplate.sh - AppleRunnerTemplate.sh + AppleRunnerTemplate.sh AndroidRunnerTemplate.sh WasmRunnerTemplate.sh diff --git a/src/mono/netcore/sample/iOS/Makefile b/src/mono/netcore/sample/iOS/Makefile index 995e0d44f117d..f9d7ec4ddce72 100644 --- a/src/mono/netcore/sample/iOS/Makefile +++ b/src/mono/netcore/sample/iOS/Makefile @@ -15,7 +15,7 @@ runtimepack: run: clean appbuilder $(DOTNET) publish -c $(MONO_CONFIG) /p:TargetArchitecture=$(MONO_ARCH) \ - /p:UseLLVM=$(USE_LLVM) /p:UseAotForSimulator=false + /p:UseLLVM=$(USE_LLVM) /p:ForceAOT=false clean: rm -rf bin diff --git a/src/mono/netcore/sample/iOS/Program.csproj b/src/mono/netcore/sample/iOS/Program.csproj index 60d9604b72268..4b5ba8d311856 100644 --- a/src/mono/netcore/sample/iOS/Program.csproj +++ b/src/mono/netcore/sample/iOS/Program.csproj @@ -34,7 +34,7 @@ $(MSBuildThisFileDirectory)$(PublishDir)\app iPhone 11 True - true + true @@ -61,6 +61,7 @@ diff --git a/tools-local/tasks/mobile.tasks/AppleAppBuilder/AppleAppBuilder.cs b/tools-local/tasks/mobile.tasks/AppleAppBuilder/AppleAppBuilder.cs index 24723adc9fe7a..bae94a410d884 100644 --- a/tools-local/tasks/mobile.tasks/AppleAppBuilder/AppleAppBuilder.cs +++ b/tools-local/tasks/mobile.tasks/AppleAppBuilder/AppleAppBuilder.cs @@ -12,6 +12,12 @@ public class AppleAppBuilderTask : Task { + /// + /// The Apple OS we are targeting (iOS or tvOS) + /// + [Required] + public string TargetOS { get; set; } = Utils.TargetOS.iOS; + /// /// ProjectName is used as an app name, bundleId and xcode project name /// @@ -99,7 +105,7 @@ public class AppleAppBuilderTask : Task /// /// Prefer FullAOT mode for Simulator over JIT /// - public bool UseAotForSimulator { get; set; } + public bool ForceAOT { get; set; } /// /// Forces the runtime to use the interpreter @@ -154,20 +160,21 @@ public override bool Execute() } } - if (((!ForceInterpreter && (isDevice || UseAotForSimulator)) && !assemblerFiles.Any())) + if (((!ForceInterpreter && (isDevice || ForceAOT)) && !assemblerFiles.Any())) { throw new InvalidOperationException("Need list of AOT files for device builds."); } - if (ForceInterpreter && UseAotForSimulator) + if (ForceInterpreter && ForceAOT) { throw new InvalidOperationException("Interpreter and AOT cannot be enabled at the same time"); } if (GenerateXcodeProject) { - XcodeProjectPath = Xcode.GenerateXCode(ProjectName, MainLibraryFileName, assemblerFiles, - AppDir, binDir, MonoRuntimeHeaders, !isDevice, UseConsoleUITemplate, UseAotForSimulator, ForceInterpreter, Optimized, NativeMainSource); + Xcode generator = new Xcode(TargetOS); + XcodeProjectPath = generator.GenerateXCode(ProjectName, MainLibraryFileName, assemblerFiles, + AppDir, binDir, MonoRuntimeHeaders, !isDevice, UseConsoleUITemplate, ForceAOT, ForceInterpreter, Optimized, NativeMainSource); if (BuildAppBundle) { @@ -178,7 +185,7 @@ public override bool Execute() } else { - AppBundlePath = Xcode.BuildAppBundle(XcodeProjectPath, Arch, Optimized, DevTeamProvisioning); + AppBundlePath = generator.BuildAppBundle(XcodeProjectPath, Arch, Optimized, DevTeamProvisioning); } } } diff --git a/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/CMakeLists.txt.template b/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/CMakeLists.txt.template index ce8595ebf3a18..6b76683dfc718 100644 --- a/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/CMakeLists.txt.template +++ b/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/CMakeLists.txt.template @@ -37,7 +37,7 @@ target_link_libraries( "-framework Foundation" "-framework Security" "-framework UIKit" - "-framework GSS" + %FrameworksToLink% "-lz" "-liconv" %NativeLibrariesToLink% diff --git a/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/main-console.m b/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/main-console.m index 20b9f8714d3ce..d84c90c60e4b9 100644 --- a/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/main-console.m +++ b/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/main-console.m @@ -31,7 +31,7 @@ @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; - CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame]; + CGRect applicationFrame = [[UIScreen mainScreen] bounds]; logLabel = [[UITextView alloc] initWithFrame: CGRectMake(2.0, 50.0, applicationFrame.size.width - 2.0, applicationFrame.size.height - 50.0)]; logLabel.font = [UIFont systemFontOfSize:9.0]; @@ -39,7 +39,9 @@ - (void)viewDidLoad { logLabel.textColor = [UIColor greenColor]; logLabel.scrollEnabled = YES; logLabel.alwaysBounceVertical = YES; +#ifndef TARGET_OS_TV logLabel.editable = NO; +#endif logLabel.clipsToBounds = YES; summaryLabel = [[UILabel alloc] initWithFrame: CGRectMake(10.0, 0.0, applicationFrame.size.width - 10.0, 50)]; @@ -47,7 +49,7 @@ - (void)viewDidLoad { summaryLabel.font = [UIFont boldSystemFontOfSize: 12]; summaryLabel.numberOfLines = 2; summaryLabel.textAlignment = NSTextAlignmentLeft; -#ifdef TARGET_OS_IPHONE && (!TARGET_IPHONE_SIMULATOR || USE_AOT_FOR_SIMULATOR) +#if !TARGET_OS_SIMULATOR || FORCE_AOT summaryLabel.text = @"Loading..."; #else summaryLabel.text = @"Jitting..."; diff --git a/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/runtime.m b/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/runtime.m index 70afd67e916cc..a7e6e9869b9f0 100644 --- a/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/runtime.m +++ b/tools-local/tasks/mobile.tasks/AppleAppBuilder/Templates/runtime.m @@ -196,7 +196,7 @@ //%DllMap% } -#if FORCE_INTERPRETER || (TARGET_OS_IPHONE && (!TARGET_IPHONE_SIMULATOR || USE_AOT_FOR_SIMULATOR)) +#if FORCE_INTERPRETER || FORCE_AOT || !TARGET_OS_SIMULATOR void mono_jit_set_aot_mode (MonoAotMode mode); void register_aot_modules (void); #endif @@ -231,7 +231,7 @@ #if FORCE_INTERPRETER os_log_info (OS_LOG_DEFAULT, "INTERP Enabled"); mono_jit_set_aot_mode (MONO_AOT_MODE_INTERP_ONLY); -#elif TARGET_OS_IPHONE && (!TARGET_IPHONE_SIMULATOR || USE_AOT_FOR_SIMULATOR) +#elif !TARGET_OS_SIMULATOR || FORCE_AOT register_dllmap (); // register modules register_aot_modules (); @@ -252,7 +252,7 @@ } mono_jit_init_version ("dotnet.ios", "mobile"); -#if !FORCE_INTERPRETER && TARGET_OS_IPHONE && (!TARGET_IPHONE_SIMULATOR || USE_AOT_FOR_SIMULATOR) +#if !FORCE_INTERPRETER && (!TARGET_OS_SIMULATOR || FORCE_AOT) // device runtimes are configured to use lazy gc thread creation MONO_ENTER_GC_UNSAFE; mono_gc_init_finalizer_thread (); diff --git a/tools-local/tasks/mobile.tasks/AppleAppBuilder/Utils.cs b/tools-local/tasks/mobile.tasks/AppleAppBuilder/Utils.cs index 83304bd393c1e..76ed8c1187e79 100644 --- a/tools-local/tasks/mobile.tasks/AppleAppBuilder/Utils.cs +++ b/tools-local/tasks/mobile.tasks/AppleAppBuilder/Utils.cs @@ -92,4 +92,10 @@ public static void LogError(string? msg) Logger?.LogError(msg); } } + + internal class TargetOS + { + public const string iOS = "iOS"; + public const string tvOS = "tvOS"; + } } diff --git a/tools-local/tasks/mobile.tasks/AppleAppBuilder/Xcode.cs b/tools-local/tasks/mobile.tasks/AppleAppBuilder/Xcode.cs index 41b19753b93aa..f81b5a456de22 100644 --- a/tools-local/tasks/mobile.tasks/AppleAppBuilder/Xcode.cs +++ b/tools-local/tasks/mobile.tasks/AppleAppBuilder/Xcode.cs @@ -9,9 +9,18 @@ internal class Xcode { - public static string Sysroot { get; } = Utils.RunProcess("xcrun", "--sdk iphoneos --show-sdk-path"); + private string SysRoot { get; set; } + private string Target { get; set; } - public static string GenerateXCode( + public Xcode(string target) + { + Target = target; + SysRoot = (Target == Utils.TargetOS.iOS) ? + Utils.RunProcess("xcrun", "--sdk iphoneos --show-sdk-path") : + Utils.RunProcess("xcrun", "--sdk appletvos --show-sdk-path"); + } + + public string GenerateXCode( string projectName, string entryPointLib, IEnumerable asmFiles, @@ -20,7 +29,7 @@ public static string GenerateXCode( string monoInclude, bool preferDylibs, bool useConsoleUiTemplate, - bool useAotForSimulator, + bool forceAOT, bool forceInterpreter, bool stripDebugSymbols, string? nativeMainSource = null) @@ -59,6 +68,7 @@ public static string GenerateXCode( .Replace("%MainSource%", nativeMainSource) .Replace("%MonoInclude%", monoInclude); + string[] dylibs = Directory.GetFiles(workspace, "*.dylib"); string toLink = ""; foreach (string lib in Directory.GetFiles(workspace, "*.a")) @@ -84,6 +94,13 @@ public static string GenerateXCode( toLink += $" {name}{Environment.NewLine}"; } + string frameworks = ""; + if (Target == Utils.TargetOS.iOS) + { + frameworks = "\"-framework GSS\""; + } + + cmakeLists = cmakeLists.Replace("%FrameworksToLink%", frameworks); cmakeLists = cmakeLists.Replace("%NativeLibrariesToLink%", toLink); cmakeLists = cmakeLists.Replace("%AotSources%", aotSources); cmakeLists = cmakeLists.Replace("%AotModulesSource%", string.IsNullOrEmpty(aotSources) ? "" : "modules.m"); @@ -93,9 +110,9 @@ public static string GenerateXCode( { defines = "add_definitions(-DFORCE_INTERPRETER=1)"; } - else if (useAotForSimulator) + else if (forceAOT) { - defines = "add_definitions(-DUSE_AOT_FOR_SIMULATOR=1)"; + defines = "add_definitions(-DFORCE_AOT=1)"; } cmakeLists = cmakeLists.Replace("%Defines%", defines); @@ -110,7 +127,7 @@ public static string GenerateXCode( .Append("-S.") .Append(" -B").Append(projectName) .Append(" -GXcode") - .Append(" -DCMAKE_SYSTEM_NAME=iOS") + .Append(" -DCMAKE_SYSTEM_NAME=" + Target.ToString()) .Append(" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.1"); File.WriteAllText(Path.Combine(binDir, "runtime.h"), @@ -138,25 +155,26 @@ public static string GenerateXCode( return Path.Combine(binDir, projectName, projectName + ".xcodeproj"); } - public static string BuildAppBundle( + public string BuildAppBundle( string xcodePrjPath, string architecture, bool optimized, string? devTeamProvisioning = null) { string sdk = ""; var args = new StringBuilder(); args.Append("ONLY_ACTIVE_ARCH=YES"); + if (architecture == "arm64") { - sdk = "iphoneos"; + sdk = (Target == Utils.TargetOS.iOS) ? "iphoneos" : "appletvos"; args.Append(" -arch arm64") - .Append(" -sdk iphoneos") + .Append(" -sdk " + sdk) .Append(" -allowProvisioningUpdates") .Append(" DEVELOPMENT_TEAM=").Append(devTeamProvisioning); } else { - sdk = "iphonesimulator"; + sdk = (Target == Utils.TargetOS.iOS) ? "iphonesimulator" : "appletvsimulator"; args.Append(" -arch x86_64") - .Append(" -sdk iphonesimulator"); + .Append(" -sdk " + sdk); } string config = optimized ? "Release" : "Debug"; From 74116f0fbc3ffa4653045367084827cd665b67b2 Mon Sep 17 00:00:00 2001 From: Carol Eidt Date: Thu, 3 Dec 2020 11:15:40 -0800 Subject: [PATCH 02/87] Update first-class-structs.md (#45512) * Update first-class-structs.md * Address feedback and add links to x64 vector ABI branches --- .../design/coreclr/jit/first-class-structs.md | 455 ++++-------------- 1 file changed, 96 insertions(+), 359 deletions(-) diff --git a/docs/design/coreclr/jit/first-class-structs.md b/docs/design/coreclr/jit/first-class-structs.md index 91e889831561e..4571d311accba 100644 --- a/docs/design/coreclr/jit/first-class-structs.md +++ b/docs/design/coreclr/jit/first-class-structs.md @@ -16,13 +16,8 @@ Secondary Objectives * No “swizzling” or lying about struct types – they are always struct types - No confusing use of GT_LCL_FLD to refer to the entire struct as a different type -Normalizing Struct Types ------------------------- -We would like to facilitate full enregistration of structs with the following properties: -1. Its fields are infrequently accessed, and -1. The entire struct fits into a register, and -2. Its value is used or defined in a register -(i.e. as an argument to or return value from calls or intrinsics). +Struct Types in RyuJIT +---------------------- In RyuJIT, the concept of a type is very simplistic (which helps support the high throughput of the JIT). Rather than a symbol table to hold the properties of a type, RyuJIT primarily @@ -36,14 +31,18 @@ As a result, struct types are generally treated as an opaque type In order to treat fully-enregisterable struct types as "first class" types in RyuJIT, we created new types to represent vectors, in order for the JIT to support operations on them: * `TYP_SIMD8`, `TYP_SIMD12`, `TYP_SIMD16` and (where supported by the target) `TYP_SIMD32`. - - These types already exist, and represent some already-completed steps toward First Class Structs. + - The are used to implement both the platform-independent (`Vector2`, `Vector3`, `Vector4` and `Vector`) + types as well as the types used for platform-specific hardware intrinsics ('`Vector64`, `Vector128` + and `Vector256`). + - These types are useful not only for enregistration purposes, but also because we can have + values of these types that are produced by computational `SIMD` and `HWIntrinsic` nodes. We had previously proposed to create additional types to be used where struct types of the given size are passed and/or returned in registers: * `TYP_STRUCT1`, `TYP_STRUCT2`, `TYP_STRUCT4`, `TYP_STRUCT8` (on 64-bit systems) -However, further discussions have suggested that this may not be necessary. Rather, storage decisions -should largely be deferred to the backend (`Lowering` and register allocation). +However, further investigation and implementation has suggested that this may not be necessary. +Rather, storage decisions should largely be deferred to the backend (`Lowering` and register allocation). The following transformations need to be supported effectively for all struct types: - Optimizations such as CSE and assertion propagation @@ -61,8 +60,9 @@ over the JIT/EE interface. This includes: With the changes from @mikedn in [#21705 Pull struct type info out of GenTreeObj](https://github.com/dotnet/coreclr/pull/21705) -this information is captured in a `ClassLayout` object. This will make it possible to retain -this shape information on all struct-typed nodes, without impacting node size. +this information is captured in a `ClassLayout` object which captures the size and GC layout of a struct type. +The associated `ClassLayoutTable` on the `Compiler` object which supports lookup. This enables associating this +this shape information with all struct-typed nodes, without impacting node size. Current Representation of Struct Values --------------------------------------- @@ -75,8 +75,10 @@ encountered by most phases of the JIT: into the array info map. * Proposed: This should be transformed into a `GT_OBJ` when it represents a struct type, and then the class handle would no longer need to be obtained from the array info map. -* `GT_FIELD`: This is transformed to a `GT_LCL_FLD` or a `GT_IND` - * Proposed: A struct typed field should be transformed into a `GT_OBJ`. +* `GT_FIELD`: This is transformed to a `GT_LCL_VAR` by the `Compiler::fgMarkAddressExposedLocals()` phase + 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 @@ -87,7 +89,7 @@ encountered by most phases of the JIT: ### Struct “objects” as lvalues -* The lhs of a struct assignment is a block node or local +* The lhs of a struct assignment is a block or local node: * `GT_OBJ` nodes represent the “shape” info via a struct handle, along with the GC info (location and type of GC references within the struct). * These are currently used only to represent struct values that contain GC references (although see below). @@ -116,11 +118,12 @@ Structs only appear as rvalues in the following contexts: [#23739 Block the hoisting of TYP_STRUCT rvalues in loop hoisting](https://github.com/dotnet/coreclr/pull/23739) * As a call argument - * In this context, it must be one of: `GT_OBJ`, `GT_LCL_VAR`, `GT_LCL_FLD` or `GT_FIELD_LIST` + * In this context, it must be one of: `GT_OBJ`, `GT_LCL_VAR`, `GT_LCL_FLD` or `GT_FIELD_LIST`. * As an operand to a hardware or SIMD intrinsic (for `TYP_SIMD*` only) * In this case the struct handle is generally assumed to be unneeded, as it is captured (directly or indirectly) in the `GT_SIMD` or `GT_HWINTRINSIC` node. + * It would simplify both the recognition and optimization of these nodes if they carried a `ClassLayout`. After morph, a struct-typed value on the RHS of assignment is one of: * `GT_IND`: in this case the LHS is expected to provide the struct handle @@ -128,16 +131,23 @@ After morph, a struct-typed value on the RHS of assignment is one of: * `GT_CALL` * `GT_LCL_VAR` * `GT_LCL_FLD` - * Proposed: `GT_LCL_FLD` would never be used to represent a reference to the full struct (e.g. as a different type). + * Note: With `compDoOldStructRetyping()`, a GT_LCL_FLD` with a primitive type of the same size as the struct + is used to represent a reference to the full struct when it is passed in a register. + This forces the struct to live on the stack, and makes it more difficult to optimize these struct values, + which is why this mechanism is being phased out. * `GT_SIMD` * `GT_OBJ` nodes can also be used as rvalues when they are call arguments * Proposed: `GT_OBJ` nodes can be used in any context where a struct rvalue or lvalue might occur, except after morph when the struct is independently promoted. +Ideally, we should be able to obtain a valid `CLASS_HANDLE` for any struct-valued node. +Once that is the case, we should be able to transform most or all uses of `gtGetStructHandleIfPresent()` to +`gtGetStructHandle()`. + Struct IR Phase Transitions --------------------------- -There are three phases in the JIT that make changes to the representation of struct nodes and lclVars: +There are three main phases in the JIT that make changes to the representation of struct nodes and lclVars: * Importer * Vector types are normalized to the appropriate `TYP_SIMD*` type. Other struct nodes have `TYP_STRUCT`. @@ -163,8 +173,8 @@ There are three phases in the JIT that make changes to the representation of str registers. The necessary transformations for correct code generation would be made in `Lowering`. - * If it is passed in a single register, it is morphed into a `GT_LCL_FLD` node of the appropriate - type. + * With `compDoOldStructRetyping()`, if it is passed in a single register, it is morphed into a + `GT_LCL_FLD` node of the appropriate primitive type. * This may involve making a copy, if the size cannot be safely loaded. * Proposed: This would remain a `GT_OBJ` and would be appropriately transformed in `Lowering`, e.g. using `GT_BITCAST`. @@ -179,6 +189,8 @@ There are three phases in the JIT that make changes to the representation of str * Proposed: This transformation would also be deferred until `Lowering`, at which time the liveness information can provide `lastUse` information to allow a dead struct to be passed directly by reference instead of being copied. + Related: [\#4524 Add optimization to avoid copying a struct if passed by reference and there are no + writes to and no reads after passed to a callee](https://github.com/dotnet/runtime/issues/4524) It is proposed to add the following transformations in `Lowering`: * Transform struct values that are passed to or returned from calls by creating one or more of the following: @@ -190,7 +202,7 @@ It is proposed to add the following transformations in `Lowering`: Work Items ---------- -This is a preliminary breakdown of the work into somewhat separable tasks. +This is a rough breakdown of the work into somewhat separable tasks. These work items are organized in priority order. Each work item should be able to proceed independently, though the aggregate effect of multiple work items may be greater than the individual work items alone. @@ -201,7 +213,7 @@ This includes all copies and IR transformations that are only required to pass o as required by the ABI. Other transformations would remain: - * Copies required to satisfy ordering constraints + * Copies required to satisfy ordering constraints. * Transformations (e.g. `GT_FIELD_LIST` creation) required to expose references to promoted struct fields. @@ -209,20 +221,29 @@ This would be done in multiple phases: * First, move transformations other than those listed above to `Lowering`, but retain any "pessimizations" (e.g. marking nodes as `GTF_DONT_CSE` or marking lclVars as `lvDoNotEnregister`) * Add support for passing vector types in the SSE registers for x64/ux - * This will also involve modifying code in the VM. See [#23675 Arm64 Vector ABI](https://github.com/dotnet/coreclr/pull/23675) - for a general idea of the kinds of VM changes that may be required. - * Defer retyping of struct return types (`Compiler::impFixupStructReturnType()` and - `Compiler::impFixupCallStructReturn()`) - * This is probably the "right" way to fix [#13355](https://github.com/dotnet/runtime/issues/13355). + * This will also involve modifying code in the VM. + [#23675 Arm64 Vector ABI](https://github.com/dotnet/coreclr/pull/23675) added similar support + for Arm64. The https://github.com/CarolEidt/runtime/tree/X64Vector16ABI branch was intended to + add this support for 16 byte vectors for .NET 5, but didn't make it into that release. + The https://github.com/CarolEidt/runtime/tree/FixX64VectorABI branch was an earlier attempt + to support both 16 and 32 byte vectors, but was abandoned in favor of doing just 16 byte vectors + first. * Next, eliminate the "pessimizations". * For cases where `GT_LCL_FLD` is currently used to "retype" the struct, change it to use *either* `GT_LCL_FLD`, if it is already address-taken, or to use a `GT_BITCAST` otherwise. - * This work item should address issue #1161 (test is `JIT\Regressions\JitBlue\GitHub_1161`) and #8828. + * This work item should address issue [#4323 RyuJIT properly optimizes structs with a single field + if the field type is int but not if it is double](https://github.com/dotnet/runtime/issues/4323) + (test is `JIT\Regressions\JitBlue\GitHub_1161`), + [#7200 Struct getters are generating unneccessary + instructions on x64 when struct contains floats](https://github.com/dotnet/runtime/issues/7200) + and [#11413 Inefficient codegen for casts between same size types](https://github.com/dotnet/runtime/issues/11413). + * Remove the pessimization in `LocalAddressVisitor::PostOrderVisit()` for the `GT_RETURN` case. * Add support in prolog to extract fields, and remove the restriction of not promoting incoming reg - structs that have more than one field. Note that SIMD types are already reassembled in the prolog. + structs whose fields do not match the register count or types. + Note that SIMD types are already reassembled in the prolog. * Add support in `Lowering` and `CodeGen` to handle call arguments where the fields of a promoted struct - must be extracted or reassembled in order to pass the struct in non-matching registers. This includes - producing the appropriate IR. + must be extracted or reassembled in order to pass the struct in non-matching registers. This probably + includes producing the appropriate IR, in order to correctly represent the register requirements. * Add support for extracting the fields for the returned struct value of a call (in registers or on stack), producing the appropriate IR. * Add support for assembling non-matching fields into registers for call args and returns. @@ -232,16 +253,21 @@ This would be done in multiple phases: * Other ABI-related issues: * [#7048](https://github.com/dotnet/runtime/issues/7048) - code generation for x86 promoted struct args. -Related issues: #1133 (maybe), #4766, #23675, #23129 +Related issues: + * [#4308 JIT: Excessive copies when inlining](https://github.com/dotnet/runtime/issues/4308) (maybe). + Test is `JIT\Regressions\JitBlue\GitHub_1133`. + * [#12219 Inlined struct copies via params, returns and assignment not elided](https://github.com/dotnet/runtime/issues/12219) ### Fully Enable Struct Optimizations Most of the existing places in the code where structs are handled conservatively are marked with `TODO-1stClassStructs`. This work item involves investigating these and making the necessary improvements (or determining that they are infeasible and removing the `TODO`). -Some of these, such as the handling of `TYP_SIMD8` in LSRA, may be addressed by other work items. -Related: #2003, #18542 (maybe), #19733 (maybe) +Related: + +* [#4659 JIT - slow generated code on Release for iterating simple array of struct](https://github.com/dotnet/runtime/issues/4659) +* [#11000 Strange codegen with struct forwarding implementation to another struct](https://github.com/dotnet/runtime/issues/11000) (maybe) ### Support Full Enregistration of Struct Types @@ -254,15 +280,15 @@ This would be enabled first by [Defer ABI-specific transformations to Lowering]( as needed to extract the field from the register(s). * An initial investigation should be undertaken to determine if this is worthwhile. - * Related: #11407, #17257 + * Related: [#10045 Accessing a field of a Vector4 causes later codegen to be inefficient if inlined](https://github.com/dotnet/runtime/issues/10045) ### Improve Struct Promotion - * Support recursive (nested) struct promotion, especially when struct field itself has a single field - (#10019, #9594, #7313) + * Support recursive (nested) struct promotion, especially when struct field itself has a single field: + * [#7576 Recursive Promotion of structs containing fields of structs with a single pointer-sized field](https://github.com/dotnet/runtime/issues/7576) + * [#7441 RyuJIT: Allow promotions of structs with fields of struct containing a single primitive field](https://github.com/dotnet/runtime/issues/7441) + * [#6707 RyuJIT x86: allow long-typed struct fields to be recursively promoted](https://github.com/dotnet/runtime/issues/6707) * Support partial struct promotion when some fields are more frequently accessed. - * Aggressively promote lclVar struct incoming or outgoing args or returns whose fields match the ABI requirements. - * This should address [\#13417](https://github.com/dotnet/runtime/issues/13417). * Aggressively promote pointer-sized fields of structs used as args or returns * Allow struct promotion of locals that are passed or returned in a way that doesn't match the field types. @@ -270,8 +296,11 @@ This would be enabled first by [Defer ABI-specific transformations to Lowering]( This would complicate type analysis when copied, passed or returned, but would avoid unnecessarily expanding the lclVar data structures. * Allow promotion of 32-byte SIMD on 16-byte alignment [\#12623](https://github.com/dotnet/runtime/issues/12623) - * Related: #6839, #9477, #16887 - * Also, #11888, which suggests adding a struct promotion stress mode. + * Related: + * [#6534 Promote (scalar replace) structs with more than 4 fields](https://github.com/dotnet/runtime/issues/6534) + * [#7395 Heuristic meant to promote structs with no field access should consider the impact of passing to/from a call ](https://github.com/dotnet/runtime/issues/7395) + * [#9916 RyuJIT generates poor code for a helper method which does return Method(value, value)](https://github.com/dotnet/runtime/issues/9916) + * [#8227 JIT: add struct promotion stress mode](https://github.com/dotnet/runtime/issues/8227). ### Improve and Simplify Block and Block Assignment Morphing @@ -289,20 +318,30 @@ This would be enabled first by [Defer ABI-specific transformations to Lowering]( wrapped in `OBJ(ADDR(...))`. We should be able to change the IND to OBJ and avoid wrapping, and should also be able to remove the class handle from the array info map and instead used the one provided by the `GT_OBJ`. +### Miscellaneous Cleanup + +These are all marked with `TODO-1stClassStructs` or `TODO-Cleanup` in the last case: + +* The handling of `DYN_BLK` is unnecessarily complicated to duplicate previous behavior (i.e. to enable previous + refactorings to be zero-diff). These nodes are infrequent so the special handling should just be eliminated + (e.g. see `GenTree::GetChild()`). + +* The checking at the end of `gtNewTempAssign()` should be simplified. + +* When we create a struct assignment, we use `impAssignStruct()`. This code will, in some cases, create + or re-create address or block nodes when not necessary. + +* For Linux X64, the handling of arguments could be simplified. For a single argument (or for the same struct + class), there may be multiple calls to `eeGetSystemVAmd64PassStructInRegisterDescriptor()`, and in some cases + (e.g. look for the `TODO-Cleanup` in `fgMakeTmpArgNode()`) there are awkward workarounds to avoid additional + calls. It might be useful to cache the struct descriptors so we don't have to call across the JIT/EE interface + for the same struct class more than once. It would also potentially be useful to save the descriptor for the + current method return type on the `Compiler` object for use when handling `RETURN` nodes. + Struct-Related Issues in RyuJIT ------------------------------- The following issues illustrate some of the motivation for improving the handling of value types -(structs) in RyuJIT: - -* [\#8016 [RyuJIT] Fully enregister structs that fit into a single register when profitable](https://github.com/dotnet/runtime/issues/8016), also VSO Bug 98404: .NET JIT x86 - poor code generated for value type initialization - * This is a simple test case that should generate simply `xor eax; ret` on x86 and x64, but - instead generates many unnecessary copies. It is addressed by full enregistration of - structs that fit into a register. See [Support Full Enregistration of Struct Types](#support-full-enregistration-of-struct-types): - -```C# -struct foo { public byte b1, b2, b3, b4; } -static foo getfoo() { return new foo(); } -``` +(structs) in RyuJIT (these issues are also cited above, in the applicable sections): * [\#4308 JIT: Excessive copies when inlining](https://github.com/dotnet/runtime/issues/4308) * The scenario given in this issue involves a struct that is larger than 8 bytes, so @@ -321,7 +360,7 @@ static foo getfoo() { return new foo(); } for when to promote and enregister structs. * Related: [\#7200](https://github.com/dotnet/runtime/issues/7200) -* [\#1636 Add optimization to avoid copying a struct if passed by reference and there are no +* [\#4524 Add optimization to avoid copying a struct if passed by reference and there are no writes to and no reads after passed to a callee](https://github.com/dotnet/runtime/issues/4524). * This issue is related to #1133, except that in this case the desire is to eliminate unneeded copies locally (i.e. not just due to inlining), in the case where @@ -331,29 +370,11 @@ static foo getfoo() { return new foo(); } * [\#10879 Unix: Unnecessary struct copy while passing struct of size <=16](https://github.com/dotnet/runtime/issues/10879) * [\#9839 [RyuJIT] Eliminate unecessary copies when passing structs](https://github.com/dotnet/runtime/issues/9839) * These require changing both the callsite and the callee to avoid copying the parameter onto the stack. + * It may be that these have been addressed by [PR #43870](https://github.com/dotnet/runtime/pull/43870). -* [\#5112 Avoid marking tmp as DoNotEnregister in tmp=GT_CALL() where call returns a - enregisterable struct in two return registers](https://github.com/dotnet/runtime/issues/5112) - * This issue could be addressed without First Class Structs. However, it - should be done along with the streamlining of the handling of ABI-specific struct passing - and return values. - -* [\#5785 Pi-Digits: Extra Struct copies of BigInteger](https://github.com/dotnet/runtime/issues/5785) - * In addition to suffering from the same issue as #1133, this has a struct that is promoted even though it is - passed (by reference) to its non-inlined constructor. This means that any copy to/from this struct will be field-by-field. - -* [\#8186 Extra zeroing with structs and inlining](https://github.com/dotnet/runtime/issues/8186) - * This issue illustrates the failure of the JIT to eliminate zero-initialization of structs that are subsequently fully - defined. It is a related but somewhat different manifestation of the issue in #1133, i.e. that structs are not - fully supported in value numbering and optimization. - -* [\#8571 JIT: inefficient codegen for calls returning 16-byte structs on Linux x64](https://github.com/dotnet/runtime/issues/8571) - * This is related to #3144, and requires supporting the assignment of a multi-reg call return into a promoted local variable, - and enabling subsequent elimination of any redundant copies. - -* [\#11992](https://github.com/dotnet/runtime/issues/11992) and [\#11940](https://github.com/dotnet/runtime/issues/11940) - * These are both cases where we introduce a `GT_LCL_FLD` to retype a value that needs - to be passed in a register. +* [\#11992](https://github.com/dotnet/runtime/issues/11992) + * This is a case where we introduce a `GT_LCL_FLD` to retype a value that needs + to be passed in a register. It may have been addressed by [PR #37745](https://github.com/dotnet/runtime/pull/37745) ## Other Struct-related Issues @@ -363,287 +384,3 @@ static foo getfoo() { return new foo(); } * [#6858](https://github.com/dotnet/runtime/issues/6858) * Addressing mode expression optimization for struct fields - -Sample IR ---------- - -*** Note: These IR samples have not been updated to correspond to the current state of the IR *** - -### Bug 11407 -#### Before - -The `getfoo` method initializes a struct of 4 bytes. -The dump of the (single) local variable is included to show the change from `struct (8)` to -`struct4`, as the "exact size" of the struct is 4 bytes. -Here is the IR after Import: - -``` -; V00 loc0 struct ( 8) - - ▌ stmtExpr void (top level) (IL 0x000... ???) - │ ┌──▌ const int 4 - └──▌ initBlk void - │ ┌──▌ const int 0 - └──▌ void - └──▌ addr byref - └──▌ lclVar struct V00 loc0 - - ▌ stmtExpr void (top level) (IL 0x008... ???) - └──▌ return int - └──▌ lclFld int V00 loc0 [+0] -``` -This is how it currently looks just before code generation: -``` - ▌ stmtExpr void (top level) (IL 0x000...0x003) - │ ┌──▌ const int 0 REG rax $81 - │ ├──▌ &lclVar byref V00 loc0 d:3 REG NA - └──▌ storeIndir int REG NA - - ▌ stmtExpr void (top level) (IL 0x008...0x009) - │ ┌──▌ lclFld int V00 loc0 u:3[+0] (last use) REG rax $180 - └──▌ return int REG NA $181 -``` -And here is the resulting code: -``` - push rax - xor rax, rax - mov qword ptr [V00 rsp], rax - xor eax, eax - mov dword ptr [V00 rsp], eax - mov eax, dword ptr [V00 rsp] - add rsp, 8 - ret -``` -#### After -Here is the IR after Import with the prototype First Class Struct changes. -Note that the fixed-size struct variable is assigned and returned just as for a scalar type. - -``` -; V00 loc0 struct4 - - ▌ stmtExpr void (top level) (IL 0x000... ???) - │ ┌──▌ const int 0 - └──▌ = struct4 (init) - └──▌ lclVar struct4 V00 loc0 - - - ▌ stmtExpr void (top level) (IL 0x008... ???) - └──▌ return struct4 - └──▌ lclVar struct4 V00 loc0 -``` -And Here is the resulting code just prior to code generation: -``` - ▌ stmtExpr void (top level) (IL 0x008...0x009) - │ ┌──▌ const struct4 0 REG rax $81 - └──▌ return struct4 REG NA $140 -``` -Finally, here is the resulting code that we were hoping to achieve: -``` - xor eax, eax -``` - -### Issue 1133: -#### Before - -Here is the IR after Inlining for the `TestValueTypesInInlinedMethods` method that invokes a -sequence of methods that are inlined, creating a sequence of copies. -Because this struct type does not fit into a single register, the types do not change (and -therefore the local variable table is not shown). - -``` - ▌ stmtExpr void (top level) (IL 0x000...0x003) - │ ┌──▌ const int 16 - └──▌ initBlk void - │ ┌──▌ const int 0 - └──▌ void - └──▌ addr byref - └──▌ lclVar struct V00 loc0 - - ▌ stmtExpr void (top level) (IL 0x008... ???) - │ ┌──▌ const int 16 - └──▌ copyBlk void - │ ┌──▌ addr byref - │ │ └──▌ lclVar struct V00 loc0 - └──▌ void - └──▌ addr byref - └──▌ lclVar struct V01 tmp0 - - ▌ stmtExpr void (top level) (IL 0x008... ???) - │ ┌──▌ const int 16 - └──▌ copyBlk void - │ ┌──▌ addr byref - │ │ └──▌ lclVar struct V01 tmp0 - └──▌ void - └──▌ addr byref - └──▌ lclVar struct V02 tmp1 - - ▌ stmtExpr void (top level) (IL 0x008... ???) - │ ┌──▌ const int 16 - └──▌ copyBlk void - │ ┌──▌ addr byref - │ │ └──▌ lclVar struct V02 tmp1 - └──▌ void - └──▌ addr byref - └──▌ lclVar struct V03 tmp2 - - ▌ stmtExpr void (top level) (IL 0x008... ???) - └──▌ call help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE - ├──▌ const long 0x7ff918494e10 - └──▌ const int 1 - - ▌ stmtExpr void (top level) (IL 0x008... ???) - │ ┌──▌ const int 16 - └──▌ copyBlk void - │ ┌──▌ addr byref - │ │ └──▌ lclVar struct V03 tmp2 - └──▌ void - │ ┌──▌ const long 8 Fseq[#FirstElem] - └──▌ + byref - └──▌ field ref s_dt - - ▌ stmtExpr void (top level) (IL 0x00E... ???) - └──▌ return void -``` -And here is the resulting code: -``` -sub rsp, 104 -xor rax, rax -mov qword ptr [V00 rsp+58H], rax -mov qword ptr [V00+0x8 rsp+60H], rax -xor rcx, rcx -lea rdx, bword ptr [V00 rsp+58H] -vxorpd ymm0, ymm0 -vmovdqu qword ptr [rdx], ymm0 -vmovdqu ymm0, qword ptr [V00 rsp+58H] -vmovdqu qword ptr [V01 rsp+48H]ymm0, qword ptr -vmovdqu ymm0, qword ptr [V01 rsp+48H] -vmovdqu qword ptr [V02 rsp+38H]ymm0, qword ptr -vmovdqu ymm0, qword ptr [V02 rsp+38H] -vmovdqu qword ptr [V03 rsp+28H]ymm0, qword ptr -mov rcx, 0x7FF918494E10 -mov edx, 1 -call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE -mov rax, 0x1FAC6EB29C8 -mov rax, gword ptr [rax] -add rax, 8 -vmovdqu ymm0, qword ptr [V03 rsp+28H] -vmovdqu qword ptr [rax], ymm0 -add rsp, 104 -ret -``` - -#### After -After fginline: -(note that the obj node will become a blk node downstream). -``` - ▌ stmtExpr void (top level) (IL 0x000...0x003) - │ ┌──▌ const int 0 - └──▌ = struct (init) - └──▌ lclVar struct V00 loc0 - - ▌ stmtExpr void (top level) (IL 0x008... ???) - │ ┌──▌ lclVar struct V00 loc0 - └──▌ = struct (copy) - └──▌ lclVar struct V01 tmp0 - - ▌ stmtExpr void (top level) (IL 0x008... ???) - │ ┌──▌ lclVar struct V01 tmp0 - └──▌ = struct (copy) - └──▌ lclVar struct V02 tmp1 - - ▌ stmtExpr void (top level) (IL 0x008... ???) - │ ┌──▌ lclVar struct V02 tmp1 - └──▌ = struct (copy) - └──▌ lclVar struct V03 tmp2 - - ▌ stmtExpr void (top level) (IL 0x008... ???) - └──▌ call help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE - ├──▌ const long 0x7ff9184b4e10 - └──▌ const int 1 - - ▌ stmtExpr void (top level) (IL 0x008... ???) - │ ┌──▌ lclVar struct V03 tmp2 - └──▌ = struct (copy) - └──▌ obj(16) struct - │ ┌──▌ const long 8 Fseq[#FirstElem] - └──▌ + byref - └──▌ field ref s_dt - - ▌ stmtExpr void (top level) (IL 0x00E... ???) - └──▌ return void -``` -Here is the IR after fgMorph: -Note that copy propagation has propagated the zero initialization through to the final store. -``` - ▌ stmtExpr void (top level) (IL 0x000...0x003) - │ ┌──▌ const int 0 - └──▌ = struct (init) - └──▌ lclVar struct V00 loc0 - - ▌ stmtExpr void (top level) (IL 0x008... ???) - │ ┌──▌ const struct 0 - └──▌ = struct (init) - └──▌ lclVar struct V01 tmp0 - - ▌ stmtExpr void (top level) (IL 0x008... ???) - │ ┌──▌ const struct 0 - └──▌ = struct (init) - └──▌ lclVar struct V02 tmp1 - - ▌ stmtExpr void (top level) (IL 0x008... ???) - │ ┌──▌ const struct 0 - └──▌ = struct (init) - └──▌ lclVar struct V03 tmp2 - - ▌ stmtExpr void (top level) (IL 0x008... ???) - └──▌ call help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE - ├──▌ const long 0x7ffc8bbb4e10 - └──▌ const int 1 - - ▌ stmtExpr void (top level) (IL 0x008... ???) - │ ┌──▌ const struct 0 - └──▌ = struct (init) - └──▌ obj(16) struct - │ ┌──▌ const long 8 Fseq[#FirstElem] - └──▌ + byref - └──▌ indir ref - └──▌ const(h) long 0x2425b6229c8 static Fseq[s_dt] - - ▌ stmtExpr void (top level) (IL 0x00E... ???) - └──▌ return void - -``` -After liveness analysis the dead stores have been eliminated: -``` - ▌ stmtExpr void (top level) (IL 0x008... ???) - └──▌ call help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE - ├──▌ const long 0x7ffc8bbb4e10 - └──▌ const int 1 - - ▌ stmtExpr void (top level) (IL 0x008... ???) - │ ┌──▌ const struct 0 - └──▌ = struct (init) - └──▌ obj(16) struct - │ ┌──▌ const long 8 Fseq[#FirstElem] - └──▌ + byref - └──▌ indir ref - └──▌ const(h) long 0x2425b6229c8 static Fseq[s_dt] - - ▌ stmtExpr void (top level) (IL 0x00E... ???) - └──▌ return void -``` -And here is the resulting code, going from a code size of 129 bytes down to 58. -``` -sub rsp, 40 -mov rcx, 0x7FFC8BBB4E10 -mov edx, 1 -call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE -xor rax, rax -mov rdx, 0x2425B6229C8 -mov rdx, gword ptr [rdx] -add rdx, 8 -vxorpd ymm0, ymm0 -vmovdqu qword ptr [rdx], ymm0 -add rsp, 40 -ret -``` From b66138c760087f53f7e3d187088a3ca3d6c2a6f0 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Thu, 3 Dec 2020 11:58:19 -0800 Subject: [PATCH 03/87] Move return buffer handling from interop to the JIT (#39294) Co-authored-by: Jan Kotas Co-authored-by: Carol Eidt Co-authored-by: Sergey Andreenko Co-authored-by: Andy Ayers --- src/coreclr/src/inc/corinfo.h | 10 +- src/coreclr/src/jit/codegencommon.cpp | 17 +- src/coreclr/src/jit/codegenxarch.cpp | 23 +- src/coreclr/src/jit/compiler.cpp | 157 ++++++++++--- src/coreclr/src/jit/compiler.h | 93 +++++--- src/coreclr/src/jit/compiler.hpp | 11 +- src/coreclr/src/jit/flowgraph.cpp | 8 +- src/coreclr/src/jit/gcencode.cpp | 4 +- src/coreclr/src/jit/gentree.cpp | 20 +- src/coreclr/src/jit/gentree.h | 28 ++- src/coreclr/src/jit/importer.cpp | 178 +++++++++++---- src/coreclr/src/jit/lclvars.cpp | 114 ++++++++-- src/coreclr/src/jit/lower.cpp | 6 +- src/coreclr/src/jit/lsrabuild.cpp | 4 +- src/coreclr/src/jit/morph.cpp | 27 ++- src/coreclr/src/jit/target.h | 18 ++ .../tools/Common/JitInterface/CorInfoImpl.cs | 15 -- .../ReadyToRun/ArgIterator.cs | 12 +- .../ReadyToRun/TransitionBlock.cs | 48 ++++ .../Compiler/ReadyToRunCompilerContext.cs | 64 ------ src/coreclr/src/vm/callingconvention.h | 68 +++++- src/coreclr/src/vm/class.cpp | 67 ------ src/coreclr/src/vm/class.h | 2 - src/coreclr/src/vm/classnames.h | 1 + src/coreclr/src/vm/clrtocomcall.cpp | 2 +- src/coreclr/src/vm/comtoclrcall.cpp | 8 +- src/coreclr/src/vm/dispatchinfo.cpp | 4 +- src/coreclr/src/vm/dllimport.cpp | 213 +++++------------- src/coreclr/src/vm/dllimportcallback.cpp | 106 +++++++-- src/coreclr/src/vm/dllimportcallback.h | 12 +- src/coreclr/src/vm/fieldmarshaler.cpp | 1 - src/coreclr/src/vm/ilmarshalers.h | 140 +----------- src/coreclr/src/vm/methodtablebuilder.cpp | 38 +--- src/coreclr/src/vm/mlinfo.cpp | 156 +------------ src/coreclr/src/vm/mlinfo.h | 12 +- .../Miscellaneous/ThisCall/ThisCallNative.cpp | 32 ++- .../Miscellaneous/ThisCall/ThisCallTest.cs | 114 +++++++++- .../PInvoke/MarshalStructAsLayoutExp.cs | 9 + .../PInvoke/MarshalStructAsParamDLL.cpp | 5 + src/tests/issues.targets | 3 + 40 files changed, 1000 insertions(+), 850 deletions(-) diff --git a/src/coreclr/src/inc/corinfo.h b/src/coreclr/src/inc/corinfo.h index 0cac53cb76f4e..5829954746c8a 100644 --- a/src/coreclr/src/inc/corinfo.h +++ b/src/coreclr/src/inc/corinfo.h @@ -700,17 +700,25 @@ inline bool IsCallerPop(CorInfoCallConv callConv) } #endif // UNIX_X86_ABI +// Represents the calling conventions supported with the extensible calling convention syntax +// as well as the original metadata-encoded calling conventions. enum CorInfoUnmanagedCallConv { // These correspond to CorUnmanagedCallingConvention - CORINFO_UNMANAGED_CALLCONV_UNKNOWN, CORINFO_UNMANAGED_CALLCONV_C, CORINFO_UNMANAGED_CALLCONV_STDCALL, CORINFO_UNMANAGED_CALLCONV_THISCALL, CORINFO_UNMANAGED_CALLCONV_FASTCALL + // New calling conventions supported with the extensible calling convention encoding go here. }; +// Determines whether or not this calling convention is an instance method calling convention. +inline bool callConvIsInstanceMethodCallConv(CorInfoUnmanagedCallConv callConv) +{ + return callConv == CORINFO_UNMANAGED_CALLCONV_THISCALL; +} + // These are returned from getMethodOptions enum CorInfoOptions { diff --git a/src/coreclr/src/jit/codegencommon.cpp b/src/coreclr/src/jit/codegencommon.cpp index 1cbf0aa7232f3..3613312f75fcb 100644 --- a/src/coreclr/src/jit/codegencommon.cpp +++ b/src/coreclr/src/jit/codegencommon.cpp @@ -10070,7 +10070,7 @@ void CodeGen::genVzeroupperIfNeeded(bool check256bitOnly /* = true*/) // Return Value: // true if type is returned in multiple registers, false otherwise. // -bool Compiler::IsMultiRegReturnedType(CORINFO_CLASS_HANDLE hClass) +bool Compiler::IsMultiRegReturnedType(CORINFO_CLASS_HANDLE hClass, CorInfoCallConvExtension callConv) { if (hClass == NO_CLASS_HANDLE) { @@ -10078,7 +10078,7 @@ bool Compiler::IsMultiRegReturnedType(CORINFO_CLASS_HANDLE hClass) } structPassingKind howToReturnStruct; - var_types returnType = getReturnTypeForStruct(hClass, &howToReturnStruct); + var_types returnType = getReturnTypeForStruct(hClass, callConv, &howToReturnStruct); #ifdef TARGET_ARM64 return (varTypeIsStruct(returnType) && (howToReturnStruct != SPK_PrimitiveType)); @@ -11534,7 +11534,11 @@ void CodeGen::genReturn(GenTree* treeNode) } else // we must have a struct return type { - retTypeDesc.InitializeStructReturnType(compiler, compiler->info.compMethodInfo->args.retTypeClass); + CorInfoCallConvExtension callConv = + compiler->compMethodInfoGetEntrypointCallConv(compiler->info.compMethodInfo); + + retTypeDesc.InitializeStructReturnType(compiler, compiler->info.compMethodInfo->args.retTypeClass, + callConv); } regCount = retTypeDesc.GetReturnRegCount(); } @@ -11659,7 +11663,9 @@ void CodeGen::genStructReturn(GenTree* treeNode) if (actualOp1->OperIs(GT_LCL_VAR)) { varDsc = compiler->lvaGetDesc(actualOp1->AsLclVar()->GetLclNum()); - retTypeDesc.InitializeStructReturnType(compiler, varDsc->GetStructHnd()); + retTypeDesc.InitializeStructReturnType(compiler, varDsc->GetStructHnd(), + compiler->compMethodInfoGetEntrypointCallConv( + compiler->info.compMethodInfo)); assert(varDsc->lvIsMultiRegRet); } else @@ -11839,7 +11845,8 @@ void CodeGen::genMultiRegStoreToLocal(GenTreeLclVar* lclNode) hasRegs = true; if (varReg != reg) { - inst_RV_RV(ins_Copy(type), varReg, reg, type); + // We may need a cross register-file copy here. + inst_RV_RV(ins_Copy(reg, type), varReg, reg, type); } fieldVarDsc->SetRegNum(varReg); } diff --git a/src/coreclr/src/jit/codegenxarch.cpp b/src/coreclr/src/jit/codegenxarch.cpp index 6828c99cced12..6f1ba9ab9bb8b 100644 --- a/src/coreclr/src/jit/codegenxarch.cpp +++ b/src/coreclr/src/jit/codegenxarch.cpp @@ -140,7 +140,9 @@ void CodeGen::genEmitGSCookieCheck(bool pushReg) } else // we must have a struct return type { - retTypeDesc.InitializeStructReturnType(compiler, compiler->info.compMethodInfo->args.retTypeClass); + retTypeDesc.InitializeStructReturnType(compiler, compiler->info.compMethodInfo->args.retTypeClass, + compiler->compMethodInfoGetEntrypointCallConv( + compiler->info.compMethodInfo)); } const unsigned regCount = retTypeDesc.GetReturnRegCount(); @@ -5688,12 +5690,29 @@ void CodeGen::genJmpMethod(GenTree* jmp) #endif // !defined(UNIX_AMD64_ABI) { // Register argument + CLANG_FORMAT_COMMENT_ANCHOR; +#ifdef TARGET_X86 + noway_assert( + isRegParamType(genActualType(varDsc->TypeGet())) || + (varTypeIsStruct(varDsc->TypeGet()) && compiler->isTrivialPointerSizedStruct(varDsc->GetStructHnd()))); +#else noway_assert(isRegParamType(genActualType(varDsc->TypeGet()))); +#endif // TARGET_X86 // Is register argument already in the right register? // If not load it from its stack location. var_types loadType = varDsc->lvaArgType(); - regNumber argReg = varDsc->GetArgReg(); // incoming arg register + +#ifdef TARGET_X86 + if (varTypeIsStruct(varDsc->TypeGet())) + { + // Treat trivial pointer-sized structs as a pointer sized primitive + // for the purposes of registers. + loadType = TYP_I_IMPL; + } +#endif + + regNumber argReg = varDsc->GetArgReg(); // incoming arg register if (varDsc->GetRegNum() != argReg) { diff --git a/src/coreclr/src/jit/compiler.cpp b/src/coreclr/src/jit/compiler.cpp index 3a6ea5006b268..1b76513211484 100644 --- a/src/coreclr/src/jit/compiler.cpp +++ b/src/coreclr/src/jit/compiler.cpp @@ -511,6 +511,55 @@ bool Compiler::isSingleFloat32Struct(CORINFO_CLASS_HANDLE clsHnd) } #endif // ARM_SOFTFP +#ifdef TARGET_X86 +//--------------------------------------------------------------------------- +// isTrivialPointerSizedStruct: +// Check if the given struct type contains only one pointer-sized integer value type +// +// Arguments: +// clsHnd - the handle for the struct type. +// +// Return Value: +// true if the given struct type contains only one pointer-sized integer value type, +// false otherwise. +// +bool Compiler::isTrivialPointerSizedStruct(CORINFO_CLASS_HANDLE clsHnd) const +{ + assert(info.compCompHnd->isValueClass(clsHnd)); + if (info.compCompHnd->getClassSize(clsHnd) != TARGET_POINTER_SIZE) + { + return false; + } + for (;;) + { + // all of class chain must be of value type and must have only one field + if (!info.compCompHnd->isValueClass(clsHnd) || info.compCompHnd->getClassNumInstanceFields(clsHnd) != 1) + { + return false; + } + + CORINFO_CLASS_HANDLE* pClsHnd = &clsHnd; + CORINFO_FIELD_HANDLE fldHnd = info.compCompHnd->getFieldInClass(clsHnd, 0); + CorInfoType fieldType = info.compCompHnd->getFieldType(fldHnd, pClsHnd); + + var_types vt = JITtype2varType(fieldType); + + if (fieldType == CORINFO_TYPE_VALUECLASS) + { + clsHnd = *pClsHnd; + } + else if (varTypeIsI(vt) && !varTypeIsGC(vt)) + { + return true; + } + else + { + return false; + } + } +} +#endif // TARGET_X86 + //----------------------------------------------------------------------------- // getPrimitiveTypeForStruct: // Get the "primitive" type that is is used for a struct @@ -692,7 +741,7 @@ var_types Compiler::getArgTypeForStruct(CORINFO_CLASS_HANDLE clsHnd, assert(structSize != 0); // Determine if we can pass the struct as a primitive type. -// Note that on x86 we never pass structs as primitive types (unless the VM unwraps them for us). +// Note that on x86 we only pass specific pointer-sized structs that satisfy isTrivialPointerSizedStruct checks. #ifndef TARGET_X86 #ifdef UNIX_AMD64_ABI @@ -727,7 +776,11 @@ var_types Compiler::getArgTypeForStruct(CORINFO_CLASS_HANDLE clsHnd, // and also examine the clsHnd to see if it is an HFA of count one useType = getPrimitiveTypeForStruct(structSize, clsHnd, isVarArg); } - +#else + if (isTrivialPointerSizedStruct(clsHnd)) + { + useType = TYP_I_IMPL; + } #endif // !TARGET_X86 // Did we change this struct type into a simple "primitive" type? @@ -875,6 +928,8 @@ var_types Compiler::getArgTypeForStruct(CORINFO_CLASS_HANDLE clsHnd, // // Arguments: // clsHnd - the handle for the struct type +// callConv - the calling convention of the function +// that returns this struct. // wbReturnStruct - An "out" argument with information about how // the struct is to be returned // structSize - the size of the struct type, @@ -909,9 +964,10 @@ var_types Compiler::getArgTypeForStruct(CORINFO_CLASS_HANDLE clsHnd, // Whenever this method's return value is TYP_STRUCT it always means // that multiple registers are used to return this struct. // -var_types Compiler::getReturnTypeForStruct(CORINFO_CLASS_HANDLE clsHnd, - structPassingKind* wbReturnStruct /* = nullptr */, - unsigned structSize /* = 0 */) +var_types Compiler::getReturnTypeForStruct(CORINFO_CLASS_HANDLE clsHnd, + CorInfoCallConvExtension callConv, + structPassingKind* wbReturnStruct /* = nullptr */, + unsigned structSize /* = 0 */) { var_types useType = TYP_UNKNOWN; structPassingKind howToReturnStruct = SPK_Unknown; // We must change this before we return @@ -949,9 +1005,28 @@ var_types Compiler::getReturnTypeForStruct(CORINFO_CLASS_HANDLE clsHnd, { // Return classification is not always size based... canReturnInRegister = structDesc.passedInRegisters; + if (!canReturnInRegister) + { + assert(structDesc.eightByteCount == 0); + howToReturnStruct = SPK_ByReference; + useType = TYP_UNKNOWN; + } } - -#endif // UNIX_AMD64_ABI +#elif UNIX_X86_ABI + if (callConv != CorInfoCallConvExtension::Managed) + { + canReturnInRegister = false; + howToReturnStruct = SPK_ByReference; + useType = TYP_UNKNOWN; + } +#elif defined(TARGET_WINDOWS) && !defined(TARGET_ARM) + if (callConvIsInstanceMethodCallConv(callConv)) + { + canReturnInRegister = false; + howToReturnStruct = SPK_ByReference; + useType = TYP_UNKNOWN; + } +#endif // Check for cases where a small struct is returned in a register // via a primitive type. @@ -1007,7 +1082,7 @@ var_types Compiler::getReturnTypeForStruct(CORINFO_CLASS_HANDLE clsHnd, // If so, we should have already set howToReturnStruct, too. assert(howToReturnStruct != SPK_Unknown); } - else // We can't replace the struct with a "primitive" type + else if (canReturnInRegister) // We can't replace the struct with a "primitive" type { // See if we can return this struct by value, possibly in multiple registers // or if we should return it using a return buffer register @@ -1030,24 +1105,13 @@ var_types Compiler::getReturnTypeForStruct(CORINFO_CLASS_HANDLE clsHnd, #ifdef UNIX_AMD64_ABI - // The case of (structDesc.eightByteCount == 1) should have already been handled - if (structDesc.eightByteCount > 1) - { - // setup wbPassType and useType indicate that this is returned by value in multiple registers - howToReturnStruct = SPK_ByValue; - useType = TYP_STRUCT; - assert(structDesc.passedInRegisters == true); - } - else - { - assert(structDesc.eightByteCount == 0); - // Otherwise we return this struct using a return buffer - // setup wbPassType and useType indicate that this is return using a return buffer register - // (reference to a return buffer) - howToReturnStruct = SPK_ByReference; - useType = TYP_UNKNOWN; - assert(structDesc.passedInRegisters == false); - } + // The cases of (structDesc.eightByteCount == 1) and (structDesc.eightByteCount == 0) + // should have already been handled + assert(structDesc.eightByteCount > 1); + // setup wbPassType and useType indicate that this is returned by value in multiple registers + howToReturnStruct = SPK_ByValue; + useType = TYP_STRUCT; + assert(structDesc.passedInRegisters == true); #elif defined(TARGET_ARM64) @@ -1070,8 +1134,26 @@ var_types Compiler::getReturnTypeForStruct(CORINFO_CLASS_HANDLE clsHnd, howToReturnStruct = SPK_ByReference; useType = TYP_UNKNOWN; } +#elif defined(TARGET_X86) -#elif defined(TARGET_ARM) || defined(TARGET_X86) + // Only 8-byte structs are return in multiple registers. + // We also only support multireg struct returns on x86 to match the native calling convention. + // So return 8-byte structs only when the calling convention is a native calling convention. + if (structSize == MAX_RET_MULTIREG_BYTES && callConv != CorInfoCallConvExtension::Managed) + { + // setup wbPassType and useType indicate that this is return by value in multiple registers + howToReturnStruct = SPK_ByValue; + useType = TYP_STRUCT; + } + else + { + // Otherwise we return this struct using a return buffer + // setup wbPassType and useType indicate that this is returned using a return buffer register + // (reference to a return buffer) + howToReturnStruct = SPK_ByReference; + useType = TYP_UNKNOWN; + } +#elif defined(TARGET_ARM) // Otherwise we return this struct using a return buffer // setup wbPassType and useType indicate that this is returned using a return buffer register @@ -1973,6 +2055,22 @@ unsigned Compiler::compGetTypeSize(CorInfoType cit, CORINFO_CLASS_HANDLE clsHnd) return sigSize; } +CorInfoCallConvExtension Compiler::compMethodInfoGetEntrypointCallConv(CORINFO_METHOD_INFO* mthInfo) +{ + CorInfoCallConv callConv = mthInfo->args.getCallConv(); + if (callConv == CORINFO_CALLCONV_DEFAULT || callConv == CORINFO_CALLCONV_VARARG) + { + // Both the default and the varargs calling conventions represent a managed callconv. + return CorInfoCallConvExtension::Managed; + } + + static_assert_no_msg((unsigned)CorInfoCallConvExtension::C == (unsigned)CORINFO_CALLCONV_C); + static_assert_no_msg((unsigned)CorInfoCallConvExtension::Stdcall == (unsigned)CORINFO_CALLCONV_STDCALL); + static_assert_no_msg((unsigned)CorInfoCallConvExtension::Thiscall == (unsigned)CORINFO_CALLCONV_THISCALL); + + return (CorInfoCallConvExtension)callConv; +} + #ifdef DEBUG static bool DidComponentUnitTests = false; @@ -2207,7 +2305,7 @@ void Compiler::compSetProcessor() #elif defined(TARGET_ARM64) info.genCPU = CPU_ARM64; #elif defined(TARGET_AMD64) - info.genCPU = CPU_X64; + info.genCPU = CPU_X64; #elif defined(TARGET_X86) if (jitFlags.IsSet(JitFlags::JIT_FLAG_TARGET_P4)) info.genCPU = CPU_X86_PENTIUM_4; @@ -6015,6 +6113,9 @@ int Compiler::compCompileHelper(CORINFO_MODULE_HANDLE classPtr, case CORINFO_CALLCONV_NATIVEVARARG: info.compIsVarArgs = true; break; + case CORINFO_CALLCONV_C: + case CORINFO_CALLCONV_STDCALL: + case CORINFO_CALLCONV_THISCALL: case CORINFO_CALLCONV_DEFAULT: info.compIsVarArgs = false; break; diff --git a/src/coreclr/src/jit/compiler.h b/src/coreclr/src/jit/compiler.h index 15e7db0570df8..1bf93fbce8468 100644 --- a/src/coreclr/src/jit/compiler.h +++ b/src/coreclr/src/jit/compiler.h @@ -2249,7 +2249,8 @@ class Compiler #endif #if FEATURE_MULTIREG_RET - GenTree* impAssignMultiRegTypeToVar(GenTree* op, CORINFO_CLASS_HANDLE hClass); + GenTree* impAssignMultiRegTypeToVar(GenTree* op, + CORINFO_CLASS_HANDLE hClass DEBUGARG(CorInfoCallConvExtension callConv)); #endif // FEATURE_MULTIREG_RET GenTree* impAssignSmallStructTypeToVar(GenTree* op, CORINFO_CLASS_HANDLE hClass); @@ -2258,6 +2259,10 @@ class Compiler bool isSingleFloat32Struct(CORINFO_CLASS_HANDLE hClass); #endif // ARM_SOFTFP +#ifdef TARGET_X86 + bool isTrivialPointerSizedStruct(CORINFO_CLASS_HANDLE clsHnd) const; +#endif // TARGET_X86 + //------------------------------------------------------------------------- // Functions to handle homogeneous floating-point aggregates (HFAs) in ARM/ARM64. // HFAs are one to four element structs where each element is the same @@ -2276,7 +2281,7 @@ class Compiler var_types GetHfaType(CORINFO_CLASS_HANDLE hClass); unsigned GetHfaCount(CORINFO_CLASS_HANDLE hClass); - bool IsMultiRegReturnedType(CORINFO_CLASS_HANDLE hClass); + bool IsMultiRegReturnedType(CORINFO_CLASS_HANDLE hClass, CorInfoCallConvExtension callConv); //------------------------------------------------------------------------- // The following is used for validating format of EH table @@ -3433,8 +3438,8 @@ class Compiler void lvaInitArgs(InitVarDscInfo* varDscInfo); void lvaInitThisPtr(InitVarDscInfo* varDscInfo); - void lvaInitRetBuffArg(InitVarDscInfo* varDscInfo); - void lvaInitUserArgs(InitVarDscInfo* varDscInfo); + void lvaInitRetBuffArg(InitVarDscInfo* varDscInfo, bool useFixedRetBufReg); + void lvaInitUserArgs(InitVarDscInfo* varDscInfo, unsigned skipArgs, unsigned takeArgs); void lvaInitGenericsCtxt(InitVarDscInfo* varDscInfo); void lvaInitVarArgsHandle(InitVarDscInfo* varDscInfo); @@ -3846,7 +3851,9 @@ class Compiler GenTree* impFixupCallStructReturn(GenTreeCall* call, CORINFO_CLASS_HANDLE retClsHnd); - GenTree* impFixupStructReturnType(GenTree* op, CORINFO_CLASS_HANDLE retClsHnd); + GenTree* impFixupStructReturnType(GenTree* op, + CORINFO_CLASS_HANDLE retClsHnd, + CorInfoCallConvExtension unmgdCallConv); #ifdef DEBUG var_types impImportJitTestLabelMark(int numArgs); @@ -4078,8 +4085,12 @@ class Compiler GenTree* impOptimizeCastClassOrIsInst(GenTree* op1, CORINFO_RESOLVED_TOKEN* pResolvedToken, bool isCastClass); - bool VarTypeIsMultiByteAndCanEnreg( - var_types type, CORINFO_CLASS_HANDLE typeClass, unsigned* typeSize, bool forReturn, bool isVarArg); + bool VarTypeIsMultiByteAndCanEnreg(var_types type, + CORINFO_CLASS_HANDLE typeClass, + unsigned* typeSize, + bool forReturn, + bool isVarArg, + CorInfoCallConvExtension callConv); bool IsIntrinsicImplementedByUserCall(NamedIntrinsic intrinsicName); bool IsTargetIntrinsic(NamedIntrinsic intrinsicName); @@ -4385,10 +4396,12 @@ class Compiler bool exactContextNeedsRuntimeLookup, CORINFO_CALL_INFO* callInfo); - bool impTailCallRetTypeCompatible(var_types callerRetType, - CORINFO_CLASS_HANDLE callerRetTypeClass, - var_types calleeRetType, - CORINFO_CLASS_HANDLE calleeRetTypeClass); + bool impTailCallRetTypeCompatible(var_types callerRetType, + CORINFO_CLASS_HANDLE callerRetTypeClass, + CorInfoCallConvExtension callerCallConv, + var_types calleeRetType, + CORINFO_CLASS_HANDLE calleeRetTypeClass, + CorInfoCallConvExtension calleeCallConv); bool impIsTailCallILPattern( bool tailPrefixed, OPCODE curOpcode, const BYTE* codeAddrOfNextOpcode, const BYTE* codeEnd, bool isRecursive); @@ -5057,9 +5070,10 @@ class Compiler // Get the type that is used to return values of the given struct type. // If the size is unknown, pass 0 and it will be determined from 'clsHnd'. - var_types getReturnTypeForStruct(CORINFO_CLASS_HANDLE clsHnd, - structPassingKind* wbPassStruct = nullptr, - unsigned structSize = 0); + var_types getReturnTypeForStruct(CORINFO_CLASS_HANDLE clsHnd, + CorInfoCallConvExtension callConv, + structPassingKind* wbPassStruct = nullptr, + unsigned structSize = 0); #ifdef DEBUG // Print a representation of "vnp" or "vn" on standard output. @@ -9336,24 +9350,36 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX // There are cases where implicit RetBuf argument should be explicitly returned in a register. // In such cases the return type is changed to TYP_BYREF and appropriate IR is generated. // These cases are: - // 1. Profiler Leave calllback expects the address of retbuf as return value for + CLANG_FORMAT_COMMENT_ANCHOR; +#ifdef TARGET_AMD64 + // 1. on x64 Windows and Unix the address of RetBuf needs to be returned by + // methods with hidden RetBufArg in RAX. In such case GT_RETURN is of TYP_BYREF, + // returning the address of RetBuf. + return (info.compRetBuffArg != BAD_VAR_NUM); +#else // TARGET_AMD64 +#ifdef PROFILING_SUPPORTED + // 2. Profiler Leave callback expects the address of retbuf as return value for // methods with hidden RetBuf argument. impReturnInstruction() when profiler // callbacks are needed creates GT_RETURN(TYP_BYREF, op1 = Addr of RetBuf) for // methods with hidden RetBufArg. - // - // 2. As per the System V ABI, the address of RetBuf needs to be returned by - // methods with hidden RetBufArg in RAX. In such case GT_RETURN is of TYP_BYREF, - // returning the address of RetBuf. - // - // 3. Windows 64-bit native calling convention also requires the address of RetBuff - // to be returned in RAX. + if (compIsProfilerHookNeeded()) + { + return (info.compRetBuffArg != BAD_VAR_NUM); + } +#endif + // 3. Windows ARM64 native instance calling convention requires the address of RetBuff + // to be returned in x0. CLANG_FORMAT_COMMENT_ANCHOR; +#if defined(TARGET_WINDOWS) && defined(TARGET_ARM64) + auto callConv = compMethodInfoGetEntrypointCallConv(info.compMethodInfo); + if (callConvIsInstanceMethodCallConv(callConv)) + { + return (info.compRetBuffArg != BAD_VAR_NUM); + } +#endif // TARGET_WINDOWS && TARGET_ARM64 -#ifdef TARGET_AMD64 - return (info.compRetBuffArg != BAD_VAR_NUM); -#else // !TARGET_AMD64 - return (compIsProfilerHookNeeded()) && (info.compRetBuffArg != BAD_VAR_NUM); -#endif // !TARGET_AMD64 + return false; +#endif // TARGET_AMD64 } bool compDoOldStructRetyping() @@ -9368,8 +9394,9 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX { #if FEATURE_MULTIREG_RET #if defined(TARGET_X86) - // On x86 only 64-bit longs are returned in multiple registers - return varTypeIsLong(info.compRetNativeType); + // On x86, 64-bit longs and structs are returned in multiple registers + return varTypeIsLong(info.compRetNativeType) || + (varTypeIsStruct(info.compRetNativeType) && (info.compRetBuffArg == BAD_VAR_NUM)); #else // targets: X64-UNIX, ARM64 or ARM32 // On all other targets that support multireg return values: // Methods returning a struct in multiple registers have a return value of TYP_STRUCT. @@ -9393,8 +9420,9 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX { #if FEATURE_MULTIREG_RET #if defined(TARGET_X86) - // On x86 only 64-bit longs are returned in multiple registers - return varTypeIsLong(info.compRetNativeType); + // On x86, 64-bit longs and structs are returned in multiple registers + return varTypeIsLong(info.compRetNativeType) || + (varTypeIsStruct(info.compRetNativeType) && (info.compRetBuffArg == BAD_VAR_NUM)); #else // targets: X64-UNIX, ARM64 or ARM32 #if defined(TARGET_ARM64) // TYP_SIMD* are returned in one register. @@ -9549,6 +9577,9 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX // size of the type these describe. unsigned compGetTypeSize(CorInfoType cit, CORINFO_CLASS_HANDLE clsHnd); + // Gets the calling convention the method's entry point should have. + CorInfoCallConvExtension compMethodInfoGetEntrypointCallConv(CORINFO_METHOD_INFO* mthInfo); + #ifdef DEBUG // Components used by the compiler may write unit test suites, and // have them run within this method. They will be run only once per process, and only diff --git a/src/coreclr/src/jit/compiler.hpp b/src/coreclr/src/jit/compiler.hpp index 8d3207c2112ee..972a66052e202 100644 --- a/src/coreclr/src/jit/compiler.hpp +++ b/src/coreclr/src/jit/compiler.hpp @@ -692,9 +692,14 @@ inline bool isRegParamType(var_types type) // isVarArg - whether or not this is a vararg fixed arg or variable argument // - if so on arm64 windows getArgTypeForStruct will ignore HFA // - types +// callConv - the calling convention of the call // -inline bool Compiler::VarTypeIsMultiByteAndCanEnreg( - var_types type, CORINFO_CLASS_HANDLE typeClass, unsigned* typeSize, bool forReturn, bool isVarArg) +inline bool Compiler::VarTypeIsMultiByteAndCanEnreg(var_types type, + CORINFO_CLASS_HANDLE typeClass, + unsigned* typeSize, + bool forReturn, + bool isVarArg, + CorInfoCallConvExtension callConv) { bool result = false; unsigned size = 0; @@ -706,7 +711,7 @@ inline bool Compiler::VarTypeIsMultiByteAndCanEnreg( if (forReturn) { structPassingKind howToReturnStruct; - type = getReturnTypeForStruct(typeClass, &howToReturnStruct, size); + type = getReturnTypeForStruct(typeClass, callConv, &howToReturnStruct, size); } else { diff --git a/src/coreclr/src/jit/flowgraph.cpp b/src/coreclr/src/jit/flowgraph.cpp index 7dc9865f16d9a..c1a5f3c602b8a 100644 --- a/src/coreclr/src/jit/flowgraph.cpp +++ b/src/coreclr/src/jit/flowgraph.cpp @@ -23087,8 +23087,9 @@ Compiler::fgWalkResult Compiler::fgUpdateInlineReturnExpressionPlaceHolder(GenTr if (retClsHnd != NO_CLASS_HANDLE) { structPassingKind howToReturnStruct; - var_types returnType = comp->getReturnTypeForStruct(retClsHnd, &howToReturnStruct); - GenTree* parent = data->parent; + var_types returnType = + comp->getReturnTypeForStruct(retClsHnd, CorInfoCallConvExtension::Managed, &howToReturnStruct); + GenTree* parent = data->parent; switch (howToReturnStruct) { @@ -23201,7 +23202,8 @@ Compiler::fgWalkResult Compiler::fgUpdateInlineReturnExpressionPlaceHolder(GenTr GenTree* effectiveValue = value->gtEffectiveVal(/*commaOnly*/ true); noway_assert(!varTypeIsStruct(effectiveValue) || (effectiveValue->OperGet() != GT_RET_EXPR) || - !comp->IsMultiRegReturnedType(effectiveValue->AsRetExpr()->gtRetClsHnd)); + !comp->IsMultiRegReturnedType(effectiveValue->AsRetExpr()->gtRetClsHnd, + CorInfoCallConvExtension::Managed)); } } diff --git a/src/coreclr/src/jit/gcencode.cpp b/src/coreclr/src/jit/gcencode.cpp index d315ef9a430db..0147932eb1712 100644 --- a/src/coreclr/src/jit/gcencode.cpp +++ b/src/coreclr/src/jit/gcencode.cpp @@ -50,7 +50,9 @@ ReturnKind GCInfo::getReturnKind() case TYP_STRUCT: { CORINFO_CLASS_HANDLE structType = compiler->info.compMethodInfo->args.retTypeClass; - var_types retType = compiler->getReturnTypeForStruct(structType); + var_types retType = + compiler->getReturnTypeForStruct(structType, compiler->compMethodInfoGetEntrypointCallConv( + compiler->info.compMethodInfo)); switch (retType) { diff --git a/src/coreclr/src/jit/gentree.cpp b/src/coreclr/src/jit/gentree.cpp index a55d157714c7e..d850e56af9a28 100644 --- a/src/coreclr/src/jit/gentree.cpp +++ b/src/coreclr/src/jit/gentree.cpp @@ -15655,7 +15655,7 @@ GenTree* Compiler::gtNewRefCOMfield(GenTree* objPtr, #if FEATURE_MULTIREG_RET if (varTypeIsStruct(call)) { - call->InitializeStructReturnType(this, structType); + call->InitializeStructReturnType(this, structType, call->GetUnmanagedCallConv()); } #endif // FEATURE_MULTIREG_RET @@ -19152,7 +19152,9 @@ GenTree* Compiler::gtNewMustThrowException(unsigned helper, var_types type, CORI // Return Value // None // -void ReturnTypeDesc::InitializeStructReturnType(Compiler* comp, CORINFO_CLASS_HANDLE retClsHnd) +void ReturnTypeDesc::InitializeStructReturnType(Compiler* comp, + CORINFO_CLASS_HANDLE retClsHnd, + CorInfoCallConvExtension callConv) { assert(!m_inited); @@ -19162,7 +19164,7 @@ void ReturnTypeDesc::InitializeStructReturnType(Compiler* comp, CORINFO_CLASS_HA unsigned structSize = comp->info.compCompHnd->getClassSize(retClsHnd); Compiler::structPassingKind howToReturnStruct; - var_types returnType = comp->getReturnTypeForStruct(retClsHnd, &howToReturnStruct, structSize); + var_types returnType = comp->getReturnTypeForStruct(retClsHnd, callConv, &howToReturnStruct, structSize); switch (howToReturnStruct) { @@ -19234,6 +19236,18 @@ void ReturnTypeDesc::InitializeStructReturnType(Compiler* comp, CORINFO_CLASS_HA m_regType[i] = comp->getJitGCType(gcPtrs[i]); } +#elif defined(TARGET_X86) + + // an 8-byte struct returned using two registers + assert(structSize == 8); + + BYTE gcPtrs[2] = {TYPE_GC_NONE, TYPE_GC_NONE}; + comp->info.compCompHnd->getClassGClayout(retClsHnd, &gcPtrs[0]); + for (unsigned i = 0; i < 2; ++i) + { + m_regType[i] = comp->getJitGCType(gcPtrs[i]); + } + #else // TARGET_XXX // This target needs support here! diff --git a/src/coreclr/src/jit/gentree.h b/src/coreclr/src/jit/gentree.h index 7391a8be15f4f..334a62f537449 100644 --- a/src/coreclr/src/jit/gentree.h +++ b/src/coreclr/src/jit/gentree.h @@ -3637,7 +3637,7 @@ struct ReturnTypeDesc } // Initialize the Return Type Descriptor for a method that returns a struct type - void InitializeStructReturnType(Compiler* comp, CORINFO_CLASS_HANDLE retClsHnd); + void InitializeStructReturnType(Compiler* comp, CORINFO_CLASS_HANDLE retClsHnd, CorInfoCallConvExtension callConv); // Initialize the Return Type Descriptor for a method that returns a TYP_LONG // Only needed for X86 and arm32. @@ -3954,7 +3954,11 @@ struct GenTreeCall final : public GenTree CORINFO_SIG_INFO* callSig; #endif - TailCallSiteInfo* tailCallInfo; + union { + TailCallSiteInfo* tailCallInfo; + // Only used for unmanaged calls, which cannot be tail-called + CorInfoCallConvExtension unmgdCallConv; + }; #if FEATURE_MULTIREG_RET @@ -3997,10 +4001,10 @@ struct GenTreeCall final : public GenTree #endif } - void InitializeStructReturnType(Compiler* comp, CORINFO_CLASS_HANDLE retClsHnd) + void InitializeStructReturnType(Compiler* comp, CORINFO_CLASS_HANDLE retClsHnd, CorInfoCallConvExtension callConv) { #if FEATURE_MULTIREG_RET - gtReturnTypeDesc.InitializeStructReturnType(comp, retClsHnd); + gtReturnTypeDesc.InitializeStructReturnType(comp, retClsHnd, callConv); #endif } @@ -4162,7 +4166,7 @@ struct GenTreeCall final : public GenTree // importer has performed tail call checks #define GTF_CALL_M_TAILCALL 0x00000002 // GT_CALL -- the call is a tailcall #define GTF_CALL_M_VARARGS 0x00000004 // GT_CALL -- the call uses varargs ABI -#define GTF_CALL_M_RETBUFFARG 0x00000008 // GT_CALL -- first parameter is the return buffer argument +#define GTF_CALL_M_RETBUFFARG 0x00000008 // GT_CALL -- call has a return buffer argument #define GTF_CALL_M_DELEGATE_INV 0x00000010 // GT_CALL -- call to Delegate.Invoke #define GTF_CALL_M_NOGCCHECK 0x00000020 // GT_CALL -- not a call for computing full interruptability and therefore no GC check is required. #define GTF_CALL_M_SPECIAL_INTRINSIC 0x00000040 // GT_CALL -- function that could be optimized as an intrinsic @@ -4277,6 +4281,15 @@ struct GenTreeCall final : public GenTree // bool TreatAsHasRetBufArg(Compiler* compiler) const; + bool HasFixedRetBufArg() const + { +#if defined(TARGET_WINDOWS) && !defined(TARGET_ARM) + return hasFixedRetBuffReg() && HasRetBufArg() && !callConvIsInstanceMethodCallConv(GetUnmanagedCallConv()); +#else + return hasFixedRetBuffReg() && HasRetBufArg(); +#endif + } + //----------------------------------------------------------------------------------------- // HasMultiRegRetVal: whether the call node returns its value in multiple return registers. // @@ -4561,6 +4574,11 @@ struct GenTreeCall final : public GenTree bool AreArgsComplete() const; + CorInfoCallConvExtension GetUnmanagedCallConv() const + { + return IsUnmanaged() ? unmgdCallConv : CorInfoCallConvExtension::Managed; + } + static bool Equals(GenTreeCall* c1, GenTreeCall* c2); GenTreeCall(var_types type) : GenTree(GT_CALL, type) diff --git a/src/coreclr/src/jit/importer.cpp b/src/coreclr/src/jit/importer.cpp index fb9e10c6a9809..88e60351aaae6 100644 --- a/src/coreclr/src/jit/importer.cpp +++ b/src/coreclr/src/jit/importer.cpp @@ -1299,12 +1299,50 @@ GenTree* Compiler::impAssignStructPtr(GenTree* destAddr, if (src->gtOper == GT_CALL) { - if (src->AsCall()->TreatAsHasRetBufArg(this)) + GenTreeCall* srcCall = src->AsCall(); + if (srcCall->TreatAsHasRetBufArg(this)) { // Case of call returning a struct via hidden retbuf arg + CLANG_FORMAT_COMMENT_ANCHOR; - // insert the return value buffer into the argument list as first byref parameter - src->AsCall()->gtCallArgs = gtPrependNewCallArg(destAddr, src->AsCall()->gtCallArgs); +#if defined(TARGET_WINDOWS) && !defined(TARGET_ARM) + // Unmanaged instance methods on Windows need the retbuf arg after the first (this) parameter + if (srcCall->IsUnmanaged()) + { + if (callConvIsInstanceMethodCallConv(srcCall->GetUnmanagedCallConv())) + { + GenTreeCall::Use* thisArg = gtInsertNewCallArgAfter(destAddr, srcCall->gtCallArgs); + } + else + { +#ifdef TARGET_X86 + // The argument list has already been reversed. + // Insert the return buffer as the last node so it will be pushed on to the stack last + // as required by the native ABI. + assert(srcCall->gtCallType == CT_INDIRECT); + GenTreeCall::Use* lastArg = srcCall->gtCallArgs; + if (lastArg == nullptr) + { + srcCall->gtCallArgs = gtPrependNewCallArg(destAddr, srcCall->gtCallArgs); + } + else + { + for (; lastArg->GetNext() != nullptr; lastArg = lastArg->GetNext()) + ; + gtInsertNewCallArgAfter(destAddr, lastArg); + } +#else + // insert the return value buffer into the argument list as first byref parameter + srcCall->gtCallArgs = gtPrependNewCallArg(destAddr, srcCall->gtCallArgs); +#endif + } + } + else +#endif + { + // insert the return value buffer into the argument list as first byref parameter + srcCall->gtCallArgs = gtPrependNewCallArg(destAddr, srcCall->gtCallArgs); + } // now returns void, not a struct src->gtType = TYP_VOID; @@ -1316,7 +1354,7 @@ GenTree* Compiler::impAssignStructPtr(GenTree* destAddr, { // Case of call returning a struct in one or more registers. - var_types returnType = (var_types)src->AsCall()->gtReturnType; + var_types returnType = (var_types)srcCall->gtReturnType; if (compDoOldStructRetyping()) { @@ -7083,7 +7121,12 @@ void Compiler::impCheckForPInvokeCall( JITLOG((LL_INFO1000000, "\nInline a CALLI PINVOKE call from method %s", info.compFullName)); + static_assert_no_msg((unsigned)CorInfoCallConvExtension::C == (unsigned)CORINFO_UNMANAGED_CALLCONV_C); + static_assert_no_msg((unsigned)CorInfoCallConvExtension::Stdcall == (unsigned)CORINFO_UNMANAGED_CALLCONV_STDCALL); + static_assert_no_msg((unsigned)CorInfoCallConvExtension::Thiscall == (unsigned)CORINFO_UNMANAGED_CALLCONV_THISCALL); + call->gtFlags |= GTF_CALL_UNMANAGED; + call->unmgdCallConv = CorInfoCallConvExtension(unmanagedCallConv); if (!call->IsSuppressGCTransition()) { info.compUnmanagedCallCountWithGCTransition++; @@ -7629,10 +7672,12 @@ void Compiler::impInsertHelperCall(CORINFO_HELPER_DESC* helperInfo) // so that callee can be tail called. Note that here we don't check // compatibility in IL Verifier sense, but on the lines of return type // sizes are equal and get returned in the same return register. -bool Compiler::impTailCallRetTypeCompatible(var_types callerRetType, - CORINFO_CLASS_HANDLE callerRetTypeClass, - var_types calleeRetType, - CORINFO_CLASS_HANDLE calleeRetTypeClass) +bool Compiler::impTailCallRetTypeCompatible(var_types callerRetType, + CORINFO_CLASS_HANDLE callerRetTypeClass, + CorInfoCallConvExtension callerCallConv, + var_types calleeRetType, + CORINFO_CLASS_HANDLE calleeRetTypeClass, + CorInfoCallConvExtension calleeCallConv) { // Note that we can not relax this condition with genActualType() as the // calling convention dictates that the caller of a function with a small @@ -7669,10 +7714,10 @@ bool Compiler::impTailCallRetTypeCompatible(var_types callerRetType, // trust code can make those tail calls. unsigned callerRetTypeSize = 0; unsigned calleeRetTypeSize = 0; - bool isCallerRetTypMBEnreg = - VarTypeIsMultiByteAndCanEnreg(callerRetType, callerRetTypeClass, &callerRetTypeSize, true, info.compIsVarArgs); - bool isCalleeRetTypMBEnreg = - VarTypeIsMultiByteAndCanEnreg(calleeRetType, calleeRetTypeClass, &calleeRetTypeSize, true, info.compIsVarArgs); + bool isCallerRetTypMBEnreg = VarTypeIsMultiByteAndCanEnreg(callerRetType, callerRetTypeClass, &callerRetTypeSize, + true, info.compIsVarArgs, callerCallConv); + bool isCalleeRetTypMBEnreg = VarTypeIsMultiByteAndCanEnreg(calleeRetType, calleeRetTypeClass, &calleeRetTypeSize, + true, info.compIsVarArgs, calleeCallConv); if (varTypeIsIntegral(callerRetType) || isCallerRetTypMBEnreg) { @@ -8868,8 +8913,9 @@ var_types Compiler::impImportCall(OPCODE opcode, // a small-typed return value is responsible for normalizing the return val if (canTailCall && - !impTailCallRetTypeCompatible(info.compRetType, info.compMethodInfo->args.retTypeClass, callRetTyp, - sig->retTypeClass)) + !impTailCallRetTypeCompatible(info.compRetType, info.compMethodInfo->args.retTypeClass, + compMethodInfoGetEntrypointCallConv(info.compMethodInfo), callRetTyp, + sig->retTypeClass, call->AsCall()->GetUnmanagedCallConv())) { canTailCall = false; szCanTailCallFailReason = "Return types are not tail call compatible"; @@ -9219,10 +9265,11 @@ bool Compiler::impMethodInfo_hasRetBuffArg(CORINFO_METHOD_INFO* methInfo) if ((corType == CORINFO_TYPE_VALUECLASS) || (corType == CORINFO_TYPE_REFANY)) { // We have some kind of STRUCT being returned - structPassingKind howToReturnStruct = SPK_Unknown; - var_types returnType = getReturnTypeForStruct(methInfo->args.retTypeClass, &howToReturnStruct); + var_types returnType = + getReturnTypeForStruct(methInfo->args.retTypeClass, compMethodInfoGetEntrypointCallConv(methInfo), + &howToReturnStruct); if (howToReturnStruct == SPK_ByReference) { @@ -9313,7 +9360,7 @@ GenTree* Compiler::impFixupCallStructReturn(GenTreeCall* call, CORINFO_CLASS_HAN call->gtRetClsHnd = retClsHnd; #if FEATURE_MULTIREG_RET - call->InitializeStructReturnType(this, retClsHnd); + call->InitializeStructReturnType(this, retClsHnd, call->GetUnmanagedCallConv()); #endif // FEATURE_MULTIREG_RET #ifdef UNIX_AMD64_ABI @@ -9370,7 +9417,7 @@ GenTree* Compiler::impFixupCallStructReturn(GenTreeCall* call, CORINFO_CLASS_HAN // No need to assign a multi-reg struct to a local var if: // - It is a tail call or // - The call is marked for in-lining later - return impAssignMultiRegTypeToVar(call, retClsHnd); + return impAssignMultiRegTypeToVar(call, retClsHnd DEBUGARG(call->GetUnmanagedCallConv())); } } @@ -9381,7 +9428,9 @@ GenTree* Compiler::impFixupCallStructReturn(GenTreeCall* call, CORINFO_CLASS_HAN // and we change the return type on those calls here. // structPassingKind howToReturnStruct; - var_types returnType = getReturnTypeForStruct(retClsHnd, &howToReturnStruct); + var_types returnType; + + returnType = getReturnTypeForStruct(retClsHnd, call->GetUnmanagedCallConv(), &howToReturnStruct); if (howToReturnStruct == SPK_ByReference) { @@ -9447,7 +9496,7 @@ GenTree* Compiler::impFixupCallStructReturn(GenTreeCall* call, CORINFO_CLASS_HAN // No need to assign a multi-reg struct to a local var if: // - It is a tail call or // - The call is marked for in-lining later - return impAssignMultiRegTypeToVar(call, retClsHnd); + return impAssignMultiRegTypeToVar(call, retClsHnd DEBUGARG(call->GetUnmanagedCallConv())); } } #endif // FEATURE_MULTIREG_RET @@ -9461,10 +9510,11 @@ GenTree* Compiler::impFixupCallStructReturn(GenTreeCall* call, CORINFO_CLASS_HAN /***************************************************************************** For struct return values, re-type the operand in the case where the ABI does not use a struct return buffer - Note that this method is only call for !TARGET_X86 */ -GenTree* Compiler::impFixupStructReturnType(GenTree* op, CORINFO_CLASS_HANDLE retClsHnd) +GenTree* Compiler::impFixupStructReturnType(GenTree* op, + CORINFO_CLASS_HANDLE retClsHnd, + CorInfoCallConvExtension unmgdCallConv) { assert(varTypeIsStruct(info.compRetType)); assert(info.compRetBuffArg == BAD_VAR_NUM); @@ -9474,12 +9524,12 @@ GenTree* Compiler::impFixupStructReturnType(GenTree* op, CORINFO_CLASS_HANDLE re #if defined(TARGET_XARCH) -#ifdef UNIX_AMD64_ABI +#if FEATURE_MULTIREG_RET // No VarArgs for CoreCLR on x64 Unix - assert(!info.compIsVarArgs); + UNIX_AMD64_ABI_ONLY(assert(!info.compIsVarArgs)); // Is method returning a multi-reg struct? - if (varTypeIsStruct(info.compRetNativeType) && IsMultiRegReturnedType(retClsHnd)) + if (varTypeIsStruct(info.compRetNativeType) && IsMultiRegReturnedType(retClsHnd, unmgdCallConv)) { // In case of multi-reg struct return, we force IR to be one of the following: // GT_RETURN(lclvar) or GT_RETURN(call). If op is anything other than a @@ -9487,7 +9537,7 @@ GenTree* Compiler::impFixupStructReturnType(GenTree* op, CORINFO_CLASS_HANDLE re if (op->gtOper == GT_LCL_VAR) { - // Make sure that this struct stays in memory and doesn't get promoted. + // Note that this is a multi-reg return. unsigned lclNum = op->AsLclVarCommon()->GetLclNum(); lvaTable[lclNum].lvIsMultiRegRet = true; @@ -9502,11 +9552,11 @@ GenTree* Compiler::impFixupStructReturnType(GenTree* op, CORINFO_CLASS_HANDLE re return op; } - return impAssignMultiRegTypeToVar(op, retClsHnd); + return impAssignMultiRegTypeToVar(op, retClsHnd DEBUGARG(unmgdCallConv)); } -#else // !UNIX_AMD64_ABI +#else assert(info.compRetNativeType != TYP_STRUCT); -#endif // !UNIX_AMD64_ABI +#endif // defined(UNIX_AMD64_ABI) || defined(TARGET_X86) #elif FEATURE_MULTIREG_RET && defined(TARGET_ARM) @@ -9539,13 +9589,13 @@ GenTree* Compiler::impFixupStructReturnType(GenTree* op, CORINFO_CLASS_HANDLE re return op; } } - return impAssignMultiRegTypeToVar(op, retClsHnd); + return impAssignMultiRegTypeToVar(op, retClsHnd DEBUGARG(unmgdCallConv)); } #elif FEATURE_MULTIREG_RET && defined(TARGET_ARM64) // Is method returning a multi-reg struct? - if (IsMultiRegReturnedType(retClsHnd)) + if (IsMultiRegReturnedType(retClsHnd, unmgdCallConv)) { if (op->gtOper == GT_LCL_VAR) { @@ -9578,7 +9628,7 @@ GenTree* Compiler::impFixupStructReturnType(GenTree* op, CORINFO_CLASS_HANDLE re return op; } } - return impAssignMultiRegTypeToVar(op, retClsHnd); + return impAssignMultiRegTypeToVar(op, retClsHnd DEBUGARG(unmgdCallConv)); } #endif // FEATURE_MULTIREG_RET && FEATURE_HFA @@ -9664,7 +9714,7 @@ GenTree* Compiler::impFixupStructReturnType(GenTree* op, CORINFO_CLASS_HANDLE re } else if (op->gtOper == GT_COMMA) { - op->AsOp()->gtOp2 = impFixupStructReturnType(op->AsOp()->gtOp2, retClsHnd); + op->AsOp()->gtOp2 = impFixupStructReturnType(op->AsOp()->gtOp2, retClsHnd, unmgdCallConv); } op->gtType = info.compRetNativeType; @@ -13498,7 +13548,8 @@ void Compiler::impImportBlockCode(BasicBlock* block) // Calls with large struct return value have to go through this. // Helper calls with small struct return value also have to go // through this since they do not follow Unix calling convention. - if (op1->gtOper != GT_CALL || !IsMultiRegReturnedType(clsHnd) || + if (op1->gtOper != GT_CALL || + !IsMultiRegReturnedType(clsHnd, op1->AsCall()->GetUnmanagedCallConv()) || op1->AsCall()->gtCallType == CT_HELPER) #endif // UNIX_AMD64_ABI { @@ -15591,7 +15642,8 @@ void Compiler::impImportBlockCode(BasicBlock* block) { op1->AsCall()->gtRetClsHnd = classHandle; #if FEATURE_MULTIREG_RET - op1->AsCall()->InitializeStructReturnType(this, classHandle); + op1->AsCall()->InitializeStructReturnType(this, classHandle, + op1->AsCall()->GetUnmanagedCallConv()); #endif } @@ -15638,7 +15690,7 @@ void Compiler::impImportBlockCode(BasicBlock* block) if (!compDoOldStructRetyping()) { #if FEATURE_MULTIREG_RET - op1->AsCall()->InitializeStructReturnType(this, tokenType); + op1->AsCall()->InitializeStructReturnType(this, tokenType, op1->AsCall()->GetUnmanagedCallConv()); #endif op1->AsCall()->gtRetClsHnd = tokenType; } @@ -15892,7 +15944,8 @@ void Compiler::impImportBlockCode(BasicBlock* block) #if FEATURE_MULTIREG_RET - if (varTypeIsStruct(op1) && IsMultiRegReturnedType(resolvedToken.hClass)) + if (varTypeIsStruct(op1) && + IsMultiRegReturnedType(resolvedToken.hClass, CorInfoCallConvExtension::Managed)) { // Unbox nullable helper returns a TYP_STRUCT. // For the multi-reg case we need to spill it to a temp so that @@ -16768,7 +16821,8 @@ GenTree* Compiler::impAssignSmallStructTypeToVar(GenTree* op, CORINFO_CLASS_HAND // Returns: // Tree with reference to struct local to use as call return value. -GenTree* Compiler::impAssignMultiRegTypeToVar(GenTree* op, CORINFO_CLASS_HANDLE hClass) +GenTree* Compiler::impAssignMultiRegTypeToVar(GenTree* op, + CORINFO_CLASS_HANDLE hClass DEBUGARG(CorInfoCallConvExtension callConv)) { unsigned tmpNum = lvaGrabTemp(true DEBUGARG("Return value temp for multireg return")); impAssignTempGen(tmpNum, op, hClass, (unsigned)CHECK_SPILL_ALL); @@ -16777,7 +16831,7 @@ GenTree* Compiler::impAssignMultiRegTypeToVar(GenTree* op, CORINFO_CLASS_HANDLE // TODO-1stClassStructs: Handle constant propagation and CSE-ing of multireg returns. ret->gtFlags |= GTF_DONT_CSE; - assert(IsMultiRegReturnedType(hClass)); + assert(IsMultiRegReturnedType(hClass, callConv)); // Mark the var so that fields are not promoted and stay together. lvaTable[tmpNum].lvIsMultiRegRet = true; @@ -16931,7 +16985,8 @@ bool Compiler::impReturnInstruction(int prefixFlags, OPCODE& opcode) noway_assert(info.compRetBuffArg == BAD_VAR_NUM); // adjust the type away from struct to integral // and no normalizing - op2 = impFixupStructReturnType(op2, retClsHnd); + op2 = impFixupStructReturnType(op2, retClsHnd, + compMethodInfoGetEntrypointCallConv(info.compMethodInfo)); } else { @@ -17131,7 +17186,8 @@ bool Compiler::impReturnInstruction(int prefixFlags, OPCODE& opcode) // Same as !IsHfa but just don't bother with impAssignStructPtr. #else // defined(UNIX_AMD64_ABI) ReturnTypeDesc retTypeDesc; - retTypeDesc.InitializeStructReturnType(this, retClsHnd); + retTypeDesc.InitializeStructReturnType(this, retClsHnd, + compMethodInfoGetEntrypointCallConv(info.compMethodInfo)); unsigned retRegCount = retTypeDesc.GetReturnRegCount(); if (retRegCount != 0) @@ -17165,7 +17221,8 @@ bool Compiler::impReturnInstruction(int prefixFlags, OPCODE& opcode) else #elif defined(TARGET_ARM64) ReturnTypeDesc retTypeDesc; - retTypeDesc.InitializeStructReturnType(this, retClsHnd); + retTypeDesc.InitializeStructReturnType(this, retClsHnd, + compMethodInfoGetEntrypointCallConv(info.compMethodInfo)); unsigned retRegCount = retTypeDesc.GetReturnRegCount(); if (retRegCount != 0) @@ -17187,6 +17244,31 @@ bool Compiler::impReturnInstruction(int prefixFlags, OPCODE& opcode) } } else +#elif defined(TARGET_X86) + ReturnTypeDesc retTypeDesc; + retTypeDesc.InitializeStructReturnType(this, retClsHnd, + compMethodInfoGetEntrypointCallConv(info.compMethodInfo)); + unsigned retRegCount = retTypeDesc.GetReturnRegCount(); + + if (retRegCount != 0) + { + assert(!iciCall->HasRetBufArg()); + assert(retRegCount == MAX_RET_REG_COUNT); + if (fgNeedReturnSpillTemp()) + { + if (!impInlineInfo->retExpr) + { + // The inlinee compiler has figured out the type of the temp already. Use it here. + impInlineInfo->retExpr = + gtNewLclvNode(lvaInlineeReturnSpillTemp, lvaTable[lvaInlineeReturnSpillTemp].lvType); + } + } + else + { + impInlineInfo->retExpr = op2; + } + } + else #endif // defined(TARGET_ARM64) { assert(iciCall->HasRetBufArg()); @@ -17243,7 +17325,7 @@ bool Compiler::impReturnInstruction(int prefixFlags, OPCODE& opcode) // return the implicit return buffer explicitly (in RAX). // Change the return type to be BYREF. op1 = gtNewOperNode(GT_RETURN, TYP_BYREF, gtNewLclvNode(info.compRetBuffArg, TYP_BYREF)); -#else // !defined(TARGET_AMD64) +#else // !defined(TARGET_AMD64) // In case of non-AMD64 targets the profiler hook requires to return the implicit RetBuf explicitly (in RAX). // In such case the return value of the function is changed to BYREF. // If profiler hook is not needed the return type of the function is TYP_VOID. @@ -17251,6 +17333,14 @@ bool Compiler::impReturnInstruction(int prefixFlags, OPCODE& opcode) { op1 = gtNewOperNode(GT_RETURN, TYP_BYREF, gtNewLclvNode(info.compRetBuffArg, TYP_BYREF)); } +#if defined(TARGET_WINDOWS) && defined(TARGET_ARM64) + // On ARM64, the native instance calling convention variant + // requires the implicit ByRef to be explicitly returned. + else if (callConvIsInstanceMethodCallConv(compMethodInfoGetEntrypointCallConv(info.compMethodInfo))) + { + op1 = gtNewOperNode(GT_RETURN, TYP_BYREF, gtNewLclvNode(info.compRetBuffArg, TYP_BYREF)); + } +#endif else { // return void @@ -17265,7 +17355,7 @@ bool Compiler::impReturnInstruction(int prefixFlags, OPCODE& opcode) // Also on System V AMD64 the multireg structs returns are also left as structs. noway_assert(info.compRetNativeType != TYP_STRUCT); #endif - op2 = impFixupStructReturnType(op2, retClsHnd); + op2 = impFixupStructReturnType(op2, retClsHnd, compMethodInfoGetEntrypointCallConv(info.compMethodInfo)); // return op2 var_types returnType; if (compDoOldStructRetyping()) diff --git a/src/coreclr/src/jit/lclvars.cpp b/src/coreclr/src/jit/lclvars.cpp index 1bb08ce473e7e..4d8230187e284 100644 --- a/src/coreclr/src/jit/lclvars.cpp +++ b/src/coreclr/src/jit/lclvars.cpp @@ -145,7 +145,9 @@ void Compiler::lvaInitTypeRef() CORINFO_CLASS_HANDLE retClsHnd = info.compMethodInfo->args.retTypeClass; Compiler::structPassingKind howToReturnStruct; - var_types returnType = getReturnTypeForStruct(retClsHnd, &howToReturnStruct); + var_types returnType = + getReturnTypeForStruct(retClsHnd, compMethodInfoGetEntrypointCallConv(info.compMethodInfo), + &howToReturnStruct); // We can safely widen the return type for enclosed structs. if ((howToReturnStruct == SPK_PrimitiveType) || (howToReturnStruct == SPK_EnclosingType)) @@ -348,8 +350,27 @@ void Compiler::lvaInitArgs(InitVarDscInfo* varDscInfo) /* Is there a "this" pointer ? */ lvaInitThisPtr(varDscInfo); - /* If we have a hidden return-buffer parameter, that comes here */ - lvaInitRetBuffArg(varDscInfo); + unsigned numUserArgsToSkip = 0; + unsigned numUserArgs = info.compMethodInfo->args.numArgs; +#if defined(TARGET_WINDOWS) && !defined(TARGET_ARM) + if (callConvIsInstanceMethodCallConv(compMethodInfoGetEntrypointCallConv(info.compMethodInfo))) + { + // If we are a native instance method, handle the first user arg + // (the unmanaged this parameter) and then handle the hidden + // return buffer parameter. + assert(numUserArgs >= 1); + lvaInitUserArgs(varDscInfo, 0, 1); + numUserArgsToSkip++; + numUserArgs--; + + lvaInitRetBuffArg(varDscInfo, false); + } + else +#endif + { + /* If we have a hidden return-buffer parameter, that comes here */ + lvaInitRetBuffArg(varDscInfo, true); + } //====================================================================== @@ -365,7 +386,7 @@ void Compiler::lvaInitArgs(InitVarDscInfo* varDscInfo) //------------------------------------------------------------------------- // Now walk the function signature for the explicit user arguments //------------------------------------------------------------------------- - lvaInitUserArgs(varDscInfo); + lvaInitUserArgs(varDscInfo, numUserArgsToSkip, numUserArgs); #if !USER_ARGS_COME_LAST //@GENERICS: final instantiation-info argument for shared generic methods @@ -481,7 +502,7 @@ void Compiler::lvaInitThisPtr(InitVarDscInfo* varDscInfo) } /*****************************************************************************/ -void Compiler::lvaInitRetBuffArg(InitVarDscInfo* varDscInfo) +void Compiler::lvaInitRetBuffArg(InitVarDscInfo* varDscInfo, bool useFixedRetBufReg) { LclVarDsc* varDsc = varDscInfo->varDsc; bool hasRetBuffArg = impMethodInfo_hasRetBuffArg(info.compMethodInfo); @@ -496,7 +517,7 @@ void Compiler::lvaInitRetBuffArg(InitVarDscInfo* varDscInfo) varDsc->lvIsParam = 1; varDsc->lvIsRegArg = 1; - if (hasFixedRetBuffReg()) + if (useFixedRetBufReg && hasFixedRetBuffReg()) { varDsc->SetArgReg(theFixedRetBuffReg()); } @@ -555,8 +576,16 @@ void Compiler::lvaInitRetBuffArg(InitVarDscInfo* varDscInfo) } } -/*****************************************************************************/ -void Compiler::lvaInitUserArgs(InitVarDscInfo* varDscInfo) +//----------------------------------------------------------------------------- +// lvaInitUserArgs: +// Initialize local var descriptions for incoming user arguments +// +// Arguments: +// varDscInfo - the local var descriptions +// skipArgs - the number of user args to skip processing. +// takeArgs - the number of user args to process (after skipping skipArgs number of args) +// +void Compiler::lvaInitUserArgs(InitVarDscInfo* varDscInfo, unsigned skipArgs, unsigned takeArgs) { //------------------------------------------------------------------------- // Walk the function signature for the explicit arguments @@ -574,11 +603,26 @@ void Compiler::lvaInitUserArgs(InitVarDscInfo* varDscInfo) const unsigned argSigLen = info.compMethodInfo->args.numArgs; + // We will process at most takeArgs arguments from the signature after skipping skipArgs arguments + const int64_t numUserArgs = min(takeArgs, (argSigLen - (int64_t)skipArgs)); + + // If there are no user args or less than skipArgs args, return here since there's no work to do. + if (numUserArgs <= 0) + { + return; + } + #ifdef TARGET_ARM regMaskTP doubleAlignMask = RBM_NONE; #endif // TARGET_ARM - for (unsigned i = 0; i < argSigLen; + // Skip skipArgs arguments from the signature. + for (unsigned i = 0; i < skipArgs; i++, argLst = info.compCompHnd->getArgNext(argLst)) + { + ; + } + + for (unsigned i = 0; i < numUserArgs; i++, varDscInfo->varNum++, varDscInfo->varDsc++, argLst = info.compCompHnd->getArgNext(argLst)) { LclVarDsc* varDsc = varDscInfo->varDsc; @@ -805,6 +849,12 @@ void Compiler::lvaInitUserArgs(InitVarDscInfo* varDscInfo) canPassArgInRegisters = structDesc.passedInRegisters; } else +#elif defined(TARGET_X86) + if (varTypeIsStruct(argType) && isTrivialPointerSizedStruct(typeHnd)) + { + canPassArgInRegisters = varDscInfo->canEnreg(TYP_I_IMPL, cSlotsToEnregister); + } + else #endif // defined(UNIX_AMD64_ABI) { canPassArgInRegisters = varDscInfo->canEnreg(argType, cSlotsToEnregister); @@ -2305,8 +2355,6 @@ void Compiler::StructPromotionHelper::PromoteStructVar(unsigned lclNum) #endif -#if defined(TARGET_AMD64) || defined(TARGET_ARM64) || defined(TARGET_ARM) - // Do we have a parameter that can be enregistered? // if (varDsc->lvIsRegArg) @@ -2357,7 +2405,6 @@ void Compiler::StructPromotionHelper::PromoteStructVar(unsigned lclNum) fieldVarDsc->SetArgReg(parentArgReg); } } -#endif // defined(TARGET_AMD64) || defined(TARGET_ARM64) || defined(TARGET_ARM) #ifdef FEATURE_SIMD if (varTypeIsSIMD(pFieldInfo->fldType)) @@ -5087,12 +5134,18 @@ void Compiler::lvaFixVirtualFrameOffsets() // Is this a non-param promoted struct field? // if so then set doAssignStkOffs to false. // - if (varDsc->lvIsStructField && !varDsc->lvIsParam) + if (varDsc->lvIsStructField) { LclVarDsc* parentvarDsc = &lvaTable[varDsc->lvParentLcl]; lvaPromotionType promotionType = lvaGetPromotionType(parentvarDsc); - if (promotionType == PROMOTION_TYPE_DEPENDENT) +#if defined(TARGET_X86) + // On x86, we set the stack offset for a promoted field + // to match a struct parameter in lvAssignFrameOffsetsToPromotedStructs. + if ((!varDsc->lvIsParam || parentvarDsc->lvIsParam) && promotionType == PROMOTION_TYPE_DEPENDENT) +#else + if (!varDsc->lvIsParam && promotionType == PROMOTION_TYPE_DEPENDENT) +#endif { doAssignStkOffs = false; // Assigned later in lvaAssignFrameOffsetsToPromotedStructs() } @@ -5290,6 +5343,23 @@ void Compiler::lvaAssignVirtualFrameOffsetsToArgs() lclNum++; } + unsigned userArgsToSkip = 0; +#if defined(TARGET_WINDOWS) && !defined(TARGET_ARM) + // In the native instance method calling convention on Windows, + // the this parameter comes before the hidden return buffer parameter. + // So, we want to process the native "this" parameter before we process + // the native return buffer parameter. + if (callConvIsInstanceMethodCallConv(compMethodInfoGetEntrypointCallConv(info.compMethodInfo))) + { + noway_assert(lvaTable[lclNum].lvIsRegArg); +#ifndef TARGET_X86 + argOffs = lvaAssignVirtualFrameOffsetToArg(lclNum, REGSIZE_BYTES, argOffs); +#endif // TARGET_X86 + lclNum++; + userArgsToSkip++; + } +#endif + /* if we have a hidden buffer parameter, that comes here */ if (info.compRetBuffArg != BAD_VAR_NUM) @@ -5323,6 +5393,13 @@ void Compiler::lvaAssignVirtualFrameOffsetsToArgs() CORINFO_ARG_LIST_HANDLE argLst = info.compMethodInfo->args.args; unsigned argSigLen = info.compMethodInfo->args.numArgs; + // Skip any user args that we've already processed. + assert(userArgsToSkip <= argSigLen); + argSigLen -= userArgsToSkip; + for (unsigned i = 0; i < userArgsToSkip; i++, argLst = info.compCompHnd->getArgNext(argLst)) + { + ; + } #ifdef TARGET_ARM // @@ -6896,17 +6973,16 @@ void Compiler::lvaAssignFrameOffsetsToPromotedStructs() // outgoing args space. Assign the dependently promoted fields properly. // if (varDsc->lvIsStructField -#ifndef UNIX_AMD64_ABI -#if !defined(TARGET_ARM) +#if !defined(UNIX_AMD64_ABI) && !defined(TARGET_ARM) && !defined(TARGET_X86) // ARM: lo/hi parts of a promoted long arg need to be updated. // For System V platforms there is no outgoing args space. - // A register passed struct arg is homed on the stack in a separate local var. + + // For System V and x86, a register passed struct arg is homed on the stack in a separate local var. // The offset of these structs is already calculated in lvaAssignVirtualFrameOffsetToArg methos. // Make sure the code below is not executed for these structs and the offset is not changed. && !varDsc->lvIsParam -#endif // !defined(TARGET_ARM) -#endif // !UNIX_AMD64_ABI +#endif // !defined(UNIX_AMD64_ABI) && !defined(TARGET_ARM) && !defined(TARGET_X86) ) { LclVarDsc* parentvarDsc = &lvaTable[varDsc->lvParentLcl]; diff --git a/src/coreclr/src/jit/lower.cpp b/src/coreclr/src/jit/lower.cpp index 96a14f9428956..176eac0d15a99 100644 --- a/src/coreclr/src/jit/lower.cpp +++ b/src/coreclr/src/jit/lower.cpp @@ -3016,7 +3016,9 @@ void Lowering::LowerRet(GenTreeUnOp* ret) ReturnTypeDesc retTypeDesc; LclVarDsc* varDsc = nullptr; varDsc = comp->lvaGetDesc(retVal->AsLclVar()->GetLclNum()); - retTypeDesc.InitializeStructReturnType(comp, varDsc->GetStructHnd()); + retTypeDesc.InitializeStructReturnType(comp, varDsc->GetStructHnd(), + comp->compMethodInfoGetEntrypointCallConv( + comp->info.compMethodInfo)); if (retTypeDesc.GetReturnRegCount() > 1) { CheckMultiRegLclVar(retVal->AsLclVar(), &retTypeDesc); @@ -3477,7 +3479,7 @@ void Lowering::LowerCallStruct(GenTreeCall* call) assert(!comp->compDoOldStructRetyping()); CORINFO_CLASS_HANDLE retClsHnd = call->gtRetClsHnd; Compiler::structPassingKind howToReturnStruct; - var_types returnType = comp->getReturnTypeForStruct(retClsHnd, &howToReturnStruct); + var_types returnType = comp->getReturnTypeForStruct(retClsHnd, call->GetUnmanagedCallConv(), &howToReturnStruct); assert(returnType != TYP_STRUCT && returnType != TYP_UNKNOWN); var_types origType = call->TypeGet(); call->gtType = genActualType(returnType); diff --git a/src/coreclr/src/jit/lsrabuild.cpp b/src/coreclr/src/jit/lsrabuild.cpp index 33eb72acd83d3..bdcd8dcd3999c 100644 --- a/src/coreclr/src/jit/lsrabuild.cpp +++ b/src/coreclr/src/jit/lsrabuild.cpp @@ -3462,7 +3462,9 @@ int LinearScan::BuildReturn(GenTree* tree) assert(compiler->lvaEnregMultiRegVars); LclVarDsc* varDsc = compiler->lvaGetDesc(op1->AsLclVar()->GetLclNum()); ReturnTypeDesc retTypeDesc; - retTypeDesc.InitializeStructReturnType(compiler, varDsc->GetStructHnd()); + retTypeDesc.InitializeStructReturnType(compiler, varDsc->GetStructHnd(), + compiler->compMethodInfoGetEntrypointCallConv( + compiler->info.compMethodInfo)); pRetTypeDesc = &retTypeDesc; assert(compiler->lvaGetDesc(op1->AsLclVar()->GetLclNum())->lvFieldCnt == retTypeDesc.GetReturnRegCount()); diff --git a/src/coreclr/src/jit/morph.cpp b/src/coreclr/src/jit/morph.cpp index b1d7c0da18a5f..b00e370c166f5 100644 --- a/src/coreclr/src/jit/morph.cpp +++ b/src/coreclr/src/jit/morph.cpp @@ -2662,9 +2662,14 @@ void Compiler::fgInitArgInfo(GenTreeCall* call) // If/when we change that, the following code needs to be changed to correctly support the (TBD) managed calling // convention for x86/SSE. - // If we have a Fixed Return Buffer argument register then we setup a non-standard argument for it + // If we have a Fixed Return Buffer argument register then we setup a non-standard argument for it. // - if (hasFixedRetBuffReg() && call->HasRetBufArg()) + // We don't use the fixed return buffer argument if we have the special unmanaged instance call convention. + // That convention doesn't use the fixed return buffer register. + // + CLANG_FORMAT_COMMENT_ANCHOR; + + if (call->HasFixedRetBufArg()) { args = call->gtCallArgs; assert(args != nullptr); @@ -2830,10 +2835,11 @@ void Compiler::fgInitArgInfo(GenTreeCall* call) { maxRegArgs = 0; } - +#ifdef UNIX_X86_ABI // Add in the ret buff arg if (callHasRetBuffArg) maxRegArgs++; +#endif } #endif // TARGET_X86 @@ -3231,6 +3237,8 @@ void Compiler::fgInitArgInfo(GenTreeCall* call) if (isRegParamType(genActualType(argx->TypeGet())) #ifdef UNIX_AMD64_ABI && (!isStructArg || structDesc.passedInRegisters) +#elif defined(TARGET_X86) + || (isStructArg && isTrivialPointerSizedStruct(objClass)) #endif ) { @@ -3759,8 +3767,6 @@ GenTreeCall* Compiler::fgMorphArgs(GenTreeCall* call) } else // This is passed by value. { - -#ifndef TARGET_X86 // Check to see if we can transform this into load of a primitive type. // 'size' must be the number of pointer sized items DEBUG_ARG_SLOTS_ASSERT(size == roundupSize / TARGET_POINTER_SIZE); @@ -3952,7 +3958,6 @@ GenTreeCall* Compiler::fgMorphArgs(GenTreeCall* call) assert(varTypeIsEnregisterable(argObj->TypeGet()) || ((copyBlkClass != NO_CLASS_HANDLE) && varTypeIsEnregisterable(structBaseType))); } -#endif // !TARGET_X86 #ifndef UNIX_AMD64_ABI // We still have a struct unless we converted the GT_OBJ into a GT_IND above... @@ -5160,7 +5165,7 @@ void Compiler::fgFixupStructReturn(GenTree* callNode) } else { - returnType = getReturnTypeForStruct(retClsHnd, &howToReturnStruct); + returnType = getReturnTypeForStruct(retClsHnd, call->GetUnmanagedCallConv(), &howToReturnStruct); } if (howToReturnStruct == SPK_ByReference) @@ -6824,7 +6829,9 @@ bool Compiler::fgCanFastTailCall(GenTreeCall* callee, const char** failReason) { var_types retType = (compDoOldStructRetyping() ? info.compRetNativeType : info.compRetType); assert(impTailCallRetTypeCompatible(retType, info.compMethodInfo->args.retTypeClass, - (var_types)callee->gtReturnType, callee->gtRetClsHnd)); + compMethodInfoGetEntrypointCallConv(info.compMethodInfo), + (var_types)callee->gtReturnType, callee->gtRetClsHnd, + callee->GetUnmanagedCallConv())); } #endif @@ -7747,7 +7754,7 @@ GenTree* Compiler::fgMorphPotentialTailCall(GenTreeCall* call) { CORINFO_CLASS_HANDLE retClsHnd = call->gtRetClsHnd; Compiler::structPassingKind howToReturnStruct; - callType = getReturnTypeForStruct(retClsHnd, &howToReturnStruct); + callType = getReturnTypeForStruct(retClsHnd, call->GetUnmanagedCallConv(), &howToReturnStruct); assert((howToReturnStruct != SPK_Unknown) && (howToReturnStruct != SPK_ByReference)); if (howToReturnStruct == SPK_ByValue) { @@ -8110,7 +8117,7 @@ GenTree* Compiler::fgCreateCallDispatcherAndGetResult(GenTreeCall* orig if (varTypeIsStruct(origCall->gtType)) { - retVal = impFixupStructReturnType(retVal, origCall->gtRetClsHnd); + retVal = impFixupStructReturnType(retVal, origCall->gtRetClsHnd, origCall->GetUnmanagedCallConv()); } } else diff --git a/src/coreclr/src/jit/target.h b/src/coreclr/src/jit/target.h index 410944710259c..a2b5f93387662 100644 --- a/src/coreclr/src/jit/target.h +++ b/src/coreclr/src/jit/target.h @@ -2027,6 +2027,24 @@ typedef target_ssize_t cnsval_ssize_t; typedef target_size_t cnsval_size_t; #endif +// Represents the calling conventions supported with the extensible calling convention syntax +// as well as the original metadata-encoded calling conventions. +enum class CorInfoCallConvExtension +{ + Managed, + C, + Stdcall, + Thiscall, + Fastcall + // New calling conventions supported with the extensible calling convention encoding go here. +}; + +// Determines whether or not this calling convention is an instance method calling convention. +inline bool callConvIsInstanceMethodCallConv(CorInfoCallConvExtension callConv) +{ + return callConv == CorInfoCallConvExtension::Thiscall; +} + /*****************************************************************************/ #endif // TARGET_H_ /*****************************************************************************/ diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs b/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs index 99ced50ec73d3..b73d9d13f15bf 100644 --- a/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs +++ b/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs @@ -683,21 +683,6 @@ private CorInfoType asCorInfoType(TypeDesc type, out TypeDesc typeIfNotPrimitive { throw new RequiresRuntimeJitException(type); } -#endif -#if READYTORUN - if (elementSize.AsInt == 4) - { - var normalizedCategory = _compilation.TypeSystemContext.NormalizedCategoryFor4ByteStructOnX86(type); - if (normalizedCategory != type.Category) - { - if (NeedsTypeLayoutCheck(type)) - { - ISymbolNode node = _compilation.SymbolNodeFactory.CheckTypeLayout(type); - _methodCodeNode.Fixups.Add(node); - } - return (CorInfoType)normalizedCategory; - } - } #endif } return CorInfoType.CORINFO_TYPE_VALUECLASS; diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ArgIterator.cs b/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ArgIterator.cs index f5e324e04b6e8..de5cb85bfad42 100644 --- a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ArgIterator.cs +++ b/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ArgIterator.cs @@ -120,17 +120,7 @@ public CorElementType GetCorElementType() return CorElementType.ELEMENT_TYPE_BYREF; } - Internal.TypeSystem.TypeFlags category; - switch (_type.Context.Target.Architecture) - { - case TargetArchitecture.X86: - category = ((CompilerTypeSystemContext)_type.Context).NormalizedCategoryFor4ByteStructOnX86(_type.UnderlyingType); - break; - - default: - category = _type.UnderlyingType.Category; - break; - } + Internal.TypeSystem.TypeFlags category = _type.UnderlyingType.Category; // We use the UnderlyingType to handle Enums properly return category switch { diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TransitionBlock.cs b/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TransitionBlock.cs index fac7217077b82..bd89459beeca9 100644 --- a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TransitionBlock.cs +++ b/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TransitionBlock.cs @@ -198,6 +198,14 @@ public bool IsArgumentInRegister(ref int pNumRegistersUsed, CorElementType typ, } break; } +#elif READYTORUN + case CorElementType.ELEMENT_TYPE_VALUETYPE: + if (IsTrivialPointerSizedStruct(thArgType)) + { + pNumRegistersUsed++; + return true; + } + break; #endif } } @@ -205,6 +213,46 @@ public bool IsArgumentInRegister(ref int pNumRegistersUsed, CorElementType typ, return false; } + private bool IsTrivialPointerSizedStruct(TypeHandle thArgType) + { + Debug.Assert(IsX86); + Debug.Assert(thArgType.IsValueType()); + if (thArgType.GetSize() != 4) + { + // Type does not have trivial layout or has the wrong size. + return false; + } + TypeDesc typeOfEmbeddedField = null; + foreach (var field in thArgType.GetRuntimeTypeHandle().GetFields()) + { + if (field.IsStatic) + continue; + if (typeOfEmbeddedField != null) + { + // Type has more than one instance field + return false; + } + + typeOfEmbeddedField = field.FieldType; + } + + if ((typeOfEmbeddedField != null) && ((typeOfEmbeddedField.IsValueType) || (typeOfEmbeddedField.IsPointer))) + { + switch (typeOfEmbeddedField.UnderlyingType.Category) + { + case TypeFlags.IntPtr: + case TypeFlags.UIntPtr: + case TypeFlags.Int32: + case TypeFlags.UInt32: + case TypeFlags.Pointer: + return true; + case TypeFlags.ValueType: + return IsTrivialPointerSizedStruct(new TypeHandle(typeOfEmbeddedField)); + } + } + return false; + } + /// /// This overload should only be used in AMD64-specific code only. /// diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCompilerContext.cs b/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCompilerContext.cs index 86b179a0264aa..5b8c09852f7ec 100644 --- a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCompilerContext.cs +++ b/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCompilerContext.cs @@ -17,70 +17,6 @@ public CompilerTypeSystemContext(TargetDetails details, SharedGenericsMode gener { _genericsMode = genericsMode; } - - private object _normalizedLock = new object(); - private HashSet _nonNormalizedTypes = new HashSet(); - private Dictionary _normalizedTypeCategory = new Dictionary(); - - public TypeFlags NormalizedCategoryFor4ByteStructOnX86(TypeDesc type) - { - // Fast early out for cases which don't need normalization - var typeCategory = type.Category; - - if (((typeCategory != TypeFlags.ValueType) && (typeCategory != TypeFlags.Enum)) || (type.GetElementSize().AsInt != 4)) - { - return typeCategory; - } - - lock(_normalizedLock) - { - if (_nonNormalizedTypes.Contains(type)) - return typeCategory; - - if (_normalizedTypeCategory.TryGetValue(type, out TypeFlags category)) - return category; - - if (Target.Architecture != TargetArchitecture.X86) - { - throw new NotSupportedException(); - } - - TypeDesc typeOfEmbeddedField = null; - foreach (var field in type.GetFields()) - { - if (field.IsStatic) - continue; - if (typeOfEmbeddedField != null) - { - // Type has more than one instance field - _nonNormalizedTypes.Add(type); - return typeCategory; - } - - typeOfEmbeddedField = field.FieldType; - } - - if ((typeOfEmbeddedField != null) && ((typeOfEmbeddedField.IsValueType) || (typeOfEmbeddedField.IsPointer))) - { - TypeFlags singleElementFieldType = NormalizedCategoryFor4ByteStructOnX86(typeOfEmbeddedField); - if (singleElementFieldType == TypeFlags.Pointer) - singleElementFieldType = TypeFlags.UIntPtr; - - switch (singleElementFieldType) - { - case TypeFlags.IntPtr: - case TypeFlags.UIntPtr: - case TypeFlags.Int32: - case TypeFlags.UInt32: - _normalizedTypeCategory.Add(type, singleElementFieldType); - return singleElementFieldType; - } - } - - _nonNormalizedTypes.Add(type); - return typeCategory; - } - } } public partial class ReadyToRunCompilerContext : CompilerTypeSystemContext diff --git a/src/coreclr/src/vm/callingconvention.h b/src/coreclr/src/vm/callingconvention.h index 51b46e5efaf9e..129970032a0a4 100644 --- a/src/coreclr/src/vm/callingconvention.h +++ b/src/coreclr/src/vm/callingconvention.h @@ -387,11 +387,56 @@ class ArgIteratorTemplate : public ARGITERATOR_BASE // // typ: the signature type //========================================================================= - static BOOL IsArgumentInRegister(int * pNumRegistersUsed, CorElementType typ) + static BOOL IsArgumentInRegister(int * pNumRegistersUsed, CorElementType typ, TypeHandle hnd) { LIMITED_METHOD_CONTRACT; - if ( (*pNumRegistersUsed) < NUM_ARGUMENT_REGISTERS) { - if (gElementTypeInfo[typ].m_enregister) { + if ( (*pNumRegistersUsed) < NUM_ARGUMENT_REGISTERS) + { + if (typ == ELEMENT_TYPE_VALUETYPE) + { + // The JIT enables passing trivial pointer sized structs in registers. + MethodTable* pMT = hnd.GetMethodTable(); + + while (typ == ELEMENT_TYPE_VALUETYPE && + pMT->GetNumInstanceFields() == 1 && (!pMT->HasLayout() || + pMT->GetNumInstanceFieldBytes() == 4 + )) // Don't do the optimization if we're getting specified anything but the trivial layout. + { + FieldDesc * pFD = pMT->GetApproxFieldDescListRaw(); + CorElementType type = pFD->GetFieldType(); + + bool exitLoop = false; + switch (type) + { + case ELEMENT_TYPE_VALUETYPE: + { + //@todo: Is it more apropos to call LookupApproxFieldTypeHandle() here? + TypeHandle fldHnd = pFD->GetApproxFieldTypeHandleThrowing(); + CONSISTENCY_CHECK(!fldHnd.IsNull()); + pMT = fldHnd.GetMethodTable(); + } + case ELEMENT_TYPE_PTR: + case ELEMENT_TYPE_I: + case ELEMENT_TYPE_U: + case ELEMENT_TYPE_I4: + case ELEMENT_TYPE_U4: + { + typ = type; + break; + } + default: + exitLoop = true; + break; + } + + if (exitLoop) + { + break; + } + } + } + if (gElementTypeInfo[typ].m_enregister) + { (*pNumRegistersUsed)++; return(TRUE); } @@ -1050,7 +1095,7 @@ int ArgIteratorTemplate::GetNextOffset() return argOfs; } #endif - if (IsArgumentInRegister(&m_numRegistersUsed, argType)) + if (IsArgumentInRegister(&m_numRegistersUsed, argType, thValueType)) { return TransitionBlock::GetOffsetOfArgumentRegisters() + (NUM_ARGUMENT_REGISTERS - m_numRegistersUsed) * sizeof(void *); } @@ -1548,7 +1593,7 @@ void ArgIteratorTemplate::ComputeReturnFlags() flags |= RETURN_HAS_RET_BUFFER; break; } -#endif +#endif // defined(TARGET_X86) || defined(TARGET_AMD64) if (size <= ENREGISTERED_RETURNTYPE_INTEGER_MAXSIZE) break; @@ -1627,7 +1672,7 @@ void ArgIteratorTemplate::ForceSigWalk() TypeHandle thValueType; CorElementType type = this->GetNextArgumentType(i, &thValueType); - if (!IsArgumentInRegister(&numRegistersUsed, type)) + if (!IsArgumentInRegister(&numRegistersUsed, type, thValueType)) { int structSize = MetaSig::GetElemSize(type, thValueType); @@ -1832,6 +1877,17 @@ class ArgIterator : public ArgIteratorTemplate return FALSE; #endif } + + BOOL HasValueTypeReturn() + { + WRAPPER_NO_CONTRACT; + + TypeHandle thValueType; + CorElementType type = m_pSig->GetReturnTypeNormalized(&thValueType); + // Enums are normalized to their underlying type when passing to and from functions. + // This occurs in both managed and native calling conventions. + return type == ELEMENT_TYPE_VALUETYPE && !thValueType.IsEnum(); + } }; // Conventience helper diff --git a/src/coreclr/src/vm/class.cpp b/src/coreclr/src/vm/class.cpp index a853e7a2d8957..bb7725d63545d 100644 --- a/src/coreclr/src/vm/class.cpp +++ b/src/coreclr/src/vm/class.cpp @@ -1335,73 +1335,6 @@ void ClassLoader::PropagateCovariantReturnMethodImplSlots(MethodTable* pMT) } -//******************************************************************************* -// This is the routine that computes the internal type of a given type. It normalizes -// structs that have only one field (of int/ptr sized values), to be that underlying type. -// -// * see code:MethodTable#KindsOfElementTypes for more -// * It get used by code:TypeHandle::GetInternalCorElementType -CorElementType EEClass::ComputeInternalCorElementTypeForValueType(MethodTable * pMT) -{ - CONTRACTL { - THROWS; - GC_TRIGGERS; - } CONTRACTL_END; - - if (pMT->GetNumInstanceFields() == 1 && (!pMT->HasLayout() - || pMT->GetNumInstanceFieldBytes() == 4 -#ifdef TARGET_64BIT - || pMT->GetNumInstanceFieldBytes() == 8 -#endif // TARGET_64BIT - )) // Don't do the optimization if we're getting specified anything but the trivial layout. - { - FieldDesc * pFD = pMT->GetApproxFieldDescListRaw(); - CorElementType type = pFD->GetFieldType(); - - if (type == ELEMENT_TYPE_VALUETYPE) - { - //@todo: Is it more apropos to call LookupApproxFieldTypeHandle() here? - TypeHandle fldHnd = pFD->GetApproxFieldTypeHandleThrowing(); - CONSISTENCY_CHECK(!fldHnd.IsNull()); - - type = fldHnd.GetInternalCorElementType(); - } - - switch (type) - { - // "DDB 20951: vc8 unmanaged pointer bug." - // If ELEMENT_TYPE_PTR were returned, Compiler::verMakeTypeInfo would have problem - // creating a TI_STRUCT out of CORINFO_TYPE_PTR. - // As a result, the importer would not be able to realize that the thing on the stack - // is an instance of a valuetype (that contains one single "void*" field), rather than - // a pointer to a valuetype. - // Returning ELEMENT_TYPE_U allows verMakeTypeInfo to go down the normal code path - // for creating a TI_STRUCT. - case ELEMENT_TYPE_PTR: - type = ELEMENT_TYPE_U; - FALLTHROUGH; - - case ELEMENT_TYPE_I: - case ELEMENT_TYPE_U: - case ELEMENT_TYPE_I4: - case ELEMENT_TYPE_U4: -#ifdef TARGET_64BIT - case ELEMENT_TYPE_I8: - case ELEMENT_TYPE_U8: -#endif // TARGET_64BIT - - { - return type; - } - - default: - break; - } - } - - return ELEMENT_TYPE_VALUETYPE; -} - //******************************************************************************* // // Debugger notification diff --git a/src/coreclr/src/vm/class.h b/src/coreclr/src/vm/class.h index 179a082199a31..300ed225ebc28 100644 --- a/src/coreclr/src/vm/class.h +++ b/src/coreclr/src/vm/class.h @@ -794,8 +794,6 @@ class EEClass // DO NOT CREATE A NEW EEClass USING NEW! void EnumMemoryRegions(CLRDataEnumMemoryFlags flags, MethodTable *pMT); #endif - static CorElementType ComputeInternalCorElementTypeForValueType(MethodTable * pMT); - /************************************ * INSTANCE MEMBER VARIABLES ************************************/ diff --git a/src/coreclr/src/vm/classnames.h b/src/coreclr/src/vm/classnames.h index 59e516d3e3a42..94e9b1025c7a4 100644 --- a/src/coreclr/src/vm/classnames.h +++ b/src/coreclr/src/vm/classnames.h @@ -81,6 +81,7 @@ #define g_ReflectionReflectItfName "System.Reflection.IReflect" #define g_RuntimeArgumentHandleName "RuntimeArgumentHandle" #define g_RuntimeFieldHandleClassName "System.RuntimeFieldHandle" +#define g_RuntimeFieldHandleInternalName "RuntimeFieldHandleInternal" #define g_RuntimeMethodHandleClassName "System.RuntimeMethodHandle" #define g_RuntimeMethodHandleInternalName "RuntimeMethodHandleInternal" #define g_RuntimeTypeHandleClassName "System.RuntimeTypeHandle" diff --git a/src/coreclr/src/vm/clrtocomcall.cpp b/src/coreclr/src/vm/clrtocomcall.cpp index dc574467724ee..914d28f7c5983 100644 --- a/src/coreclr/src/vm/clrtocomcall.cpp +++ b/src/coreclr/src/vm/clrtocomcall.cpp @@ -307,7 +307,7 @@ I4ARRAYREF SetUpWrapperInfo(MethodDesc *pMD) MarshalInfo Info(msig.GetModule(), msig.GetArgProps(), msig.GetSigTypeContext(), params[iParam], MarshalInfo::MARSHAL_SCENARIO_COMINTEROP, (CorNativeLinkType)0, (CorNativeLinkFlags)0, - TRUE, iParam, numArgs, BestFit, ThrowOnUnmappableChar, FALSE, TRUE, pMD, TRUE + TRUE, iParam, numArgs, BestFit, ThrowOnUnmappableChar, FALSE, pMD, TRUE #ifdef _DEBUG , pMD->m_pszDebugMethodName, pMD->m_pszDebugClassName, iParam #endif diff --git a/src/coreclr/src/vm/comtoclrcall.cpp b/src/coreclr/src/vm/comtoclrcall.cpp index 9e6774f4a9e9f..6a68c2c2009d1 100644 --- a/src/coreclr/src/vm/comtoclrcall.cpp +++ b/src/coreclr/src/vm/comtoclrcall.cpp @@ -862,7 +862,7 @@ void ComCallMethodDesc::InitRuntimeNativeInfo(MethodDesc *pStubMD) UINT cbSize = MetaSig::GetElemSize(type, thValueType); - if (ArgIterator::IsArgumentInRegister(&numRegistersUsed, type)) + if (ArgIterator::IsArgumentInRegister(&numRegistersUsed, type, thValueType)) { wSourceSlotEDX = wInputStack / STACK_ELEM_SIZE; wInputStack += STACK_ELEM_SIZE; @@ -1022,7 +1022,7 @@ void ComCallMethodDesc::InitNativeInfo() MarshalInfo info(fsig.GetModule(), fsig.GetArgProps(), fsig.GetSigTypeContext(), pFD->GetMemberDef(), MarshalInfo::MARSHAL_SCENARIO_COMINTEROP, (CorNativeLinkType)0, (CorNativeLinkFlags)0, - FALSE, 0, fsig.NumFixedArgs(), BestFit, ThrowOnUnmappableChar, FALSE, TRUE, NULL, FALSE + FALSE, 0, fsig.NumFixedArgs(), BestFit, ThrowOnUnmappableChar, FALSE, NULL, FALSE #ifdef _DEBUG , szDebugName, szDebugClassName, 0 #endif @@ -1120,7 +1120,7 @@ void ComCallMethodDesc::InitNativeInfo() MarshalInfo info(msig.GetModule(), msig.GetArgProps(), msig.GetSigTypeContext(), params[iArg], MarshalInfo::MARSHAL_SCENARIO_COMINTEROP, (CorNativeLinkType)0, (CorNativeLinkFlags)0, - TRUE, iArg, numArgs, BestFit, ThrowOnUnmappableChar, FALSE, TRUE, pMD, FALSE + TRUE, iArg, numArgs, BestFit, ThrowOnUnmappableChar, FALSE, pMD, FALSE #ifdef _DEBUG , szDebugName, szDebugClassName, iArg #endif @@ -1176,7 +1176,7 @@ void ComCallMethodDesc::InitNativeInfo() MarshalInfo info(msig.GetModule(), msig.GetReturnProps(), msig.GetSigTypeContext(), params[0], MarshalInfo::MARSHAL_SCENARIO_COMINTEROP, (CorNativeLinkType)0, (CorNativeLinkFlags)0, - FALSE, 0, numArgs, BestFit, ThrowOnUnmappableChar, FALSE, TRUE, pMD, FALSE + FALSE, 0, numArgs, BestFit, ThrowOnUnmappableChar, FALSE, pMD, FALSE #ifdef _DEBUG ,szDebugName, szDebugClassName, 0 #endif diff --git a/src/coreclr/src/vm/dispatchinfo.cpp b/src/coreclr/src/vm/dispatchinfo.cpp index efa942d24abdb..e3c88987614c6 100644 --- a/src/coreclr/src/vm/dispatchinfo.cpp +++ b/src/coreclr/src/vm/dispatchinfo.cpp @@ -902,7 +902,7 @@ void DispatchMemberInfo::SetUpMethodMarshalerInfo(MethodDesc *pMD, BOOL bReturnV MarshalInfo Info(msig.GetModule(), msig.GetArgProps(), msig.GetSigTypeContext(), paramDef, MarshalInfo::MARSHAL_SCENARIO_COMINTEROP, (CorNativeLinkType)0, (CorNativeLinkFlags)0, - TRUE, iParam, numArgs, BestFit, ThrowOnUnmappableChar, FALSE, TRUE, pMD, TRUE + TRUE, iParam, numArgs, BestFit, ThrowOnUnmappableChar, FALSE, pMD, TRUE #ifdef _DEBUG , pMD->m_pszDebugMethodName, pMD->m_pszDebugClassName, iParam #endif @@ -939,7 +939,7 @@ void DispatchMemberInfo::SetUpMethodMarshalerInfo(MethodDesc *pMD, BOOL bReturnV { MarshalInfo Info(msig.GetModule(), msig.GetReturnProps(), msig.GetSigTypeContext(), returnParamDef, MarshalInfo::MARSHAL_SCENARIO_COMINTEROP, (CorNativeLinkType)0, (CorNativeLinkFlags)0, - FALSE, 0, numArgs, BestFit, ThrowOnUnmappableChar, FALSE, TRUE, pMD, TRUE + FALSE, 0, numArgs, BestFit, ThrowOnUnmappableChar, FALSE, pMD, TRUE #ifdef _DEBUG , pMD->m_pszDebugMethodName, pMD->m_pszDebugClassName, 0 #endif diff --git a/src/coreclr/src/vm/dllimport.cpp b/src/coreclr/src/vm/dllimport.cpp index 01dbcd0cfcc86..d9a003f9ee712 100644 --- a/src/coreclr/src/vm/dllimport.cpp +++ b/src/coreclr/src/vm/dllimport.cpp @@ -1356,10 +1356,17 @@ class PInvoke_ILStubState : public ILStubState { STANDARD_VM_CONTRACT; +#if defined(TARGET_X86) && !defined(FEATURE_STUBS_AS_IL) + // x86 with non-IL stubs manually handles calling conventions + // for reverse P/Invokes with the x86 stub linker. + // Don't use the JIT calling convention support on reverse P/Invokes. if (SF_IsForwardStub(dwStubFlags)) { m_slIL.SetCallingConvention(unmgdCallConv, SF_IsVarArgStub(dwStubFlags)); } +#else + m_slIL.SetCallingConvention(unmgdCallConv, SF_IsVarArgStub(dwStubFlags)); +#endif } private: @@ -3308,7 +3315,6 @@ static MarshalInfo::MarshalType DoMarshalReturnValue(MetaSig& msig, CorNativeLinkFlags nlFlags, UINT argidx, // this is used for reverse pinvoke hresult swapping StubState* pss, - BOOL isInstanceMethod, int argOffset, DWORD dwStubFlags, MethodDesc *pMD, @@ -3358,7 +3364,6 @@ static MarshalInfo::MarshalType DoMarshalReturnValue(MetaSig& msig, SF_IsBestFit(dwStubFlags), SF_IsThrowOnUnmappableChar(dwStubFlags), TRUE, - isInstanceMethod, pMD, TRUE DEBUG_ARG(pDebugName) @@ -3544,52 +3549,6 @@ static void CreateNDirectStubWorker(StubState* pss, UINT nativeStackSize = (SF_IsCOMStub(dwStubFlags) ? TARGET_POINTER_SIZE : 0); bool fStubNeedsCOM = SF_IsCOMStub(dwStubFlags); - // Normally we would like this to be false so that we use the correct signature - // in the IL_STUB, (i.e if it returns a value class then the signature will use that) - // When this bool is true we change the return type to void and explicitly add a - // return buffer argument as the first argument so as to match the native calling convention correctly. - BOOL fMarshalReturnValueFirst = FALSE; - - BOOL fReverseWithReturnBufferArg = FALSE; - // Only consider ThisCall methods to be instance methods. - // Techinically COM methods are also instance methods, but we don't want to change the behavior of the built-in - // COM abi work because there are many users that rely on the current behavior (for example WPF). - bool isInstanceMethod = fThisCall; - - // We can only change fMarshalReturnValueFirst to true when we are NOT doing HRESULT-swapping! - // When we are HRESULT-swapping, the managed return type is actually the type of the last parameter and not the return type. - // The native return type of an HRESULT-swapped function is an HRESULT, which never uses a return-buffer argument. - // Since the managed return type is actually the last parameter, we need to marshal it after the last parameter in the managed signature - // to make sure we match the native signature correctly (when marshalling parameters, we add them to the native stub signature). - if (!SF_IsHRESULTSwapping(dwStubFlags)) - { - // We cannot just use pSig.GetReturnType() here since it will return ELEMENT_TYPE_VALUETYPE for enums. - bool isReturnTypeValueType = msig.GetRetTypeHandleThrowing().GetVerifierCorElementType() == ELEMENT_TYPE_VALUETYPE; -#if defined(TARGET_X86) || defined(TARGET_ARM) - // JIT32 has problems in generating code for pinvoke ILStubs which do a return in return buffer. - // Therefore instead we change the signature of calli to return void and make the return buffer as first - // argument. This matches the ABI i.e. return buffer is passed as first arg. So native target will get the - // return buffer in correct register. - // The return structure secret arg comes first, however byvalue return is processed at - // the end because it could be the HRESULT-swapped argument which always comes last. - -#ifdef UNIX_X86_ABI - // For functions with value type class, managed and unmanaged calling convention differ - fMarshalReturnValueFirst = HasRetBuffArgUnmanagedFixup(&msig); -#elif defined(TARGET_ARM) - fMarshalReturnValueFirst = (isInstanceMethod && isReturnTypeValueType) && HasRetBuffArg(&msig); -#else - // On Windows-X86, the native signature might need a return buffer when the managed doesn't (specifically when the native signature is a member function). - fMarshalReturnValueFirst = (!SF_IsReverseStub(dwStubFlags) && HasRetBuffArg(&msig)) || (isInstanceMethod && isReturnTypeValueType); -#endif // UNIX_X86_ABI -#elif defined(TARGET_AMD64) || defined (TARGET_ARM64) - fMarshalReturnValueFirst = isInstanceMethod && isReturnTypeValueType; -#endif // defined(TARGET_X86) || defined(TARGET_ARM) -#ifdef _WIN32 - fReverseWithReturnBufferArg = fMarshalReturnValueFirst && SF_IsReverseStub(dwStubFlags); -#endif - } - // // Marshal the arguments // @@ -3632,7 +3591,6 @@ static void CreateNDirectStubWorker(StubState* pss, SF_IsBestFit(dwStubFlags), SF_IsThrowOnUnmappableChar(dwStubFlags), TRUE, - isInstanceMethod ? TRUE : FALSE, pMD, TRUE DEBUG_ARG(pSigDesc->m_pDebugName) @@ -3644,76 +3602,6 @@ static void CreateNDirectStubWorker(StubState* pss, int argidx = 1; int nativeArgIndex = 0; - // If we are generating a return buffer on a member function that is marked as thiscall (as opposed to being a COM method) - // then we need to marshal the this parameter first and the return buffer second. - // We don't need to do this for COM methods because the "this" is implied as argument 0 by the signature of the stub. - if (fThisCall && fMarshalReturnValueFirst) - { - msig.NextArg(); - - MarshalInfo &info = pParamMarshalInfo[argidx - 1]; - pss->MarshalArgument(&info, argOffset, GetStackOffsetFromStackSize(nativeStackSize, fThisCall)); - nativeStackSize += info.GetNativeArgSize(); - - fStubNeedsCOM |= info.MarshalerRequiresCOM(); - - // make sure that the first parameter is enregisterable - if (info.GetNativeArgSize() > TARGET_POINTER_SIZE) - COMPlusThrow(kMarshalDirectiveException, IDS_EE_NDIRECT_BADNATL_THISCALL); - - argidx++; - } - - // If we're doing a native->managed call and are generating a return buffer, - // we need to move all of the actual arguments over one and have the return value be the first argument (after the this pointer if applicable). - if (fReverseWithReturnBufferArg) - { - ++argOffset; - } - - if (fMarshalReturnValueFirst) - { - marshalType = DoMarshalReturnValue(msig, - pParamTokenArray, - nlType, - nlFlags, - 1, // Indicating as the first argument - pss, - isInstanceMethod, - argOffset, - dwStubFlags, - pMD, - nativeStackSize, - fStubNeedsCOM, - 0 - DEBUG_ARG(pSigDesc->m_pDebugName) - DEBUG_ARG(pSigDesc->m_pDebugClassName) - ); - - if (marshalType == MarshalInfo::MARSHAL_TYPE_DATE || - marshalType == MarshalInfo::MARSHAL_TYPE_CURRENCY || - marshalType == MarshalInfo::MARSHAL_TYPE_ARRAYWITHOFFSET || - marshalType == MarshalInfo::MARSHAL_TYPE_HANDLEREF || - marshalType == MarshalInfo::MARSHAL_TYPE_ARGITERATOR -#ifdef FEATURE_COMINTEROP - || marshalType == MarshalInfo::MARSHAL_TYPE_OLECOLOR -#endif // FEATURE_COMINTEROP - ) - { - // These are special non-blittable types returned by-ref in managed, - // but marshaled as primitive values returned by-value in unmanaged. - } - else - { - // This is an ordinary value type - see if it is returned by-ref. - MethodTable *pRetMT = msig.GetRetTypeHandleThrowing().AsMethodTable(); - if (IsUnmanagedValueTypeReturnedByRef(pRetMT->GetNativeSize())) - { - nativeStackSize += TARGET_POINTER_SIZE; - } - } - } - while (argidx <= numArgs) { // @@ -3759,40 +3647,64 @@ static void CreateNDirectStubWorker(StubState* pss, argOffset++; } - if (!fMarshalReturnValueFirst) - { - // This could be a HRESULT-swapped argument so it must come last. - marshalType = DoMarshalReturnValue(msig, - pParamTokenArray, - nlType, - nlFlags, - argidx, - pss, - isInstanceMethod, - argOffset, - dwStubFlags, - pMD, - nativeStackSize, - fStubNeedsCOM, - nativeArgIndex - DEBUG_ARG(pSigDesc->m_pDebugName) - DEBUG_ARG(pSigDesc->m_pDebugClassName) - ); - - // If the return value is a SafeHandle or CriticalHandle, mark the stub method. - // Interop methods that use this stub will have an implicit reliability contract - // (see code:TAStackCrawlCallBack). - if (!SF_IsHRESULTSwapping(dwStubFlags)) - { - if (marshalType == MarshalInfo::MARSHAL_TYPE_SAFEHANDLE || - marshalType == MarshalInfo::MARSHAL_TYPE_CRITICALHANDLE) - { - if (pMD->IsDynamicMethod()) - pMD->AsDynamicMethodDesc()->SetUnbreakable(true); - } + marshalType = DoMarshalReturnValue(msig, + pParamTokenArray, + nlType, + nlFlags, + argidx, + pss, + argOffset, + dwStubFlags, + pMD, + nativeStackSize, + fStubNeedsCOM, + nativeArgIndex + DEBUG_ARG(pSigDesc->m_pDebugName) + DEBUG_ARG(pSigDesc->m_pDebugClassName) + ); + + // If the return value is a SafeHandle or CriticalHandle, mark the stub method. + // Interop methods that use this stub will have an implicit reliability contract + // (see code:TAStackCrawlCallBack). + if (!SF_IsHRESULTSwapping(dwStubFlags)) + { + if (marshalType == MarshalInfo::MARSHAL_TYPE_SAFEHANDLE || + marshalType == MarshalInfo::MARSHAL_TYPE_CRITICALHANDLE) + { + if (pMD->IsDynamicMethod()) + pMD->AsDynamicMethodDesc()->SetUnbreakable(true); } } + if (marshalType == MarshalInfo::MARSHAL_TYPE_DATE || + marshalType == MarshalInfo::MARSHAL_TYPE_CURRENCY || + marshalType == MarshalInfo::MARSHAL_TYPE_ARRAYWITHOFFSET || + marshalType == MarshalInfo::MARSHAL_TYPE_HANDLEREF || + marshalType == MarshalInfo::MARSHAL_TYPE_ARGITERATOR +#ifdef FEATURE_COMINTEROP + || marshalType == MarshalInfo::MARSHAL_TYPE_OLECOLOR +#endif // FEATURE_COMINTEROP + ) + { + // These are special non-blittable types returned by-ref in managed, + // but marshaled as primitive values returned by-value in unmanaged. + } + else + { + // This is an ordinary value type - see if it is returned by-ref. + TypeHandle retType = msig.GetRetTypeHandleThrowing(); + if (retType.IsValueType() && !retType.IsEnum() && IsUnmanagedValueTypeReturnedByRef(retType.MakeNativeValueType().GetSize())) + { + nativeStackSize += sizeof(LPVOID); + } +#if defined(TARGET_WINDOWS) && !defined(TARGET_ARM) + else if (fThisCall && !retType.IsEnum()) + { + nativeStackSize += sizeof(LPVOID); + } +#endif + } + if (SF_IsHRESULTSwapping(dwStubFlags)) { if (msig.GetReturnType() != ELEMENT_TYPE_VOID) @@ -3915,7 +3827,6 @@ static void CreateStructStub(ILStubState* pss, SF_IsBestFit(dwStubFlags), SF_IsThrowOnUnmappableChar(dwStubFlags), TRUE, - FALSE, pMD, TRUE DEBUG_ARG(pSigDesc->m_pDebugName) diff --git a/src/coreclr/src/vm/dllimportcallback.cpp b/src/coreclr/src/vm/dllimportcallback.cpp index f25da147690eb..e33e08849f979 100644 --- a/src/coreclr/src/vm/dllimportcallback.cpp +++ b/src/coreclr/src/vm/dllimportcallback.cpp @@ -169,7 +169,7 @@ VOID UMEntryThunk::CompileUMThunkWorker(UMThunkStubInfo *pInfo, { // exchange ecx ( "this") with the hidden structure return buffer // xchg ecx, [esp] - pcpusl->X86EmitOp(0x87, kECX, (X86Reg)4 /*ESP*/); + pcpusl->X86EmitOp(0x87, kECX, (X86Reg)kESP_Unsafe); } // jam ecx (the "this" param onto stack. Now it looks like a normal stdcall.) @@ -178,6 +178,25 @@ VOID UMEntryThunk::CompileUMThunkWorker(UMThunkStubInfo *pInfo, // push edx - repush the return address pcpusl->X86EmitPushReg(kEDX); } + + // The native signature doesn't have a return buffer + // but the managed signature does. + // Set up the return buffer address here. + if (pInfo->m_wFlags & umtmlBufRetValToEnreg) + { + // Calculate the return buffer address + // Calculate the offset to the return buffer we establish for EAX:EDX below. + // lea edx [esp - offset to EAX:EDX return buffer] + pcpusl->X86EmitEspOffset(0x8d, kEDX, -0xc /* skip return addr, EBP, EBX */ -0x8 /* point to start of EAX:EDX return buffer */ ); + + // exchange edx (which has the return buffer address) + // with the return address + // xchg edx, [esp] + pcpusl->X86EmitOp(0x87, kEDX, (X86Reg)kESP_Unsafe); + + // push edx + pcpusl->X86EmitPushReg(kEDX); + } // Setup the EBP frame pcpusl->X86EmitPushEBPframe(); @@ -257,6 +276,9 @@ VOID UMEntryThunk::CompileUMThunkWorker(UMThunkStubInfo *pInfo, // push fs:[0] const static BYTE codeSEH1[] = { 0x64, 0xFF, 0x35, 0x0, 0x0, 0x0, 0x0}; pcpusl->EmitBytes(codeSEH1, sizeof(codeSEH1)); + // EmitBytes doesn't know to increase the stack size + // so we do so manually + pcpusl->SetStackSize(pcpusl->GetStackSize() + 4); // link in the exception frame // mov dword ptr fs:[0], esp @@ -292,9 +314,9 @@ VOID UMEntryThunk::CompileUMThunkWorker(UMThunkStubInfo *pInfo, // // | | // +-------------------------+ - // EBX - 20 | Saved Result: EDX/ST(0) | + // EBX - 20 | Saved Result: EAX/ST(0) | // +- - - - - - - - - - - - -+ - // EBX - 16 | Saved Result: EAX/ST(0) | + // EBX - 16 | Saved Result: EDX/ST(0) | // +-------------------------+ // EBX - 12 | Caller's EBX | // +-------------------------+ @@ -471,11 +493,26 @@ VOID UMEntryThunk::CompileUMThunkWorker(UMThunkStubInfo *pInfo, // save EDX:EAX if (retbufofs == UNUSED_STACK_OFFSET) { - pcpusl->X86EmitIndexRegStore(kEBX, -0x8 /* to outer EBP */ -0x8 /* skip saved EBP, EBX */, kEAX); - pcpusl->X86EmitIndexRegStore(kEBX, -0x8 /* to outer EBP */ -0xc /* skip saved EBP, EBX, EAX */, kEDX); + pcpusl->X86EmitIndexRegStore(kEBX, -0x8 /* to outer EBP */ -0xc /* skip saved EBP, EBX, EDX */, kEAX); + pcpusl->X86EmitIndexRegStore(kEBX, -0x8 /* to outer EBP */ -0x8 /* skip saved EBP, EBX */, kEDX); } - else + // In the umtmlBufRetValToEnreg case, + // we set up the return buffer to output + // into the EDX:EAX buffer we set up for the register return case. + // So we don't need to do more work here. + else if ((pInfo->m_wFlags & umtmlBufRetValToEnreg) == 0) { + if (pInfo->m_wFlags & umtmlEnregRetValToBuf) + { + pcpusl->X86EmitPushReg(kEDI); // Save EDI register + // Move the return value from the enregistered return from the JIT + // to the return buffer that the native calling convention expects. + // NOTE: Since the managed calling convention does not enregister 8-byte + // struct returns on x86, we only need to handle the single-register 4-byte case. + pcpusl->X86EmitIndexRegLoad(kEDI, kEBX, retbufofs); + pcpusl->X86EmitIndexRegStore(kEDI, 0x0, kEAX); + pcpusl->X86EmitPopReg(kEDI); // Restore EDI register + } // pretend that the method returned the ret buf hidden argument // (the structure ptr); C++ compiler seems to rely on this @@ -483,7 +520,7 @@ VOID UMEntryThunk::CompileUMThunkWorker(UMThunkStubInfo *pInfo, pcpusl->X86EmitIndexRegLoad(kEAX, kEBX, retbufofs); // save it as the return value - pcpusl->X86EmitIndexRegStore(kEBX, -0x8 /* to outer EBP */ -0x8 /* skip saved EBP, EBX */, kEAX); + pcpusl->X86EmitIndexRegStore(kEBX, -0x8 /* to outer EBP */ -0xc /* skip saved EBP, EBX, EDX */, kEAX); } } @@ -555,8 +592,8 @@ VOID UMEntryThunk::CompileUMThunkWorker(UMThunkStubInfo *pInfo, } else { - pcpusl->X86EmitPopReg(kEDX); pcpusl->X86EmitPopReg(kEAX); + pcpusl->X86EmitPopReg(kEDX); } // Restore EBX, which was saved in prolog @@ -769,6 +806,13 @@ Stub *UMThunkMarshInfo::CompileNExportThunk(LoaderHeap *pLoaderHeap, PInvokeStat UINT nOffset = 0; int numRegistersUsed = 0; int numStackSlotsIndex = nStackBytes / STACK_ELEM_SIZE; + + // This could have been set in the UnmanagedCallersOnly scenario. + if (m_callConv == UINT16_MAX) + m_callConv = static_cast(pSigInfo->GetCallConv()); + + UMThunkStubInfo stubInfo; + memset(&stubInfo, 0, sizeof(stubInfo)); // process this if (!fIsStatic) @@ -778,13 +822,27 @@ Stub *UMThunkMarshInfo::CompileNExportThunk(LoaderHeap *pLoaderHeap, PInvokeStat } // process the return buffer parameter - if (argit.HasRetBuffArg()) + if (argit.HasRetBuffArg() || (m_callConv == pmCallConvThiscall && argit.HasValueTypeReturn())) { - numRegistersUsed++; - _ASSERTE(numRegistersUsed - 1 < NUM_ARGUMENT_REGISTERS); - psrcofsregs[NUM_ARGUMENT_REGISTERS - numRegistersUsed] = nOffset; + // Only copy the retbuf arg from the src call when both the managed call and native call + // have a return buffer. + if (argit.HasRetBuffArg()) + { + // managed has a return buffer + if (m_callConv != pmCallConvThiscall && + argit.HasValueTypeReturn() && + pMetaSig->GetReturnTypeSize() == ENREGISTERED_RETURNTYPE_MAXSIZE) + { + // Only managed has a return buffer. + // Native returns in registers. + // We add a flag so the stub correctly sets up the return buffer. + stubInfo.m_wFlags |= umtmlBufRetValToEnreg; + } + numRegistersUsed++; + _ASSERTE(numRegistersUsed - 1 < NUM_ARGUMENT_REGISTERS); + psrcofsregs[NUM_ARGUMENT_REGISTERS - numRegistersUsed] = nOffset; + } retbufofs = nOffset; - nOffset += StackElemSize(sizeof(LPVOID)); } @@ -810,7 +868,7 @@ Stub *UMThunkMarshInfo::CompileNExportThunk(LoaderHeap *pLoaderHeap, PInvokeStat fPassPointer = TRUE; } - if (ArgIterator::IsArgumentInRegister(&numRegistersUsed, type)) + if (ArgIterator::IsArgumentInRegister(&numRegistersUsed, type, thValueType)) { _ASSERTE(numRegistersUsed - 1 < NUM_ARGUMENT_REGISTERS); psrcofsregs[NUM_ARGUMENT_REGISTERS - numRegistersUsed] = @@ -849,13 +907,6 @@ Stub *UMThunkMarshInfo::CompileNExportThunk(LoaderHeap *pLoaderHeap, PInvokeStat m_cbActualArgSize = cbActualArgSize; - // This could have been set in the UnmanagedCallersOnly scenario. - if (m_callConv == UINT16_MAX) - m_callConv = static_cast(pSigInfo->GetCallConv()); - - UMThunkStubInfo stubInfo; - memset(&stubInfo, 0, sizeof(stubInfo)); - if (!FitsInU2(m_cbActualArgSize)) COMPlusThrow(kMarshalDirectiveException, IDS_EE_SIGTOOCOMPLEX); @@ -879,8 +930,17 @@ Stub *UMThunkMarshInfo::CompileNExportThunk(LoaderHeap *pLoaderHeap, PInvokeStat { stubInfo.m_wFlags |= umtmlThisCallHiddenArg; } + else if (argit.HasValueTypeReturn()) + { + stubInfo.m_wFlags |= umtmlThisCallHiddenArg | umtmlEnregRetValToBuf; + // When the native signature has a return buffer but the + // managed one does not, we need to handle popping the + // the return buffer of the stack manually, which we do here. + m_cbRetPop += 4; + } } } + stubInfo.m_cbRetPop = m_cbRetPop; if (fIsStatic) stubInfo.m_wFlags |= umtmlIsStatic; @@ -1396,7 +1456,7 @@ VOID UMThunkMarshInfo::RunTimeInit() TypeHandle thValueType; CorElementType type = sig.NextArgNormalized(&thValueType); int cbSize = sig.GetElemSize(type, thValueType); - if (ArgIterator::IsArgumentInRegister(&numRegistersUsed, type)) + if (ArgIterator::IsArgumentInRegister(&numRegistersUsed, type, thValueType)) { offs += STACK_ELEM_SIZE; } @@ -1481,7 +1541,7 @@ VOID UMThunkMarshInfo::SetupArguments(char *pSrc, ArgumentRegisters *pArgRegs, c int cbSize = sig.GetElemSize(type, thValueType); int elemSize = StackElemSize(cbSize); - if (ArgIterator::IsArgumentInRegister(&numRegistersUsed, type)) + if (ArgIterator::IsArgumentInRegister(&numRegistersUsed, type, thValueType)) { _ASSERTE(elemSize == STACK_ELEM_SIZE); diff --git a/src/coreclr/src/vm/dllimportcallback.h b/src/coreclr/src/vm/dllimportcallback.h index 8a483808d3d28..1bdb5d5cbebd3 100644 --- a/src/coreclr/src/vm/dllimportcallback.h +++ b/src/coreclr/src/vm/dllimportcallback.h @@ -18,13 +18,15 @@ enum UMThunkStubFlags { - umtmlIsStatic = 0x0001, - umtmlThisCall = 0x0002, - umtmlThisCallHiddenArg = 0x0004, - umtmlFpu = 0x0008, + umtmlIsStatic = 0x0001, + umtmlThisCall = 0x0002, + umtmlThisCallHiddenArg = 0x0004, + umtmlFpu = 0x0008, + umtmlEnregRetValToBuf = 0x0010, + umtmlBufRetValToEnreg = 0x0020, #ifdef TARGET_X86 // the signature is trivial so stub need not be generated and the target can be called directly - umtmlSkipStub = 0x0080, + umtmlSkipStub = 0x0080, #endif // TARGET_X86 }; diff --git a/src/coreclr/src/vm/fieldmarshaler.cpp b/src/coreclr/src/vm/fieldmarshaler.cpp index 6f114f2df7f82..17ded4ec02b19 100644 --- a/src/coreclr/src/vm/fieldmarshaler.cpp +++ b/src/coreclr/src/vm/fieldmarshaler.cpp @@ -70,7 +70,6 @@ VOID ParseNativeType(Module* pModule, FALSE, // We only need validation of the native signature and the MARSHAL_TYPE_* FALSE, // so we don't need to accurately get the BestFitCustomAttribute data for this construction. FALSE, /* fEmitsIL */ - FALSE, /* onInstanceMethod */ nullptr, FALSE /* fUseCustomMarshal */ #ifdef _DEBUG diff --git a/src/coreclr/src/vm/ilmarshalers.h b/src/coreclr/src/vm/ilmarshalers.h index c08f4f3efc49b..12a1824ca7ba3 100644 --- a/src/coreclr/src/vm/ilmarshalers.h +++ b/src/coreclr/src/vm/ilmarshalers.h @@ -352,12 +352,6 @@ class ILMarshaler return (0 != (dwMarshalFlags & MARSHAL_FLAG_RETVAL)); } - static inline bool IsInMemberFunction(DWORD dwMarshalFlags) - { - LIMITED_METHOD_CONTRACT; - return (0 != (dwMarshalFlags & MARSHAL_FLAG_IN_MEMBER_FUNCTION)); - } - static inline bool IsFieldMarshal(DWORD dwMarshalFlags) { LIMITED_METHOD_CONTRACT; @@ -598,99 +592,20 @@ class ILMarshaler LocalDesc nativeType = GetNativeType(); LocalDesc managedType = GetManagedType(); - bool byrefNativeReturn = false; - CorElementType typ = ELEMENT_TYPE_VOID; - UINT32 nativeSize = 0; - bool nativeMethodIsMemberFunction = IsInMemberFunction(dwMarshalFlags); - - // we need to convert value type return types to primitives as - // JIT does not inline P/Invoke calls that return structures - if (nativeType.IsValueClass()) - { - if (wNativeSize == VARIABLESIZE) - { - // the unmanaged type size is variable - nativeSize = m_pargs->m_pMT->GetNativeSize(); - } - else - { - // the unmanaged type size is fixed - nativeSize = wNativeSize; - } - -#if defined(TARGET_WINDOWS) - // JIT32 and JIT64 (which is only used on the Windows Desktop CLR) has a problem generating - // code for the pinvoke ILStubs which do a return using a struct type. Therefore, we - // change the signature of calli to return void and make the return buffer as first argument. - - // For Windows, we need to use a return buffer for native member functions returning structures. - // On Windows arm we need to respect HFAs and not use a return buffer if the return type is an HFA - // for X86 Windows non-member functions we bash the return type from struct to U1, U2, U4 or U8 - // and use byrefNativeReturn for all other structs. - if (nativeMethodIsMemberFunction) - { -#ifdef TARGET_ARM - byrefNativeReturn = !nativeType.InternalToken.GetMethodTable()->IsNativeHFA(); -#else - byrefNativeReturn = true; -#endif - } - else - { -#ifdef TARGET_X86 - switch (nativeSize) - { - case 1: typ = ELEMENT_TYPE_U1; break; - case 2: typ = ELEMENT_TYPE_U2; break; - case 4: typ = ELEMENT_TYPE_U4; break; - case 8: typ = ELEMENT_TYPE_U8; break; - default: byrefNativeReturn = true; break; - } -#endif // TARGET_X86 - } -#endif // defined(TARGET_WINDOWS) - - // for UNIX_X86_ABI, we always need a return buffer argument for any size of structs. -#ifdef UNIX_X86_ABI - byrefNativeReturn = true; -#endif - } - - if (IsHresultSwap(dwMarshalFlags) || (byrefNativeReturn && (IsCLRToNative(m_dwMarshalFlags) || nativeMethodIsMemberFunction))) + if (IsHresultSwap(dwMarshalFlags)) { LocalDesc extraParamType = nativeType; extraParamType.MakeByRef(); m_pcsMarshal->SetStubTargetArgType(&extraParamType, false); - if (IsHresultSwap(dwMarshalFlags)) - { - // HRESULT swapping: the original return value is transformed into an extra - // byref parameter and the target is expected to return an HRESULT - m_pcsMarshal->SetStubTargetReturnType(ELEMENT_TYPE_I4); // native method returns an HRESULT - } - else - { - // byref structure return: the original return value is transformed into an - // extra byref parameter and the target is not expected to return anything - // - // note: we do this only for forward calls because [unmanaged calling conv. - // uses byref return] implies [managed calling conv. uses byref return] - m_pcsMarshal->SetStubTargetReturnType(ELEMENT_TYPE_VOID); - } + // HRESULT swapping: the original return value is transformed into an extra + // byref parameter and the target is expected to return an HRESULT + m_pcsMarshal->SetStubTargetReturnType(ELEMENT_TYPE_I4); // native method returns an HRESULT } else { - if (typ != ELEMENT_TYPE_VOID) - { - // small structure return: the original return value is transformed into - // ELEMENT_TYPE_U1, ELEMENT_TYPE_U2, ELEMENT_TYPE_U4, or ELEMENT_TYPE_U8 - m_pcsMarshal->SetStubTargetReturnType(typ); - } - else - { - m_pcsMarshal->SetStubTargetReturnType(&nativeType); - } + m_pcsMarshal->SetStubTargetReturnType(&nativeType); } m_managedHome.InitHome(ILStubMarshalHome::HomeType_ILLocal, m_pcsMarshal->NewLocal(managedType)); @@ -700,31 +615,14 @@ class ILMarshaler if (IsCLRToNative(dwMarshalFlags)) { - if (IsHresultSwap(dwMarshalFlags) || byrefNativeReturn) + if (IsHresultSwap(dwMarshalFlags)) { EmitReInitNative(m_pcsMarshal); EmitLoadNativeHomeAddrForByRefDispatch(pcsDispatch); // load up the byref native type as an extra arg } else { - if (typ != ELEMENT_TYPE_VOID) - { - // small structure forward: the returned integer is memcpy'd into native home - // of the structure - - DWORD dwTempLocalNum = m_pcsUnmarshal->NewLocal(typ); - m_pcsUnmarshal->EmitSTLOC(dwTempLocalNum); - - // cpblk - m_nativeHome.EmitLoadHomeAddr(m_pcsUnmarshal); - m_pcsUnmarshal->EmitLDLOCA(dwTempLocalNum); - m_pcsUnmarshal->EmitLDC(nativeSize); - m_pcsUnmarshal->EmitCPBLK(); - } - else - { - EmitStoreNativeValue(m_pcsUnmarshal); - } + EmitStoreNativeValue(m_pcsUnmarshal); } if (NeedsMarshalCleanupIndex()) @@ -778,31 +676,9 @@ class ILMarshaler m_nativeHome.EmitCopyToByrefArgWithNullCheck(m_pcsUnmarshal, &nativeType, argidx); m_pcsUnmarshal->EmitLDC(S_OK); } - else if (byrefNativeReturn && nativeMethodIsMemberFunction) - { - m_nativeHome.EmitCopyToByrefArg(m_pcsUnmarshal, &nativeType, argidx); - } else { - if (typ != ELEMENT_TYPE_VOID) - { - // small structure return (reverse): native home of the structure is memcpy'd - // into the integer to be returned from the stub - - DWORD dwTempLocalNum = m_pcsUnmarshal->NewLocal(typ); - - // cpblk - m_pcsUnmarshal->EmitLDLOCA(dwTempLocalNum); - m_nativeHome.EmitLoadHomeAddr(m_pcsUnmarshal); - m_pcsUnmarshal->EmitLDC(nativeSize); - m_pcsUnmarshal->EmitCPBLK(); - - m_pcsUnmarshal->EmitLDLOC(dwTempLocalNum); - } - else - { - EmitLoadNativeValue(m_pcsUnmarshal); - } + EmitLoadNativeValue(m_pcsUnmarshal); } // make sure we free (and zero) the return value if an exception is thrown diff --git a/src/coreclr/src/vm/methodtablebuilder.cpp b/src/coreclr/src/vm/methodtablebuilder.cpp index 5e09e619b9e8b..3fa72fe5a71b4 100644 --- a/src/coreclr/src/vm/methodtablebuilder.cpp +++ b/src/coreclr/src/vm/methodtablebuilder.cpp @@ -9652,19 +9652,6 @@ void MethodTableBuilder::CheckForSystemTypes() _ASSERTE(g_pByReferenceClass != NULL); _ASSERTE(g_pByReferenceClass->IsByRefLike()); -#ifdef TARGET_X86 - if (GetCl() == g_pByReferenceClass->GetCl()) - { - // x86 by default treats the type of ByReference as the actual type of its IntPtr field, see calls to - // ComputeInternalCorElementTypeForValueType in this file. This is a special case where the struct needs to be - // treated as a value type so that its field can be considered as a byref pointer. - _ASSERTE(pMT->GetFlag(MethodTable::enum_flag_Category_Mask) == MethodTable::enum_flag_Category_PrimitiveValueType); - pMT->ClearFlag(MethodTable::enum_flag_Category_Mask); - pMT->SetInternalCorElementType(ELEMENT_TYPE_VALUETYPE); - return; - } -#endif - _ASSERTE(g_pNullableClass->IsNullable()); // Pre-compute whether the class is a Nullable so that code:Nullable::IsNullableType is efficient @@ -9732,18 +9719,6 @@ void MethodTableBuilder::CheckForSystemTypes() { pMT->SetIsNullable(); } -#ifdef TARGET_X86 - else if (strcmp(name, g_ByReferenceName) == 0) - { - // x86 by default treats the type of ByReference as the actual type of its IntPtr field, see calls to - // ComputeInternalCorElementTypeForValueType in this file. This is a special case where the struct needs to be - // treated as a value type so that its field can be considered as a byref pointer. - _ASSERTE(pMT->GetFlag(MethodTable::enum_flag_Category_Mask) == MethodTable::enum_flag_Category_PrimitiveValueType); - pMT->ClearFlag(MethodTable::enum_flag_Category_Mask); - pMT->SetInternalCorElementType(ELEMENT_TYPE_VALUETYPE); - } -#endif -#ifndef TARGET_X86 else if (strcmp(name, g_RuntimeArgumentHandleName) == 0) { pMT->SetInternalCorElementType (ELEMENT_TYPE_I); @@ -9752,7 +9727,10 @@ void MethodTableBuilder::CheckForSystemTypes() { pMT->SetInternalCorElementType (ELEMENT_TYPE_I); } -#endif + else if (strcmp(name, g_RuntimeFieldHandleInternalName) == 0) + { + pMT->SetInternalCorElementType (ELEMENT_TYPE_I); + } } else { @@ -10379,15 +10357,7 @@ MethodTableBuilder::SetupMethodTable2( } else { -#ifdef TARGET_X86 - // JIT64 is not aware of normalized value types and this - // optimization (return small value types by value in registers) - // is already done in JIT64. - OVERRIDE_TYPE_LOAD_LEVEL_LIMIT(CLASS_LOADED); - normalizedType = EEClass::ComputeInternalCorElementTypeForValueType(pMT); -#else normalizedType = ELEMENT_TYPE_VALUETYPE; -#endif } } pMT->SetInternalCorElementType(normalizedType); diff --git a/src/coreclr/src/vm/mlinfo.cpp b/src/coreclr/src/vm/mlinfo.cpp index 9a684a41d0ee9..1097bbea2a6ad 100644 --- a/src/coreclr/src/vm/mlinfo.cpp +++ b/src/coreclr/src/vm/mlinfo.cpp @@ -659,102 +659,6 @@ BOOL ParseNativeTypeInfo(NativeTypeParamInfo* pParamInfo, return TRUE; } -//========================================================================== -// Determines whether *pManagedElemType is really normalized (i.e. differs -// from what sigPtr points to modulo generic instantiation). If it is the -// case, all types that have been normalized away are checked for valid -// managed/unmanaged type combination, and *pNativeType is updated to contain -// the native type of the primitive type field inside. On error (a generic -// type is encountered or managed/unmanaged type mismatch) or non-default -// native type of the primitive type inside, *pManagedElemType is un-normalized -// so that the calling code can deal with the situation in its own way. -//========================================================================== -void VerifyAndAdjustNormalizedType( - Module * pModule, - SigPointer sigPtr, - const SigTypeContext * pTypeContext, - CorElementType * pManagedElemType, - CorNativeType * pNativeType) -{ - CorElementType sigElemType = sigPtr.PeekElemTypeClosed(pModule, pTypeContext); - - if (*pManagedElemType != sigElemType) - { - // Normalized element type differs from closed element type, which means that - // normalization has occurred. - _ASSERTE(sigElemType == ELEMENT_TYPE_VALUETYPE); - - // Now we know that this is a normalized value type - we have to verify the removed - // value type(s) and get to the true primitive type inside. - TypeHandle th = sigPtr.GetTypeHandleThrowing(pModule, - pTypeContext, - ClassLoader::LoadTypes, - CLASS_LOAD_UNRESTORED, - TRUE); - _ASSERTE(!th.IsNull() && !th.IsTypeDesc()); - - CorNativeType ntype = *pNativeType; - - if (!th.AsMethodTable()->IsTruePrimitive() && - !th.IsEnum()) - { - // This is a trivial (yet non-primitive) value type that has been normalized. - // Loop until we eventually hit the primitive type or enum inside. - do - { - if (th.HasInstantiation()) - { - // generic structures are either not marshalable or special-cased - the caller needs to know either way - *pManagedElemType = sigElemType; - return; - } - - // verify the native type of the value type (must be default or Struct) - if (!(ntype == NATIVE_TYPE_DEFAULT || ntype == NATIVE_TYPE_STRUCT)) - { - *pManagedElemType = sigElemType; - return; - } - - MethodTable *pMT = th.GetMethodTable(); - _ASSERTE(pMT != NULL && pMT->IsValueType() && pMT->GetNumInstanceFields() == 1); - - // get the only instance field - PTR_FieldDesc fieldDesc = pMT->GetApproxFieldDescListRaw(); - - // retrieve the MarshalAs of the field - NativeTypeParamInfo paramInfo; - if (!ParseNativeTypeInfo(fieldDesc->GetMemberDef(), th.GetModule()->GetMDImport(), ¶mInfo)) - { - *pManagedElemType = sigElemType; - return; - } - - ntype = paramInfo.m_NativeType; - - th = fieldDesc->GetApproxFieldTypeHandleThrowing(); - } - while (!th.IsTypeDesc() && - !th.AsMethodTable()->IsTruePrimitive() && - !th.IsEnum()); - - // now ntype contains the native type of *pManagedElemType - if (ntype == NATIVE_TYPE_DEFAULT) - { - // Let's update the caller's native type with default type only. - // Updating with a non-default native type that is not allowed - // for the given managed type would result in confusing exception - // messages. - *pNativeType = ntype; - } - else - { - *pManagedElemType = sigElemType; - } - } - } -} - VOID ThrowInteropParamException(UINT resID, UINT paramIdx) { CONTRACTL @@ -1187,7 +1091,6 @@ MarshalInfo::MarshalInfo(Module* pModule, BOOL BestFit, BOOL ThrowOnUnmappableChar, BOOL fEmitsIL, - BOOL onInstanceMethod, MethodDesc* pMD, BOOL fLoadCustomMarshal #ifdef _DEBUG @@ -1230,7 +1133,6 @@ MarshalInfo::MarshalInfo(Module* pModule, CorElementType corElemType = ELEMENT_TYPE_END; m_pMT = NULL; m_pMD = pMD; - m_onInstanceMethod = onInstanceMethod; #ifdef FEATURE_COMINTEROP m_fDispItf = FALSE; @@ -1367,38 +1269,6 @@ MarshalInfo::MarshalInfo(Module* pModule, } } - // System primitive types (System.Int32, et.al.) will be marshaled as expected - // because the mtype CorElementType is normalized (e.g. ELEMENT_TYPE_I4). -#ifdef TARGET_X86 - // We however need to detect if such a normalization occurred for non-system - // trivial value types, because we hold CorNativeType belonging to the original - // "un-normalized" signature type. It has to be verified that all the value types - // that have been normalized away have default marshaling or MarshalAs(Struct). - // In addition, the nativeType must be updated with the type of the real primitive inside. - // We don't normalize on return values of member functions since struct return values need to be treated as structures. - if (isParam || !onInstanceMethod) - { - VerifyAndAdjustNormalizedType(pModule, sig, pTypeContext, &mtype, &nativeType); - } - else - { - SigPointer sigtmp = sig; - CorElementType closedElemType = sigtmp.PeekElemTypeClosed(pModule, pTypeContext); - if (closedElemType == ELEMENT_TYPE_VALUETYPE) - { - TypeHandle th = sigtmp.GetTypeHandleThrowing(pModule, pTypeContext); - // If the return type of an instance method is a value-type we need the actual return type. - // However, if the return type is an enum, we can normalize it. - if (!th.IsEnum()) - { - mtype = closedElemType; - } - } - - } -#endif // TARGET_X86 - - if (nativeType == NATIVE_TYPE_CUSTOMMARSHALER) { if (IsFieldScenario()) @@ -2366,23 +2236,6 @@ MarshalInfo::MarshalInfo(Module* pModule, m_type = MARSHAL_TYPE_BLITTABLEVALUECLASSWITHCOPYCTOR; } else -#ifdef TARGET_X86 - // JIT64 is not aware of normalized value types and this optimization - // (returning small value types by value in registers) is already done in JIT64. - if ( !m_byref // Permit register-sized structs as return values - && !isParam - && !onInstanceMethod - && CorIsPrimitiveType(m_pMT->GetInternalCorElementType()) - && !IsUnmanagedValueTypeReturnedByRef(nativeSize) - && managedSize <= TARGET_POINTER_SIZE - && nativeSize <= TARGET_POINTER_SIZE - && !IsFieldScenario()) - { - m_type = MARSHAL_TYPE_GENERIC_4; - m_args.m_pMT = m_pMT; - } - else -#endif // TARGET_X86 { m_args.m_pMT = m_pMT; m_type = MARSHAL_TYPE_BLITTABLEVALUECLASS; @@ -2777,7 +2630,7 @@ DWORD CalculateArgumentMarshalFlags(BOOL byref, BOOL in, BOOL out, BOOL fMngToNa return dwMarshalFlags; } -DWORD CalculateReturnMarshalFlags(BOOL hrSwap, BOOL fMngToNative, BOOL onInstanceMethod) +DWORD CalculateReturnMarshalFlags(BOOL hrSwap, BOOL fMngToNative) { LIMITED_METHOD_CONTRACT; DWORD dwMarshalFlags = MARSHAL_FLAG_RETVAL; @@ -2792,11 +2645,6 @@ DWORD CalculateReturnMarshalFlags(BOOL hrSwap, BOOL fMngToNative, BOOL onInstanc dwMarshalFlags |= MARSHAL_FLAG_CLR_TO_NATIVE; } - if (onInstanceMethod) - { - dwMarshalFlags |= MARSHAL_FLAG_IN_MEMBER_FUNCTION; - } - return dwMarshalFlags; } @@ -2940,7 +2788,7 @@ void MarshalInfo::GenerateReturnIL(NDirectStubLinker* psl, } NewHolder pMarshaler = CreateILMarshaler(m_type, psl); - DWORD dwMarshalFlags = CalculateReturnMarshalFlags(retval, fMngToNative, m_onInstanceMethod); + DWORD dwMarshalFlags = CalculateReturnMarshalFlags(retval, fMngToNative); if (!pMarshaler->SupportsReturnMarshal(dwMarshalFlags, &resID)) { diff --git a/src/coreclr/src/vm/mlinfo.h b/src/coreclr/src/vm/mlinfo.h index 23ec668115ac9..792d078220f56 100644 --- a/src/coreclr/src/vm/mlinfo.h +++ b/src/coreclr/src/vm/mlinfo.h @@ -51,8 +51,7 @@ enum MarshalFlags MARSHAL_FLAG_HRESULT_SWAP = 0x010, MARSHAL_FLAG_RETVAL = 0x020, // unused = 0x040, - MARSHAL_FLAG_FIELD = 0x080, - MARSHAL_FLAG_IN_MEMBER_FUNCTION = 0x100 + MARSHAL_FLAG_FIELD = 0x080 }; #include @@ -189,13 +188,6 @@ BOOL ParseNativeTypeInfo(mdToken token, IMDInternalImport* pScope, NativeTypeParamInfo* pParamInfo); -void VerifyAndAdjustNormalizedType( - Module * pModule, - SigPointer sigPtr, - const SigTypeContext * pTypeContext, - CorElementType * pManagedElemType, - CorNativeType * pNativeType); - #ifdef _DEBUG BOOL IsFixedBuffer(mdFieldDef field, IMDInternalImport* pInternalImport); #endif @@ -321,7 +313,6 @@ class MarshalInfo BOOL BestFit, BOOL ThrowOnUnmappableChar, BOOL fEmitsIL, - BOOL onInstanceMethod, MethodDesc* pMD = NULL, BOOL fUseCustomMarshal = TRUE #ifdef _DEBUG @@ -519,7 +510,6 @@ class MarshalInfo VARTYPE m_arrayElementType; int m_iArrayRank; BOOL m_nolowerbounds; // if managed type is SZARRAY, don't allow lower bounds - BOOL m_onInstanceMethod; // for NT_ARRAY only UINT32 m_multiplier; // multipler for "sizeis" diff --git a/src/tests/Interop/PInvoke/Miscellaneous/ThisCall/ThisCallNative.cpp b/src/tests/Interop/PInvoke/Miscellaneous/ThisCall/ThisCallNative.cpp index 99a73baeca20b..cf2569fb75386 100644 --- a/src/tests/Interop/PInvoke/Miscellaneous/ThisCall/ThisCallNative.cpp +++ b/src/tests/Interop/PInvoke/Miscellaneous/ThisCall/ThisCallNative.cpp @@ -21,9 +21,14 @@ struct IntWrapper int i; }; +enum E : unsigned int +{ + Value = 42 +}; + class C { - int dummy = 0xcccccccc; + E dummy = E::Value; float width; float height; @@ -47,6 +52,11 @@ class C { return {(int)height}; } + + virtual E GetE() + { + return dummy; + } }; @@ -54,3 +64,23 @@ extern "C" DLL_EXPORT C* STDMETHODCALLTYPE CreateInstanceOfC(float width, float { return new C(width, height); } + +extern "C" DLL_EXPORT SizeF STDMETHODCALLTYPE GetSizeFromManaged(C* c) +{ + return c->GetSize(); +} + +extern "C" DLL_EXPORT Width STDMETHODCALLTYPE GetWidthFromManaged(C* c) +{ + return c->GetWidth(); +} + +extern "C" DLL_EXPORT IntWrapper STDMETHODCALLTYPE GetHeightAsIntFromManaged(C* c) +{ + return c->GetHeightAsInt(); +} + +extern "C" DLL_EXPORT E STDMETHODCALLTYPE GetEFromManaged(C* c) +{ + return c->GetE(); +} diff --git a/src/tests/Interop/PInvoke/Miscellaneous/ThisCall/ThisCallTest.cs b/src/tests/Interop/PInvoke/Miscellaneous/ThisCall/ThisCallTest.cs index 5162195b51057..66d40546e91b3 100644 --- a/src/tests/Interop/PInvoke/Miscellaneous/ThisCall/ThisCallTest.cs +++ b/src/tests/Interop/PInvoke/Miscellaneous/ThisCall/ThisCallTest.cs @@ -16,12 +16,13 @@ public struct VtableLayout public IntPtr getSize; public IntPtr getWidth; public IntPtr getHeightAsInt; + public IntPtr getE; } public VtableLayout* vtable; - private int c; - public readonly float width; - public readonly float height; + public E dummy; + public float width; + public float height; } public struct SizeF @@ -40,6 +41,11 @@ public struct IntWrapper public int i; } + public enum E : uint + { + Value = 42 + } + [UnmanagedFunctionPointer(CallingConvention.ThisCall)] public delegate SizeF GetSizeFn(C* c); [UnmanagedFunctionPointer(CallingConvention.ThisCall)] @@ -47,13 +53,25 @@ public struct IntWrapper [UnmanagedFunctionPointer(CallingConvention.ThisCall)] public delegate IntWrapper GetHeightAsIntFn(C* c); + [UnmanagedFunctionPointer(CallingConvention.ThisCall)] + public delegate E GetEFn(C* c); + [DllImport(nameof(ThisCallNative))] public static extern C* CreateInstanceOfC(float width, float height); + + [DllImport(nameof(ThisCallNative))] + public static extern SizeF GetSizeFromManaged(C* c); + [DllImport(nameof(ThisCallNative))] + public static extern Width GetWidthFromManaged(C* c); + [DllImport(nameof(ThisCallNative))] + public static extern IntWrapper GetHeightAsIntFromManaged(C* c); + [DllImport(nameof(ThisCallNative))] + public static extern E GetEFromManaged(C* c); } -class ThisCallTest +unsafe class ThisCallTest { - public unsafe static int Main(string[] args) + public static int Main(string[] args) { try { @@ -63,6 +81,11 @@ public unsafe static int Main(string[] args) Test8ByteHFA(instance); Test4ByteHFA(instance); Test4ByteNonHFA(instance); + TestEnum(instance); + Test8ByteHFAReverse(); + Test4ByteHFAReverse(); + Test4ByteNonHFAReverse(); + TestEnumReverse(); } catch (System.Exception ex) { @@ -72,7 +95,7 @@ public unsafe static int Main(string[] args) return 100; } - private static unsafe void Test8ByteHFA(ThisCallNative.C* instance) + private static void Test8ByteHFA(ThisCallNative.C* instance) { ThisCallNative.GetSizeFn callback = Marshal.GetDelegateForFunctionPointer(instance->vtable->getSize); @@ -82,7 +105,7 @@ private static unsafe void Test8ByteHFA(ThisCallNative.C* instance) Assert.AreEqual(instance->height, result.height); } - private static unsafe void Test4ByteHFA(ThisCallNative.C* instance) + private static void Test4ByteHFA(ThisCallNative.C* instance) { ThisCallNative.GetWidthFn callback = Marshal.GetDelegateForFunctionPointer(instance->vtable->getWidth); @@ -91,7 +114,7 @@ private static unsafe void Test4ByteHFA(ThisCallNative.C* instance) Assert.AreEqual(instance->width, result.width); } - private static unsafe void Test4ByteNonHFA(ThisCallNative.C* instance) + private static void Test4ByteNonHFA(ThisCallNative.C* instance) { ThisCallNative.GetHeightAsIntFn callback = Marshal.GetDelegateForFunctionPointer(instance->vtable->getHeightAsInt); @@ -99,4 +122,79 @@ private static unsafe void Test4ByteNonHFA(ThisCallNative.C* instance) Assert.AreEqual((int)instance->height, result.i); } + + private static void TestEnum(ThisCallNative.C* instance) + { + ThisCallNative.GetEFn callback = Marshal.GetDelegateForFunctionPointer(instance->vtable->getE); + + ThisCallNative.E result = callback(instance); + + Assert.AreEqual(instance->dummy, result); + } + + private static void Test8ByteHFAReverse() + { + ThisCallNative.C c = CreateCWithManagedVTable(2.0f, 3.0f); + ThisCallNative.SizeF result = ThisCallNative.GetSizeFromManaged(&c); + + Assert.AreEqual(c.width, result.width); + Assert.AreEqual(c.height, result.height); + } + + private static void Test4ByteHFAReverse() + { + ThisCallNative.C c = CreateCWithManagedVTable(2.0f, 3.0f); + ThisCallNative.Width result = ThisCallNative.GetWidthFromManaged(&c); + + Assert.AreEqual(c.width, result.width); + } + + private static void Test4ByteNonHFAReverse() + { + ThisCallNative.C c = CreateCWithManagedVTable(2.0f, 3.0f); + ThisCallNative.IntWrapper result = ThisCallNative.GetHeightAsIntFromManaged(&c); + + Assert.AreEqual((int)c.height, result.i); + } + + private static void TestEnumReverse() + { + ThisCallNative.C c = CreateCWithManagedVTable(2.0f, 3.0f); + ThisCallNative.E result = ThisCallNative.GetEFromManaged(&c); + + Assert.AreEqual(c.dummy, result); + } + + private static ThisCallNative.C CreateCWithManagedVTable(float width, float height) + { + return new ThisCallNative.C + { + vtable = ManagedVtable, + dummy = ThisCallNative.E.Value, + width = width, + height = height + }; + } + + private static ThisCallNative.C.VtableLayout* managedVtable; + + private static ThisCallNative.C.VtableLayout* ManagedVtable + { + get + { + if (managedVtable == null) + { + managedVtable = (ThisCallNative.C.VtableLayout*)Marshal.AllocHGlobal(sizeof(ThisCallNative.C.VtableLayout)); + managedVtable->getSize = Marshal.GetFunctionPointerForDelegate( + (ThisCallNative.GetSizeFn)((ThisCallNative.C* c) => new ThisCallNative.SizeF { width = c->width, height = c->height} )); + managedVtable->getWidth = Marshal.GetFunctionPointerForDelegate( + (ThisCallNative.GetWidthFn)((ThisCallNative.C* c) => new ThisCallNative.Width { width = c->width} )); + managedVtable->getHeightAsInt = Marshal.GetFunctionPointerForDelegate( + (ThisCallNative.GetHeightAsIntFn)((ThisCallNative.C* c) => new ThisCallNative.IntWrapper { i = (int)c->height} )); + managedVtable->getE = Marshal.GetFunctionPointerForDelegate( + (ThisCallNative.GetEFn)((ThisCallNative.C* c) => c->dummy )); + } + return managedVtable; + } + } } diff --git a/src/tests/Interop/StructMarshalling/PInvoke/MarshalStructAsLayoutExp.cs b/src/tests/Interop/StructMarshalling/PInvoke/MarshalStructAsLayoutExp.cs index 9cffdfaccc475..fb2d2cf5cde7a 100644 --- a/src/tests/Interop/StructMarshalling/PInvoke/MarshalStructAsLayoutExp.cs +++ b/src/tests/Interop/StructMarshalling/PInvoke/MarshalStructAsLayoutExp.cs @@ -211,6 +211,8 @@ public static int Main() #endregion [DllImport("MarshalStructAsParam")] static extern LongStructPack16Explicit GetLongStruct(long l1, long l2); + [DllImport("MarshalStructAsParam")] + static extern IntStructPack8Explicit GetIntStruct(int i, int j); [DllImport("MarshalStructAsParam")] static extern bool MarshalStructAsParam_AsExpByValOverlappingLongFloat(OverlappingLongFloat str, long expected); @@ -1680,5 +1682,12 @@ private static void RunMarshalStructAsReturn() Console.WriteLine("Failed to return LongStructPack16Explicit."); failures++; } + + IntStructPack8Explicit intStruct = GetIntStruct(12345, 678910); + if(intStruct.i1 != 12345 || intStruct.i2 != 678910) + { + Console.WriteLine("Failed to return IntStructPack8Explicit."); + failures++; + } } } diff --git a/src/tests/Interop/StructMarshalling/PInvoke/MarshalStructAsParamDLL.cpp b/src/tests/Interop/StructMarshalling/PInvoke/MarshalStructAsParamDLL.cpp index 74ab359cd67b5..a7f5d17de6c48 100644 --- a/src/tests/Interop/StructMarshalling/PInvoke/MarshalStructAsParamDLL.cpp +++ b/src/tests/Interop/StructMarshalling/PInvoke/MarshalStructAsParamDLL.cpp @@ -1263,6 +1263,11 @@ extern "C" DLL_EXPORT MultipleBools STDMETHODCALLTYPE GetBools(BOOL b1, BOOL b2) return {b1, b2}; } +extern "C" DLL_EXPORT IntStructPack8Explicit STDMETHODCALLTYPE GetIntStruct(int i, int j) +{ + return {i, j}; +} + using IntIntDelegate = int (STDMETHODCALLTYPE*)(int a); struct DelegateFieldMarshaling diff --git a/src/tests/issues.targets b/src/tests/issues.targets index ba9cc1368ac47..1e060bb592a2f 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -414,6 +414,9 @@ https://github.com/dotnet/runtime/issues/12299 + + Thiscall not supported on Windows ARM32. + https://github.com/dotnet/runtime/issues/12979 From 78ef7bfd1d85b23f571c1ab4ad39c7360afe1030 Mon Sep 17 00:00:00 2001 From: Eric Erhardt Date: Thu, 3 Dec 2020 14:34:52 -0600 Subject: [PATCH 04/87] Remove FEATURE_COMPILED_XSL define (#45553) * Remove FEATURE_COMPILED_XSL define This is always defined, so there is no need in this define. In the past, it was not defined for UAP builds. * Remove unused resource --- .../src/Resources/Strings.resx | 5 +-- .../src/System.Private.Xml.csproj | 1 - .../System/Xml/Xsl/Runtime/XmlQueryRuntime.cs | 21 +++--------- .../Xml/Xsl/Runtime/XmlQueryStaticData.cs | 5 --- .../src/System/Xml/Xsl/Xslt/Compiler.cs | 7 ---- .../src/System/Xml/Xsl/Xslt/Scripts.cs | 13 -------- .../System/Xml/Xslt/XslCompiledTransform.cs | 32 ------------------- 7 files changed, 6 insertions(+), 78 deletions(-) diff --git a/src/libraries/System.Private.Xml/src/Resources/Strings.resx b/src/libraries/System.Private.Xml/src/Resources/Strings.resx index f8cf992a22aed..d8fe00461bf78 100644 --- a/src/libraries/System.Private.Xml/src/Resources/Strings.resx +++ b/src/libraries/System.Private.Xml/src/Resources/Strings.resx @@ -3393,9 +3393,6 @@ Access to directory {0} is denied. The process under which XmlSerializer is running does not have sufficient permission to access the directory. - - Compilation of XSLT is not supported on this platform. - File or assembly name '{0}', or one of its dependencies, was not found. @@ -3456,4 +3453,4 @@ Usage: dotnet {0} [--assembly <assembly file path>] [--type <type name& Compiling JScript/CSharp scripts is not supported - \ No newline at end of file + diff --git a/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj b/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj index 89f0879720374..9585e677104d1 100644 --- a/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj +++ b/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj @@ -2,7 +2,6 @@ System.Xml true - $(DefineConstants);FEATURE_COMPILED_XSL $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) enable diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Runtime/XmlQueryRuntime.cs b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Runtime/XmlQueryRuntime.cs index 0575e803f3ddf..ce2e8f1ccbe9b 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Runtime/XmlQueryRuntime.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Runtime/XmlQueryRuntime.cs @@ -2,25 +2,16 @@ // The .NET Foundation licenses this file to you under the MIT license. #nullable disable -using System; -using System.IO; -using System.Xml; -using System.Xml.XPath; -using System.Xml.Schema; using System.Collections; using System.Collections.Generic; +using System.ComponentModel; using System.Diagnostics; -using System.Text; using System.Globalization; using System.Reflection; -using System.Reflection.Emit; -using System.Xml.Xsl.Qil; -#if FEATURE_COMPILED_XSL +using System.Xml.Schema; +using System.Xml.XPath; using System.Xml.Xsl.IlGen; -#endif -using System.ComponentModel; using MS.Internal.Xml.XPath; -using System.Runtime.Versioning; namespace System.Xml.Xsl.Runtime { @@ -494,10 +485,9 @@ public object ChangeTypeXsltArgument(int indexType, object value, Type destinati /// internal object ChangeTypeXsltArgument(XmlQueryType xmlType, object value, Type destinationType) { -#if FEATURE_COMPILED_XSL Debug.Assert(XmlILTypeHelper.GetStorageType(xmlType).IsAssignableFrom(value.GetType()), "Values passed to ChangeTypeXsltArgument should be in ILGen's default Clr representation."); -#endif + Debug.Assert(destinationType == XsltConvert.ObjectType || !destinationType.IsAssignableFrom(value.GetType()), "No need to call ChangeTypeXsltArgument since value is already assignable to destinationType " + destinationType); @@ -695,9 +685,8 @@ internal object ChangeTypeXsltResult(XmlQueryType xmlType, object value) } } -#if FEATURE_COMPILED_XSL Debug.Assert(XmlILTypeHelper.GetStorageType(xmlType).IsAssignableFrom(value.GetType()), "Xml type " + xmlType + " is not represented in ILGen as " + value.GetType().Name); -#endif + return value; } diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Runtime/XmlQueryStaticData.cs b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Runtime/XmlQueryStaticData.cs index 0cd1738310d88..6f0fd48703b77 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Runtime/XmlQueryStaticData.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Runtime/XmlQueryStaticData.cs @@ -5,10 +5,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.IO; -using System.Reflection; -#if FEATURE_COMPILED_XSL using System.Xml.Xsl.IlGen; -#endif using System.Xml.Xsl.Qil; namespace System.Xml.Xsl.Runtime @@ -35,7 +32,6 @@ internal class XmlQueryStaticData private readonly string[] _globalNames; private readonly EarlyBoundInfo[] _earlyBound; -#if FEATURE_COMPILED_XSL /// /// Constructor. /// @@ -70,7 +66,6 @@ public XmlQueryStaticData(XmlWriterSettings defaultWriterSettings, IList /// Deserialize XmlQueryStaticData object from a byte array. diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Xslt/Compiler.cs b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Xslt/Compiler.cs index 1105a03cae9ce..b195085b3a4e7 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Xslt/Compiler.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Xslt/Compiler.cs @@ -6,16 +6,9 @@ using System.Diagnostics; using System.Xml.XPath; using System.Xml.Xsl.Qil; -using System.Xml.Xsl.XPath; -using System.Runtime.Versioning; namespace System.Xml.Xsl.Xslt { - using TypeFactory = XmlQueryTypeFactory; -#if DEBUG && FEATURE_COMPILED_XSL - using XmlILTrace = System.Xml.Xsl.IlGen.XmlILTrace; -#endif - internal enum XslVersion { Version10 = 0, diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Xslt/Scripts.cs b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Xslt/Scripts.cs index 1b09d4150b62e..cbc8e315b3a92 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Xslt/Scripts.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Xslt/Scripts.cs @@ -5,20 +5,7 @@ //------------------------------------------------------------------------------ using System.Collections.Generic; -using System.Collections.Specialized; -using System.Configuration; -using System.Diagnostics; -using System.Globalization; -using System.IO; -using System.Reflection; -using System.Runtime.InteropServices; -using System.Text.RegularExpressions; -using System.Threading; -#if FEATURE_COMPILED_XSL -using System.Xml.Xsl.IlGen; -#endif using System.Xml.Xsl.Runtime; -using System.Runtime.Versioning; namespace System.Xml.Xsl.Xslt { diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Xslt/XslCompiledTransform.cs b/src/libraries/System.Private.Xml/src/System/Xml/Xslt/XslCompiledTransform.cs index f90aadcb9eb70..6ed5b7ace1a74 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Xslt/XslCompiledTransform.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Xslt/XslCompiledTransform.cs @@ -40,10 +40,8 @@ namespace System.Xml.Xsl public sealed class XslCompiledTransform { -#if FEATURE_COMPILED_XSL // Version for GeneratedCodeAttribute private static readonly Version? s_version = typeof(XslCompiledTransform).Assembly.GetName().Version; -#endif // Options of compilation private readonly bool _enableDebug; @@ -53,10 +51,8 @@ public sealed class XslCompiledTransform private XmlWriterSettings? _outputSettings; private QilExpression? _qil; -#if FEATURE_COMPILED_XSL // Executable command for the compiled stylesheet private XmlILCommand? _command; -#endif public XslCompiledTransform() { } @@ -73,9 +69,7 @@ private void Reset() _compilerErrorColl = null; _outputSettings = null; _qil = null; -#if FEATURE_COMPILED_XSL _command = null; -#endif } /// @@ -192,13 +186,9 @@ private void CompileXsltToQil(object stylesheet, XsltSettings settings, XmlResol private void CompileQilToMsil(XsltSettings settings) { -#if FEATURE_COMPILED_XSL _command = new XmlILGenerator().Generate(_qil!, /*typeBuilder:*/null)!; _outputSettings = _command.StaticData.DefaultWriterSettings; _qil = null; -#else - throw new PlatformNotSupportedException(SR.Xslt_NotSupported); -#endif } //------------------------------------------------ @@ -207,7 +197,6 @@ private void CompileQilToMsil(XsltSettings settings) public void Load(Type compiledStylesheet) { -#if FEATURE_COMPILED_XSL Reset(); if (compiledStylesheet == null) throw new ArgumentNullException(nameof(compiledStylesheet)); @@ -247,14 +236,10 @@ public void Load(Type compiledStylesheet) // Throw an exception if the command was not loaded if (_command == null) throw new ArgumentException(SR.Format(SR.Xslt_NotCompiledStylesheet, compiledStylesheet.FullName), nameof(compiledStylesheet)); -#else - throw new PlatformNotSupportedException(SR.Xslt_NotSupported); -#endif } public void Load(MethodInfo executeMethod, byte[] queryData, Type[]? earlyBoundTypes) { -#if FEATURE_COMPILED_XSL Reset(); if (executeMethod == null) @@ -268,9 +253,6 @@ public void Load(MethodInfo executeMethod, byte[] queryData, Type[]? earlyBoundT Delegate delExec = (dm != null) ? dm.CreateDelegate(typeof(ExecuteDelegate)) : executeMethod.CreateDelegate(typeof(ExecuteDelegate)); _command = new XmlILCommand((ExecuteDelegate)delExec, new XmlQueryStaticData(queryData, earlyBoundTypes)); _outputSettings = _command.StaticData.DefaultWriterSettings; -#else - throw new PlatformNotSupportedException(SR.Xslt_NotSupported); -#endif } //------------------------------------------------ @@ -417,26 +399,18 @@ public void Transform(string inputUri, string resultsFile) // It's OK to suppress the SxS warning. public void Transform(XmlReader input, XsltArgumentList? arguments, XmlWriter results, XmlResolver? documentResolver) { -#if FEATURE_COMPILED_XSL CheckArguments(input, results); CheckCommand(); _command.Execute((object)input, documentResolver, arguments, results); -#else - throw new PlatformNotSupportedException(SR.Xslt_NotSupported); -#endif } // SxS: This method does not take any resource name and does not expose any resources to the caller. // It's OK to suppress the SxS warning. public void Transform(IXPathNavigable input, XsltArgumentList? arguments, XmlWriter results, XmlResolver? documentResolver) { -#if FEATURE_COMPILED_XSL CheckArguments(input, results); CheckCommand(); _command.Execute((object)input.CreateNavigator()!, documentResolver, arguments, results); -#else - throw new PlatformNotSupportedException(SR.Xslt_NotSupported); -#endif } //------------------------------------------------ @@ -464,14 +438,10 @@ private static void CheckArguments(string inputUri, object results) [MemberNotNull(nameof(_command))] private void CheckCommand() { -#if FEATURE_COMPILED_XSL if (_command == null) { throw new InvalidOperationException(SR.Xslt_NoStylesheetLoaded); } -#else - throw new InvalidOperationException(SR.Xslt_NoStylesheetLoaded); -#endif } private static XmlResolver CreateDefaultResolver() @@ -503,12 +473,10 @@ private void TestGenerate(XsltSettings settings) CompileQilToMsil(settings); } -#if FEATURE_COMPILED_XSL private void Transform(string inputUri, XsltArgumentList? arguments, XmlWriter results, XmlResolver documentResolver) { _command!.Execute(inputUri, documentResolver, arguments, results); } -#endif } #endif // ! HIDE_XSL } From 7520ca3107cf30fb838a604c3d36f1d6dee5f789 Mon Sep 17 00:00:00 2001 From: Jan Vorlicek Date: Thu, 3 Dec 2020 21:38:32 +0100 Subject: [PATCH 05/87] Fix covariant returns with generic return types (#45275) * Fix covariant returns with generic return types When a covariant return type was an uninstantiated generic type, the ClassLoader::IsCompatibleWith was not working properly. In debug builds, it was asserting because there was no MethodTable for that type and in release builds, it resulted in ExecutionEngineException or an internal CLR error. This change fixes it by using TypeHandle::CanCastTo instead of MethodTable::CanCastTo and adds a regression test for two cases where the problem was observed (Assembly.GetTypes() and creating an instance of a type with a covariant return with a problematic kind of type). * Fix issue 45082 too There were two issues. First, the ClassLoader::ValidateMethodsWithCovariantReturnTypes was called before typeHnd.DoFullyLoad and that resulted in an assert down the call chain of TypeDesc::CanCastTo due to a wrong load level. Second, the SigTypeContext generation for the current MD in the ClassLoader::ValidateMethodsWithCovariantReturnTypes requires the same change for class instantiation as the one that we had for the parent MD. * Fix the issue 45082 in a correct way The call to ClassLoader::ValidateMethodsWithCovariantReturnTypes is now in MethodTable::DoFullyLoad. I have also added a test case that verifies a case that David Wrighton has suggested offline, where there are 3 types... A, B and C. C derives from B which derives from A. B has a bad override which should produce an error. Then, cause C to be fully loaded without otherwise triggering a load of B. --- src/coreclr/src/vm/class.cpp | 35 ++++++------ src/coreclr/src/vm/clsload.cpp | 6 --- src/coreclr/src/vm/methodtable.cpp | 6 +++ src/coreclr/src/vm/typehandle.cpp | 4 +- .../UnitTest/CompatibleWithTest.il | 41 +++++++++++++- .../coreclr/GitHub_45037/test45037.cs | 54 +++++++++++++++++++ .../coreclr/GitHub_45037/test45037.csproj | 10 ++++ .../coreclr/GitHub_45082/test45082.cs | 26 +++++++++ .../coreclr/GitHub_45082/test45082.csproj | 10 ++++ 9 files changed, 167 insertions(+), 25 deletions(-) create mode 100644 src/tests/Regressions/coreclr/GitHub_45037/test45037.cs create mode 100644 src/tests/Regressions/coreclr/GitHub_45037/test45037.csproj create mode 100644 src/tests/Regressions/coreclr/GitHub_45082/test45082.cs create mode 100644 src/tests/Regressions/coreclr/GitHub_45082/test45082.csproj diff --git a/src/coreclr/src/vm/class.cpp b/src/coreclr/src/vm/class.cpp index bb7725d63545d..4ce15e98d36a7 100644 --- a/src/coreclr/src/vm/class.cpp +++ b/src/coreclr/src/vm/class.cpp @@ -1109,20 +1109,18 @@ bool ClassLoader::IsCompatibleWith(TypeHandle hType1, TypeHandle hType2) return false; } - _ASSERTE(hType1.GetMethodTable() != NULL); - _ASSERTE(hType2.GetMethodTable() != NULL); - - // Nullable can be cast to T, but this is not compatible according to ECMA I.8.7.1 - bool isCastFromNullableOfTtoT = hType1.GetMethodTable()->IsNullable() && hType2.IsEquivalentTo(hType1.GetMethodTable()->GetInstantiation()[0]); - if (isCastFromNullableOfTtoT) + MethodTable* pMT1 = hType1.GetMethodTable(); + if (pMT1 != NULL) { - return false; + // Nullable can be cast to T, but this is not compatible according to ECMA I.8.7.1 + bool isCastFromNullableOfTtoT = pMT1->IsNullable() && hType2.IsEquivalentTo(pMT1->GetInstantiation()[0]); + if (isCastFromNullableOfTtoT) + { + return false; + } } - { - GCX_COOP(); - return hType2.GetMethodTable()->CanCastTo(hType1.GetMethodTable(), NULL); - } + return hType2.CanCastTo(hType1, NULL); } /*static*/ @@ -1171,16 +1169,21 @@ void ClassLoader::ValidateMethodsWithCovariantReturnTypes(MethodTable* pMT) if (!pMD->RequiresCovariantReturnTypeChecking() && !pParentMD->RequiresCovariantReturnTypeChecking()) continue; - Instantiation classInst = pParentMD->GetClassInstantiation(); - if (ClassLoader::IsTypicalSharedInstantiation(classInst)) + Instantiation parentClassInst = pParentMD->GetClassInstantiation(); + if (ClassLoader::IsTypicalSharedInstantiation(parentClassInst)) { - classInst = pParentMT->GetInstantiation(); + parentClassInst = pParentMT->GetInstantiation(); } - SigTypeContext context1(classInst, pMD->GetMethodInstantiation()); + SigTypeContext context1(parentClassInst, pMD->GetMethodInstantiation()); MetaSig methodSig1(pParentMD); TypeHandle hType1 = methodSig1.GetReturnProps().GetTypeHandleThrowing(pParentMD->GetModule(), &context1, ClassLoader::LoadTypesFlag::LoadTypes, CLASS_LOAD_EXACTPARENTS); - SigTypeContext context2(pMD); + Instantiation classInst = pMD->GetClassInstantiation(); + if (ClassLoader::IsTypicalSharedInstantiation(classInst)) + { + classInst = pMT->GetInstantiation(); + } + SigTypeContext context2(classInst, pMD->GetMethodInstantiation()); MetaSig methodSig2(pMD); TypeHandle hType2 = methodSig2.GetReturnProps().GetTypeHandleThrowing(pMD->GetModule(), &context2, ClassLoader::LoadTypesFlag::LoadTypes, CLASS_LOAD_EXACTPARENTS); diff --git a/src/coreclr/src/vm/clsload.cpp b/src/coreclr/src/vm/clsload.cpp index a72d151ffe7ae..a7152d3400a31 100644 --- a/src/coreclr/src/vm/clsload.cpp +++ b/src/coreclr/src/vm/clsload.cpp @@ -3531,17 +3531,11 @@ static void PushFinalLevels(TypeHandle typeHnd, ClassLoadLevel targetLevel, cons // and on its transitive dependencies. if (targetLevel == CLASS_LOADED) { - if (!typeHnd.IsTypeDesc()) - { - ClassLoader::ValidateMethodsWithCovariantReturnTypes(typeHnd.AsMethodTable()); - } - DFLPendingList pendingList; BOOL fBailed = FALSE; typeHnd.DoFullyLoad(NULL, CLASS_LOADED, &pendingList, &fBailed, pInstContext); - // In the case of a circular dependency, one or more types will have // had their promotions deferred. // diff --git a/src/coreclr/src/vm/methodtable.cpp b/src/coreclr/src/vm/methodtable.cpp index d0d0e2f9d5cf9..24b93bcd06506 100644 --- a/src/coreclr/src/vm/methodtable.cpp +++ b/src/coreclr/src/vm/methodtable.cpp @@ -5282,6 +5282,12 @@ void MethodTable::DoFullyLoad(Generics::RecursionGraph * const pVisited, const CONSISTENCY_CHECK(IsRestored_NoLogging()); CONSISTENCY_CHECK(!HasApproxParent()); + if ((level == CLASS_LOADED) && !IsSharedByGenericInstantiations()) + { + _ASSERTE(GetLoadLevel() >= CLASS_DEPENDENCIES_LOADED); + ClassLoader::ValidateMethodsWithCovariantReturnTypes(this); + } + if (IsArray()) { Generics::RecursionGraph newVisited(pVisited, TypeHandle(this)); diff --git a/src/coreclr/src/vm/typehandle.cpp b/src/coreclr/src/vm/typehandle.cpp index 7883071fee28e..8b494f07eb2d0 100644 --- a/src/coreclr/src/vm/typehandle.cpp +++ b/src/coreclr/src/vm/typehandle.cpp @@ -560,7 +560,7 @@ BOOL TypeHandle::IsBoxedAndCanCastTo(TypeHandle type, TypeHandlePairList *pPairL GC_TRIGGERS; INJECT_FAULT(COMPlusThrowOM()); - LOADS_TYPE(CLASS_LOAD_EXACTPARENTS); + LOADS_TYPE(CLASS_DEPENDENCIES_LOADED); // The caller should check for an exact match. // That will cover the cast of a (unboxed) valuetype to itself. @@ -607,7 +607,7 @@ BOOL TypeHandle::CanCastTo(TypeHandle type, TypeHandlePairList *pVisited) const MODE_ANY; INJECT_FAULT(COMPlusThrowOM()); - LOADS_TYPE(CLASS_LOAD_EXACTPARENTS); + LOADS_TYPE(CLASS_DEPENDENCIES_LOADED); } CONTRACTL_END diff --git a/src/tests/Loader/classloader/MethodImpl/CovariantReturns/UnitTest/CompatibleWithTest.il b/src/tests/Loader/classloader/MethodImpl/CovariantReturns/UnitTest/CompatibleWithTest.il index eafb6b8920237..75e580398676b 100644 --- a/src/tests/Loader/classloader/MethodImpl/CovariantReturns/UnitTest/CompatibleWithTest.il +++ b/src/tests/Loader/classloader/MethodImpl/CovariantReturns/UnitTest/CompatibleWithTest.il @@ -124,6 +124,17 @@ } } +.class public auto ansi beforefieldinit D2 extends C2 +{ + .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { ret } + + .method public hidebysig newslot virtual instance int32 MD2() + { + ldc.i4.0 + ret + } +} + .class public auto ansi beforefieldinit C3 extends C1 { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { ret } @@ -491,6 +502,16 @@ ret } + .method public static void RunTestD2() noinlining + { + newobj instance void class D2::.ctor() + callvirt instance int32 class D2::MD2() + pop + ldstr "Unexpectedly succeeded" + call void [System.Console]System.Console::WriteLine(string) + ret + } + .method public static void RunTestC3() noinlining { newobj instance void class C3::.ctor() @@ -796,6 +817,24 @@ CC2: call void Main::RunTestC2() ldc.i4.0 stloc.0 + leave.s CD2 + } + catch [mscorlib]System.TypeLoadException + { + ldstr "Caught expected TypeLoadException:" + call void [System.Console]System.Console::WriteLine(string) + call void [System.Console]System.Console::WriteLine(object) + leave.s CD2 + } +CD2: + ldstr "D2: call non-overriding method MD2 when base class of D2 has invalid covariant override" + call void [System.Console]System.Console::WriteLine(string) + + .try + { + call void Main::RunTestD2() + ldc.i4.0 + stloc.0 leave.s CC3 } catch [mscorlib]System.TypeLoadException @@ -804,7 +843,7 @@ CC2: call void [System.Console]System.Console::WriteLine(string) call void [System.Console]System.Console::WriteLine(object) leave.s CC3 - } + } CC3: ldstr "C3: override IList by int32[]" call void [System.Console]System.Console::WriteLine(string) diff --git a/src/tests/Regressions/coreclr/GitHub_45037/test45037.cs b/src/tests/Regressions/coreclr/GitHub_45037/test45037.cs new file mode 100644 index 0000000000000..61dfeedec558d --- /dev/null +++ b/src/tests/Regressions/coreclr/GitHub_45037/test45037.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Reflection; + +public abstract class Base +{ + public virtual T Get() => throw new NotImplementedException(); +} + +public sealed class CovariantReturn : Base +{ + public override string Get() => throw new NotImplementedException(); +} + +public abstract class ABase +{ + public abstract object this[int index] { get; } +} + +public sealed class Concrete : ABase + where T : class +{ + public override T this[int index] + { + get + { + throw null; + } + } +} + +class Parent +{ + public virtual object Value { get; } +} + +class Child : Parent where T : class +{ + public override T Value { get => (T)base.Value; } +} + +class Foo { } + +class Program +{ + static int Main() + { + Type[] t = Assembly.GetExecutingAssembly().GetTypes(); + new Child(); + new CovariantReturn(); + + return 100; + } +} diff --git a/src/tests/Regressions/coreclr/GitHub_45037/test45037.csproj b/src/tests/Regressions/coreclr/GitHub_45037/test45037.csproj new file mode 100644 index 0000000000000..4a1f50c8346cf --- /dev/null +++ b/src/tests/Regressions/coreclr/GitHub_45037/test45037.csproj @@ -0,0 +1,10 @@ + + + Exe + BuildAndRun + 1 + + + + + diff --git a/src/tests/Regressions/coreclr/GitHub_45082/test45082.cs b/src/tests/Regressions/coreclr/GitHub_45082/test45082.cs new file mode 100644 index 0000000000000..e035fa3475f34 --- /dev/null +++ b/src/tests/Regressions/coreclr/GitHub_45082/test45082.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; + +public abstract class AComponent { } +public class Component : AComponent { } + +public abstract class Abstract +{ + public abstract IReadOnlyList New { get; } +} + +public sealed class Concrete : Abstract + where T : AComponent +{ + public override IReadOnlyList New => throw null; +} + +class Program +{ + static int Main() + { + new Concrete(); + + return 100; + } +} diff --git a/src/tests/Regressions/coreclr/GitHub_45082/test45082.csproj b/src/tests/Regressions/coreclr/GitHub_45082/test45082.csproj new file mode 100644 index 0000000000000..c025440f3f9d9 --- /dev/null +++ b/src/tests/Regressions/coreclr/GitHub_45082/test45082.csproj @@ -0,0 +1,10 @@ + + + Exe + BuildAndRun + 1 + + + + + From 4198f718650fb027282fdc6ab4f91115f11b83ef Mon Sep 17 00:00:00 2001 From: Yujin Lee <51031771+focusonmx@users.noreply.github.com> Date: Fri, 4 Dec 2020 06:16:16 +0900 Subject: [PATCH 06/87] Removed Serialization tests for SQLClient types (#42016) * Remove Serialization tests for SQLClient types * Deleted reference to System.Data.SqlClient Co-authored-by: Jan Kotas --- .../tests/BinaryFormatterTestData.cs | 39 ------------------- .../tests/BinaryFormatterTests.cs | 5 +-- .../tests/EqualityExtensions.cs | 11 +----- ...time.Serialization.Formatters.Tests.csproj | 5 --- 4 files changed, 4 insertions(+), 56 deletions(-) diff --git a/src/libraries/System.Runtime.Serialization.Formatters/tests/BinaryFormatterTestData.cs b/src/libraries/System.Runtime.Serialization.Formatters/tests/BinaryFormatterTestData.cs index 22a9f47e54a9f..ad4d0aef0dd1e 100644 --- a/src/libraries/System.Runtime.Serialization.Formatters/tests/BinaryFormatterTestData.cs +++ b/src/libraries/System.Runtime.Serialization.Formatters/tests/BinaryFormatterTestData.cs @@ -15,7 +15,6 @@ using System.Configuration.Provider; using System.Data; using System.Data.Odbc; -using System.Data.SqlClient; using System.Data.SqlTypes; using System.Diagnostics.Contracts; using System.Diagnostics.Tracing; @@ -588,14 +587,6 @@ public static IEnumerable SerializableObjects() yield return new object[] { PopulateException(odbcException, setHResult: false), new TypeSerializableValue[] { new TypeSerializableValue("AAEAAAD/////AQAAAAAAAAAMAgAAAE5TeXN0ZW0uRGF0YSwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAAB5TeXN0ZW0uRGF0YS5PZGJjLk9kYmNFeGNlcHRpb24OAAAACUNsYXNzTmFtZQdNZXNzYWdlBERhdGEOSW5uZXJFeGNlcHRpb24HSGVscFVSTBBTdGFja1RyYWNlU3RyaW5nFlJlbW90ZVN0YWNrVHJhY2VTdHJpbmcQUmVtb3RlU3RhY2tJbmRleA9FeGNlcHRpb25NZXRob2QHSFJlc3VsdAZTb3VyY2UNV2F0c29uQnVja2V0cwtvZGJjUmV0Y29kZQpvZGJjRXJyb3JzAQEDAwEBAQABAAEHBAQpU3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwQU3lzdGVtLkV4Y2VwdGlvbggIAh9TeXN0ZW0uRGF0YS5PZGJjLk9EQkMzMitSRVRDT0RFAgAAACRTeXN0ZW0uRGF0YS5PZGJjLk9kYmNFcnJvckNvbGxlY3Rpb24CAAAAAgAAAAYDAAAAHlN5c3RlbS5EYXRhLk9kYmMuT2RiY0V4Y2VwdGlvbgYEAAAAB21lc3NhZ2UJBQAAAAoGBgAAABlodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tBgcAAAAUU3RhY2tUcmFjZSBzdHJpbmcuLi4GCAAAABtSZW1vdGUgU3RhY2tUcmFjZSBzdHJpbmcuLi4AAAAACjcZE4AGCQAAABdFeGNlcHRpb25fQ2xhc3NfU2FtcGxlcwoF9v///x9TeXN0ZW0uRGF0YS5PZGJjLk9EQkMzMitSRVRDT0RFAQAAAAd2YWx1ZV9fAAgCAAAAAAAAAAkLAAAABAUAAAApU3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwDAAAABGhlYWQHdmVyc2lvbgVjb3VudAMAADhTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbCtEaWN0aW9uYXJ5Tm9kZQgICQwAAAACAAAAAgAAAAULAAAAJFN5c3RlbS5EYXRhLk9kYmMuT2RiY0Vycm9yQ29sbGVjdGlvbgEAAAAGX2l0ZW1zAxxTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0AgAAAAkNAAAABAwAAAA4U3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwrRGljdGlvbmFyeU5vZGUDAAAAA2tleQV2YWx1ZQRuZXh0AgIDOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlBg4AAAAGc2VjcmV0CAEBCQ8AAAAEDQAAABxTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0AwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24FAAAICAkQAAAAAQAAAAEAAAABDwAAAAwAAAAICAEAAAAGEQAAAANvbmUKEBAAAAAEAAAACRIAAAANAwUSAAAAGlN5c3RlbS5EYXRhLk9kYmMuT2RiY0Vycm9yBAAAAAhfbWVzc2FnZQZfc3RhdGUMX25hdGl2ZWVycm9yB19zb3VyY2UBAQABCAIAAAAJBAAAAAYUAAAABXN0YXRlAAAAAAYVAAAABnNvdXJjZQs=", TargetFrameworkMoniker.netcoreapp20), new TypeSerializableValue("AAEAAAD/////AQAAAAAAAAAMAgAAAE5TeXN0ZW0uRGF0YSwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAAB5TeXN0ZW0uRGF0YS5PZGJjLk9kYmNFeGNlcHRpb24OAAAAC29kYmNSZXRjb2RlCm9kYmNFcnJvcnMJQ2xhc3NOYW1lB01lc3NhZ2UERGF0YQ5Jbm5lckV4Y2VwdGlvbgdIZWxwVVJMEFN0YWNrVHJhY2VTdHJpbmcWUmVtb3RlU3RhY2tUcmFjZVN0cmluZxBSZW1vdGVTdGFja0luZGV4D0V4Y2VwdGlvbk1ldGhvZAdIUmVzdWx0BlNvdXJjZQ1XYXRzb25CdWNrZXRzBAQBAQMDAQEBAAEAAQcfU3lzdGVtLkRhdGEuT2RiYy5PREJDMzIrUkVUQ09ERQIAAAAkU3lzdGVtLkRhdGEuT2RiYy5PZGJjRXJyb3JDb2xsZWN0aW9uAgAAAClTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbBBTeXN0ZW0uRXhjZXB0aW9uCAgCAgAAAAX9////H1N5c3RlbS5EYXRhLk9kYmMuT0RCQzMyK1JFVENPREUBAAAAB3ZhbHVlX18ACAIAAAAAAAAACQQAAAAGBQAAAB5TeXN0ZW0uRGF0YS5PZGJjLk9kYmNFeGNlcHRpb24GBgAAAAdtZXNzYWdlCQcAAAAKBggAAAAZaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbQYJAAAAFFN0YWNrVHJhY2Ugc3RyaW5nLi4uBgoAAAAbUmVtb3RlIFN0YWNrVHJhY2Ugc3RyaW5nLi4uAAAAAAo3GROABgsAAAAXRXhjZXB0aW9uX0NsYXNzX1NhbXBsZXMKBQQAAAAkU3lzdGVtLkRhdGEuT2RiYy5PZGJjRXJyb3JDb2xsZWN0aW9uAQAAAAZfaXRlbXMDHFN5c3RlbS5Db2xsZWN0aW9ucy5BcnJheUxpc3QCAAAACQwAAAAEBwAAAClTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbAMAAAAEaGVhZAd2ZXJzaW9uBWNvdW50AwAAOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlCAgJDQAAAAIAAAACAAAABAwAAAAcU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdAMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBQAACAgJDgAAAAEAAAABAAAABA0AAAA4U3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwrRGljdGlvbmFyeU5vZGUDAAAAA2tleQV2YWx1ZQRuZXh0AgIDOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlBg8AAAAGc2VjcmV0CAEBCRAAAAAQDgAAAAQAAAAJEQAAAA0DARAAAAANAAAACAgBAAAABhIAAAADb25lCgURAAAAGlN5c3RlbS5EYXRhLk9kYmMuT2RiY0Vycm9yBAAAAAhfbWVzc2FnZQZfc3RhdGUMX25hdGl2ZWVycm9yB19zb3VyY2UBAQABCAIAAAAJBgAAAAYUAAAABXN0YXRlAAAAAAYVAAAABnNvdXJjZQs=", TargetFrameworkMoniker.netfx461) } }; } - if (!PlatformDetection.IsBrowser) // System.Data.SqlClient doesn't work on Browser - { - OperationAbortedException operationAbortedException = (OperationAbortedException)typeof(OperationAbortedException) - .GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { typeof(string), typeof(Exception) }, null) - .Invoke(new object[] { "message", exception }); - yield return new object[] { PopulateException(operationAbortedException), new TypeSerializableValue[] { new TypeSerializableValue("AAEAAAD/////AQAAAAAAAAAMAgAAAE5TeXN0ZW0uRGF0YSwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACVTeXN0ZW0uRGF0YS5PcGVyYXRpb25BYm9ydGVkRXhjZXB0aW9uDAAAAAlDbGFzc05hbWUHTWVzc2FnZQREYXRhDklubmVyRXhjZXB0aW9uB0hlbHBVUkwQU3RhY2tUcmFjZVN0cmluZxZSZW1vdGVTdGFja1RyYWNlU3RyaW5nEFJlbW90ZVN0YWNrSW5kZXgPRXhjZXB0aW9uTWV0aG9kB0hSZXN1bHQGU291cmNlDVdhdHNvbkJ1Y2tldHMBAQMDAQEBAAEAAQcpU3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwQU3lzdGVtLkV4Y2VwdGlvbggIAgIAAAAGAwAAACVTeXN0ZW0uRGF0YS5PcGVyYXRpb25BYm9ydGVkRXhjZXB0aW9uBgQAAAAHbWVzc2FnZQkFAAAACQYAAAAGBwAAABlodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tBggAAAAUU3RhY2tUcmFjZSBzdHJpbmcuLi4GCQAAABtSZW1vdGUgU3RhY2tUcmFjZSBzdHJpbmcuLi4AAAAACugDAAAGCgAAABdFeGNlcHRpb25fQ2xhc3NfU2FtcGxlcwoEBQAAAClTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbAMAAAAEaGVhZAd2ZXJzaW9uBWNvdW50AwAAOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlCAgJCwAAAAIAAAACAAAABAYAAAAQU3lzdGVtLkV4Y2VwdGlvbgwAAAAJQ2xhc3NOYW1lB01lc3NhZ2UERGF0YQ5Jbm5lckV4Y2VwdGlvbgdIZWxwVVJMEFN0YWNrVHJhY2VTdHJpbmcWUmVtb3RlU3RhY2tUcmFjZVN0cmluZxBSZW1vdGVTdGFja0luZGV4D0V4Y2VwdGlvbk1ldGhvZAdIUmVzdWx0BlNvdXJjZQ1XYXRzb25CdWNrZXRzAQEDAwEBAQABAAEHKVN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsEFN5c3RlbS5FeGNlcHRpb24ICAIGDAAAABBTeXN0ZW0uRXhjZXB0aW9uCQQAAAAJDgAAAAkPAAAACQcAAAAJCAAAAAkJAAAAAAAAAAroAwAACQoAAAAKBAsAAAA4U3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwrRGljdGlvbmFyeU5vZGUDAAAAA2tleQV2YWx1ZQRuZXh0AgIDOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlBhQAAAAGc2VjcmV0CAEBCRUAAAABDgAAAAUAAAAJFgAAAAIAAAACAAAAAQ8AAAAGAAAACQwAAAAGGAAAABdJbm5lciBleGNlcHRpb24gbWVzc2FnZQoKCgoKAAAAAAoAFROACgoBFQAAAAsAAAAICAEAAAAGGQAAAANvbmUKARYAAAALAAAACRQAAAAIAQEJGwAAAAEbAAAACwAAAAgIAQAAAAkZAAAACgs=", TargetFrameworkMoniker.netcoreapp20), new TypeSerializableValue("AAEAAAD/////AQAAAAAAAAAMAgAAAE5TeXN0ZW0uRGF0YSwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACVTeXN0ZW0uRGF0YS5PcGVyYXRpb25BYm9ydGVkRXhjZXB0aW9uDAAAAAlDbGFzc05hbWUHTWVzc2FnZQREYXRhDklubmVyRXhjZXB0aW9uB0hlbHBVUkwQU3RhY2tUcmFjZVN0cmluZxZSZW1vdGVTdGFja1RyYWNlU3RyaW5nEFJlbW90ZVN0YWNrSW5kZXgPRXhjZXB0aW9uTWV0aG9kB0hSZXN1bHQGU291cmNlDVdhdHNvbkJ1Y2tldHMBAQMDAQEBAAEAAQcpU3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwQU3lzdGVtLkV4Y2VwdGlvbggIAgIAAAAGAwAAACVTeXN0ZW0uRGF0YS5PcGVyYXRpb25BYm9ydGVkRXhjZXB0aW9uBgQAAAAHbWVzc2FnZQkFAAAACQYAAAAGBwAAABlodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tBggAAAAUU3RhY2tUcmFjZSBzdHJpbmcuLi4GCQAAABtSZW1vdGUgU3RhY2tUcmFjZSBzdHJpbmcuLi4AAAAACugDAAAGCgAAABdFeGNlcHRpb25fQ2xhc3NfU2FtcGxlcwoEBQAAAClTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbAMAAAAEaGVhZAd2ZXJzaW9uBWNvdW50AwAAOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlCAgJCwAAAAIAAAACAAAABAYAAAAQU3lzdGVtLkV4Y2VwdGlvbgwAAAAJQ2xhc3NOYW1lB01lc3NhZ2UERGF0YQ5Jbm5lckV4Y2VwdGlvbgdIZWxwVVJMEFN0YWNrVHJhY2VTdHJpbmcWUmVtb3RlU3RhY2tUcmFjZVN0cmluZxBSZW1vdGVTdGFja0luZGV4D0V4Y2VwdGlvbk1ldGhvZAdIUmVzdWx0BlNvdXJjZQ1XYXRzb25CdWNrZXRzAQEDAwEBAQABAAEHKVN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsEFN5c3RlbS5FeGNlcHRpb24ICAIGDAAAABBTeXN0ZW0uRXhjZXB0aW9uCQQAAAAJDgAAAAkPAAAACQcAAAAJCAAAAAkJAAAAAAAAAAroAwAACQoAAAAKBAsAAAA4U3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwrRGljdGlvbmFyeU5vZGUDAAAAA2tleQV2YWx1ZQRuZXh0AgIDOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlBhQAAAAGc2VjcmV0CAEBCRUAAAABDgAAAAUAAAAJFgAAAAIAAAACAAAAAQ8AAAAGAAAACQwAAAAGGAAAABdJbm5lciBleGNlcHRpb24gbWVzc2FnZQoKCgoKAAAAAAoAFROACgoBFQAAAAsAAAAICAEAAAAGGQAAAANvbmUKARYAAAALAAAACRQAAAAIAQEJGwAAAAEbAAAACwAAAAgIAQAAAAkZAAAACgs=", TargetFrameworkMoniker.netfx461) } }; - } - var operationCanceledException = new OperationCanceledException("message", exception, new CancellationToken()); yield return new object[] { PopulateException(operationCanceledException), new TypeSerializableValue[] { new TypeSerializableValue("AAEAAAD/////AQAAAAAAAAAEAQAAACFTeXN0ZW0uT3BlcmF0aW9uQ2FuY2VsZWRFeGNlcHRpb24MAAAACUNsYXNzTmFtZQdNZXNzYWdlBERhdGEOSW5uZXJFeGNlcHRpb24HSGVscFVSTBBTdGFja1RyYWNlU3RyaW5nFlJlbW90ZVN0YWNrVHJhY2VTdHJpbmcQUmVtb3RlU3RhY2tJbmRleA9FeGNlcHRpb25NZXRob2QHSFJlc3VsdAZTb3VyY2UNV2F0c29uQnVja2V0cwEBAwMBAQEAAQABBylTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbBBTeXN0ZW0uRXhjZXB0aW9uCAgCBgIAAAAhU3lzdGVtLk9wZXJhdGlvbkNhbmNlbGVkRXhjZXB0aW9uBgMAAAAHbWVzc2FnZQkEAAAACQUAAAAGBgAAABlodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tBgcAAAAUU3RhY2tUcmFjZSBzdHJpbmcuLi4GCAAAABtSZW1vdGUgU3RhY2tUcmFjZSBzdHJpbmcuLi4AAAAACugDAAAGCQAAABdFeGNlcHRpb25fQ2xhc3NfU2FtcGxlcwoEBAAAAClTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbAMAAAAEaGVhZAd2ZXJzaW9uBWNvdW50AwAAOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlCAgJCgAAAAIAAAACAAAABAUAAAAQU3lzdGVtLkV4Y2VwdGlvbgwAAAAJQ2xhc3NOYW1lB01lc3NhZ2UERGF0YQ5Jbm5lckV4Y2VwdGlvbgdIZWxwVVJMEFN0YWNrVHJhY2VTdHJpbmcWUmVtb3RlU3RhY2tUcmFjZVN0cmluZxBSZW1vdGVTdGFja0luZGV4D0V4Y2VwdGlvbk1ldGhvZAdIUmVzdWx0BlNvdXJjZQ1XYXRzb25CdWNrZXRzAQEDAwEBAQABAAEHKVN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsEFN5c3RlbS5FeGNlcHRpb24ICAIGCwAAABBTeXN0ZW0uRXhjZXB0aW9uCQMAAAAJDQAAAAkOAAAACQYAAAAJBwAAAAkIAAAAAAAAAAroAwAACQkAAAAKBAoAAAA4U3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwrRGljdGlvbmFyeU5vZGUDAAAAA2tleQV2YWx1ZQRuZXh0AgIDOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlBhMAAAAGc2VjcmV0CAEBCRQAAAABDQAAAAQAAAAJFQAAAAIAAAACAAAAAQ4AAAAFAAAACQsAAAAGFwAAABdJbm5lciBleGNlcHRpb24gbWVzc2FnZQoKCgoKAAAAAAoAFROACgoBFAAAAAoAAAAICAEAAAAGGAAAAANvbmUKARUAAAAKAAAACRMAAAAIAQEJGgAAAAEaAAAACgAAAAgIAQAAAAkYAAAACgs=", TargetFrameworkMoniker.netcoreapp20), new TypeSerializableValue("AAEAAAD/////AQAAAAAAAAAEAQAAACFTeXN0ZW0uT3BlcmF0aW9uQ2FuY2VsZWRFeGNlcHRpb24MAAAACUNsYXNzTmFtZQdNZXNzYWdlBERhdGEOSW5uZXJFeGNlcHRpb24HSGVscFVSTBBTdGFja1RyYWNlU3RyaW5nFlJlbW90ZVN0YWNrVHJhY2VTdHJpbmcQUmVtb3RlU3RhY2tJbmRleA9FeGNlcHRpb25NZXRob2QHSFJlc3VsdAZTb3VyY2UNV2F0c29uQnVja2V0cwEBAwMBAQEAAQABBylTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbBBTeXN0ZW0uRXhjZXB0aW9uCAgCBgIAAAAhU3lzdGVtLk9wZXJhdGlvbkNhbmNlbGVkRXhjZXB0aW9uBgMAAAAHbWVzc2FnZQkEAAAACQUAAAAGBgAAABlodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tBgcAAAAUU3RhY2tUcmFjZSBzdHJpbmcuLi4GCAAAABtSZW1vdGUgU3RhY2tUcmFjZSBzdHJpbmcuLi4AAAAACugDAAAGCQAAABdFeGNlcHRpb25fQ2xhc3NfU2FtcGxlcwoEBAAAAClTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbAMAAAAEaGVhZAd2ZXJzaW9uBWNvdW50AwAAOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlCAgJCgAAAAIAAAACAAAABAUAAAAQU3lzdGVtLkV4Y2VwdGlvbgwAAAAJQ2xhc3NOYW1lB01lc3NhZ2UERGF0YQ5Jbm5lckV4Y2VwdGlvbgdIZWxwVVJMEFN0YWNrVHJhY2VTdHJpbmcWUmVtb3RlU3RhY2tUcmFjZVN0cmluZxBSZW1vdGVTdGFja0luZGV4D0V4Y2VwdGlvbk1ldGhvZAdIUmVzdWx0BlNvdXJjZQ1XYXRzb25CdWNrZXRzAQEDAwEBAQABAAEHKVN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsEFN5c3RlbS5FeGNlcHRpb24ICAIGCwAAABBTeXN0ZW0uRXhjZXB0aW9uCQMAAAAJDQAAAAkOAAAACQYAAAAJBwAAAAkIAAAAAAAAAAroAwAACQkAAAAKBAoAAAA4U3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwrRGljdGlvbmFyeU5vZGUDAAAAA2tleQV2YWx1ZQRuZXh0AgIDOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlBhMAAAAGc2VjcmV0CAEBCRQAAAABDQAAAAQAAAAJFQAAAAIAAAACAAAAAQ4AAAAFAAAACQsAAAAGFwAAABdJbm5lciBleGNlcHRpb24gbWVzc2FnZQoKCgoKAAAAAAoAFROACgoBFAAAAAoAAAAICAEAAAAGGAAAAANvbmUKARUAAAAKAAAACRMAAAAIAQEJGgAAAAEaAAAACgAAAAgIAQAAAAkYAAAACgs=", TargetFrameworkMoniker.netfx461) } }; @@ -698,36 +689,6 @@ public static IEnumerable SerializableObjects() var sqlAlreadyFilledException = new SqlAlreadyFilledException("message", exception); yield return new object[] { PopulateException(sqlAlreadyFilledException), new TypeSerializableValue[] { new TypeSerializableValue("AAEAAAD/////AQAAAAAAAAAMAgAAAE5TeXN0ZW0uRGF0YSwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAAC5TeXN0ZW0uRGF0YS5TcWxUeXBlcy5TcWxBbHJlYWR5RmlsbGVkRXhjZXB0aW9uDAAAAAlDbGFzc05hbWUHTWVzc2FnZQREYXRhDklubmVyRXhjZXB0aW9uB0hlbHBVUkwQU3RhY2tUcmFjZVN0cmluZxZSZW1vdGVTdGFja1RyYWNlU3RyaW5nEFJlbW90ZVN0YWNrSW5kZXgPRXhjZXB0aW9uTWV0aG9kB0hSZXN1bHQGU291cmNlDVdhdHNvbkJ1Y2tldHMBAQMDAQEBAAEAAQcpU3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwQU3lzdGVtLkV4Y2VwdGlvbggIAgIAAAAGAwAAAC5TeXN0ZW0uRGF0YS5TcWxUeXBlcy5TcWxBbHJlYWR5RmlsbGVkRXhjZXB0aW9uBgQAAAAHbWVzc2FnZQkFAAAACQYAAAAGBwAAABlodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tBggAAAAUU3RhY2tUcmFjZSBzdHJpbmcuLi4GCQAAABtSZW1vdGUgU3RhY2tUcmFjZSBzdHJpbmcuLi4AAAAACugDAAAGCgAAABdFeGNlcHRpb25fQ2xhc3NfU2FtcGxlcwoEBQAAAClTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbAMAAAAEaGVhZAd2ZXJzaW9uBWNvdW50AwAAOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlCAgJCwAAAAIAAAACAAAABAYAAAAQU3lzdGVtLkV4Y2VwdGlvbgwAAAAJQ2xhc3NOYW1lB01lc3NhZ2UERGF0YQ5Jbm5lckV4Y2VwdGlvbgdIZWxwVVJMEFN0YWNrVHJhY2VTdHJpbmcWUmVtb3RlU3RhY2tUcmFjZVN0cmluZxBSZW1vdGVTdGFja0luZGV4D0V4Y2VwdGlvbk1ldGhvZAdIUmVzdWx0BlNvdXJjZQ1XYXRzb25CdWNrZXRzAQEDAwEBAQABAAEHKVN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsEFN5c3RlbS5FeGNlcHRpb24ICAIGDAAAABBTeXN0ZW0uRXhjZXB0aW9uCQQAAAAJDgAAAAkPAAAACQcAAAAJCAAAAAkJAAAAAAAAAAroAwAACQoAAAAKBAsAAAA4U3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwrRGljdGlvbmFyeU5vZGUDAAAAA2tleQV2YWx1ZQRuZXh0AgIDOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlBhQAAAAGc2VjcmV0CAEBCRUAAAABDgAAAAUAAAAJFgAAAAIAAAACAAAAAQ8AAAAGAAAACQwAAAAGGAAAABdJbm5lciBleGNlcHRpb24gbWVzc2FnZQoKCgoKAAAAAAoAFROACgoBFQAAAAsAAAAICAEAAAAGGQAAAANvbmUKARYAAAALAAAACRQAAAAIAQEJGwAAAAEbAAAACwAAAAgIAQAAAAkZAAAACgs=", TargetFrameworkMoniker.netcoreapp20), new TypeSerializableValue("AAEAAAD/////AQAAAAAAAAAMAgAAAE5TeXN0ZW0uRGF0YSwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAAC5TeXN0ZW0uRGF0YS5TcWxUeXBlcy5TcWxBbHJlYWR5RmlsbGVkRXhjZXB0aW9uDAAAAAlDbGFzc05hbWUHTWVzc2FnZQREYXRhDklubmVyRXhjZXB0aW9uB0hlbHBVUkwQU3RhY2tUcmFjZVN0cmluZxZSZW1vdGVTdGFja1RyYWNlU3RyaW5nEFJlbW90ZVN0YWNrSW5kZXgPRXhjZXB0aW9uTWV0aG9kB0hSZXN1bHQGU291cmNlDVdhdHNvbkJ1Y2tldHMBAQMDAQEBAAEAAQcpU3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwQU3lzdGVtLkV4Y2VwdGlvbggIAgIAAAAGAwAAAC5TeXN0ZW0uRGF0YS5TcWxUeXBlcy5TcWxBbHJlYWR5RmlsbGVkRXhjZXB0aW9uBgQAAAAHbWVzc2FnZQkFAAAACQYAAAAGBwAAABlodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tBggAAAAUU3RhY2tUcmFjZSBzdHJpbmcuLi4GCQAAABtSZW1vdGUgU3RhY2tUcmFjZSBzdHJpbmcuLi4AAAAACugDAAAGCgAAABdFeGNlcHRpb25fQ2xhc3NfU2FtcGxlcwoEBQAAAClTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbAMAAAAEaGVhZAd2ZXJzaW9uBWNvdW50AwAAOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlCAgJCwAAAAIAAAACAAAABAYAAAAQU3lzdGVtLkV4Y2VwdGlvbgwAAAAJQ2xhc3NOYW1lB01lc3NhZ2UERGF0YQ5Jbm5lckV4Y2VwdGlvbgdIZWxwVVJMEFN0YWNrVHJhY2VTdHJpbmcWUmVtb3RlU3RhY2tUcmFjZVN0cmluZxBSZW1vdGVTdGFja0luZGV4D0V4Y2VwdGlvbk1ldGhvZAdIUmVzdWx0BlNvdXJjZQ1XYXRzb25CdWNrZXRzAQEDAwEBAQABAAEHKVN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsEFN5c3RlbS5FeGNlcHRpb24ICAIGDAAAABBTeXN0ZW0uRXhjZXB0aW9uCQQAAAAJDgAAAAkPAAAACQcAAAAJCAAAAAkJAAAAAAAAAAroAwAACQoAAAAKBAsAAAA4U3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwrRGljdGlvbmFyeU5vZGUDAAAAA2tleQV2YWx1ZQRuZXh0AgIDOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlBhQAAAAGc2VjcmV0CAEBCRUAAAABDgAAAAUAAAAJFgAAAAIAAAACAAAAAQ8AAAAGAAAACQwAAAAGGAAAABdJbm5lciBleGNlcHRpb24gbWVzc2FnZQoKCgoKAAAAAAoAFROACgoBFQAAAAsAAAAICAEAAAAGGQAAAANvbmUKARYAAAALAAAACRQAAAAIAQEJGwAAAAEbAAAACwAAAAgIAQAAAAkZAAAACgs=", TargetFrameworkMoniker.netfx461) } }; - if (!PlatformDetection.IsBrowser) // System.Data.SqlClient doesn't work on Browser - { - SqlError sqlError = null; - // .NET Framework has no constructor overload for passing an exception - if (PlatformDetection.IsNetFramework) - { - sqlError = (SqlError)typeof(SqlError) - .GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { typeof(int), typeof(byte), typeof(byte), typeof(string), typeof(string), typeof(string), typeof(int), typeof(uint) }, null) - .Invoke(new object[] { 1, (byte)2, (byte)3, "localhost", "error", "procedure", 1, (uint)2 }); - } - else - { - sqlError = (SqlError)typeof(SqlError) - .GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { typeof(int), typeof(byte), typeof(byte), typeof(string), typeof(string), typeof(string), typeof(int), typeof(uint), typeof(Exception) }, null) - .Invoke(new object[] { 1, (byte)2, (byte)3, "localhost", "error", "procedure", 1, (uint)2, null }); - } - - SqlErrorCollection sqlErrorCollection = (SqlErrorCollection)typeof(SqlErrorCollection) - .GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { }, null) - .Invoke(new object[] { }); - typeof(SqlErrorCollection) - .GetMethod("Add", BindingFlags.NonPublic | BindingFlags.Instance) - .Invoke(sqlErrorCollection, new object[] { sqlError }); - SqlException sqlException = (SqlException)typeof(SqlException) - .GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { typeof(string), typeof(SqlErrorCollection), typeof(Exception), typeof(Guid) }, null) - .Invoke(new object[] { "message", sqlErrorCollection, exception, Guid.Parse("082FE40E-F683-402D-89C8-2E7486078620") }); - - yield return new object[] { PopulateException(sqlException, setHResult: false), new TypeSerializableValue[] { new TypeSerializableValue("AAEAAAD/////AQAAAAAAAAAMAgAAAE5TeXN0ZW0uRGF0YSwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsRXhjZXB0aW9uDgAAAAlDbGFzc05hbWUHTWVzc2FnZQREYXRhDklubmVyRXhjZXB0aW9uB0hlbHBVUkwQU3RhY2tUcmFjZVN0cmluZxZSZW1vdGVTdGFja1RyYWNlU3RyaW5nEFJlbW90ZVN0YWNrSW5kZXgPRXhjZXB0aW9uTWV0aG9kB0hSZXN1bHQGU291cmNlDVdhdHNvbkJ1Y2tldHMGRXJyb3JzEkNsaWVudENvbm5lY3Rpb25JZAEBAwMBAQEAAQABBwIDKVN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsEFN5c3RlbS5FeGNlcHRpb24ICAILU3lzdGVtLkd1aWQCAAAABgMAAAAiU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbEV4Y2VwdGlvbgYEAAAAB21lc3NhZ2UJBQAAAAkGAAAABgcAAAAZaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbQYIAAAAFFN0YWNrVHJhY2Ugc3RyaW5nLi4uBgkAAAAbUmVtb3RlIFN0YWNrVHJhY2Ugc3RyaW5nLi4uAAAAAAoEGROABgoAAAAXRXhjZXB0aW9uX0NsYXNzX1NhbXBsZXMKCgT1////C1N5c3RlbS5HdWlkCwAAAAJfYQJfYgJfYwJfZAJfZQJfZgJfZwJfaAJfaQJfagJfawAAAAAAAAAAAAAACAcHAgICAgICAgIO5C8Ig/YtQInILnSGB4YgBAUAAAApU3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwDAAAABGhlYWQHdmVyc2lvbgVjb3VudAMAADhTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbCtEaWN0aW9uYXJ5Tm9kZQgICQwAAAADAAAAAwAAAAQGAAAAEFN5c3RlbS5FeGNlcHRpb24MAAAACUNsYXNzTmFtZQdNZXNzYWdlBERhdGEOSW5uZXJFeGNlcHRpb24HSGVscFVSTBBTdGFja1RyYWNlU3RyaW5nFlJlbW90ZVN0YWNrVHJhY2VTdHJpbmcQUmVtb3RlU3RhY2tJbmRleA9FeGNlcHRpb25NZXRob2QHSFJlc3VsdAZTb3VyY2UNV2F0c29uQnVja2V0cwEBAwMBAQEAAQABBylTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbBBTeXN0ZW0uRXhjZXB0aW9uCAgCBg0AAAAQU3lzdGVtLkV4Y2VwdGlvbgkEAAAACQ8AAAAJEAAAAAkHAAAACQgAAAAJCQAAAAAAAAAK6AMAAAkKAAAACgQMAAAAOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlAwAAAANrZXkFdmFsdWUEbmV4dAICAzhTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbCtEaWN0aW9uYXJ5Tm9kZQYVAAAABnNlY3JldAgBAQkWAAAAAQ8AAAAFAAAACRcAAAACAAAAAgAAAAEQAAAABgAAAAkNAAAABhkAAAAXSW5uZXIgZXhjZXB0aW9uIG1lc3NhZ2UKCgoKCgAAAAAKABUTgAoKARYAAAAMAAAACAgBAAAABhoAAAADb25lCRsAAAABFwAAAAwAAAAJFQAAAAgBAQkdAAAAARsAAAAMAAAABh4AAAAKU3FsRXJyb3IgMQYfAAAAJVN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxFcnJvcjogZXJyb3IKAR0AAAAMAAAACAgBAAAACRoAAAAKCw==", TargetFrameworkMoniker.netcoreapp20), new TypeSerializableValue("AAEAAAD/////AQAAAAAAAAAMAgAAAE5TeXN0ZW0uRGF0YSwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsRXhjZXB0aW9uDgAAAAZFcnJvcnMSQ2xpZW50Q29ubmVjdGlvbklkCUNsYXNzTmFtZQdNZXNzYWdlBERhdGEOSW5uZXJFeGNlcHRpb24HSGVscFVSTBBTdGFja1RyYWNlU3RyaW5nFlJlbW90ZVN0YWNrVHJhY2VTdHJpbmcQUmVtb3RlU3RhY2tJbmRleA9FeGNlcHRpb25NZXRob2QHSFJlc3VsdAZTb3VyY2UNV2F0c29uQnVja2V0cwQDAQEDAwEBAQABAAEHKFN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxFcnJvckNvbGxlY3Rpb24CAAAAC1N5c3RlbS5HdWlkKVN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsEFN5c3RlbS5FeGNlcHRpb24ICAICAAAACQMAAAAE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICDuQvCIP2LUCJyC50hgeGIAYFAAAAIlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxFeGNlcHRpb24GBgAAAAdtZXNzYWdlCQcAAAAJCAAAAAYJAAAAGWh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20GCgAAABRTdGFja1RyYWNlIHN0cmluZy4uLgYLAAAAG1JlbW90ZSBTdGFja1RyYWNlIHN0cmluZy4uLgAAAAAKBBkTgAYMAAAAF0V4Y2VwdGlvbl9DbGFzc19TYW1wbGVzCgUDAAAAKFN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxFcnJvckNvbGxlY3Rpb24BAAAABmVycm9ycwMcU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdAIAAAAJDQAAAAQHAAAAKVN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsAwAAAARoZWFkB3ZlcnNpb24FY291bnQDAAA4U3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwrRGljdGlvbmFyeU5vZGUICAkOAAAAAgAAAAIAAAAECAAAABBTeXN0ZW0uRXhjZXB0aW9uDAAAAAlDbGFzc05hbWUHTWVzc2FnZQREYXRhDklubmVyRXhjZXB0aW9uB0hlbHBVUkwQU3RhY2tUcmFjZVN0cmluZxZSZW1vdGVTdGFja1RyYWNlU3RyaW5nEFJlbW90ZVN0YWNrSW5kZXgPRXhjZXB0aW9uTWV0aG9kB0hSZXN1bHQGU291cmNlDVdhdHNvbkJ1Y2tldHMBAQMDAQEBAAEAAQcpU3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwQU3lzdGVtLkV4Y2VwdGlvbggIAgYPAAAAEFN5c3RlbS5FeGNlcHRpb24JBgAAAAkRAAAACRIAAAAJCQAAAAkKAAAACQsAAAAAAAAACugDAAAJDAAAAAoEDQAAABxTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0AwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24FAAAICAkXAAAAAQAAAAEAAAAEDgAAADhTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbCtEaWN0aW9uYXJ5Tm9kZQMAAAADa2V5BXZhbHVlBG5leHQCAgM4U3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwrRGljdGlvbmFyeU5vZGUGGAAAAAZzZWNyZXQIAQEJGQAAAAERAAAABwAAAAkaAAAAAgAAAAIAAAABEgAAAAgAAAAJDwAAAAYcAAAAF0lubmVyIGV4Y2VwdGlvbiBtZXNzYWdlCgoKCgoAAAAACgAVE4AKChAXAAAABAAAAAkdAAAADQMBGQAAAA4AAAAICAEAAAAGHgAAAANvbmUKARoAAAAOAAAACRgAAAAIAQEJIAAAAAUdAAAAHlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxFcnJvcgkAAAAGc291cmNlBm51bWJlcgVzdGF0ZQplcnJvckNsYXNzBnNlcnZlcgdtZXNzYWdlCXByb2NlZHVyZQpsaW5lTnVtYmVyDndpbjMyRXJyb3JDb2RlAQAAAAEBAQAACAICCAgCAAAABiEAAAAcLk5ldCBTcWxDbGllbnQgRGF0YSBQcm92aWRlcgEAAAACAwYiAAAACWxvY2FsaG9zdAYjAAAABWVycm9yBiQAAAAJcHJvY2VkdXJlAQAAAAIAAAABIAAAAA4AAAAICAEAAAAJHgAAAAoL", TargetFrameworkMoniker.netfx461) } }; - } - var sqlNotFilledException = new SqlNotFilledException("message", exception); yield return new object[] { PopulateException(sqlNotFilledException), new TypeSerializableValue[] { new TypeSerializableValue("AAEAAAD/////AQAAAAAAAAAMAgAAAE5TeXN0ZW0uRGF0YSwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACpTeXN0ZW0uRGF0YS5TcWxUeXBlcy5TcWxOb3RGaWxsZWRFeGNlcHRpb24MAAAACUNsYXNzTmFtZQdNZXNzYWdlBERhdGEOSW5uZXJFeGNlcHRpb24HSGVscFVSTBBTdGFja1RyYWNlU3RyaW5nFlJlbW90ZVN0YWNrVHJhY2VTdHJpbmcQUmVtb3RlU3RhY2tJbmRleA9FeGNlcHRpb25NZXRob2QHSFJlc3VsdAZTb3VyY2UNV2F0c29uQnVja2V0cwEBAwMBAQEAAQABBylTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbBBTeXN0ZW0uRXhjZXB0aW9uCAgCAgAAAAYDAAAAKlN5c3RlbS5EYXRhLlNxbFR5cGVzLlNxbE5vdEZpbGxlZEV4Y2VwdGlvbgYEAAAAB21lc3NhZ2UJBQAAAAkGAAAABgcAAAAZaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbQYIAAAAFFN0YWNrVHJhY2Ugc3RyaW5nLi4uBgkAAAAbUmVtb3RlIFN0YWNrVHJhY2Ugc3RyaW5nLi4uAAAAAAroAwAABgoAAAAXRXhjZXB0aW9uX0NsYXNzX1NhbXBsZXMKBAUAAAApU3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwDAAAABGhlYWQHdmVyc2lvbgVjb3VudAMAADhTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbCtEaWN0aW9uYXJ5Tm9kZQgICQsAAAACAAAAAgAAAAQGAAAAEFN5c3RlbS5FeGNlcHRpb24MAAAACUNsYXNzTmFtZQdNZXNzYWdlBERhdGEOSW5uZXJFeGNlcHRpb24HSGVscFVSTBBTdGFja1RyYWNlU3RyaW5nFlJlbW90ZVN0YWNrVHJhY2VTdHJpbmcQUmVtb3RlU3RhY2tJbmRleA9FeGNlcHRpb25NZXRob2QHSFJlc3VsdAZTb3VyY2UNV2F0c29uQnVja2V0cwEBAwMBAQEAAQABBylTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbBBTeXN0ZW0uRXhjZXB0aW9uCAgCBgwAAAAQU3lzdGVtLkV4Y2VwdGlvbgkEAAAACQ4AAAAJDwAAAAkHAAAACQgAAAAJCQAAAAAAAAAK6AMAAAkKAAAACgQLAAAAOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlAwAAAANrZXkFdmFsdWUEbmV4dAICAzhTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbCtEaWN0aW9uYXJ5Tm9kZQYUAAAABnNlY3JldAgBAQkVAAAAAQ4AAAAFAAAACRYAAAACAAAAAgAAAAEPAAAABgAAAAkMAAAABhgAAAAXSW5uZXIgZXhjZXB0aW9uIG1lc3NhZ2UKCgoKCgAAAAAKABUTgAoKARUAAAALAAAACAgBAAAABhkAAAADb25lCgEWAAAACwAAAAkUAAAACAEBCRsAAAABGwAAAAsAAAAICAEAAAAJGQAAAAoL", TargetFrameworkMoniker.netcoreapp20), new TypeSerializableValue("AAEAAAD/////AQAAAAAAAAAMAgAAAE5TeXN0ZW0uRGF0YSwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACpTeXN0ZW0uRGF0YS5TcWxUeXBlcy5TcWxOb3RGaWxsZWRFeGNlcHRpb24MAAAACUNsYXNzTmFtZQdNZXNzYWdlBERhdGEOSW5uZXJFeGNlcHRpb24HSGVscFVSTBBTdGFja1RyYWNlU3RyaW5nFlJlbW90ZVN0YWNrVHJhY2VTdHJpbmcQUmVtb3RlU3RhY2tJbmRleA9FeGNlcHRpb25NZXRob2QHSFJlc3VsdAZTb3VyY2UNV2F0c29uQnVja2V0cwEBAwMBAQEAAQABBylTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbBBTeXN0ZW0uRXhjZXB0aW9uCAgCAgAAAAYDAAAAKlN5c3RlbS5EYXRhLlNxbFR5cGVzLlNxbE5vdEZpbGxlZEV4Y2VwdGlvbgYEAAAAB21lc3NhZ2UJBQAAAAkGAAAABgcAAAAZaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbQYIAAAAFFN0YWNrVHJhY2Ugc3RyaW5nLi4uBgkAAAAbUmVtb3RlIFN0YWNrVHJhY2Ugc3RyaW5nLi4uAAAAAAroAwAABgoAAAAXRXhjZXB0aW9uX0NsYXNzX1NhbXBsZXMKBAUAAAApU3lzdGVtLkNvbGxlY3Rpb25zLkxpc3REaWN0aW9uYXJ5SW50ZXJuYWwDAAAABGhlYWQHdmVyc2lvbgVjb3VudAMAADhTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbCtEaWN0aW9uYXJ5Tm9kZQgICQsAAAACAAAAAgAAAAQGAAAAEFN5c3RlbS5FeGNlcHRpb24MAAAACUNsYXNzTmFtZQdNZXNzYWdlBERhdGEOSW5uZXJFeGNlcHRpb24HSGVscFVSTBBTdGFja1RyYWNlU3RyaW5nFlJlbW90ZVN0YWNrVHJhY2VTdHJpbmcQUmVtb3RlU3RhY2tJbmRleA9FeGNlcHRpb25NZXRob2QHSFJlc3VsdAZTb3VyY2UNV2F0c29uQnVja2V0cwEBAwMBAQEAAQABBylTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbBBTeXN0ZW0uRXhjZXB0aW9uCAgCBgwAAAAQU3lzdGVtLkV4Y2VwdGlvbgkEAAAACQ4AAAAJDwAAAAkHAAAACQgAAAAJCQAAAAAAAAAK6AMAAAkKAAAACgQLAAAAOFN5c3RlbS5Db2xsZWN0aW9ucy5MaXN0RGljdGlvbmFyeUludGVybmFsK0RpY3Rpb25hcnlOb2RlAwAAAANrZXkFdmFsdWUEbmV4dAICAzhTeXN0ZW0uQ29sbGVjdGlvbnMuTGlzdERpY3Rpb25hcnlJbnRlcm5hbCtEaWN0aW9uYXJ5Tm9kZQYUAAAABnNlY3JldAgBAQkVAAAAAQ4AAAAFAAAACRYAAAACAAAAAgAAAAEPAAAABgAAAAkMAAAABhgAAAAXSW5uZXIgZXhjZXB0aW9uIG1lc3NhZ2UKCgoKCgAAAAAKABUTgAoKARUAAAALAAAACAgBAAAABhkAAAADb25lCgEWAAAACwAAAAkUAAAACAEBCRsAAAABGwAAAAsAAAAICAEAAAAJGQAAAAoL", TargetFrameworkMoniker.netfx461) } }; diff --git a/src/libraries/System.Runtime.Serialization.Formatters/tests/BinaryFormatterTests.cs b/src/libraries/System.Runtime.Serialization.Formatters/tests/BinaryFormatterTests.cs index 8b5d1ab25bdd3..7b049103648e4 100644 --- a/src/libraries/System.Runtime.Serialization.Formatters/tests/BinaryFormatterTests.cs +++ b/src/libraries/System.Runtime.Serialization.Formatters/tests/BinaryFormatterTests.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.ComponentModel; -using System.Data.SqlClient; using System.Diagnostics; using System.Drawing; using System.Drawing.Imaging; @@ -98,9 +97,9 @@ private static void ValidateAndRoundtrip(object obj, TypeSerializableValue[] blo SanityCheckBlob(obj, blobs); - // SqlException, ReflectionTypeLoadException and LicenseException aren't deserializable from Desktop --> Core. + // ReflectionTypeLoadException and LicenseException aren't deserializable from Desktop --> Core. // Therefore we remove the second blob which is the one from Desktop. - if (!PlatformDetection.IsNetFramework && (obj is SqlException || obj is ReflectionTypeLoadException || obj is LicenseException)) + if (!PlatformDetection.IsNetFramework && (obj is ReflectionTypeLoadException || obj is LicenseException)) { var tmpList = new List(blobs); tmpList.RemoveAt(1); diff --git a/src/libraries/System.Runtime.Serialization.Formatters/tests/EqualityExtensions.cs b/src/libraries/System.Runtime.Serialization.Formatters/tests/EqualityExtensions.cs index 7dc90a7f344ca..e6d9652007e39 100644 --- a/src/libraries/System.Runtime.Serialization.Formatters/tests/EqualityExtensions.cs +++ b/src/libraries/System.Runtime.Serialization.Formatters/tests/EqualityExtensions.cs @@ -7,7 +7,6 @@ using System.Collections.Specialized; using System.ComponentModel; using System.Data; -using System.Data.SqlClient; using System.Data.SqlTypes; using System.DirectoryServices.ActiveDirectory; using System.Drawing; @@ -1135,8 +1134,7 @@ public static void IsEqual(this Exception @this, Exception other, bool isSamePla // Different by design for those exceptions if (!((@this is SecurityException || @this is XmlSyntaxException || - @this is ThreadAbortException || - @this is SqlException) && !isSamePlatform)) + @this is ThreadAbortException) && !isSamePlatform)) { if (!(@this is ActiveDirectoryServerDownException || @this is SocketException || @@ -1146,11 +1144,7 @@ @this is SocketException || } } - // Different by design for those exceptions - if (!(@this is SqlException)) - { - Assert.Equal(@this.Source, other.Source); - } + Assert.Equal(@this.Source, other.Source); Assert.Equal(@this.HelpLink, other.HelpLink); @@ -1175,7 +1169,6 @@ @this is XmlSyntaxException || @this is ThreadAbortException) && !isSamePlatform)) { if (!(@this is ActiveDirectoryServerDownException || - @this is SqlException || @this is NetworkInformationException || @this is SocketException)) { diff --git a/src/libraries/System.Runtime.Serialization.Formatters/tests/System.Runtime.Serialization.Formatters.Tests.csproj b/src/libraries/System.Runtime.Serialization.Formatters/tests/System.Runtime.Serialization.Formatters.Tests.csproj index 81e276ce8d175..9981362c913c5 100644 --- a/src/libraries/System.Runtime.Serialization.Formatters/tests/System.Runtime.Serialization.Formatters.Tests.csproj +++ b/src/libraries/System.Runtime.Serialization.Formatters/tests/System.Runtime.Serialization.Formatters.Tests.csproj @@ -36,12 +36,7 @@ - - - - - From 0079d87d84e0e4067fc8d74a651450efbd3fafaa Mon Sep 17 00:00:00 2001 From: Jan Vorlicek Date: Thu, 3 Dec 2020 22:34:47 +0100 Subject: [PATCH 07/87] Don't emit type fixups for primitive types in Crossgen2 (#45555) We were emitting fixups for primitive types like bool, void, etc. These are not necessary as all of these types are always loaded and so it was just a waste of R2R file space. This change blocks generating fixups for those. --- .../JitInterface/CorInfoImpl.ReadyToRun.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs b/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs index 22d2d8515f788..4d75c95a8dce8 100644 --- a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs +++ b/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs @@ -1684,8 +1684,11 @@ private void classMustBeLoadedBeforeCodeIsRun(CORINFO_CLASS_STRUCT_* cls) private void classMustBeLoadedBeforeCodeIsRun(TypeDesc type) { - ISymbolNode node = _compilation.SymbolNodeFactory.CreateReadyToRunHelper(ReadyToRunHelperId.TypeHandle, type); - _methodCodeNode.Fixups.Add(node); + if (!type.IsPrimitive) + { + ISymbolNode node = _compilation.SymbolNodeFactory.CreateReadyToRunHelper(ReadyToRunHelperId.TypeHandle, type); + _methodCodeNode.Fixups.Add(node); + } } private static bool MethodSignatureIsUnstable(MethodSignature methodSig, out string unstableMessage) From 87c3cb7674dcf43fe582df720fd8bf68c82de924 Mon Sep 17 00:00:00 2001 From: Santiago Fernandez Madero Date: Thu, 3 Dec 2020 14:39:39 -0800 Subject: [PATCH 08/87] Disable Long Running JSON tests on Checked CoreCLR (#45505) * Disable Long Running JSON tests on Checked CoreCLR * PR Feedback --- src/libraries/System.Text.Json/tests/JsonDocumentTests.cs | 1 + .../Serialization/ConstructorTests/ConstructorTests.Cache.cs | 1 + .../Serialization/ConstructorTests/ConstructorTests.Stream.cs | 1 + .../System.Text.Json/tests/Serialization/ContinuationTests.cs | 1 + .../System.Text.Json/tests/Serialization/NumberHandlingTests.cs | 1 + .../System.Text.Json/tests/Serialization/Stream.WriteTests.cs | 1 + .../System.Text.Json/tests/Utf8JsonReaderTests.MultiSegment.cs | 1 + src/libraries/System.Text.Json/tests/Utf8JsonWriterTests.cs | 1 + 8 files changed, 8 insertions(+) diff --git a/src/libraries/System.Text.Json/tests/JsonDocumentTests.cs b/src/libraries/System.Text.Json/tests/JsonDocumentTests.cs index 6a940b0757c7b..5facb8cc71821 100644 --- a/src/libraries/System.Text.Json/tests/JsonDocumentTests.cs +++ b/src/libraries/System.Text.Json/tests/JsonDocumentTests.cs @@ -472,6 +472,7 @@ public static void ParseJson_UnseekableStream_BadBOM(string json) [Theory] [MemberData(nameof(BadBOMCases))] + [SkipOnCoreClr("https://github.com/dotnet/runtime/issues/45464", RuntimeConfiguration.Checked)] public static Task ParseJson_UnseekableStream_Async_BadBOM(string json) { byte[] data = Encoding.UTF8.GetBytes(json); diff --git a/src/libraries/System.Text.Json/tests/Serialization/ConstructorTests/ConstructorTests.Cache.cs b/src/libraries/System.Text.Json/tests/Serialization/ConstructorTests/ConstructorTests.Cache.cs index 369bc776a46cd..58caed5feb1f6 100644 --- a/src/libraries/System.Text.Json/tests/Serialization/ConstructorTests/ConstructorTests.Cache.cs +++ b/src/libraries/System.Text.Json/tests/Serialization/ConstructorTests/ConstructorTests.Cache.cs @@ -125,6 +125,7 @@ public async Task PropertyCacheWithMinInputsLast() private JsonSerializerOptions s_options = new JsonSerializerOptions(); [Fact] + [SkipOnCoreClr("https://github.com/dotnet/runtime/issues/45464", RuntimeConfiguration.Checked)] public async Task MultipleTypes() { void Serialize(object[] args) diff --git a/src/libraries/System.Text.Json/tests/Serialization/ConstructorTests/ConstructorTests.Stream.cs b/src/libraries/System.Text.Json/tests/Serialization/ConstructorTests/ConstructorTests.Stream.cs index c06db5efa5f0c..e89ec547da70b 100644 --- a/src/libraries/System.Text.Json/tests/Serialization/ConstructorTests/ConstructorTests.Stream.cs +++ b/src/libraries/System.Text.Json/tests/Serialization/ConstructorTests/ConstructorTests.Stream.cs @@ -11,6 +11,7 @@ namespace System.Text.Json.Serialization.Tests public abstract partial class ConstructorTests { [Fact] + [SkipOnCoreClr("https://github.com/dotnet/runtime/issues/45464", RuntimeConfiguration.Checked)] public async Task ReadSimpleObjectAsync() { async Task RunTestAsync(byte[] testData) diff --git a/src/libraries/System.Text.Json/tests/Serialization/ContinuationTests.cs b/src/libraries/System.Text.Json/tests/Serialization/ContinuationTests.cs index 9736142e08ff7..a2548b02a49b0 100644 --- a/src/libraries/System.Text.Json/tests/Serialization/ContinuationTests.cs +++ b/src/libraries/System.Text.Json/tests/Serialization/ContinuationTests.cs @@ -181,6 +181,7 @@ public static async Task InvalidJsonShouldFailAtAnyPosition_Stream( [Theory] [MemberData(nameof(TestData), /* enumeratePayloadTweaks: */ false)] [ActiveIssue("https://github.com/dotnet/runtime/issues/42677", platforms: TestPlatforms.Windows, runtimes: TestRuntimes.Mono)] + [SkipOnCoreClr("https://github.com/dotnet/runtime/issues/45464", RuntimeConfiguration.Checked)] public static void ShouldWorkAtAnyPosition_Sequence( string json, int bufferSize, diff --git a/src/libraries/System.Text.Json/tests/Serialization/NumberHandlingTests.cs b/src/libraries/System.Text.Json/tests/Serialization/NumberHandlingTests.cs index 9d26ff742d71f..0fff01adbe63d 100644 --- a/src/libraries/System.Text.Json/tests/Serialization/NumberHandlingTests.cs +++ b/src/libraries/System.Text.Json/tests/Serialization/NumberHandlingTests.cs @@ -601,6 +601,7 @@ private static void AssertDictionaryElements_StringValues(string serialized) [Fact] [ActiveIssue("https://github.com/dotnet/runtime/issues/39674", typeof(PlatformDetection), nameof(PlatformDetection.IsMonoInterpreter))] + [SkipOnCoreClr("https://github.com/dotnet/runtime/issues/45464", RuntimeConfiguration.Checked)] public static void DictionariesRoundTrip() { RunAllDictionariessRoundTripTest(JsonNumberTestData.ULongs); diff --git a/src/libraries/System.Text.Json/tests/Serialization/Stream.WriteTests.cs b/src/libraries/System.Text.Json/tests/Serialization/Stream.WriteTests.cs index 8f9f2339cb22f..b7e90b6085e02 100644 --- a/src/libraries/System.Text.Json/tests/Serialization/Stream.WriteTests.cs +++ b/src/libraries/System.Text.Json/tests/Serialization/Stream.WriteTests.cs @@ -49,6 +49,7 @@ public static async Task NullObjectValue() } [Fact] + [SkipOnCoreClr("https://github.com/dotnet/runtime/issues/45464", RuntimeConfiguration.Checked)] public static async Task RoundTripAsync() { byte[] buffer; diff --git a/src/libraries/System.Text.Json/tests/Utf8JsonReaderTests.MultiSegment.cs b/src/libraries/System.Text.Json/tests/Utf8JsonReaderTests.MultiSegment.cs index 6862a129f395b..914c35eb38e1c 100644 --- a/src/libraries/System.Text.Json/tests/Utf8JsonReaderTests.MultiSegment.cs +++ b/src/libraries/System.Text.Json/tests/Utf8JsonReaderTests.MultiSegment.cs @@ -1839,6 +1839,7 @@ private static void TrailingCommasHelper(ReadOnlySequence utf8, JsonReader [InlineData("{\"Property1\": {\"Property1.1\": 42} // comment\n,5}")] [InlineData("{\"Property1\": {\"Property1.1\": 42}, // comment\n // comment\n5}")] [InlineData("{// comment\n5}")] + [SkipOnCoreClr("https://github.com/dotnet/runtime/issues/45464", RuntimeConfiguration.Checked)] public static void ReadInvalidJsonStringsWithComments(string jsonString) { byte[] input = Encoding.UTF8.GetBytes(jsonString); diff --git a/src/libraries/System.Text.Json/tests/Utf8JsonWriterTests.cs b/src/libraries/System.Text.Json/tests/Utf8JsonWriterTests.cs index 80d2c403acbe4..5bd0c980a2769 100644 --- a/src/libraries/System.Text.Json/tests/Utf8JsonWriterTests.cs +++ b/src/libraries/System.Text.Json/tests/Utf8JsonWriterTests.cs @@ -3120,6 +3120,7 @@ public void WritingLargestPossibleBase64Bytes(bool formatted, bool skipValidatio [InlineData(true, false)] [InlineData(false, true)] [InlineData(false, false)] + [SkipOnCoreClr("https://github.com/dotnet/runtime/issues/45464", RuntimeConfiguration.Checked)] public void Writing3MBBase64Bytes(bool formatted, bool skipValidation) { byte[] value = new byte[3 * 1024 * 1024]; From d4a909bbdbadd19557ff2a865cce534a5406786c Mon Sep 17 00:00:00 2001 From: Santiago Fernandez Madero Date: Thu, 3 Dec 2020 15:02:21 -0800 Subject: [PATCH 09/87] Fix dependency for test assets on musl test runs (#45567) * Fix dependency for test assets on musl test runs * Use testOsSubGroup on dependency --- eng/pipelines/libraries/run-test-job.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/libraries/run-test-job.yml b/eng/pipelines/libraries/run-test-job.yml index 9f8e8907a99a9..90140bbd9f48e 100644 --- a/eng/pipelines/libraries/run-test-job.yml +++ b/eng/pipelines/libraries/run-test-job.yml @@ -17,6 +17,7 @@ parameters: helixQueues: [] dependsOnTestBuildConfiguration: Debug dependsOnTestArchitecture: x64 + dependsOnTestOsSubgroup: '' condition: true shouldContinueOnError: false variables: {} @@ -60,8 +61,8 @@ jobs: - ${{ if notIn(parameters.framework, 'allConfigurations', 'net48') }}: - ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} # tests are built as part of product build - - ${{ if or(ne(parameters.archType, parameters.dependsOnTestArchitecture), ne(parameters.buildConfig, parameters.dependsOnTestBuildConfiguration)) }}: - - ${{ format('libraries_build_{0}_{1}_{2}', parameters.osGroup, parameters.dependsOnTestArchitecture, parameters.dependsOnTestBuildConfiguration) }} + - ${{ if or(ne(parameters.archType, parameters.dependsOnTestArchitecture), ne(parameters.buildConfig, parameters.dependsOnTestBuildConfiguration), ne(parameters.osSubgroup, parameters.dependsOnTestOsSubgroup)) }}: + - ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.dependsOnTestOsSubgroup, parameters.dependsOnTestArchitecture, parameters.dependsOnTestBuildConfiguration) }} - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveRuntimeBuildConfig) }} From 8baa26360eb4c09e8d68007efe4acc7f9c954ed8 Mon Sep 17 00:00:00 2001 From: xtqqczze <45661989+xtqqczze@users.noreply.github.com> Date: Fri, 4 Dec 2020 00:02:32 +0000 Subject: [PATCH 10/87] Upgrade StyleCopAnalyzers to v1.2.0-beta.261 (#45562) * Upgrade StyleCopAnalyzers to v1.2.0-beta.261 https://github.com/DotNetAnalyzers/StyleCopAnalyzers/releases/tag/1.2.0-beta.261 * Disable SA1142 * Enable SA1142 except in tests --- eng/CodeAnalysis.ruleset | 1 + eng/CodeAnalysis.test.ruleset | 1 + eng/Versions.props | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/eng/CodeAnalysis.ruleset b/eng/CodeAnalysis.ruleset index 12e930144ed20..6a6b313255760 100644 --- a/eng/CodeAnalysis.ruleset +++ b/eng/CodeAnalysis.ruleset @@ -316,6 +316,7 @@ + diff --git a/eng/CodeAnalysis.test.ruleset b/eng/CodeAnalysis.test.ruleset index f46a2f8157a8c..aed89c6c73e04 100644 --- a/eng/CodeAnalysis.test.ruleset +++ b/eng/CodeAnalysis.test.ruleset @@ -315,6 +315,7 @@ + diff --git a/eng/Versions.props b/eng/Versions.props index db0bc6d18ab4a..d2ca0f791943a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -73,7 +73,7 @@ 5.0.0-preview.8.20359.4 - 1.2.0-beta.205 + 1.2.0-beta.261 4.5.1 4.3.0 4.3.0 From 4a200d18fe9c0d41ecf56ced17ea657fcee2067c Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Thu, 3 Dec 2020 16:06:23 -0800 Subject: [PATCH 11/87] Various fixes in Microsoft.NETCore.App packs (#45566) --- eng/Version.Details.xml | 4 + global.json | 2 +- .../Directory.Build.props | 203 ++++-------------- .../Microsoft.NETCore.App.Runtime.sfxproj | 1 + src/libraries/NetCoreAppLibrary.props | 1 + 5 files changed, 43 insertions(+), 168 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 930e94ec1090b..6136f198bf057 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -70,6 +70,10 @@ https://github.com/dotnet/arcade 6d8efa00a7dd2d15e07df673a83cecb8a0a3031f + + https://github.com/dotnet/arcade + d4dc3682cbad0314b6f138017411ee03ea51096b + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization f69d7fc09c4fdb9e9427741b9a176e867dab577f diff --git a/global.json b/global.json index 8e24e2ae13097..929b35d696594 100644 --- a/global.json +++ b/global.json @@ -16,7 +16,7 @@ "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.20601.2", "Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk": "6.0.0-beta.20601.2", "Microsoft.DotNet.Helix.Sdk": "6.0.0-beta.20601.2", - "Microsoft.DotNet.SharedFramework.Sdk": "6.0.0-beta.20552.5", + "Microsoft.DotNet.SharedFramework.Sdk": "6.0.0-beta.20602.5", "Microsoft.NET.Sdk.IL": "6.0.0-alpha.1.20557.2", "Microsoft.Build.NoTargets": "2.0.1", "Microsoft.Build.Traversal": "2.1.1" diff --git a/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props b/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props index e62594ed671dd..7d742fd131116 100644 --- a/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props +++ b/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props @@ -62,7 +62,43 @@ 14.12.25830.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -142,174 +178,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Runtime.sfxproj b/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Runtime.sfxproj index 2402d7fbe2ef6..ef04c92b41d0a 100644 --- a/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Runtime.sfxproj +++ b/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Runtime.sfxproj @@ -11,6 +11,7 @@ dotnet-runtime-symbols NetCore.SharedFramework true + true AddRuntimeFilesToPackage; AddFrameworkFilesToPackage diff --git a/src/libraries/NetCoreAppLibrary.props b/src/libraries/NetCoreAppLibrary.props index 2070d46fd9f49..6bd027958adde 100644 --- a/src/libraries/NetCoreAppLibrary.props +++ b/src/libraries/NetCoreAppLibrary.props @@ -158,5 +158,6 @@ + \ No newline at end of file From a259ec2e967d502f82163beba6b84da5319c5e08 Mon Sep 17 00:00:00 2001 From: Bruce Forstall Date: Thu, 3 Dec 2020 17:16:10 -0800 Subject: [PATCH 12/87] SuperPMI collection pipeline: fix location of JIT-EE version GUID (#45576) With #45044 it moved from corinfo.h to jiteeversionguid.h --- eng/pipelines/coreclr/superpmi.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/eng/pipelines/coreclr/superpmi.yml b/eng/pipelines/coreclr/superpmi.yml index 6535309297f4b..e05d1cd3a9cfa 100644 --- a/eng/pipelines/coreclr/superpmi.yml +++ b/eng/pipelines/coreclr/superpmi.yml @@ -1,9 +1,7 @@ # This job definition automates the SuperPMI collection process. # Trigger this job if the JIT-EE GUID changes, which invalidates previous SuperPMI -# collections. As a proxy for determining if the JIT-EE GUID has changed, we just -# trigger if the file containing the GUID definition changes, which almost always -# corresponds to the GUID itself changing. +# collections. trigger: batch: true branches: @@ -11,7 +9,7 @@ trigger: - master paths: include: - - src/coreclr/src/inc/corinfo.h + - src/coreclr/src/inc/jiteeversionguid.h pr: none From be9d38c8586af55ac848392fedf0076760e6cccc Mon Sep 17 00:00:00 2001 From: Eric Erhardt Date: Thu, 3 Dec 2020 20:14:14 -0600 Subject: [PATCH 13/87] XmlSerializer.Serialize doesn't work when using TrimMode=link (#44772) * XmlSerializer.Serialize doesn't work when using TrimMode=link Make XmlSerializer work correctly with ILLinker trimming. 1. Use constant BindingFlags to work around https://github.com/mono/linker/issues/1617 2. Annotate CodeGenerator.CreateTypeBuilder correctly to preserve base class members Fix #41389 * Update ILLinker suppressions file. * PR feedback. Fix ILLinker suppresions. --- .../src/ILLink/ILLink.Suppressions.xml | 30 +++++- .../System/Xml/Serialization/CodeGenerator.cs | 22 +++-- .../System.Xml.TrimmingTests.proj | 10 ++ .../XmlSerializer.Deserialize.cs | 86 +++++++++++++++++ .../TrimmingTests/XmlSerializer.Serialize.cs | 95 +++++++++++++++++++ 5 files changed, 232 insertions(+), 11 deletions(-) create mode 100644 src/libraries/System.Private.Xml/tests/TrimmingTests/System.Xml.TrimmingTests.proj create mode 100644 src/libraries/System.Private.Xml/tests/TrimmingTests/XmlSerializer.Deserialize.cs create mode 100644 src/libraries/System.Private.Xml/tests/TrimmingTests/XmlSerializer.Serialize.cs diff --git a/src/libraries/System.Private.Xml/src/ILLink/ILLink.Suppressions.xml b/src/libraries/System.Private.Xml/src/ILLink/ILLink.Suppressions.xml index 95df6776ce7ab..3256637c95633 100644 --- a/src/libraries/System.Private.Xml/src/ILLink/ILLink.Suppressions.xml +++ b/src/libraries/System.Private.Xml/src/ILLink/ILLink.Suppressions.xml @@ -25,6 +25,12 @@ member M:System.Xml.Serialization.XmlAttributes.get_IgnoreAttribute + + ILLink + IL2057 + member + M:System.Xml.Serialization.XmlSerializationWriterCodeGen.WriteCheckDefault(System.Xml.Serialization.TypeMapping,System.String,System.Object,System.Boolean) + ILLink IL2057 @@ -41,13 +47,25 @@ ILLink IL2067 member - M:System.Xml.Serialization.CodeGenerator.CreateTypeBuilder(System.Reflection.Emit.ModuleBuilder,System.String,System.Reflection.TypeAttributes,System.Type,System.Type[]) + M:System.Xml.Serialization.ReflectionXmlSerializationReader.ReflectionCreateObject(System.Type) ILLink - IL2067 + IL2070 member - M:System.Xml.Serialization.ReflectionXmlSerializationReader.ReflectionCreateObject(System.Type) + M:System.Xml.Serialization.Compiler.AddImport(System.Type,System.Collections.Hashtable) + + + ILLink + IL2070 + member + M:System.Xml.Serialization.ReflectionAwareCodeGen.WriteMappingInfo(System.Xml.Serialization.TypeMapping,System.String,System.Type) + + + ILLink + IL2070 + member + M:System.Xml.Serialization.ReflectionAwareCodeGen.WriteMemberInfo(System.Type,System.String,System.String,System.String) ILLink @@ -193,6 +211,12 @@ member M:System.Xml.Serialization.TempAssembly.LoadGeneratedAssembly(System.Type,System.String,System.Xml.Serialization.XmlSerializerImplementation@) + + ILLink + IL2072 + member + M:System.Xml.Serialization.XmlSerializationILGen.GenerateTypedSerializer(System.String,System.String,System.Xml.Serialization.XmlMapping,System.Xml.Serialization.CodeIdentifiers,System.String,System.String,System.String) + ILLink IL2072 diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/CodeGenerator.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/CodeGenerator.cs index f7ded1c2176cd..41f3f51feb212 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/CodeGenerator.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/CodeGenerator.cs @@ -23,13 +23,13 @@ namespace System.Xml.Serialization { internal class CodeGenerator { - internal static BindingFlags InstancePublicBindingFlags = BindingFlags.Instance | BindingFlags.Public; - internal static BindingFlags InstanceBindingFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic; - internal static BindingFlags StaticBindingFlags = BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic; - internal static MethodAttributes PublicMethodAttributes = MethodAttributes.Public | MethodAttributes.HideBySig; - internal static MethodAttributes PublicOverrideMethodAttributes = MethodAttributes.Public | MethodAttributes.Virtual | MethodAttributes.HideBySig; - internal static MethodAttributes ProtectedOverrideMethodAttributes = MethodAttributes.Family | MethodAttributes.Virtual | MethodAttributes.HideBySig; - internal static MethodAttributes PrivateMethodAttributes = MethodAttributes.Private | MethodAttributes.HideBySig; + internal const BindingFlags InstancePublicBindingFlags = BindingFlags.Instance | BindingFlags.Public; + internal const BindingFlags InstanceBindingFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic; + internal const BindingFlags StaticBindingFlags = BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic; + internal const MethodAttributes PublicMethodAttributes = MethodAttributes.Public | MethodAttributes.HideBySig; + internal const MethodAttributes PublicOverrideMethodAttributes = MethodAttributes.Public | MethodAttributes.Virtual | MethodAttributes.HideBySig; + internal const MethodAttributes ProtectedOverrideMethodAttributes = MethodAttributes.Family | MethodAttributes.Virtual | MethodAttributes.HideBySig; + internal const MethodAttributes PrivateMethodAttributes = MethodAttributes.Private | MethodAttributes.HideBySig; private readonly TypeBuilder _typeBuilder; private MethodBuilder? _methodBuilder; @@ -1242,7 +1242,13 @@ internal static ModuleBuilder CreateModuleBuilder(AssemblyBuilder assemblyBuilde { return assemblyBuilder.DefineDynamicModule(name); } - internal static TypeBuilder CreateTypeBuilder(ModuleBuilder moduleBuilder, string name, TypeAttributes attributes, Type parent, Type[] interfaces) + + internal static TypeBuilder CreateTypeBuilder( + ModuleBuilder moduleBuilder, + string name, + TypeAttributes attributes, + [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type parent, + Type[] interfaces) { // parent is nullable if no base class return moduleBuilder.DefineType(TempAssembly.GeneratedAssemblyNamespace + "." + name, diff --git a/src/libraries/System.Private.Xml/tests/TrimmingTests/System.Xml.TrimmingTests.proj b/src/libraries/System.Private.Xml/tests/TrimmingTests/System.Xml.TrimmingTests.proj new file mode 100644 index 0000000000000..a30ad093ba40e --- /dev/null +++ b/src/libraries/System.Private.Xml/tests/TrimmingTests/System.Xml.TrimmingTests.proj @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/libraries/System.Private.Xml/tests/TrimmingTests/XmlSerializer.Deserialize.cs b/src/libraries/System.Private.Xml/tests/TrimmingTests/XmlSerializer.Deserialize.cs new file mode 100644 index 0000000000000..608e16b62dbea --- /dev/null +++ b/src/libraries/System.Private.Xml/tests/TrimmingTests/XmlSerializer.Deserialize.cs @@ -0,0 +1,86 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.IO; +using System.Linq; +using System.Xml.Schema; + +namespace System.Xml.Serialization.TrimmingTests +{ + internal class Program + { + // Preserve these types until XmlSerializer is fully trim-safe. + // see https://github.com/dotnet/runtime/issues/44768 + [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(Response))] + [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(DataUpdates))] + [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(DataUpdatesDataUpdateInfo))] + public static int Main() + { + using StringReader stringReader = new StringReader(@" + + + + + + + "); + + Response obj = (Response)new XmlSerializer(typeof(Response)).Deserialize(stringReader); + if (obj.DataUpdates.DataUpdateInfo.Count == 3 && + obj.DataUpdates.DataUpdateInfo.All(i => i.DataDate.Year == 2009 && i.LastUpdatedDate.Year == 2010)) + { + return 100; + } + + return -1; + } + } + + [Serializable] + [XmlType(AnonymousType = true)] + [XmlRoot(Namespace = "", IsNullable = false)] + public class Response + { + public Response() + { + this.DataUpdates = new DataUpdates(); + } + + [XmlElement(Order = 0)] + public DataUpdates DataUpdates { get; set; } + } + + [Serializable] + [XmlType(AnonymousType = true)] + [XmlRoot(Namespace = "", IsNullable = false)] + public class DataUpdates + { + public DataUpdates() + { + this.DataUpdateInfo = new List(); + } + + [XmlElement("DataUpdateInfo", Form = XmlSchemaForm.Unqualified, Order = 0)] + public List DataUpdateInfo { get; set; } + } + + [Serializable] + [XmlType(AnonymousType = true)] + public class DataUpdatesDataUpdateInfo + { + public DataUpdatesDataUpdateInfo() + { + } + + [XmlAttribute] + public DateTime DataDate { get; set; } + + [XmlAttribute] + public string DataType { get; set; } + + [XmlAttribute] + public DateTime LastUpdatedDate { get; set; } + } +} diff --git a/src/libraries/System.Private.Xml/tests/TrimmingTests/XmlSerializer.Serialize.cs b/src/libraries/System.Private.Xml/tests/TrimmingTests/XmlSerializer.Serialize.cs new file mode 100644 index 0000000000000..1e127dd7893c9 --- /dev/null +++ b/src/libraries/System.Private.Xml/tests/TrimmingTests/XmlSerializer.Serialize.cs @@ -0,0 +1,95 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.IO; +using System.Xml.Schema; + +namespace System.Xml.Serialization.TrimmingTests +{ + internal class Program + { + // Preserve these types until XmlSerializer is fully trim-safe. + // see https://github.com/dotnet/runtime/issues/44768 + [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(Response))] + [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(DataUpdates))] + [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(DataUpdatesDataUpdateInfo))] + public static int Main() + { + Response obj = new Response(); + obj.DataUpdates.DataUpdateInfo.Add(new DataUpdatesDataUpdateInfo() + { + DataDate = new DateTime(2009, 4, 13), + DataType = "Data", + LastUpdatedDate = new DateTime(2010, 12, 12) + }); + obj.DataUpdates.DataUpdateInfo.Add(new DataUpdatesDataUpdateInfo() + { + DataDate = new DateTime(2009, 4, 14), + DataType = "Data", + LastUpdatedDate = new DateTime(2010, 12, 12) + }); + + using StringWriter writer = new StringWriter(); + new XmlSerializer(typeof(Response)).Serialize(writer, obj); + string serialized = writer.ToString(); + + if (serialized.Contains("") && + serialized.Contains(@"") && + serialized.Contains(@"")) + { + return 100; + } + + return -1; + } + } + + [Serializable] + [XmlType(AnonymousType = true)] + [XmlRoot(Namespace = "", IsNullable = false)] + public class Response + { + public Response() + { + this.DataUpdates = new DataUpdates(); + } + + [XmlElement(Order = 0)] + public DataUpdates DataUpdates { get; set; } + } + + [Serializable] + [XmlType(AnonymousType = true)] + [XmlRoot(Namespace = "", IsNullable = false)] + public class DataUpdates + { + public DataUpdates() + { + this.DataUpdateInfo = new List(); + } + + [XmlElement("DataUpdateInfo", Form = XmlSchemaForm.Unqualified, Order = 0)] + public List DataUpdateInfo { get; set; } + } + + [Serializable] + [XmlType(AnonymousType = true)] + public class DataUpdatesDataUpdateInfo + { + public DataUpdatesDataUpdateInfo() + { + } + + [XmlAttribute] + public DateTime DataDate { get; set; } + + [XmlAttribute] + public string DataType { get; set; } + + [XmlAttribute] + public DateTime LastUpdatedDate { get; set; } + } +} From f81e70863c7ae5da7b4c8bbeb7297e8c8cf43572 Mon Sep 17 00:00:00 2001 From: Sung Yoon Whang Date: Thu, 3 Dec 2020 19:59:57 -0800 Subject: [PATCH 14/87] Make BinderEventListener not listen to TplEventSource (#45570) * Make BinderEventListener not listen to TplEventSource * Remove TasksFlowActivityIds definition Co-authored-by: Juan Hoyos --- src/tests/Loader/binding/tracing/BinderEventListener.cs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/tests/Loader/binding/tracing/BinderEventListener.cs b/src/tests/Loader/binding/tracing/BinderEventListener.cs index aef68cf05ae70..e749fbd2fe657 100644 --- a/src/tests/Loader/binding/tracing/BinderEventListener.cs +++ b/src/tests/Loader/binding/tracing/BinderEventListener.cs @@ -158,7 +158,6 @@ public override string ToString() internal sealed class BinderEventListener : EventListener { - private const EventKeywords TasksFlowActivityIds = (EventKeywords)0x80; private const EventKeywords AssemblyLoaderKeyword = (EventKeywords)0x4; private readonly object eventsLock = new object(); @@ -209,10 +208,6 @@ protected override void OnEventSourceCreated(EventSource eventSource) { EnableEvents(eventSource, EventLevel.Verbose, AssemblyLoaderKeyword); } - else if (eventSource.Name == "System.Threading.Tasks.TplEventSource") - { - EnableEvents(eventSource, EventLevel.Verbose, TasksFlowActivityIds); - } } protected override void OnEventWritten(EventWrittenEventArgs data) From 3bcfff83033f7a932532a7d6794cfc851752d1ad Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Thu, 3 Dec 2020 20:16:27 -0800 Subject: [PATCH 15/87] Update UnmanagedCallersOnly tests to not emit IL (#45572) * Update UnmanagedCallersOnly tests to emit IL only when needed. * Move last test into IL and delete test that uses invalid IL that only RefEmit can handle. --- .../UnmanagedCallersOnly/InvalidCallbacks.il | 11 +- .../UnmanagedCallersOnlyTest.cs | 502 ++---------------- 2 files changed, 40 insertions(+), 473 deletions(-) diff --git a/src/tests/Interop/UnmanagedCallersOnly/InvalidCallbacks.il b/src/tests/Interop/UnmanagedCallersOnly/InvalidCallbacks.il index f85723a9fcaa0..f1afc64eb7ac9 100644 --- a/src/tests/Interop/UnmanagedCallersOnly/InvalidCallbacks.il +++ b/src/tests/Interop/UnmanagedCallersOnly/InvalidCallbacks.il @@ -16,7 +16,7 @@ extends [System.Runtime]System.Object { .method public hidebysig static - void CallbackMethod ( + int32 CallbackMethod ( int32 n ) cil managed preservesig { @@ -70,6 +70,15 @@ IL_000a: throw } + .method public hidebysig static + native int GetNonStaticCallbackFunctionPointer ( + ) cil managed preservesig + { + .maxstack 8 + ldftn instance int32 InvalidCSharp.Callbacks::CallbackNonStatic(int32) + ret + } + .method public hidebysig specialname rtspecialname instance void .ctor () cil managed { diff --git a/src/tests/Interop/UnmanagedCallersOnly/UnmanagedCallersOnlyTest.cs b/src/tests/Interop/UnmanagedCallersOnly/UnmanagedCallersOnlyTest.cs index 93ab29a5c1ea7..fe10e63cbf610 100644 --- a/src/tests/Interop/UnmanagedCallersOnly/UnmanagedCallersOnlyTest.cs +++ b/src/tests/Interop/UnmanagedCallersOnly/UnmanagedCallersOnlyTest.cs @@ -11,7 +11,7 @@ using TestLibrary; using InvalidCSharp; -public class Program +public unsafe class Program { public static class UnmanagedCallersOnlyDll { @@ -46,7 +46,6 @@ public static int Main(string[] args) NegativeTest_NonStaticMethod(); NegativeTest_ViaDelegate(); NegativeTest_NonBlittable(); - NegativeTest_NonInstantiatedGenericArguments(); NegativeTest_InstantiatedGenericArguments(); NegativeTest_FromInstantiatedGenericClass(); TestUnmanagedCallersOnlyViaUnmanagedCalli(); @@ -87,79 +86,19 @@ private static int DoubleImpl(int n) public static void TestUnmanagedCallersOnlyValid() { Console.WriteLine($"Running {nameof(TestUnmanagedCallersOnlyValid)}..."); - - /* - void UnmanagedCallersOnly() - { - .locals init ([0] native int ptr) - IL_0000: nop - IL_0001: ldftn int32 ManagedDoubleCallback(int32) - IL_0007: stloc.0 - - IL_0008: ldloc.0 - IL_0009: ldc.i4 local - IL_000e: call bool UnmanagedCallersOnlyDll::CallManagedProc(native int, int) - - IL_0013: ret - } - */ - DynamicMethod testUnmanagedCallersOnly = new DynamicMethod("UnmanagedCallersOnly", typeof(int), null, typeof(Program).Module); - ILGenerator il = testUnmanagedCallersOnly.GetILGenerator(); - il.DeclareLocal(typeof(IntPtr)); - il.Emit(OpCodes.Nop); - - // Get native function pointer of the callback - il.Emit(OpCodes.Ldftn, typeof(Program).GetMethod(nameof(ManagedDoubleCallback))); - il.Emit(OpCodes.Stloc_0); - il.Emit(OpCodes.Ldloc_0); - + int n = 12345; - il.Emit(OpCodes.Ldc_I4, n); - il.Emit(OpCodes.Call, typeof(UnmanagedCallersOnlyDll).GetMethod("CallManagedProc")); - il.Emit(OpCodes.Ret); - var testNativeMethod = (IntNativeMethodInvoker)testUnmanagedCallersOnly.CreateDelegate(typeof(IntNativeMethodInvoker)); - int expected = DoubleImpl(n); - Assert.AreEqual(expected, testNativeMethod()); + Assert.AreEqual(expected, UnmanagedCallersOnlyDll.CallManagedProc((IntPtr)(delegate* unmanaged)&ManagedDoubleCallback, n)); } public static void TestUnmanagedCallersOnlyValid_OnNewNativeThread() { Console.WriteLine($"Running {nameof(TestUnmanagedCallersOnlyValid_OnNewNativeThread)}..."); - - /* - void UnmanagedCallersOnlyOnNewNativeThread() - { - .locals init ([0] native int ptr) - IL_0000: nop - IL_0001: ldftn int32 ManagedDoubleCallback(int32) - IL_0007: stloc.0 - - IL_0008: ldloc.0 - IL_0009: ldc.i4 local - IL_000e: call bool UnmanagedCallersOnlyDll::CallManagedProcOnNewThread(native int, int) - - IL_0013: ret - } - */ - DynamicMethod testUnmanagedCallersOnly = new DynamicMethod("UnmanagedCallersOnlyOnNewNativeThread", typeof(int), null, typeof(Program).Module); - ILGenerator il = testUnmanagedCallersOnly.GetILGenerator(); - il.DeclareLocal(typeof(IntPtr)); - il.Emit(OpCodes.Nop); - - // Get native function pointer of the callback - il.Emit(OpCodes.Ldftn, typeof(Program).GetMethod(nameof(ManagedDoubleCallback))); - il.Emit(OpCodes.Stloc_0); - il.Emit(OpCodes.Ldloc_0); - + int n = 12345; - il.Emit(OpCodes.Ldc_I4, n); - il.Emit(OpCodes.Call, typeof(UnmanagedCallersOnlyDll).GetMethod("CallManagedProcOnNewThread")); - il.Emit(OpCodes.Ret); - var testNativeMethod = (IntNativeMethodInvoker)testUnmanagedCallersOnly.CreateDelegate(typeof(IntNativeMethodInvoker)); - int expected = DoubleImpl(n); - Assert.AreEqual(expected, testNativeMethod()); + Assert.AreEqual(expected, UnmanagedCallersOnlyDll.CallManagedProcOnNewThread((IntPtr)(delegate* unmanaged)&ManagedDoubleCallback, n)); } [UnmanagedCallersOnly] @@ -172,46 +111,19 @@ public static int ManagedCallback_Prepared(int n) public static void TestUnmanagedCallersOnlyValid_PrepareMethod() { Console.WriteLine($"Running {nameof(TestUnmanagedCallersOnlyValid_PrepareMethod)}..."); - - /* - void UnmanagedCallersOnlyOnNewNativeThread() - { - .locals init ([0] native int ptr) - IL_0000: nop - IL_0001: ldftn int32 ManagedCallback_Prepared(int32) - IL_0007: stloc.0 - - IL_0008: ldloc.0 - IL_0009: ldc.i4 local - IL_000e: call bool UnmanagedCallersOnlyDll::CallManagedProcOnNewThread(native int, int) - - IL_0013: ret - } - */ - DynamicMethod testUnmanagedCallersOnly = new DynamicMethod("UnmanagedCallersOnlyValid_PrepareMethod", typeof(int), null, typeof(Program).Module); - ILGenerator il = testUnmanagedCallersOnly.GetILGenerator(); - il.DeclareLocal(typeof(IntPtr)); - il.Emit(OpCodes.Nop); - // Prepare the managed callback. var preparedCallback = typeof(Program).GetMethod(nameof(ManagedCallback_Prepared)); RuntimeHelpers.PrepareMethod(preparedCallback.MethodHandle); - // Get native function pointer of the callback - il.Emit(OpCodes.Ldftn, preparedCallback); - il.Emit(OpCodes.Stloc_0); - il.Emit(OpCodes.Ldloc_0); + UnmanagedCallersOnlyOnNewNativeThread(12345); - int n = 12345; - il.Emit(OpCodes.Ldc_I4, n); - il.Emit(OpCodes.Call, typeof(UnmanagedCallersOnlyDll).GetMethod("CallManagedProcOnNewThread")); - il.Emit(OpCodes.Ret); - var testNativeMethod = (IntNativeMethodInvoker)testUnmanagedCallersOnly.CreateDelegate(typeof(IntNativeMethodInvoker)); - - // Call enough to attempt to trigger Tiered Compilation from a new thread. - for (int i = 0; i < 100; ++i) + static void UnmanagedCallersOnlyOnNewNativeThread(int n) { - testNativeMethod(); + // Call enough to attempt to trigger Tiered Compilation from a new thread. + for (int i = 0; i < 100; ++i) + { + UnmanagedCallersOnlyDll.CallManagedProcOnNewThread((IntPtr)(delegate* unmanaged)&ManagedCallback_Prepared, n); + } } } @@ -228,49 +140,14 @@ public static void TestUnmanagedCallersOnlyMultipleTimesValid() { Console.WriteLine($"Running {nameof(TestUnmanagedCallersOnlyMultipleTimesValid)}..."); - /* - void UnmanagedCallersOnly() - { - .locals init ([0] native int ptr) - nop - - ldftn int32 ManagedDoubleInNativeCallback(int32) - stloc.0 - - ldc.i4 call count - ldloc.0 - ldc.i4 local - call bool UnmanagedCallersOnlyDll::CallManagedProcMultipleTimes(int, native int, int) - - ret - } - */ - DynamicMethod testUnmanagedCallersOnly = new DynamicMethod("UnmanagedCallersOnly", typeof(int), null, typeof(Program).Module); - ILGenerator il = testUnmanagedCallersOnly.GetILGenerator(); - il.DeclareLocal(typeof(IntPtr)); - il.Emit(OpCodes.Nop); - - // Get native function pointer of the callback - il.Emit(OpCodes.Ldftn, typeof(Program).GetMethod(nameof(ManagedDoubleInNativeCallback))); - il.Emit(OpCodes.Stloc_0); - int callCount = 7; - il.Emit(OpCodes.Ldc_I4, callCount); - - il.Emit(OpCodes.Ldloc_0); - int n = 12345; - il.Emit(OpCodes.Ldc_I4, n); - il.Emit(OpCodes.Call, typeof(UnmanagedCallersOnlyDll).GetMethod("CallManagedProcMultipleTimes")); - il.Emit(OpCodes.Ret); - var testNativeMethod = (IntNativeMethodInvoker)testUnmanagedCallersOnly.CreateDelegate(typeof(IntNativeMethodInvoker)); - int expected = 0; for (int i = 0; i < callCount; ++i) { expected += DoubleImpl(n); } - Assert.AreEqual(expected, testNativeMethod()); + Assert.AreEqual(expected, UnmanagedCallersOnlyDll.CallManagedProcMultipleTimes(callCount, (IntPtr)(delegate* unmanaged)&ManagedDoubleInNativeCallback, n)); } private const int CallbackThrowsErrorCode = 27; @@ -285,39 +162,9 @@ public static void TestUnmanagedCallersOnlyValid_ThrowException() { Console.WriteLine($"Running {nameof(TestUnmanagedCallersOnlyValid_ThrowException)}..."); - /* - void UnmanagedCallersOnlyValid_ThrowException() - { - .locals init ([0] native int ptr) - IL_0000: nop - IL_0001: ldftn int32 CallbackThrows(int32) - IL_0007: stloc.0 - - IL_0008: ldloc.0 - IL_0009: ldc.i4 local - IL_000e: call bool UnmanagedCallersOnlyDll::CallManagedProcCatchException(native int, int) - - IL_0013: ret - } - */ - DynamicMethod testUnmanagedCallersOnly = new DynamicMethod("UnmanagedCallersOnlyValid_ThrowException", typeof(int), null, typeof(Program).Module); - ILGenerator il = testUnmanagedCallersOnly.GetILGenerator(); - il.DeclareLocal(typeof(IntPtr)); - il.Emit(OpCodes.Nop); - - // Get native function pointer of the callback - il.Emit(OpCodes.Ldftn, typeof(Program).GetMethod(nameof(CallbackThrows))); - il.Emit(OpCodes.Stloc_0); - il.Emit(OpCodes.Ldloc_0); - int n = 12345; - il.Emit(OpCodes.Ldc_I4, n); - il.Emit(OpCodes.Call, typeof(UnmanagedCallersOnlyDll).GetMethod("CallManagedProcCatchException")); - il.Emit(OpCodes.Ret); - var testNativeMethod = (IntNativeMethodInvoker)testUnmanagedCallersOnly.CreateDelegate(typeof(IntNativeMethodInvoker)); - // Method should have thrown and caught an exception. - Assert.AreEqual(-1, testNativeMethod()); + Assert.AreEqual(-1, UnmanagedCallersOnlyDll.CallManagedProcCatchException((IntPtr)(delegate* unmanaged)&CallbackThrows, n)); } public static void NegativeTest_ViaDelegate() @@ -340,42 +187,8 @@ public static void NegativeTest_NonStaticMethod() { Console.WriteLine($"Running {nameof(NegativeTest_NonStaticMethod)}..."); - /* - void TestUnmanagedCallersOnlyNonStatic() - { - .locals init ([0] native int ptr) - nop - ldftn int typeof(Callbacks).CallbackNonStatic(int) - stloc.0 - - ldloc.0 - ldc.i4 local - call bool UnmanagedCallersOnlyDll::CallManagedProc(native int, int) - pop - - ret - } - */ - DynamicMethod testUnmanagedCallersOnly = new DynamicMethod("TestUnmanagedCallersOnlyNonStatic", null, null, typeof(Program).Module); - ILGenerator il = testUnmanagedCallersOnly.GetILGenerator(); - il.DeclareLocal(typeof(IntPtr)); - il.Emit(OpCodes.Nop); - - // Get native function pointer of the callback - il.Emit(OpCodes.Ldftn, typeof(Callbacks).GetMethod("CallbackNonStatic")); - il.Emit(OpCodes.Stloc_0); - il.Emit(OpCodes.Ldloc_0); - int n = 12345; - il.Emit(OpCodes.Ldc_I4, n); - il.Emit(OpCodes.Call, typeof(UnmanagedCallersOnlyDll).GetMethod("CallManagedProc")); - il.Emit(OpCodes.Pop); - il.Emit(OpCodes.Ret); - - var testNativeMethod = (NativeMethodInvoker)testUnmanagedCallersOnly.CreateDelegate(typeof(NativeMethodInvoker)); - - // Try invoking method - Assert.Throws(() => { testNativeMethod(); }); + Assert.Throws(() => { UnmanagedCallersOnlyDll.CallManagedProc(Callbacks.GetNonStaticCallbackFunctionPointer(), n); }); } [UnmanagedCallersOnly] @@ -389,156 +202,27 @@ public static void NegativeTest_NonBlittable() { Console.WriteLine($"Running {nameof(NegativeTest_NonBlittable)}..."); - /* - void TestUnmanagedCallersOnlyNonBlittable() - { - .locals init ([0] native int ptr) - nop - ldftn int CallbackMethodNonBlittable(bool) - stloc.0 - - ldloc.0 - ldc.i4 local - call bool UnmanagedCallersOnlyDll::CallManagedProc(native int, int) - pop - - ret - } - */ - DynamicMethod testUnmanagedCallersOnly = new DynamicMethod("TestUnmanagedCallersOnlyNonBlittable", null, null, typeof(Program).Module); - ILGenerator il = testUnmanagedCallersOnly.GetILGenerator(); - il.DeclareLocal(typeof(IntPtr)); - il.Emit(OpCodes.Nop); - - // Get native function pointer of the callback - il.Emit(OpCodes.Ldftn, typeof(Program).GetMethod(nameof(CallbackMethodNonBlittable))); - il.Emit(OpCodes.Stloc_0); - il.Emit(OpCodes.Ldloc_0); - int n = 12345; - il.Emit(OpCodes.Ldc_I4, n); - il.Emit(OpCodes.Call, typeof(UnmanagedCallersOnlyDll).GetMethod("CallManagedProc")); - il.Emit(OpCodes.Pop); - il.Emit(OpCodes.Ret); - - var testNativeMethod = (NativeMethodInvoker)testUnmanagedCallersOnly.CreateDelegate(typeof(NativeMethodInvoker)); - // Try invoking method - Assert.Throws(() => { testNativeMethod(); }); - } - - public static void NegativeTest_NonInstantiatedGenericArguments() - { - Console.WriteLine($"Running {nameof(NegativeTest_NonInstantiatedGenericArguments)}..."); - - /* - void TestUnmanagedCallersOnlyNonInstGenericArguments() - { - .locals init ([0] native int ptr) - IL_0000: nop - IL_0001: ldftn void InvalidCSharp.Callbacks.CallbackMethodGeneric(T) - IL_0007: stloc.0 - IL_0008: ret - } - */ - DynamicMethod testUnmanagedCallersOnly = new DynamicMethod("TestUnmanagedCallersOnlyNonInstGenericArguments", null, null, typeof(Program).Module); - ILGenerator il = testUnmanagedCallersOnly.GetILGenerator(); - il.DeclareLocal(typeof(IntPtr)); - il.Emit(OpCodes.Nop); - - // Get native function pointer of the callback - il.Emit(OpCodes.Ldftn, typeof(Callbacks).GetMethod("CallbackMethodGeneric")); - il.Emit(OpCodes.Stloc_0); - - il.Emit(OpCodes.Ret); - var testNativeMethod = (NativeMethodInvoker)testUnmanagedCallersOnly.CreateDelegate(typeof(NativeMethodInvoker)); - - // Try invoking method - Assert.Throws(() => { testNativeMethod(); }); + Assert.Throws(() => { UnmanagedCallersOnlyDll.CallManagedProc((IntPtr)(delegate* unmanaged)&CallbackMethodNonBlittable, n); }); } public static void NegativeTest_InstantiatedGenericArguments() { Console.WriteLine($"Running {nameof(NegativeTest_InstantiatedGenericArguments)}..."); - - /* - void TestUnmanagedCallersOnlyInstGenericArguments() - { - .locals init ([0] native int ptr) - nop - ldftn void InvalidCSharp.Callbacks.CallbackMethodGeneric(int) - stloc.0 - - ldloc.0 - ldc.i4 local - call bool UnmanagedCallersOnlyDll::CallManagedProc(native int, int) - pop - - ret - } - */ - DynamicMethod testUnmanagedCallersOnly = new DynamicMethod("TestUnmanagedCallersOnlyInstGenericArguments", null, null, typeof(Program).Module); - ILGenerator il = testUnmanagedCallersOnly.GetILGenerator(); - il.DeclareLocal(typeof(IntPtr)); - il.Emit(OpCodes.Nop); - - // Get native function pointer of the instantiated generic callback - il.Emit(OpCodes.Ldftn, typeof(Callbacks).GetMethod("CallbackMethodGeneric").MakeGenericMethod(new [] { typeof(int) })); - il.Emit(OpCodes.Stloc_0); - il.Emit(OpCodes.Ldloc_0); - + int n = 12345; - il.Emit(OpCodes.Ldc_I4, n); - il.Emit(OpCodes.Call, typeof(UnmanagedCallersOnlyDll).GetMethod("CallManagedProc")); - il.Emit(OpCodes.Pop); - il.Emit(OpCodes.Ret); - - var testNativeMethod = (NativeMethodInvoker)testUnmanagedCallersOnly.CreateDelegate(typeof(NativeMethodInvoker)); - // Try invoking method - Assert.Throws(() => { testNativeMethod(); }); + Assert.Throws(() => { UnmanagedCallersOnlyDll.CallManagedProc((IntPtr)(delegate* unmanaged)&Callbacks.CallbackMethodGeneric, n); }); } public static void NegativeTest_FromInstantiatedGenericClass() { Console.WriteLine($"Running {nameof(NegativeTest_FromInstantiatedGenericClass)}..."); - /* - void TestUnmanagedCallersOnlyInstGenericType() - { - .locals init ([0] native int ptr) - nop - ldftn int InvalidCSharp.GenericClass::CallbackMethod(int) - stloc.0 - - ldloc.0 - ldc.i4 local - call bool UnmanagedCallersOnlyDll::CallManagedProc(native int, int) - pop - - ret - } - */ - DynamicMethod testUnmanagedCallersOnly = new DynamicMethod("TestUnmanagedCallersOnlyInstGenericClass", null, null, typeof(Program).Module); - ILGenerator il = testUnmanagedCallersOnly.GetILGenerator(); - il.DeclareLocal(typeof(IntPtr)); - il.Emit(OpCodes.Nop); - - // Get native function pointer of the callback from the instantiated generic class. - il.Emit(OpCodes.Ldftn, typeof(GenericClass).GetMethod("CallbackMethod")); - il.Emit(OpCodes.Stloc_0); - il.Emit(OpCodes.Ldloc_0); - int n = 12345; - il.Emit(OpCodes.Ldc_I4, n); - il.Emit(OpCodes.Call, typeof(UnmanagedCallersOnlyDll).GetMethod("CallManagedProc")); - il.Emit(OpCodes.Pop); - il.Emit(OpCodes.Ret); - - var testNativeMethod = (NativeMethodInvoker)testUnmanagedCallersOnly.CreateDelegate(typeof(NativeMethodInvoker)); - // Try invoking method - Assert.Throws(() => { testNativeMethod(); }); + Assert.Throws(() => { UnmanagedCallersOnlyDll.CallManagedProc((IntPtr)(delegate* unmanaged)&GenericClass.CallbackMethod, n); }); } [UnmanagedCallersOnly] @@ -551,44 +235,15 @@ public static void NegativeTest_ViaCalli() { Console.WriteLine($"{nameof(NegativeTest_ViaCalli)} function via calli instruction. The CLR _will_ crash."); - /* - void TestUnmanagedCallersOnlyViaCalli() - { - .locals init (native int V_0) - IL_0000: nop - IL_0001: ldftn void CallbackViaCalli(int32) - IL_0007: stloc.0 - - IL_0008: ldc.i4 1234 - IL_000d: ldloc.0 - IL_000e: calli void(int32) - - IL_0013: nop - IL_0014: ret - } - */ - DynamicMethod testUnmanagedCallersOnly = new DynamicMethod("TestUnmanagedCallersOnlyViaCalli", null, null, typeof(Program).Module); - ILGenerator il = testUnmanagedCallersOnly.GetILGenerator(); - il.DeclareLocal(typeof(IntPtr)); - il.Emit(OpCodes.Nop); - - // Get native function pointer of the callback - il.Emit(OpCodes.Ldftn, typeof(Program).GetMethod(nameof(CallbackViaCalli))); - il.Emit(OpCodes.Stloc_0); - - il.Emit(OpCodes.Ldc_I4, 1234); - il.Emit(OpCodes.Ldloc_0); - il.EmitCalli(OpCodes.Calli, CallingConventions.Standard, null, new Type[] { typeof(int) }, null); - - il.Emit(OpCodes.Nop); - il.Emit(OpCodes.Ret); - - NativeMethodInvoker testNativeMethod = (NativeMethodInvoker)testUnmanagedCallersOnly.CreateDelegate(typeof(NativeMethodInvoker)); - // It is not possible to catch the resulting ExecutionEngineException exception. // To observe the crashing behavior set a breakpoint in the ReversePInvokeBadTransition() function // located in src/vm/dllimportcallback.cpp. - testNativeMethod(); + TestNativeMethod(); + + static void TestNativeMethod() + { + ((delegate*)(delegate* unmanaged)&CallbackViaCalli)(1234); + } } [UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvStdcall) })] @@ -601,42 +256,10 @@ public static void TestUnmanagedCallersOnlyViaUnmanagedCalli() { Console.WriteLine($"Running {nameof(TestUnmanagedCallersOnlyViaUnmanagedCalli)}..."); - /* - void UnmanagedCallersOnlyViaCalli() - { - .locals init (native int V_0) - IL_0000: nop - IL_0001: ldftn int CallbackViaUnmanagedCalli(int32) - IL_0007: stloc.0 - - IL_0008: ldc.i4 1234 - IL_000d: ldloc.0 - IL_000e: calli int32 stdcall(int32) - - IL_0014: ret - } - */ - DynamicMethod testUnmanagedCallersOnly = new DynamicMethod("UnmanagedCallersOnlyViaUnmanagedCalli", typeof(int), null, typeof(Program).Module); - ILGenerator il = testUnmanagedCallersOnly.GetILGenerator(); - il.DeclareLocal(typeof(IntPtr)); - il.Emit(OpCodes.Nop); - - // Get native function pointer of the callback - il.Emit(OpCodes.Ldftn, typeof(Program).GetMethod(nameof(CallbackViaUnmanagedCalli))); - il.Emit(OpCodes.Stloc_0); - int n = 1234; - - il.Emit(OpCodes.Ldc_I4, n); - il.Emit(OpCodes.Ldloc_0); - il.EmitCalli(OpCodes.Calli, CallingConvention.StdCall, typeof(int), new Type[] { typeof(int) }); - - il.Emit(OpCodes.Ret); - - IntNativeMethodInvoker testNativeMethod = (IntNativeMethodInvoker)testUnmanagedCallersOnly.CreateDelegate(typeof(IntNativeMethodInvoker)); - int expected = DoubleImpl(n); - Assert.AreEqual(expected, testNativeMethod()); + delegate* unmanaged[Stdcall] nativeMethod = &CallbackViaUnmanagedCalli; + Assert.AreEqual(expected, nativeMethod(n)); } [UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvStdcall) })] @@ -649,43 +272,12 @@ public static void TestUnmanagedCallersOnlyViaUnmanagedCalli_ThrowException() { Console.WriteLine($"Running {nameof(TestUnmanagedCallersOnlyViaUnmanagedCalli_ThrowException)}..."); - /* - void UnmanagedCallersOnlyViaUnmanagedCalli_ThrowException() - { - .locals init (native int V_0) - IL_0000: nop - IL_0001: ldftn int CallbackViaUnmanagedCalliThrows(int32) - IL_0007: stloc.0 - - IL_0008: ldc.i4 1234 - IL_000d: ldloc.0 - IL_000e: calli int32 stdcall(int32) - - IL_0014: ret - } - */ - DynamicMethod testUnmanagedCallersOnly = new DynamicMethod("UnmanagedCallersOnlyViaUnmanagedCalli_ThrowException", typeof(int), null, typeof(Program).Module); - ILGenerator il = testUnmanagedCallersOnly.GetILGenerator(); - il.DeclareLocal(typeof(IntPtr)); - il.Emit(OpCodes.Nop); - - // Get native function pointer of the callback - il.Emit(OpCodes.Ldftn, typeof(Program).GetMethod(nameof(CallbackViaUnmanagedCalliThrows))); - il.Emit(OpCodes.Stloc_0); + delegate* unmanaged[Stdcall] testNativeMethod = &CallbackViaUnmanagedCalliThrows; int n = 1234; - - il.Emit(OpCodes.Ldc_I4, n); - il.Emit(OpCodes.Ldloc_0); - il.EmitCalli(OpCodes.Calli, CallingConvention.StdCall, typeof(int), new Type[] { typeof(int) }); - - il.Emit(OpCodes.Ret); - - IntNativeMethodInvoker testNativeMethod = (IntNativeMethodInvoker)testUnmanagedCallersOnly.CreateDelegate(typeof(IntNativeMethodInvoker)); - try { - testNativeMethod(); + testNativeMethod(n); Assert.Fail($"Function {nameof(CallbackViaUnmanagedCalliThrows)} should throw"); } catch (Exception e) @@ -706,41 +298,7 @@ public static void TestPInvokeMarkedWithUnmanagedCallersOnly() Assert.Throws(() => method.Invoke(null, BindingFlags.DoNotWrapExceptions, null, new[] { (object)0 }, null)); // Call P/Invoke as a function pointer - /* - void TestPInvokeMarkedWithUnmanagedCallersOnly_Throws() - { - .locals init (native int V_0) - IL_0000: nop - IL_0001: ldftn int InvalidCSharp.CallingUnmanagedCallersOnlyDirectly::PInvokeMarkedWithUnmanagedCallersOnly(int32) - IL_0007: stloc.0 - - IL_0008: ldc.i4 1234 - IL_000d: ldloc.0 - IL_000e: calli int32 stdcall(int32) - - IL_0014: ret - } - */ - - DynamicMethod testUnmanagedCallersOnly = new DynamicMethod("TestPInvokeMarkedWithUnmanagedCallersOnly_Throws", typeof(int), null, typeof(Program).Module); - ILGenerator il = testUnmanagedCallersOnly.GetILGenerator(); - il.DeclareLocal(typeof(IntPtr)); - il.Emit(OpCodes.Nop); - - // Get native function pointer of the callback - il.Emit(OpCodes.Ldftn, method); - il.Emit(OpCodes.Stloc_0); - int n = 1234; - - il.Emit(OpCodes.Ldc_I4, n); - il.Emit(OpCodes.Ldloc_0); - il.EmitCalli(OpCodes.Calli, CallingConvention.StdCall, typeof(int), new Type[] { typeof(int) }); - - il.Emit(OpCodes.Ret); - - IntNativeMethodInvoker testNativeMethod = (IntNativeMethodInvoker)testUnmanagedCallersOnly.CreateDelegate(typeof(IntNativeMethodInvoker)); - - Assert.Throws(() => testNativeMethod()); + Assert.Throws(() => ((delegate* unmanaged)&CallingUnmanagedCallersOnlyDirectly.PInvokeMarkedWithUnmanagedCallersOnly)(n)); } } From 3cc30f4065808ed9ca93243111a4c660aaa60567 Mon Sep 17 00:00:00 2001 From: Bruce Forstall Date: Thu, 3 Dec 2020 20:34:36 -0800 Subject: [PATCH 16/87] Fix location of JIT-EE version GUID (#45574) With #45044 it moved from corinfo.h to jiteeversionguid.h --- src/coreclr/scripts/superpmi.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/coreclr/scripts/superpmi.py b/src/coreclr/scripts/superpmi.py index dd0b4cf8a9e3a..81b40197cabed 100755 --- a/src/coreclr/scripts/superpmi.py +++ b/src/coreclr/scripts/superpmi.py @@ -108,7 +108,7 @@ spmi_log_file_help = "Write SuperPMI tool output to a log file. Requires --sequential." jit_ee_version_help = """\ -JIT/EE interface version (the JITEEVersionIdentifier GUID from corinfo.h in the format +JIT/EE interface version (the JITEEVersionIdentifier GUID from jiteeversionguid.h in the format 'a5eec3a4-4176-43a7-8c2b-a05b551d4f49'). Default: if the mcs tool is found, assume it was built with the same JIT/EE version as the JIT we are using, and run "mcs -printJITEEVersion" to get that version. Otherwise, use "unknown-jit-ee-version". @@ -1817,9 +1817,9 @@ def determine_jit_ee_version(coreclr_args): """ Determine the JIT-EE version to use. The JIT-EE version is used for determining which MCH files to download and use. It is determined as follows: - 1. Try to parse it out of the source code. If we can find src\\coreclr\\src\\inc\\corinfo.h in the source + 1. Try to parse it out of the source code. If we can find src\\coreclr\\src\\inc\\jiteeversionguid.h in the source tree (and we're already assuming we can find the repo root from the relative path of this script), - then the JIT-EE version lives in corinfo.h as follows: + then the JIT-EE version lives in jiteeversionguid.h as follows: constexpr GUID JITEEVersionIdentifier = { /* a5eec3a4-4176-43a7-8c2b-a05b551d4f49 */ 0xa5eec3a4, @@ -1845,17 +1845,17 @@ def determine_jit_ee_version(coreclr_args): (str) The JIT-EE version to use """ - corinfo_h_path = os.path.join(coreclr_args.coreclr_dir, "src", "inc", "corinfo.h") - if os.path.isfile(corinfo_h_path): + jiteeversionguid_h_path = os.path.join(coreclr_args.coreclr_dir, "src", "inc", "jiteeversionguid.h") + if os.path.isfile(jiteeversionguid_h_path): # The string is near the beginning of the somewhat large file, so just read a line at a time when searching. - with open(corinfo_h_path, 'r') as file_handle: + with open(jiteeversionguid_h_path, 'r') as file_handle: for line in file_handle: match_obj = re.search(r'JITEEVersionIdentifier *= *{ */\* *([^ ]*) *\*/', line) if match_obj is not None: - corinfo_h_jit_ee_version = match_obj.group(1) - logging.info("Using JIT/EE Version from corinfo.h: %s", corinfo_h_jit_ee_version) - return corinfo_h_jit_ee_version - logging.warning("Warning: couldn't find JITEEVersionIdentifier in %s; is the file corrupt?", corinfo_h_path) + jiteeversionguid_h_jit_ee_version = match_obj.group(1) + logging.info("Using JIT/EE Version from jiteeversionguid.h: %s", jiteeversionguid_h_jit_ee_version) + return jiteeversionguid_h_jit_ee_version + logging.warning("Warning: couldn't find JITEEVersionIdentifier in %s; is the file corrupt?", jiteeversionguid_h_path) mcs_path = determine_mcs_tool_path(coreclr_args) command = [mcs_path, "-printJITEEVersion"] From bba6c0b618f40adbfdcd9014dbd435351496d180 Mon Sep 17 00:00:00 2001 From: Egor Bogatov Date: Fri, 4 Dec 2020 07:39:33 +0300 Subject: [PATCH 17/87] Add Tuple-based Math.DivRem overloads (#45074) * Add Tuple-based Math.DivRem overloads * Remove internal versions of Math.DivRem * Add AggressiveInlining * Add comments Co-authored-by: Stephen Toub --- .../src/System/Buffers/StandardFormat.cs | 3 +- .../System/Globalization/TimeSpanFormat.cs | 9 +- .../System.Private.CoreLib/src/System/Math.cs | 127 +++++++- .../src/System/Number.BigInteger.cs | 5 +- .../src/System/Number.Formatting.cs | 12 +- .../src/System/Number.Grisu3.cs | 6 +- .../Number.NumberToFloatingPointBits.cs | 2 +- .../tests/System/Math.cs | 291 ++++++++++++++++-- .../System.Runtime/ref/System.Runtime.cs | 15 + 9 files changed, 424 insertions(+), 46 deletions(-) diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/StandardFormat.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/StandardFormat.cs index 1aeb2ff7e6d08..46f0847405341 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/StandardFormat.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/StandardFormat.cs @@ -182,7 +182,8 @@ internal int Format(Span destination) if (precision >= 10) { - uint div = Math.DivRem(precision, 10, out precision); + uint div; + (div, precision) = Math.DivRem(precision, 10); destination[1] = (char)('0' + div % 10); count = 2; } diff --git a/src/libraries/System.Private.CoreLib/src/System/Globalization/TimeSpanFormat.cs b/src/libraries/System.Private.CoreLib/src/System/Globalization/TimeSpanFormat.cs index c82a2c3c950fc..1ed63ae31a7b5 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Globalization/TimeSpanFormat.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Globalization/TimeSpanFormat.cs @@ -129,7 +129,8 @@ private static bool TryFormatStandard(TimeSpan value, StandardFormat format, str } } - totalSecondsRemaining = Math.DivRem((ulong)ticks, TimeSpan.TicksPerSecond, out ulong fraction64); + ulong fraction64; + (totalSecondsRemaining, fraction64) = Math.DivRem((ulong)ticks, TimeSpan.TicksPerSecond); fraction = (uint)fraction64; } @@ -170,7 +171,7 @@ private static bool TryFormatStandard(TimeSpan value, StandardFormat format, str if (totalSecondsRemaining > 0) { // Only compute minutes if the TimeSpan has an absolute value of >= 1 minute. - totalMinutesRemaining = Math.DivRem(totalSecondsRemaining, 60 /* seconds per minute */, out seconds); + (totalMinutesRemaining, seconds) = Math.DivRem(totalSecondsRemaining, 60 /* seconds per minute */); Debug.Assert(seconds < 60); } @@ -178,7 +179,7 @@ private static bool TryFormatStandard(TimeSpan value, StandardFormat format, str if (totalMinutesRemaining > 0) { // Only compute hours if the TimeSpan has an absolute value of >= 1 hour. - totalHoursRemaining = Math.DivRem(totalMinutesRemaining, 60 /* minutes per hour */, out minutes); + (totalHoursRemaining, minutes) = Math.DivRem(totalMinutesRemaining, 60 /* minutes per hour */); Debug.Assert(minutes < 60); } @@ -189,7 +190,7 @@ private static bool TryFormatStandard(TimeSpan value, StandardFormat format, str if (totalHoursRemaining > 0) { // Only compute days if the TimeSpan has an absolute value of >= 1 day. - days = Math.DivRem((uint)totalHoursRemaining, 24 /* hours per day */, out hours); + (days, hours) = Math.DivRem((uint)totalHoursRemaining, 24 /* hours per day */); Debug.Assert(hours < 24); } diff --git a/src/libraries/System.Private.CoreLib/src/System/Math.cs b/src/libraries/System.Private.CoreLib/src/System/Math.cs index f1c058281739a..335a3cc2c14a5 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Math.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Math.cs @@ -271,18 +271,129 @@ public static long DivRem(long a, long b, out long result) return div; } - internal static uint DivRem(uint a, uint b, out uint result) + /// Produces the quotient and the remainder of two signed 8-bit numbers. + /// The dividend. + /// The divisor. + /// The quotient and the remainder of the specified numbers. + [NonVersionable] + [CLSCompliant(false)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static (sbyte Quotient, sbyte Remainder) DivRem(sbyte left, sbyte right) { - uint div = a / b; - result = a - (div * b); - return div; + sbyte quotient = (sbyte)(left / right); + return (quotient, (sbyte)(left - (quotient * right))); + } + + /// Produces the quotient and the remainder of two unsigned 8-bit numbers. + /// The dividend. + /// The divisor. + /// The quotient and the remainder of the specified numbers. + [NonVersionable] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static (byte Quotient, byte Remainder) DivRem(byte left, byte right) + { + byte quotient = (byte)(left / right); + return (quotient, (byte)(left - (quotient * right))); } - internal static ulong DivRem(ulong a, ulong b, out ulong result) + /// Produces the quotient and the remainder of two signed 16-bit numbers. + /// The dividend. + /// The divisor. + /// The quotient and the remainder of the specified numbers. + [NonVersionable] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static (short Quotient, short Remainder) DivRem(short left, short right) { - ulong div = a / b; - result = a - (div * b); - return div; + short quotient = (short)(left / right); + return (quotient, (short)(left - (quotient * right))); + } + + /// Produces the quotient and the remainder of two unsigned 16-bit numbers. + /// The dividend. + /// The divisor. + /// The quotient and the remainder of the specified numbers. + [NonVersionable] + [CLSCompliant(false)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static (ushort Quotient, ushort Remainder) DivRem(ushort left, ushort right) + { + ushort quotient = (ushort)(left / right); + return (quotient, (ushort)(left - (quotient * right))); + } + + /// Produces the quotient and the remainder of two signed 32-bit numbers. + /// The dividend. + /// The divisor. + /// The quotient and the remainder of the specified numbers. + [NonVersionable] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static (int Quotient, int Remainder) DivRem(int left, int right) + { + int quotient = left / right; + return (quotient, left - (quotient * right)); + } + + /// Produces the quotient and the remainder of two unsigned 32-bit numbers. + /// The dividend. + /// The divisor. + /// The quotient and the remainder of the specified numbers. + [NonVersionable] + [CLSCompliant(false)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static (uint Quotient, uint Remainder) DivRem(uint left, uint right) + { + uint quotient = left / right; + return (quotient, left - (quotient * right)); + } + + /// Produces the quotient and the remainder of two signed 64-bit numbers. + /// The dividend. + /// The divisor. + /// The quotient and the remainder of the specified numbers. + [NonVersionable] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static (long Quotient, long Remainder) DivRem(long left, long right) + { + long quotient = left / right; + return (quotient, left - (quotient * right)); + } + + /// Produces the quotient and the remainder of two unsigned 64-bit numbers. + /// The dividend. + /// The divisor. + /// The quotient and the remainder of the specified numbers. + [NonVersionable] + [CLSCompliant(false)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static (ulong Quotient, ulong Remainder) DivRem(ulong left, ulong right) + { + ulong quotient = left / right; + return (quotient, left - (quotient * right)); + } + + /// Produces the quotient and the remainder of two signed native-size numbers. + /// The dividend. + /// The divisor. + /// The quotient and the remainder of the specified numbers. + [NonVersionable] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static (nint Quotient, nint Remainder) DivRem(nint left, nint right) + { + nint quotient = left / right; + return (quotient, left - (quotient * right)); + } + + /// Produces the quotient and the remainder of two unsigned native-size numbers. + /// The dividend. + /// The divisor. + /// The quotient and the remainder of the specified numbers. + [NonVersionable] + [CLSCompliant(false)] + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static (nuint Quotient, nuint Remainder) DivRem(nuint left, nuint right) + { + nuint quotient = left / right; + return (quotient, left - (quotient * right)); } [MethodImpl(MethodImplOptions.AggressiveInlining)] diff --git a/src/libraries/System.Private.CoreLib/src/System/Number.BigInteger.cs b/src/libraries/System.Private.CoreLib/src/System/Number.BigInteger.cs index 329784737d316..51cfa45736afb 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Number.BigInteger.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Number.BigInteger.cs @@ -446,7 +446,7 @@ public static void DivRem(ref BigInteger lhs, ref BigInteger rhs, out BigInteger if ((lhsLength == 1) && (rhsLength == 1)) { - uint quotient = Math.DivRem(lhs._blocks[0], rhs._blocks[0], out uint remainder); + (uint quotient, uint remainder) = Math.DivRem(lhs._blocks[0], rhs._blocks[0]); SetUInt32(out quo, quotient); SetUInt32(out rem, remainder); return; @@ -464,7 +464,8 @@ public static void DivRem(ref BigInteger lhs, ref BigInteger rhs, out BigInteger for (int i = quoLength - 1; i >= 0; i--) { ulong value = (carry << 32) | lhs._blocks[i]; - ulong digit = Math.DivRem(value, rhsValue, out carry); + ulong digit; + (digit, carry) = Math.DivRem(value, rhsValue); if ((digit == 0) && (i == (quoLength - 1))) { diff --git a/src/libraries/System.Private.CoreLib/src/System/Number.Formatting.cs b/src/libraries/System.Private.CoreLib/src/System/Number.Formatting.cs index 299e394f509a8..cc05a9b8d4558 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Number.Formatting.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Number.Formatting.cs @@ -1334,7 +1334,8 @@ private static unsafe void UInt32ToNumber(uint value, ref NumberBuffer number) { while (--digits >= 0 || value != 0) { - value = Math.DivRem(value, 10, out uint remainder); + uint remainder; + (value, remainder) = Math.DivRem(value, 10); *(--bufferEnd) = (byte)(remainder + '0'); } return bufferEnd; @@ -1344,7 +1345,8 @@ private static unsafe void UInt32ToNumber(uint value, ref NumberBuffer number) { while (--digits >= 0 || value != 0) { - value = Math.DivRem(value, 10, out uint remainder); + uint remainder; + (value, remainder) = Math.DivRem(value, 10); *(--bufferEnd) = (char)(remainder + '0'); } return bufferEnd; @@ -1367,7 +1369,8 @@ internal static unsafe string UInt32ToDecStr(uint value) char* p = buffer + bufferLength; do { - value = Math.DivRem(value, 10, out uint remainder); + uint remainder; + (value, remainder) = Math.DivRem(value, 10); *(--p) = (char)(remainder + '0'); } while (value != 0); @@ -1409,7 +1412,8 @@ private static unsafe bool TryUInt32ToDecStr(uint value, int digits, Span { do { - value = Math.DivRem(value, 10, out uint remainder); + uint remainder; + (value, remainder) = Math.DivRem(value, 10); *(--p) = (char)(remainder + '0'); } while (value != 0); diff --git a/src/libraries/System.Private.CoreLib/src/System/Number.Grisu3.cs b/src/libraries/System.Private.CoreLib/src/System/Number.Grisu3.cs index 474f7074a217a..b1217121ef6b5 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Number.Grisu3.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Number.Grisu3.cs @@ -624,7 +624,8 @@ private static bool TryDigitGenCounted(in DiyFp w, int requestedDigits, Span 0) { - uint digit = Math.DivRem(integrals, divisor, out integrals); + uint digit; + (digit, integrals) = Math.DivRem(integrals, divisor); Debug.Assert(digit <= 9); buffer[length] = (byte)('0' + digit); @@ -802,7 +803,8 @@ private static bool TryDigitGenShortest(in DiyFp low, in DiyFp w, in DiyFp high, // The divisor is the biggest power of ten that is smaller than integrals while (kappa > 0) { - uint digit = Math.DivRem(integrals, divisor, out integrals); + uint digit; + (digit, integrals) = Math.DivRem(integrals, divisor); Debug.Assert(digit <= 9); buffer[length] = (byte)('0' + digit); diff --git a/src/libraries/System.Private.CoreLib/src/System/Number.NumberToFloatingPointBits.cs b/src/libraries/System.Private.CoreLib/src/System/Number.NumberToFloatingPointBits.cs index 788697ffb70a9..6da4045ea67a8 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Number.NumberToFloatingPointBits.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Number.NumberToFloatingPointBits.cs @@ -261,7 +261,7 @@ private static ulong ConvertBigIntegerToFloatingPointBits(ref BigInteger value, return AssembleFloatingPointBits(in info, value.ToUInt64(), baseExponent, !hasNonZeroFractionalPart); } - uint topBlockIndex = Math.DivRem(integerBitsOfPrecision, 32, out uint topBlockBits); + (uint topBlockIndex, uint topBlockBits) = Math.DivRem(integerBitsOfPrecision, 32); uint middleBlockIndex = topBlockIndex - 1; uint bottomBlockIndex = middleBlockIndex - 1; diff --git a/src/libraries/System.Runtime.Extensions/tests/System/Math.cs b/src/libraries/System.Runtime.Extensions/tests/System/Math.cs index dde176dce8a6c..a774266567212 100644 --- a/src/libraries/System.Runtime.Extensions/tests/System/Math.cs +++ b/src/libraries/System.Runtime.Extensions/tests/System/Math.cs @@ -4,6 +4,7 @@ using Xunit; using Xunit.Sdk; using System.Collections.Generic; +using System.Runtime.CompilerServices; #pragma warning disable xUnit1025 // reporting duplicate test cases due to not distinguishing 0.0 from -0.0 @@ -1802,34 +1803,276 @@ public static void BigMul128_Signed(long a, long b, string result) } [Theory] - [InlineData(1073741, 2147483647, 2000, 1647)] - [InlineData(6, 13952, 2000, 1952)] - [InlineData(0, 0, 2000, 0)] - [InlineData(-7, -14032, 2000, -32)] - [InlineData(-1073741, -2147483648, 2000, -1648)] - [InlineData(-1073741, 2147483647, -2000, 1647)] - [InlineData(-6, 13952, -2000, 1952)] - public static void DivRem(int quotient, int dividend, int divisor, int expectedRemainder) - { - int remainder; - Assert.Equal(quotient, Math.DivRem(dividend, divisor, out remainder)); - Assert.Equal(expectedRemainder, remainder); + [InlineData(sbyte.MaxValue, sbyte.MaxValue, 1, 0)] + [InlineData(sbyte.MaxValue, 1, sbyte.MaxValue, 0)] + [InlineData(sbyte.MaxValue, 2, 63, 1)] + [InlineData(sbyte.MaxValue, -1, -127, 0)] + [InlineData(11, 22, 0, 11)] + [InlineData(80, 22, 3, 14)] + [InlineData(80, -22, -3, 14)] + [InlineData(-80, 22, -3, -14)] + [InlineData(-80, -22, 3, -14)] + [InlineData(0, 1, 0, 0)] + [InlineData(0, sbyte.MaxValue, 0, 0)] + [InlineData(sbyte.MinValue, sbyte.MaxValue, -1, -1)] + [InlineData(sbyte.MaxValue, 0, 0, 0)] + [InlineData(1, 0, 0, 0)] + [InlineData(0, 0, 0, 0)] + public static void DivRemSByte(sbyte dividend, sbyte divisor, sbyte expectedQuotient, sbyte expectedRemainder) + { + if (divisor == 0) + { + Assert.Throws(() => Math.DivRem(dividend, divisor)); + } + else + { + var (actualQuotient, actualRemainder) = Math.DivRem(dividend, divisor); + Assert.Equal(expectedQuotient, actualQuotient); + Assert.Equal(expectedRemainder, actualRemainder); + } + } + + [Theory] + [InlineData(byte.MaxValue, byte.MaxValue, 1, 0)] + [InlineData(byte.MaxValue, 1, byte.MaxValue, 0)] + [InlineData(byte.MaxValue, 2, 127, 1)] + [InlineData(52, 5, 10, 2)] + [InlineData(100, 33, 3, 1)] + [InlineData(0, 1, 0, 0)] + [InlineData(0, byte.MaxValue, 0, 0)] + [InlineData(250, 50, 5, 0)] + [InlineData(byte.MaxValue, 0, 0, 0)] + [InlineData(1, 0, 0, 0)] + [InlineData(0, 0, 0, 0)] + public static void DivRemByte(byte dividend, byte divisor, byte expectedQuotient, byte expectedRemainder) + { + if (divisor == 0) + { + Assert.Throws(() => Math.DivRem(dividend, divisor)); + } + else + { + var (actualQuotient, actualRemainder) = Math.DivRem(dividend, divisor); + Assert.Equal(expectedQuotient, actualQuotient); + Assert.Equal(expectedRemainder, actualRemainder); + } + } + + [Theory] + [InlineData(short.MaxValue, short.MaxValue, 1, 0)] + [InlineData(short.MaxValue, 1, short.MaxValue, 0)] + [InlineData(short.MaxValue, 2, 16383, 1)] + [InlineData(short.MaxValue, -1, -32767, 0)] + [InlineData(12345, 22424, 0, 12345)] + [InlineData(300, 22, 13, 14)] + [InlineData(300, -22, -13, 14)] + [InlineData(-300, 22, -13, -14)] + [InlineData(-300, -22, 13, -14)] + [InlineData(0, 1, 0, 0)] + [InlineData(0, short.MaxValue, 0, 0)] + [InlineData(short.MinValue, short.MaxValue, -1, -1)] + [InlineData(13952, 2000, 6, 1952)] + [InlineData(short.MaxValue, 0, 0, 0)] + [InlineData(1, 0, 0, 0)] + [InlineData(0, 0, 0, 0)] + public static void DivRemInt16(short dividend, short divisor, short expectedQuotient, short expectedRemainder) + { + if (divisor == 0) + { + Assert.Throws(() => Math.DivRem(dividend, divisor)); + } + else + { + var (actualQuotient, actualRemainder) = Math.DivRem(dividend, divisor); + Assert.Equal(expectedQuotient, actualQuotient); + Assert.Equal(expectedRemainder, actualRemainder); + } + } + + [Theory] + [InlineData(ushort.MaxValue, ushort.MaxValue, 1, 0)] + [InlineData(ushort.MaxValue, 1, ushort.MaxValue, 0)] + [InlineData(ushort.MaxValue, 2, 32767, 1)] + [InlineData(12345, 42424, 0, 12345)] + [InlineData(51474, 31474, 1, 20000)] + [InlineData(10000, 333, 30, 10)] + [InlineData(0, 1, 0, 0)] + [InlineData(0, ushort.MaxValue, 0, 0)] + [InlineData(13952, 2000, 6, 1952)] + [InlineData(ushort.MaxValue, 0, 0, 0)] + [InlineData(1, 0, 0, 0)] + [InlineData(0, 0, 0, 0)] + public static void DivRemUInt16(ushort dividend, ushort divisor, ushort expectedQuotient, ushort expectedRemainder) + { + if (divisor == 0) + { + Assert.Throws(() => Math.DivRem(dividend, divisor)); + } + else + { + var (actualQuotient, actualRemainder) = Math.DivRem(dividend, divisor); + Assert.Equal(expectedQuotient, actualQuotient); + Assert.Equal(expectedRemainder, actualRemainder); + } + } + + [Theory] + [InlineData(2147483647, 2000, 1073741, 1647)] + [InlineData(13952, 2000, 6, 1952)] + [InlineData(0, 2000, 0, 0)] + [InlineData(-14032, 2000, -7, -32)] + [InlineData(-2147483648, 2000, -1073741, -1648)] + [InlineData(2147483647, -2000, -1073741, 1647)] + [InlineData(13952, -2000, -6, 1952)] + [InlineData(13952, 0, 0, 0)] + [InlineData(int.MaxValue, 0, 0, 0)] + [InlineData(0, 0, 0, 0)] + public static void DivRemInt32(int dividend, int divisor, int expectedQuotient, int expectedRemainder) + { + if (divisor == 0) + { + Assert.Throws(() => Math.DivRem(dividend, divisor)); + Assert.Throws(() => Math.DivRem(dividend, divisor, out int remainder)); + } + else + { + Assert.Equal(expectedQuotient, Math.DivRem(dividend, divisor, out int remainder)); + Assert.Equal(expectedRemainder, remainder); + + var (actualQuotient, actualRemainder) = Math.DivRem(dividend, divisor); + Assert.Equal(expectedQuotient, actualQuotient); + Assert.Equal(expectedRemainder, actualRemainder); + } + if (IntPtr.Size == 4) + { + DivRemNativeInt(dividend, divisor, expectedQuotient, expectedRemainder); + } + } + + [Theory] + [InlineData(uint.MaxValue, uint.MaxValue, 1, 0)] + [InlineData(uint.MaxValue, 1, uint.MaxValue, 0)] + [InlineData(uint.MaxValue, 2, 2147483647, 1)] + [InlineData(123456789, 4242424242, 0, 123456789)] + [InlineData(514748364, 3147483647, 0, 514748364)] + [InlineData(1000000, 333, 3003, 1)] + [InlineData(0, 1, 0, 0)] + [InlineData(0UL, uint.MaxValue, 0, 0)] + [InlineData(13952, 2000, 6, 1952)] + [InlineData(uint.MaxValue, 0, 0, 0)] + [InlineData(1, 0, 0, 0)] + [InlineData(0, 0, 0, 0)] + public static void DivRemUInt32(uint dividend, uint divisor, uint expectedQuotient, uint expectedRemainder) + { + if (divisor == 0) + { + Assert.Throws(() => Math.DivRem(dividend, divisor)); + } + else + { + var (actualQuotient, actualRemainder) = Math.DivRem(dividend, divisor); + Assert.Equal(expectedQuotient, actualQuotient); + Assert.Equal(expectedRemainder, actualRemainder); + } + if (IntPtr.Size == 4) + { + DivRemNativeUInt(dividend, divisor, expectedQuotient, expectedRemainder); + } } [Theory] - [InlineData(4611686018427387L, 9223372036854775807L, 2000L, 1807L)] - [InlineData(4611686018427387L, -9223372036854775808L, -2000L, -1808L)] - [InlineData(-4611686018427387L, 9223372036854775807L, -2000L, 1807L)] - [InlineData(-4611686018427387L, -9223372036854775808L, 2000L, -1808L)] - [InlineData(6L, 13952L, 2000L, 1952L)] - [InlineData(0L, 0L, 2000L, 0L)] - [InlineData(-7L, -14032L, 2000L, -32L)] - [InlineData(-6L, 13952L, -2000L, 1952L)] - public static void DivRemLong(long quotient, long dividend, long divisor, long expectedRemainder) + [InlineData(9223372036854775807L, 2000L, 4611686018427387L, 1807L)] + [InlineData(-9223372036854775808L, -2000L, 4611686018427387L, -1808L)] + [InlineData(9223372036854775807L, -2000L, -4611686018427387L, 1807L)] + [InlineData(-9223372036854775808L, 2000L, -4611686018427387L, -1808L)] + [InlineData(13952L, 2000L, 6L, 1952L)] + [InlineData(0L, 2000L, 0L, 0L)] + [InlineData(-14032L, 2000L, -7L, -32L)] + [InlineData(13952L, -2000L, -6L, 1952L)] + [InlineData(long.MaxValue, 0, 0, 0)] + [InlineData(1, 0, 0, 0)] + [InlineData(0, 0, 0, 0)] + public static void DivRemInt64(long dividend, long divisor, long expectedQuotient, long expectedRemainder) + { + if (divisor == 0) + { + Assert.Throws(() => Math.DivRem(dividend, divisor)); + Assert.Throws(() => Math.DivRem(dividend, divisor, out long remainder)); + } + else + { + Assert.Equal(expectedQuotient, Math.DivRem(dividend, divisor, out long remainder)); + Assert.Equal(expectedRemainder, remainder); + + var (actualQuotient, actualRemainder) = Math.DivRem(dividend, divisor); + Assert.Equal(expectedQuotient, actualQuotient); + Assert.Equal(expectedRemainder, actualRemainder); + } + if (IntPtr.Size == 8) + { + DivRemNativeInt((nint)dividend, (nint)divisor, (nint)expectedQuotient, (nint)expectedRemainder); + } + } + + [Theory] + [InlineData(ulong.MaxValue, ulong.MaxValue, 1, 0)] + [InlineData(ulong.MaxValue, 1, ulong.MaxValue, 0)] + [InlineData(ulong.MaxValue, 2, 9223372036854775807, 1)] + [InlineData(123456789, 4242424242, 0, 123456789)] + [InlineData(5147483647, 3147483647, 1, 2000000000)] + [InlineData(1000000, 333, 3003, 1)] + [InlineData(0, 1, 0, 0)] + [InlineData(0UL, ulong.MaxValue, 0, 0)] + [InlineData(13952, 2000, 6, 1952)] + [InlineData(ulong.MaxValue, 0, 0, 0)] + [InlineData(1, 0, 0, 0)] + [InlineData(0, 0, 0, 0)] + public static void DivRemUInt64(ulong dividend, ulong divisor, ulong expectedQuotient, ulong expectedRemainder) + { + if (divisor == 0) + { + Assert.Throws(() => Math.DivRem(dividend, divisor)); + } + else + { + var (actualQuotient, actualRemainder) = Math.DivRem(dividend, divisor); + Assert.Equal(expectedQuotient, actualQuotient); + Assert.Equal(expectedRemainder, actualRemainder); + } + if (IntPtr.Size == 8) + { + DivRemNativeUInt((nuint)dividend, (nuint)divisor, (nuint)expectedQuotient, (nuint)expectedRemainder); + } + } + + [MethodImpl(MethodImplOptions.NoInlining)] + private static void DivRemNativeInt(nint dividend, nint divisor, nint expectedQuotient, nint expectedRemainder) { - long remainder; - Assert.Equal(quotient, Math.DivRem(dividend, divisor, out remainder)); - Assert.Equal(expectedRemainder, remainder); + if (divisor == 0) + { + Assert.Throws(() => Math.DivRem(dividend, divisor)); + } + else + { + var (actualQuotient, actualRemainder) = Math.DivRem(dividend, divisor); + Assert.Equal(expectedQuotient, actualQuotient); + Assert.Equal(expectedRemainder, actualRemainder); + } + } + + [MethodImpl(MethodImplOptions.NoInlining)] + private static void DivRemNativeUInt(nuint dividend, nuint divisor, nuint expectedQuotient, nuint expectedRemainder) + { + if (divisor == 0) + { + Assert.Throws(() => Math.DivRem(dividend, divisor)); + } + else + { + var (actualQuotient, actualRemainder) = Math.DivRem(dividend, divisor); + Assert.Equal(expectedQuotient, actualQuotient); + Assert.Equal(expectedRemainder, actualRemainder); + } } public static IEnumerable Clamp_UnsignedInt_TestData() diff --git a/src/libraries/System.Runtime/ref/System.Runtime.cs b/src/libraries/System.Runtime/ref/System.Runtime.cs index e7b8eac6abc53..cf87c368b37d0 100644 --- a/src/libraries/System.Runtime/ref/System.Runtime.cs +++ b/src/libraries/System.Runtime/ref/System.Runtime.cs @@ -2696,6 +2696,21 @@ public static partial class Math public static double Cosh(double value) { throw null; } public static int DivRem(int a, int b, out int result) { throw null; } public static long DivRem(long a, long b, out long result) { throw null; } + public static (byte Quotient, byte Remainder) DivRem(byte left, byte right) { throw null; } + [System.CLSCompliantAttribute(false)] + public static (sbyte Quotient, sbyte Remainder) DivRem(sbyte left, sbyte right) { throw null; } + public static (short Quotient, short Remainder) DivRem(short left, short right) { throw null; } + [System.CLSCompliantAttribute(false)] + public static (ushort Quotient, ushort Remainder) DivRem(ushort left, ushort right) { throw null; } + public static (int Quotient, int Remainder) DivRem(int left, int right) { throw null; } + [System.CLSCompliantAttribute(false)] + public static (uint Quotient, uint Remainder) DivRem(uint left, uint right) { throw null; } + public static (long Quotient, long Remainder) DivRem(long left, long right) { throw null; } + [System.CLSCompliantAttribute(false)] + public static (ulong Quotient, ulong Remainder) DivRem(ulong left, ulong right) { throw null; } + public static (nint Quotient, nint Remainder) DivRem(nint left, nint right) { throw null; } + [System.CLSCompliantAttribute(false)] + public static (nuint Quotient, nuint Remainder) DivRem(nuint left, nuint right) { throw null; } public static double Exp(double d) { throw null; } public static decimal Floor(decimal d) { throw null; } public static double Floor(double d) { throw null; } From 6747320e43ca649036111a0ef45f107e2b209079 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Matou=C5=A1ek?= Date: Thu, 3 Dec 2020 20:46:50 -0800 Subject: [PATCH 18/87] Document Compilation Options and Compilation Metadata References CDIs (#37605) --- docs/design/specs/PortablePdb-Metadata.md | 73 +++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/docs/design/specs/PortablePdb-Metadata.md b/docs/design/specs/PortablePdb-Metadata.md index d642bc0a6523c..5164f8d5edf93 100644 --- a/docs/design/specs/PortablePdb-Metadata.md +++ b/docs/design/specs/PortablePdb-Metadata.md @@ -24,6 +24,8 @@ The ECMA-335-II standard is amended by an addition of the following tables to th * [EditAndContinueLambdaAndClosureMap](#EditAndContinueLambdaAndClosureMap) * [EmbeddedSource](#EmbeddedSource) * [SourceLink](#SourceLink) + * [CompilationMetadataReferences](#CompilationMetadataReferences) + * [CompilationOptions](#CompilationOptions) Debugging metadata tables may be embedded into type system metadata (and part of a PE file), or they may be stored separately in a metadata blob contained in a .pdb file. In the latter case additional information is included that connects the debugging metadata to the type system metadata. @@ -523,3 +525,74 @@ Parent: Module Kind: {CC110556-A091-4D38-9FEC-25AB9A351A6A} The blob stores UTF8 encoded text file in JSON format that includes information on how to locate the content of documents listed in Document table on a source server. + +##### Compilation Metadata References (C# and VB compilers) +Parent: Module + +Kind: {7E4D4708-096E-4C5C-AEDA-CB10BA6A740D} + +Stores information about all metadata references used to compile the module. + +The blob has the following structure: + + Blob ::= MetadataReferenceInfo+ + MetadataReferenceInfo ::= file-name aliases flags time-stamp file-size mvid + +| terminal | encoding | description | +|:-----------|:------------------------------------------|:----------------------------------------------------------| +| file-name | UTF8 NIL-terminated | Name of the metadata file (includes an extension). | +| aliases | UTF8 NIL-terminated, comma-separated list | List of external aliases for the reference. May be empty. | +| flags | byte | Flags. | +| time-stamp | uint32 | PE COFF header Timestamp field. | +| file-size | uint32 | PE COFF header SizeOfImage field. | +| mvid | GUID (16 bytes) | Module Version Id (ModuleDef table field). | + +The meaning of the _flags_ byte: + +| flag | description | +|:----------|:----------------------------------------------------------------| +| 0b0000001 | The referenced file is an assembly (as opposed to a netmodule). | +| 0b0000010 | Embed interop types. | + +The remaining bits are reserved for future use and have currently no meaning. + +> The data can be used to find the reference in a file indexing service such as a symbol server. +> For example, the [Simple Symbol Query Protocol](https://github.com/dotnet/symstore/blob/master/docs/specs/Simple_Symbol_Query_Protocol.md) uses a combination of _file-name_, _time-stamp_ and _file-size_ as a [key](https://github.com/dotnet/symstore/blob/master/docs/specs/SSQP_Key_Conventions.md#pe-timestamp-filesize). +> Other services might use the MVID as it uniquely identifies the module. + +##### Compilation Options (C# and VB compilers) +Parent: Module + +Kind: {B5FEEC05-8CD0-4A83-96DA-466284BB4BD8} + +Stores compilation options used to compile the module. Only captures information that is not present elsewhere in the PDB, in the PE headers or metadata of the module. + +The blob has the following structure: + + Blob ::= (name value)* + +| terminal | encoding | description | +|:-----------|:--------------------|:---------------------------------| +| name | UTF8 NIL-terminated | Name of the compilation option. | +| value | UTF8 NIL-terminated | Value of the compilation option. | + +There shall be no two entries with the same _name_ in the list. + +It is recommended, but not required that _name_ is lower-case and uses hyphen (`-`) for separating words. + +Common options: + +| name | value format | description | +|:-------------------|:---------------------------------------------------------------|:-------------------------------------| +| `language` | `CSharp` or `VisualBasic` | Language name. | +| `compiler-version` | [SemVer2](https://semver.org/spec/v2.0.0.html) version string | Version of the compiler used to build the module with _build metadata_ set to commit SHA for officially released compiler. | +| `runtime-version` | [SemVer2](https://semver.org/spec/v2.0.0.html) version string | Version of the CLR used to build the module with _build metadata_ set to commit SHA for officially released .NET Core runtime. | + +Other options listed in the blob are specific to each compiler. Future versions of the compiler may add additional options. +The order of the options in the list is insignificant. + +> The `runtime-version` is significant since the compiler may have used certain functionality from the runtime that impacts the compilation output (e.g. Unicode tables, etc.) + +> The purpose of this data is to allow a tool to reconstruct the compilation the module was built from. +> The source files for the compilation are expected to be recovered from the source server using [SourceLink](#SourceLink) and/or from [sources embedded](#EmbeddedSource) in the PDB. +> The metadata references for the compilation are expected to be recovered from a file indexing service (e.g. symbol server) using information in [Compilation Metadata References](#CompilationMetadataReferences) record. From c21892859250a6bf8eb57ffedc140a05aba1246d Mon Sep 17 00:00:00 2001 From: Ilia Date: Fri, 4 Dec 2020 07:50:12 +0300 Subject: [PATCH 19/87] Return the result of PAL_InjectActivation in Thread::InjectGcSuspension (#44731) --- src/coreclr/src/vm/threadsuspend.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/coreclr/src/vm/threadsuspend.cpp b/src/coreclr/src/vm/threadsuspend.cpp index 89824f31eaa60..087fac8fc6da6 100644 --- a/src/coreclr/src/vm/threadsuspend.cpp +++ b/src/coreclr/src/vm/threadsuspend.cpp @@ -6185,10 +6185,7 @@ bool Thread::InjectGcSuspension() HANDLE hThread = GetThreadHandle(); if (hThread != INVALID_HANDLE_VALUE) - { - ::PAL_InjectActivation(hThread); - return true; - } + return ::PAL_InjectActivation(hThread); return false; } From 46f57b000f9fe2deef9224d88c15ae4407e93322 Mon Sep 17 00:00:00 2001 From: Juan Hoyos Date: Thu, 3 Dec 2020 21:18:02 -0800 Subject: [PATCH 20/87] Add documentation on how to disable runtime tests (#45578) * Update pr-guide.md Co-authored-by: Jan Kotas --- docs/pr-guide.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/pr-guide.md b/docs/pr-guide.md index 36fecf858f2be..2240678786675 100644 --- a/docs/pr-guide.md +++ b/docs/pr-guide.md @@ -80,7 +80,10 @@ If you have determined the failure is definitely not caused by changes in your P * If the issue is already closed, reopen it and update the labels to reflect the current failure state. * If there's no existing issue, create an issue with the same information listed above. * Update the original pull request with a comment linking to the new or existing issue. -* In a follow-up Pull Request, disable the failing test(s) with the corresponding issue link, e.g. `[ActiveIssue(x)]`, and update the tracking issue with the label `disabled-test`. +* In a follow-up Pull Request, disable the failing test(s) with the corresponding issue link tracking the disable. + * Update the tracking issue with the label `disabled-test`. + * For libraries tests add a `[ActiveIssue(link)]` attribute on the test method. You can narrow the disabling down to runtime variant, flavor, and platform. For an example see [File_AppendAllLinesAsync_Encoded](https://github.com/dotnet/runtime/blob/a259ec2e967d502f82163beba6b84da5319c5e08/src/libraries/System.IO.FileSystem/tests/File/AppendAsync.cs#L899) + * For runtime tests found under `src/tests`, please edit [`issues.targets`](https://github.com/dotnet/runtime/blob/master/src/tests/issues.targets). There are several groups for different types of disable (mono vs. coreclr, different platforms, different scenarios). Add the folder containing the test and issue mimicking any of the samples in the file. There are plenty of possible bugs, e.g. race conditions, where a failure might highlight a real problem and it won't manifest again on a retry. Therefore these steps should be followed for every iteration of the PR build, e.g. before retrying/rebuilding. From e280e6124ba75f139b71ebb0eb2d33cc3b3843b2 Mon Sep 17 00:00:00 2001 From: Maryam Ariyan Date: Fri, 4 Dec 2020 05:01:36 -0800 Subject: [PATCH 21/87] Breaking change: Throw when resolving on a disposed service provider (#45116) --- .../ServiceProviderEngineScope.cs | 21 ++- ...xtensions.DependencyInjection.Tests.csproj | 6 + .../DI.Tests/ServiceProviderContainerTests.cs | 141 ++++++++++++++++++ 3 files changed, 164 insertions(+), 4 deletions(-) diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/ServiceProviderEngineScope.cs b/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/ServiceProviderEngineScope.cs index b8a330642cf40..48335806c9e06 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/ServiceProviderEngineScope.cs +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/ServiceProviderEngineScope.cs @@ -17,6 +17,7 @@ internal class ServiceProviderEngineScope : IServiceScope, IServiceProvider, IAs private List _disposables; private bool _disposed; + private readonly object _disposelock = new object(); public ServiceProviderEngineScope(ServiceProviderEngine engine) { @@ -41,8 +42,6 @@ public object GetService(Type serviceType) internal object CaptureDisposable(object service) { - Debug.Assert(!_disposed); - _captureDisposableCallback?.Invoke(service); if (ReferenceEquals(this, service) || !(service is IDisposable || service is IAsyncDisposable)) @@ -50,8 +49,22 @@ internal object CaptureDisposable(object service) return service; } - lock (ResolvedServices) + lock (_disposelock) { + if (_disposed) + { + if (service is IDisposable disposable) + { + disposable.Dispose(); + } + else + { + // sync over async, for the rare case that an object only implements IAsyncDisposable and may end up starving the thread pool. + Task.Run(() => ((IAsyncDisposable)service).DisposeAsync().AsTask()).GetAwaiter().GetResult(); + } + ThrowHelper.ThrowObjectDisposedException(); + } + if (_disposables == null) { _disposables = new List(); @@ -144,7 +157,7 @@ static async ValueTask Await(int i, ValueTask vt, List toDispose) private List BeginDispose() { List toDispose; - lock (ResolvedServices) + lock (_disposelock) { if (_disposed) { diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/Microsoft.Extensions.DependencyInjection.Tests.csproj b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/Microsoft.Extensions.DependencyInjection.Tests.csproj index 762664f48f733..bb3a008f3684d 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/Microsoft.Extensions.DependencyInjection.Tests.csproj +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/Microsoft.Extensions.DependencyInjection.Tests.csproj @@ -7,6 +7,8 @@ + @@ -15,4 +17,8 @@ + + + + diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/ServiceProviderContainerTests.cs b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/ServiceProviderContainerTests.cs index 0ede07896f5b5..d83a52d4f9e19 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/ServiceProviderContainerTests.cs +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/ServiceProviderContainerTests.cs @@ -4,11 +4,13 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection.Fakes; using Microsoft.Extensions.DependencyInjection.Specification; using Microsoft.Extensions.DependencyInjection.Specification.Fakes; using Microsoft.Extensions.DependencyInjection.Tests.Fakes; +using Microsoft.Extensions.Internal; using Xunit; namespace Microsoft.Extensions.DependencyInjection.Tests @@ -265,6 +267,145 @@ public void ScopeDispose_PreventsServiceResolution() Assert.NotNull(provider.CreateScope()); } + [Fact] + public void GetService_DisposeOnSameThread_Throws() + { + var services = new ServiceCollection(); + services.AddSingleton(); + IServiceProvider sp = services.BuildServiceProvider(); + Assert.Throws(() => + { + // ctor disposes ServiceProvider + var service = sp.GetRequiredService(); + }); + } + + [Fact] + public void GetAsyncService_DisposeAsyncOnSameThread_ThrowsAndDoesNotHangAndDisposeAsyncGetsCalled() + { + // Arrange + var services = new ServiceCollection(); + var asyncDisposableResource = new AsyncDisposable(); + services.AddSingleton(sp => + new DisposeServiceProviderInCtorAsyncDisposable(asyncDisposableResource, sp)); + + var sp = services.BuildServiceProvider(); + bool doesNotHang = Task.Run(() => + { + SingleThreadedSynchronizationContext.Run(() => + { + // Act + Assert.Throws(() => + { + // ctor disposes ServiceProvider + var service = sp.GetRequiredService(); + }); + }); + }).Wait(TimeSpan.FromSeconds(10)); + + Assert.True(doesNotHang); + Assert.True(asyncDisposableResource.DisposeAsyncCalled); + } + + [Fact] + public void GetService_DisposeOnSameThread_ThrowsAndDoesNotHangAndDisposeGetsCalled() + { + // Arrange + var services = new ServiceCollection(); + var disposableResource = new Disposable(); + services.AddSingleton(sp => + new DisposeServiceProviderInCtorDisposable(disposableResource, sp)); + + var sp = services.BuildServiceProvider(); + bool doesNotHang = Task.Run(() => + { + SingleThreadedSynchronizationContext.Run(() => + { + // Act + Assert.Throws(() => + { + // ctor disposes ServiceProvider + var service = sp.GetRequiredService(); + }); + }); + }).Wait(TimeSpan.FromSeconds(10)); + + Assert.True(doesNotHang); + Assert.True(disposableResource.Disposed); + } + + private class DisposeServiceProviderInCtor : IDisposable + { + public DisposeServiceProviderInCtor(IServiceProvider sp) + { + (sp as IDisposable).Dispose(); + } + public void Dispose() { } + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public async Task AddDisposablesAndAsyncDisposables_DisposeAsync_AllDisposed(bool includeDelayedAsyncDisposable) + { + var services = new ServiceCollection(); + services.AddSingleton(); + services.AddSingleton(); + if (includeDelayedAsyncDisposable) + { + //forces Dispose ValueTask to be asynchronous and not be immediately completed + services.AddSingleton(); + } + ServiceProvider sp = services.BuildServiceProvider(); + var disposable = sp.GetRequiredService(); + var asyncDisposable = sp.GetRequiredService(); + DelayedAsyncDisposableService delayedAsyncDisposableService = null; + if (includeDelayedAsyncDisposable) + { + delayedAsyncDisposableService = sp.GetRequiredService(); + } + + await sp.DisposeAsync(); + + Assert.True(disposable.Disposed); + Assert.True(asyncDisposable.DisposeAsyncCalled); + if (includeDelayedAsyncDisposable) + { + Assert.Equal(1, delayedAsyncDisposableService.DisposeCount); + } + } + + private class DisposeServiceProviderInCtorAsyncDisposable : IFakeService, IAsyncDisposable + { + private readonly AsyncDisposable _asyncDisposable; + + public DisposeServiceProviderInCtorAsyncDisposable(AsyncDisposable asyncDisposable, IServiceProvider sp) + { + _asyncDisposable = asyncDisposable; + (sp as IAsyncDisposable).DisposeAsync(); + } + public async ValueTask DisposeAsync() + { + await _asyncDisposable.DisposeAsync(); + await Task.Yield(); + } + } + + private class DisposeServiceProviderInCtorDisposable : IFakeService, IDisposable + { + private readonly Disposable _disposable; + + public DisposeServiceProviderInCtorDisposable(Disposable disposable, IServiceProvider sp) + { + _disposable = disposable; + (sp as IDisposable).Dispose(); + } + public void Dispose() + { + _disposable.Dispose(); + } + } + [ActiveIssue("https://github.com/dotnet/runtime/issues/42160")] // We don't support value task services currently [Theory] [InlineData(ServiceLifetime.Transient)] From fae35941e16310d815460475810f069578e6e774 Mon Sep 17 00:00:00 2001 From: Vadim Galaktionov Date: Fri, 4 Dec 2020 16:04:46 +0300 Subject: [PATCH 22/87] Fix resolve root IServiceProvider (#45171) --- .../src/HostBuilder.cs | 11 ++++++++++- .../tests/UnitTests/HostBuilderTests.cs | 14 ++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/libraries/Microsoft.Extensions.Hosting/src/HostBuilder.cs b/src/libraries/Microsoft.Extensions.Hosting/src/HostBuilder.cs index 961b4003dc1ab..17342fa0679af 100644 --- a/src/libraries/Microsoft.Extensions.Hosting/src/HostBuilder.cs +++ b/src/libraries/Microsoft.Extensions.Hosting/src/HostBuilder.cs @@ -9,6 +9,8 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.FileProviders; using Microsoft.Extensions.Hosting.Internal; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; namespace Microsoft.Extensions.Hosting { @@ -214,7 +216,14 @@ private void CreateServiceProvider() #pragma warning restore CS0618 // Type or member is obsolete services.AddSingleton(); services.AddSingleton(); - services.AddSingleton(); + services.AddSingleton(_ => + { + return new Internal.Host(_appServices, + _appServices.GetRequiredService(), + _appServices.GetRequiredService>(), + _appServices.GetRequiredService(), + _appServices.GetRequiredService>()); + }); services.AddOptions().Configure(options => { options.Initialize(_hostConfiguration); }); services.AddLogging(); diff --git a/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/HostBuilderTests.cs b/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/HostBuilderTests.cs index f41e85511b543..e4b793849acf8 100644 --- a/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/HostBuilderTests.cs +++ b/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/HostBuilderTests.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Reflection; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.FileProviders; @@ -530,6 +531,19 @@ public void BuilderPropertiesAreAvailableInBuilderAndContext() using (hostBuilder.Build()) { } } + [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/34580", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)] + public void HostServicesSameServiceProviderAsInHostBuilder() + { + var hostBuilder = Host.CreateDefaultBuilder(); + var host = hostBuilder.Build(); + + var type = hostBuilder.GetType(); + var field = type.GetField("_appServices", BindingFlags.Instance | BindingFlags.NonPublic)!; + var appServicesFromHostBuilder = (IServiceProvider)field.GetValue(hostBuilder)!; + Assert.Same(appServicesFromHostBuilder, host.Services); + } + private class ServiceC { public ServiceC(ServiceD serviceD) { } From 78d431c7e97aeec96652aea8552e7da81c387a70 Mon Sep 17 00:00:00 2001 From: Eric Erhardt Date: Fri, 4 Dec 2020 10:06:17 -0600 Subject: [PATCH 23/87] Remove unnecessary IsStatic checks in ActivatorUtilities (#45439) --- .../src/ActivatorUtilities.cs | 45 +++++++------------ .../ActivatorUtilitiesTests.cs | 9 +++- 2 files changed, 24 insertions(+), 30 deletions(-) diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection.Abstractions/src/ActivatorUtilities.cs b/src/libraries/Microsoft.Extensions.DependencyInjection.Abstractions/src/ActivatorUtilities.cs index 25a7267924bc6..92be14984876c 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection.Abstractions/src/ActivatorUtilities.cs +++ b/src/libraries/Microsoft.Extensions.DependencyInjection.Abstractions/src/ActivatorUtilities.cs @@ -40,33 +40,30 @@ public static object CreateInstance( { foreach (ConstructorInfo? constructor in instanceType.GetConstructors()) { - if (!constructor.IsStatic) - { - var matcher = new ConstructorMatcher(constructor); - bool isPreferred = constructor.IsDefined(typeof(ActivatorUtilitiesConstructorAttribute), false); - int length = matcher.Match(parameters); + var matcher = new ConstructorMatcher(constructor); + bool isPreferred = constructor.IsDefined(typeof(ActivatorUtilitiesConstructorAttribute), false); + int length = matcher.Match(parameters); - if (isPreferred) + if (isPreferred) + { + if (seenPreferred) { - if (seenPreferred) - { - ThrowMultipleCtorsMarkedWithAttributeException(); - } - - if (length == -1) - { - ThrowMarkedCtorDoesNotTakeAllProvidedArguments(); - } + ThrowMultipleCtorsMarkedWithAttributeException(); } - if (isPreferred || bestLength < length) + if (length == -1) { - bestLength = length; - bestMatcher = matcher; + ThrowMarkedCtorDoesNotTakeAllProvidedArguments(); } + } - seenPreferred |= isPreferred; + if (isPreferred || bestLength < length) + { + bestLength = length; + bestMatcher = matcher; } + + seenPreferred |= isPreferred; } } @@ -232,11 +229,6 @@ private static bool TryFindMatchingConstructor( { foreach (ConstructorInfo? constructor in instanceType.GetConstructors()) { - if (constructor.IsStatic) - { - continue; - } - if (TryCreateParameterMap(constructor.GetParameters(), argumentTypes, out int?[] tempParameterMap)) { if (matchingConstructor != null) @@ -268,11 +260,6 @@ private static bool TryFindPreferredConstructor( bool seenPreferred = false; foreach (ConstructorInfo? constructor in instanceType.GetConstructors()) { - if (constructor.IsStatic) - { - continue; - } - if (constructor.IsDefined(typeof(ActivatorUtilitiesConstructorAttribute), false)) { if (seenPreferred) diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Specification.Tests/ActivatorUtilitiesTests.cs b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Specification.Tests/ActivatorUtilitiesTests.cs index 8ef93a5179ba5..8bfd657ae0de0 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Specification.Tests/ActivatorUtilitiesTests.cs +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Specification.Tests/ActivatorUtilitiesTests.cs @@ -141,7 +141,7 @@ public void TypeActivatorCanDisambiguateConstructorsWithUniqueArguments(CreateIn public static IEnumerable TypesWithNonPublicConstructorData => CreateInstanceFuncs.Zip( - new[] { typeof(ClassWithPrivateCtor), typeof(ClassWithInternalConstructor), typeof(ClassWithProtectedConstructor) }, + new[] { typeof(ClassWithPrivateCtor), typeof(ClassWithInternalConstructor), typeof(ClassWithProtectedConstructor), typeof(StaticConstructorClass) }, (a, b) => new object[] { a[0], b }); [Theory] @@ -401,5 +401,12 @@ public Bar() throw new InvalidOperationException("some error"); } } + + class StaticConstructorClass + { + static StaticConstructorClass() { } + + private StaticConstructorClass() { } + } } } From 9c41693194e3b005c91ee471ab3e649d2479d34d Mon Sep 17 00:00:00 2001 From: Next Turn <45985406+NextTurn@users.noreply.github.com> Date: Sat, 5 Dec 2020 00:11:24 +0800 Subject: [PATCH 24/87] Replace new UTF8Encoding(false) (#45541) * Replace new UTF8Encoding(false) * Remove static field --- .../System.Console/src/System/ConsolePal.Unix.cs | 2 +- .../src/System/Diagnostics/Process.Unix.cs | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/libraries/System.Console/src/System/ConsolePal.Unix.cs b/src/libraries/System.Console/src/System/ConsolePal.Unix.cs index 9dec2e221a86b..ec33d4a43834f 100644 --- a/src/libraries/System.Console/src/System/ConsolePal.Unix.cs +++ b/src/libraries/System.Console/src/System/ConsolePal.Unix.cs @@ -725,7 +725,7 @@ private static Encoding GetConsoleEncoding() Encoding? enc = EncodingHelper.GetEncodingFromCharset(); return enc != null ? enc.RemovePreamble() : - new UTF8Encoding(encoderShouldEmitUTF8Identifier: false); + Encoding.Default; } public static void SetConsoleInputEncoding(Encoding enc) diff --git a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs index c24fcee6e152a..587d4bcc3532a 100644 --- a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs +++ b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs @@ -16,8 +16,6 @@ namespace System.Diagnostics { public partial class Process : IDisposable { - private static readonly UTF8Encoding s_utf8NoBom = - new UTF8Encoding(encoderShouldEmitUTF8Identifier: false); private static volatile bool s_initialized; private static readonly object s_initializedGate = new object(); private static readonly ReaderWriterLockSlim s_processStartLock = new ReaderWriterLockSlim(); @@ -449,20 +447,20 @@ private bool StartCore(ProcessStartInfo startInfo) { Debug.Assert(stdinFd >= 0); _standardInput = new StreamWriter(OpenStream(stdinFd, FileAccess.Write), - startInfo.StandardInputEncoding ?? s_utf8NoBom, StreamBufferSize) + startInfo.StandardInputEncoding ?? Encoding.Default, StreamBufferSize) { AutoFlush = true }; } if (startInfo.RedirectStandardOutput) { Debug.Assert(stdoutFd >= 0); _standardOutput = new StreamReader(OpenStream(stdoutFd, FileAccess.Read), - startInfo.StandardOutputEncoding ?? s_utf8NoBom, true, StreamBufferSize); + startInfo.StandardOutputEncoding ?? Encoding.Default, true, StreamBufferSize); } if (startInfo.RedirectStandardError) { Debug.Assert(stderrFd >= 0); _standardError = new StreamReader(OpenStream(stderrFd, FileAccess.Read), - startInfo.StandardErrorEncoding ?? s_utf8NoBom, true, StreamBufferSize); + startInfo.StandardErrorEncoding ?? Encoding.Default, true, StreamBufferSize); } return true; From 34f09582f06169945f68c9b68d67cc208253ccef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Fri, 4 Dec 2020 18:21:44 +0100 Subject: [PATCH 25/87] Use NetCoreAppToolCurrent TFM for *AppBuilders (#45591) This ensures they're built against net5.0 right now instead of net6.0. --- Directory.Build.props | 10 +++++----- .../Microsoft.NET.Runtime.Android.Sample.Mono.pkgproj | 4 ++-- .../Microsoft.NET.Runtime.iOS.Sample.Mono.pkgproj | 4 ++-- src/mono/netcore/sample/iOS/Program.csproj | 4 ++-- src/mono/netcore/sample/wasm/browser/WasmSample.csproj | 2 +- src/mono/netcore/sample/wasm/console/WasmSample.csproj | 4 ++-- .../debugger/tests/debugger-test/debugger-test.csproj | 2 +- src/mono/wasm/wasm.proj | 2 +- src/tests/Common/Directory.Build.targets | 2 +- src/tests/Directory.Build.targets | 2 +- .../AndroidAppBuilder/AndroidAppBuilder.csproj | 2 +- .../AotCompilerTask/MonoAOTCompiler.csproj | 2 +- .../AppleAppBuilder/AppleAppBuilder.csproj | 2 +- .../mobile.tasks/WasmAppBuilder/WasmAppBuilder.csproj | 2 +- .../mobile.tasks/WasmBuildTasks/WasmBuildTasks.csproj | 2 +- 15 files changed, 23 insertions(+), 23 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 91557e1435793..de7d5e8edcf91 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -52,11 +52,11 @@ - $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'AppleAppBuilder', 'Debug', '$(NetCoreAppCurrent)')) - $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'AndroidAppBuilder', 'Debug', '$(NetCoreAppCurrent)', 'publish')) - $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'WasmAppBuilder', 'Debug', '$(NetCoreAppCurrent)', 'publish')) - $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'WasmBuildTasks', 'Debug', '$(NetCoreAppCurrent)', 'publish')) - $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'MonoAOTCompiler', 'Debug', '$(NetCoreAppCurrent)')) + $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'AppleAppBuilder', 'Debug', '$(NetCoreAppToolCurrent)')) + $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'AndroidAppBuilder', 'Debug', '$(NetCoreAppToolCurrent)', 'publish')) + $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'WasmAppBuilder', 'Debug', '$(NetCoreAppToolCurrent)', 'publish')) + $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'WasmBuildTasks', 'Debug', '$(NetCoreAppToolCurrent)', 'publish')) + $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'MonoAOTCompiler', 'Debug', '$(NetCoreAppToolCurrent)')) $([MSBuild]::NormalizePath('$(AppleAppBuilderDir)', 'AppleAppBuilder.dll')) $([MSBuild]::NormalizePath('$(AndroidAppBuilderDir)', 'AndroidAppBuilder.dll')) diff --git a/src/mono/netcore/nuget/Microsoft.NET.Runtime.Android.Sample.Mono/Microsoft.NET.Runtime.Android.Sample.Mono.pkgproj b/src/mono/netcore/nuget/Microsoft.NET.Runtime.Android.Sample.Mono/Microsoft.NET.Runtime.Android.Sample.Mono.pkgproj index bb8e695bb86e0..8497332ea9727 100644 --- a/src/mono/netcore/nuget/Microsoft.NET.Runtime.Android.Sample.Mono/Microsoft.NET.Runtime.Android.Sample.Mono.pkgproj +++ b/src/mono/netcore/nuget/Microsoft.NET.Runtime.Android.Sample.Mono/Microsoft.NET.Runtime.Android.Sample.Mono.pkgproj @@ -7,9 +7,9 @@ - <_AndroidSampleFiles Include="$(ArtifactsDir)bin\AndroidAppBuilder\$(Configuration)\$(NetCoreAppCurrent)\AndroidAppBuilder.dll" /> + <_AndroidSampleFiles Include="$(ArtifactsDir)bin\AndroidAppBuilder\$(Configuration)\$(NetCoreAppToolCurrent)\AndroidAppBuilder.dll" /> - + diff --git a/src/mono/netcore/nuget/Microsoft.NET.Runtime.iOS.Sample.Mono/Microsoft.NET.Runtime.iOS.Sample.Mono.pkgproj b/src/mono/netcore/nuget/Microsoft.NET.Runtime.iOS.Sample.Mono/Microsoft.NET.Runtime.iOS.Sample.Mono.pkgproj index 04f167af3bf84..ba5734abc0381 100644 --- a/src/mono/netcore/nuget/Microsoft.NET.Runtime.iOS.Sample.Mono/Microsoft.NET.Runtime.iOS.Sample.Mono.pkgproj +++ b/src/mono/netcore/nuget/Microsoft.NET.Runtime.iOS.Sample.Mono/Microsoft.NET.Runtime.iOS.Sample.Mono.pkgproj @@ -7,11 +7,11 @@ - <_iOSSampleFiles Include="$(ArtifactsDir)bin\AppleAppBuilder\$(Configuration)\$(NetCoreAppCurrent)\AppleAppBuilder.dll" /> + <_iOSSampleFiles Include="$(ArtifactsDir)bin\AppleAppBuilder\$(Configuration)\$(NetCoreAppToolCurrent)\AppleAppBuilder.dll" /> <_iOSSampleFiles Include="$(RepoToolsLocalDir)tasks\mobile.tasks\AppleAppBuilder\Templates\runtime.m" /> <_iOSSampleFiles Include="$(RepoToolsLocalDir)tasks\mobile.tasks\AppleAppBuilder\Templates\runtime.h" /> - + diff --git a/src/mono/netcore/sample/iOS/Program.csproj b/src/mono/netcore/sample/iOS/Program.csproj index 4b5ba8d311856..d090c380b4595 100644 --- a/src/mono/netcore/sample/iOS/Program.csproj +++ b/src/mono/netcore/sample/iOS/Program.csproj @@ -24,10 +24,10 @@ + AssemblyFile="$(ArtifactsBinDir)AppleAppBuilder\$(Configuration)\$(NetCoreAppToolCurrent)\AppleAppBuilder.dll" /> + AssemblyFile="$(ArtifactsBinDir)MonoAOTCompiler\$(Configuration)\$(NetCoreAppToolCurrent)\MonoAOTCompiler.dll" /> diff --git a/src/mono/netcore/sample/wasm/browser/WasmSample.csproj b/src/mono/netcore/sample/wasm/browser/WasmSample.csproj index a944c91f1c64f..18b86dccaa351 100644 --- a/src/mono/netcore/sample/wasm/browser/WasmSample.csproj +++ b/src/mono/netcore/sample/wasm/browser/WasmSample.csproj @@ -26,7 +26,7 @@ + AssemblyFile="$(ArtifactsBinDir)WasmAppBuilder\Debug\$(NetCoreAppToolCurrent)\publish\WasmAppBuilder.dll"/> diff --git a/src/mono/netcore/sample/wasm/console/WasmSample.csproj b/src/mono/netcore/sample/wasm/console/WasmSample.csproj index 2b5869f1c2300..a17343e1cbbab 100644 --- a/src/mono/netcore/sample/wasm/console/WasmSample.csproj +++ b/src/mono/netcore/sample/wasm/console/WasmSample.csproj @@ -53,10 +53,10 @@ + AssemblyFile="$(ArtifactsBinDir)WasmAppBuilder\Debug\$(NetCoreAppToolCurrent)\publish\WasmAppBuilder.dll"/> + AssemblyFile="$(ArtifactsBinDir)MonoAOTCompiler\Debug\$(NetCoreAppToolCurrent)\MonoAOTCompiler.dll" /> diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj b/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj index 22a3aaaca6022..5baf3e83aebd6 100644 --- a/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj +++ b/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj @@ -33,7 +33,7 @@ + AssemblyFile="$(ArtifactsBinDir)WasmAppBuilder\Debug\$(NetCoreAppToolCurrent)\publish\WasmAppBuilder.dll"/> diff --git a/src/mono/wasm/wasm.proj b/src/mono/wasm/wasm.proj index c48b1aea17c8a..035c141f75b94 100644 --- a/src/mono/wasm/wasm.proj +++ b/src/mono/wasm/wasm.proj @@ -26,7 +26,7 @@ - + $(ArtifactsObjDir)wasm\pinvoke-table.h diff --git a/src/tests/Common/Directory.Build.targets b/src/tests/Common/Directory.Build.targets index d8a6dc38a13d0..fc0adae0446bd 100644 --- a/src/tests/Common/Directory.Build.targets +++ b/src/tests/Common/Directory.Build.targets @@ -134,7 +134,7 @@ - $(NetCoreAppCurrent) + $(NetCoreAppToolCurrent) Library true false diff --git a/tools-local/tasks/mobile.tasks/AotCompilerTask/MonoAOTCompiler.csproj b/tools-local/tasks/mobile.tasks/AotCompilerTask/MonoAOTCompiler.csproj index ab121a3101971..ee796479954f6 100644 --- a/tools-local/tasks/mobile.tasks/AotCompilerTask/MonoAOTCompiler.csproj +++ b/tools-local/tasks/mobile.tasks/AotCompilerTask/MonoAOTCompiler.csproj @@ -1,6 +1,6 @@ - $(NetCoreAppCurrent) + $(NetCoreAppToolCurrent) Library true false diff --git a/tools-local/tasks/mobile.tasks/AppleAppBuilder/AppleAppBuilder.csproj b/tools-local/tasks/mobile.tasks/AppleAppBuilder/AppleAppBuilder.csproj index 7f25754a12440..3d88864f90a1a 100644 --- a/tools-local/tasks/mobile.tasks/AppleAppBuilder/AppleAppBuilder.csproj +++ b/tools-local/tasks/mobile.tasks/AppleAppBuilder/AppleAppBuilder.csproj @@ -1,6 +1,6 @@ - $(NetCoreAppCurrent) + $(NetCoreAppToolCurrent) Library true false diff --git a/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.csproj b/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.csproj index 1c9664874e2df..ba6f687554dde 100644 --- a/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.csproj +++ b/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.csproj @@ -1,6 +1,6 @@ - $(NetCoreAppCurrent) + $(NetCoreAppToolCurrent) Library false enable diff --git a/tools-local/tasks/mobile.tasks/WasmBuildTasks/WasmBuildTasks.csproj b/tools-local/tasks/mobile.tasks/WasmBuildTasks/WasmBuildTasks.csproj index 1f1496af37195..9da8d312752c1 100644 --- a/tools-local/tasks/mobile.tasks/WasmBuildTasks/WasmBuildTasks.csproj +++ b/tools-local/tasks/mobile.tasks/WasmBuildTasks/WasmBuildTasks.csproj @@ -1,6 +1,6 @@ - $(NetCoreAppCurrent) + $(NetCoreAppToolCurrent) Library enable $(NoWarn),CA1050 From b0876f42f15c3cb8477d76f0516284fb4823f1dc Mon Sep 17 00:00:00 2001 From: Elinor Fung Date: Fri, 4 Dec 2020 10:30:03 -0800 Subject: [PATCH 26/87] Slight cleanup of host test RepoDirectoriesProvider helper (#45579) --- .../HostActivation.Tests/DotnetTestXunit.cs | 4 +-- .../HostVersionCompatibility.cs | 4 +-- .../LightupAppActivation.cs | 8 ++--- .../MultilevelSharedFxLookup.cs | 2 +- .../HostActivation.Tests/NativeHostApis.cs | 6 ++-- .../NativeHosting/ApplicationExecution.cs | 4 +-- .../NativeHosting/Comhost.cs | 4 +-- .../NativeHosting/GetFunctionPointer.cs | 6 ++-- .../LoadAssemblyAndGetFunctionPointer.cs | 6 ++-- .../NativeHosting/Nethost.cs | 4 +-- .../NativeHosting/SharedTestStateBase.cs | 2 +- .../PortableAppActivation.cs | 4 +-- .../HostActivation.Tests/ResourceLookup.cs | 4 +-- .../HostActivation.Tests/RuntimeProperties.cs | 2 +- .../HostActivation.Tests/SharedFxLookup.cs | 2 +- .../StandaloneAppActivation.cs | 4 +-- .../HostActivation.Tests/StartupHooks.cs | 30 +++++++++---------- .../tests/HostActivation.Tests/Tracing.cs | 2 +- .../WindowsSpecificBehavior.cs | 4 +-- .../AppHost.Bundle.Tests/BundleTestBase.cs | 2 +- .../BundledAppWithSubDirs.cs | 6 ++-- .../AppHost.Bundle.Tests/HammerServiceTest.cs | 2 +- .../BundleAndRun.cs | 2 +- .../BundlerConsistencyTests.cs | 2 +- .../ClsidMapTests.cs | 6 ++-- .../TestUtils/RepoDirectoriesProvider.cs | 29 +++++------------- .../tests/TestUtils/TestProjectFixture.cs | 4 +-- 27 files changed, 70 insertions(+), 85 deletions(-) diff --git a/src/installer/tests/HostActivation.Tests/DotnetTestXunit.cs b/src/installer/tests/HostActivation.Tests/DotnetTestXunit.cs index 18f187ee4237e..0b2e3de796f5a 100644 --- a/src/installer/tests/HostActivation.Tests/DotnetTestXunit.cs +++ b/src/installer/tests/HostActivation.Tests/DotnetTestXunit.cs @@ -24,7 +24,7 @@ public void Muxer_activation_of_dotnet_test_XUnit_on_Portable_Test_App_Succeeds( using (var portableTestAppFixture = new TestProjectFixture("PortableTestApp", RepoDirectories)) { portableTestAppFixture - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .BuildProject(); ActivateDotnetTestXunitOnTestProject(RepoDirectories, portableTestAppFixture); @@ -37,7 +37,7 @@ public void Muxer_activation_of_dotnet_test_XUnit_on_Standalone_Test_App_Succeed using (var standaloneTestAppFixture = new TestProjectFixture("StandaloneTestApp", RepoDirectories)) { standaloneTestAppFixture - .EnsureRestoredForRid(standaloneTestAppFixture.CurrentRid, RepoDirectories.CorehostPackages) + .EnsureRestoredForRid(standaloneTestAppFixture.CurrentRid) .BuildProject(runtime: standaloneTestAppFixture.CurrentRid); ActivateDotnetTestXunitOnTestProject(RepoDirectories, standaloneTestAppFixture); diff --git a/src/installer/tests/HostActivation.Tests/HostVersionCompatibility.cs b/src/installer/tests/HostActivation.Tests/HostVersionCompatibility.cs index 96ac25101e3ff..d352a8bdb32f0 100644 --- a/src/installer/tests/HostActivation.Tests/HostVersionCompatibility.cs +++ b/src/installer/tests/HostActivation.Tests/HostVersionCompatibility.cs @@ -162,7 +162,7 @@ public SharedTestState() var fixtureLatest = new TestProjectFixture("StandaloneApp", RepoDirectories); fixtureLatest - .EnsureRestoredForRid(fixtureLatest.CurrentRid, RepoDirectories.CorehostPackages) + .EnsureRestoredForRid(fixtureLatest.CurrentRid) .PublishProject(runtime: fixtureLatest.CurrentRid); FixtureLatest = fixtureLatest; @@ -185,7 +185,7 @@ private static TestProjectFixture CreateTestFixture(string testName, string netC if (IsRidSupported()) { publishFixture - .EnsureRestoredForRid(publishFixture.CurrentRid, repoDirectories.CorehostPackages) + .EnsureRestoredForRid(publishFixture.CurrentRid) .PublishProject(runtime: publishFixture.CurrentRid); } diff --git a/src/installer/tests/HostActivation.Tests/LightupAppActivation.cs b/src/installer/tests/HostActivation.Tests/LightupAppActivation.cs index 82988c597f2ed..5eb4d1302b313 100644 --- a/src/installer/tests/HostActivation.Tests/LightupAppActivation.cs +++ b/src/installer/tests/HostActivation.Tests/LightupAppActivation.cs @@ -42,7 +42,7 @@ public LightupAppActivation(LightupAppActivation.SharedTestState fixture) var repoDirectories = new RepoDirectoriesProvider(builtDotnet: _currentWorkingDir); GlobalLightupClientFixture = new TestProjectFixture("LightupClient", repoDirectories) - .EnsureRestored(sharedTestState.RepoDirectories.CorehostPackages) + .EnsureRestored() .BuildProject(); string greatestVersionSharedFxPath = sharedTestState.LightupLibFixture_Built.BuiltDotnet.GreatestVersionSharedFxPath; @@ -558,15 +558,15 @@ public SharedTestState() RepoDirectories = new RepoDirectoriesProvider(); LightupLibFixture_Built = new TestProjectFixture("LightupLib", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .BuildProject(); LightupLibFixture_Published = new TestProjectFixture("LightupLib", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); LightupClientFixture = new TestProjectFixture("LightupClient", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .BuildProject(); } diff --git a/src/installer/tests/HostActivation.Tests/MultilevelSharedFxLookup.cs b/src/installer/tests/HostActivation.Tests/MultilevelSharedFxLookup.cs index a35ac3ef0b379..f8b4e8bfd402d 100644 --- a/src/installer/tests/HostActivation.Tests/MultilevelSharedFxLookup.cs +++ b/src/installer/tests/HostActivation.Tests/MultilevelSharedFxLookup.cs @@ -94,7 +94,7 @@ public MultilevelSharedFxLookup() // Restore and build SharedFxLookupPortableApp from exe dir SharedFxLookupPortableAppFixture = new TestProjectFixture("SharedFxLookupPortableApp", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .BuildProject(); var fixture = SharedFxLookupPortableAppFixture; diff --git a/src/installer/tests/HostActivation.Tests/NativeHostApis.cs b/src/installer/tests/HostActivation.Tests/NativeHostApis.cs index 83ceacbc52a89..27d3b275ebf9d 100644 --- a/src/installer/tests/HostActivation.Tests/NativeHostApis.cs +++ b/src/installer/tests/HostActivation.Tests/NativeHostApis.cs @@ -269,15 +269,15 @@ public SharedTestState() RepoDirectories = new RepoDirectoriesProvider(); HostApiInvokerAppFixture = new TestProjectFixture("HostApiInvokerApp", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .BuildProject(); PortableAppFixture = new TestProjectFixture("PortableApp", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); PortableAppWithExceptionFixture = new TestProjectFixture("PortableAppWithException", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) diff --git a/src/installer/tests/HostActivation.Tests/NativeHosting/ApplicationExecution.cs b/src/installer/tests/HostActivation.Tests/NativeHosting/ApplicationExecution.cs index f7053dbc57eba..9c0d1da0a63ea 100644 --- a/src/installer/tests/HostActivation.Tests/NativeHosting/ApplicationExecution.cs +++ b/src/installer/tests/HostActivation.Tests/NativeHosting/ApplicationExecution.cs @@ -72,11 +72,11 @@ public SharedTestState() HostFxrPath = dotNet.GreatestVersionHostFxrFilePath; PortableAppFixture = new TestProjectFixture("PortableApp", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); PortableAppWithExceptionFixture = new TestProjectFixture("PortableAppWithException", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); } diff --git a/src/installer/tests/HostActivation.Tests/NativeHosting/Comhost.cs b/src/installer/tests/HostActivation.Tests/NativeHosting/Comhost.cs index 7c6f5976c630d..505b0c00c6c59 100644 --- a/src/installer/tests/HostActivation.Tests/NativeHosting/Comhost.cs +++ b/src/installer/tests/HostActivation.Tests/NativeHosting/Comhost.cs @@ -135,7 +135,7 @@ public SharedTestState() } ComLibraryFixture = new TestProjectFixture("ComLibrary", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .BuildProject(); // Create a .clsidmap from the assembly @@ -155,7 +155,7 @@ public SharedTestState() ComLibraryFixture.TestProject.BuiltApp.Location, $"{ ComLibraryFixture.TestProject.AssemblyName }.comhost.dll"); ComHost.Create( - Path.Combine(RepoDirectories.CorehostPackages, "comhost.dll"), + Path.Combine(RepoDirectories.HostArtifacts, "comhost.dll"), ComHostPath, clsidMapPath); } diff --git a/src/installer/tests/HostActivation.Tests/NativeHosting/GetFunctionPointer.cs b/src/installer/tests/HostActivation.Tests/NativeHosting/GetFunctionPointer.cs index 4ddfc2ff9557e..0ac123167732b 100644 --- a/src/installer/tests/HostActivation.Tests/NativeHosting/GetFunctionPointer.cs +++ b/src/installer/tests/HostActivation.Tests/NativeHosting/GetFunctionPointer.cs @@ -231,13 +231,13 @@ public SharedTestState() HostFxrPath = dotNet.GreatestVersionHostFxrFilePath; ApplicationFixture = new TestProjectFixture("AppWithCustomEntryPoints", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(selfContained: false); ComponentWithNoDependenciesFixture = new TestProjectFixture("ComponentWithNoDependencies", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); SelfContainedApplicationFixture = new TestProjectFixture("AppWithCustomEntryPoints", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(selfContained: true); ComponentTypeName = $"Component.Component, {ComponentWithNoDependenciesFixture.TestProject.AssemblyName}"; FunctionPointerTypeName = $"AppWithCustomEntryPoints.Program, {ApplicationFixture.TestProject.AssemblyName}"; diff --git a/src/installer/tests/HostActivation.Tests/NativeHosting/LoadAssemblyAndGetFunctionPointer.cs b/src/installer/tests/HostActivation.Tests/NativeHosting/LoadAssemblyAndGetFunctionPointer.cs index 48ceea8e2616d..53e9eeb52aec9 100644 --- a/src/installer/tests/HostActivation.Tests/NativeHosting/LoadAssemblyAndGetFunctionPointer.cs +++ b/src/installer/tests/HostActivation.Tests/NativeHosting/LoadAssemblyAndGetFunctionPointer.cs @@ -248,13 +248,13 @@ public SharedTestState() HostFxrPath = dotNet.GreatestVersionHostFxrFilePath; ApplicationFixture = new TestProjectFixture("PortableApp", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); ComponentWithNoDependenciesFixture = new TestProjectFixture("ComponentWithNoDependencies", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); SelfContainedApplicationFixture = new TestProjectFixture("StandaloneApp", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(selfContained: true); ComponentTypeName = $"Component.Component, {ComponentWithNoDependenciesFixture.TestProject.AssemblyName}"; } diff --git a/src/installer/tests/HostActivation.Tests/NativeHosting/Nethost.cs b/src/installer/tests/HostActivation.Tests/NativeHosting/Nethost.cs index 40a8473c483fa..c8f5106b16663 100644 --- a/src/installer/tests/HostActivation.Tests/NativeHosting/Nethost.cs +++ b/src/installer/tests/HostActivation.Tests/NativeHosting/Nethost.cs @@ -263,7 +263,7 @@ public void TestOnlyDisabledByDefault() // This is to make sure that we're using the unmodified product binary. If some previous test // enabled test-only product behavior on the binary and didn't correctly cleanup, this test would fail. File.Copy( - Path.Combine(sharedState.RepoDirectories.CorehostPackages, RuntimeInformationExtensions.GetSharedLibraryFileNameForCurrentPlatform("nethost")), + Path.Combine(sharedState.RepoDirectories.HostArtifacts, RuntimeInformationExtensions.GetSharedLibraryFileNameForCurrentPlatform("nethost")), sharedState.NethostPath, overwrite: true); @@ -302,7 +302,7 @@ public SharedTestState() string productDir = Path.Combine(BaseDirectory, "product"); Directory.CreateDirectory(productDir); ProductHostFxrPath = Path.Combine(productDir, HostFxrName); - File.Copy(Path.Combine(RepoDirectories.CorehostPackages, HostFxrName), ProductHostFxrPath); + File.Copy(Path.Combine(RepoDirectories.HostArtifacts, HostFxrName), ProductHostFxrPath); } private string CreateHostFxr(string destinationDirectory) diff --git a/src/installer/tests/HostActivation.Tests/NativeHosting/SharedTestStateBase.cs b/src/installer/tests/HostActivation.Tests/NativeHosting/SharedTestStateBase.cs index 85ac9b19d43ac..c6cafd77f0c5e 100644 --- a/src/installer/tests/HostActivation.Tests/NativeHosting/SharedTestStateBase.cs +++ b/src/installer/tests/HostActivation.Tests/NativeHosting/SharedTestStateBase.cs @@ -34,7 +34,7 @@ public SharedTestStateBase() string nethostName = RuntimeInformationExtensions.GetSharedLibraryFileNameForCurrentPlatform("nethost"); NethostPath = Path.Combine(Path.GetDirectoryName(NativeHostPath), nethostName); File.Copy( - Path.Combine(RepoDirectories.CorehostPackages, nethostName), + Path.Combine(RepoDirectories.HostArtifacts, nethostName), NethostPath); } diff --git a/src/installer/tests/HostActivation.Tests/PortableAppActivation.cs b/src/installer/tests/HostActivation.Tests/PortableAppActivation.cs index 9b4648b0182af..79ead8f05f3b0 100644 --- a/src/installer/tests/HostActivation.Tests/PortableAppActivation.cs +++ b/src/installer/tests/HostActivation.Tests/PortableAppActivation.cs @@ -708,11 +708,11 @@ public SharedTestState() BuiltDotNet = new DotNetCli(RepoDirectories.BuiltDotnet); PortableAppFixture_Built = new TestProjectFixture("PortableApp", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .BuildProject(); PortableAppFixture_Published = new TestProjectFixture("PortableApp", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); MockApp = new TestApp(SharedFramework.CalculateUniqueTestDirectory(Path.Combine(TestArtifact.TestArtifactsPath, "portableAppActivation")), "App"); diff --git a/src/installer/tests/HostActivation.Tests/ResourceLookup.cs b/src/installer/tests/HostActivation.Tests/ResourceLookup.cs index e5f02cb7826bb..48c5a1b9ddc3d 100644 --- a/src/installer/tests/HostActivation.Tests/ResourceLookup.cs +++ b/src/installer/tests/HostActivation.Tests/ResourceLookup.cs @@ -74,11 +74,11 @@ public SharedTestState() RepoDirectories = new RepoDirectoriesProvider(); ResourceLookupFixture_Built = new TestProjectFixture("ResourceLookup", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .BuildProject(); ResourceLookupFixture_Published = new TestProjectFixture("ResourceLookup", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); } diff --git a/src/installer/tests/HostActivation.Tests/RuntimeProperties.cs b/src/installer/tests/HostActivation.Tests/RuntimeProperties.cs index 3ba796d8c2371..6d8949c4132a5 100644 --- a/src/installer/tests/HostActivation.Tests/RuntimeProperties.cs +++ b/src/installer/tests/HostActivation.Tests/RuntimeProperties.cs @@ -116,7 +116,7 @@ public SharedTestState() RepoDirectories = new RepoDirectoriesProvider(builtDotnet: copiedDotnet); RuntimePropertiesFixture = new TestProjectFixture("RuntimeProperties", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .BuildProject(); RuntimeConfig.FromFile(RuntimePropertiesFixture.TestProject.RuntimeConfigJson) diff --git a/src/installer/tests/HostActivation.Tests/SharedFxLookup.cs b/src/installer/tests/HostActivation.Tests/SharedFxLookup.cs index fd63e339ec05f..8ae1162beee28 100644 --- a/src/installer/tests/HostActivation.Tests/SharedFxLookup.cs +++ b/src/installer/tests/HostActivation.Tests/SharedFxLookup.cs @@ -60,7 +60,7 @@ public SharedFxLookup() // Restore and build SharedFxLookupPortableApp from exe dir SharedFxLookupPortableAppFixture = new TestProjectFixture("SharedFxLookupPortableApp", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .BuildProject(); var fixture = SharedFxLookupPortableAppFixture; diff --git a/src/installer/tests/HostActivation.Tests/StandaloneAppActivation.cs b/src/installer/tests/HostActivation.Tests/StandaloneAppActivation.cs index 1eebe7ff0acc0..995aa5f64b9a2 100644 --- a/src/installer/tests/HostActivation.Tests/StandaloneAppActivation.cs +++ b/src/installer/tests/HostActivation.Tests/StandaloneAppActivation.cs @@ -311,12 +311,12 @@ public SharedTestState() var buildFixture = new TestProjectFixture("StandaloneApp", RepoDirectories); buildFixture - .EnsureRestoredForRid(buildFixture.CurrentRid, RepoDirectories.CorehostPackages) + .EnsureRestoredForRid(buildFixture.CurrentRid) .BuildProject(runtime: buildFixture.CurrentRid); var publishFixture = new TestProjectFixture("StandaloneApp", RepoDirectories); publishFixture - .EnsureRestoredForRid(publishFixture.CurrentRid, RepoDirectories.CorehostPackages) + .EnsureRestoredForRid(publishFixture.CurrentRid) .PublishProject(runtime: publishFixture.CurrentRid); ReplaceTestProjectOutputHostInTestProjectFixture(buildFixture); diff --git a/src/installer/tests/HostActivation.Tests/StartupHooks.cs b/src/installer/tests/HostActivation.Tests/StartupHooks.cs index 3acb8b6656506..a0533a60fd477 100644 --- a/src/installer/tests/HostActivation.Tests/StartupHooks.cs +++ b/src/installer/tests/HostActivation.Tests/StartupHooks.cs @@ -703,60 +703,60 @@ public SharedTestState() // Entry point projects PortableAppFixture = new TestProjectFixture("PortableApp", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); PortableAppWithExceptionFixture = new TestProjectFixture("PortableAppWithException", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); // Entry point with missing reference assembly PortableAppWithMissingRefFixture = new TestProjectFixture("PortableAppWithMissingRef", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); // Correct startup hooks StartupHookFixture = new TestProjectFixture("StartupHook", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); StartupHookWithOverloadFixture = new TestProjectFixture("StartupHookWithOverload", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); // Missing startup hook type (no StartupHook type defined) StartupHookWithoutStartupHookTypeFixture = new TestProjectFixture("StartupHookWithoutStartupHookType", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); // Missing startup hook method (no Initialize method defined) StartupHookWithoutInitializeMethodFixture = new TestProjectFixture("StartupHookWithoutInitializeMethod", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); // Invalid startup hook assembly StartupHookStartupHookInvalidAssemblyFixture = new TestProjectFixture("StartupHookFake", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); // Invalid startup hooks (incorrect signatures) StartupHookWithNonPublicMethodFixture = new TestProjectFixture("StartupHookWithNonPublicMethod", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); StartupHookWithInstanceMethodFixture = new TestProjectFixture("StartupHookWithInstanceMethod", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); StartupHookWithParameterFixture = new TestProjectFixture("StartupHookWithParameter", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); StartupHookWithReturnTypeFixture = new TestProjectFixture("StartupHookWithReturnType", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); StartupHookWithMultipleIncorrectSignaturesFixture = new TestProjectFixture("StartupHookWithMultipleIncorrectSignatures", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); // Valid startup hooks with incorrect behavior StartupHookWithDependencyFixture = new TestProjectFixture("StartupHookWithDependency", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); // Startup hook with an assembly resolver StartupHookWithAssemblyResolver = new TestProjectFixture("StartupHookWithAssemblyResolver", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); } diff --git a/src/installer/tests/HostActivation.Tests/Tracing.cs b/src/installer/tests/HostActivation.Tests/Tracing.cs index fef9ee33fbad6..24832365f07b7 100644 --- a/src/installer/tests/HostActivation.Tests/Tracing.cs +++ b/src/installer/tests/HostActivation.Tests/Tracing.cs @@ -165,7 +165,7 @@ public SharedTestState() // Entry point projects PortableAppFixture = new TestProjectFixture("PortableApp", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); } diff --git a/src/installer/tests/HostActivation.Tests/WindowsSpecificBehavior.cs b/src/installer/tests/HostActivation.Tests/WindowsSpecificBehavior.cs index 5959073b7a8da..4df829ddc049e 100644 --- a/src/installer/tests/HostActivation.Tests/WindowsSpecificBehavior.cs +++ b/src/installer/tests/HostActivation.Tests/WindowsSpecificBehavior.cs @@ -89,11 +89,11 @@ public SharedTestState() RepoDirectories = new RepoDirectoriesProvider(); PortableAppWithLongPathFixture = new TestProjectFixture("PortableAppWithLongPath", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .BuildProject(); TestWindowsOsShimsAppFixture = new TestProjectFixture("TestWindowsOsShimsApp", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(); } diff --git a/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/BundleTestBase.cs b/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/BundleTestBase.cs index ab256e36bec25..c71aaa35e5bdb 100644 --- a/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/BundleTestBase.cs +++ b/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/BundleTestBase.cs @@ -63,7 +63,7 @@ public TestProjectFixture PreparePublishedSelfContainedTestProject(string projec { var testFixture = new TestProjectFixture(projectName, RepoDirectories); testFixture - .EnsureRestoredForRid(testFixture.CurrentRid, RepoDirectories.CorehostPackages) + .EnsureRestoredForRid(testFixture.CurrentRid) .PublishProject(runtime: testFixture.CurrentRid, outputDirectory: BundleHelper.GetPublishPath(testFixture), extraArgs: extraArgs); diff --git a/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/BundledAppWithSubDirs.cs b/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/BundledAppWithSubDirs.cs index 503f755ecb296..2a0dc9ad537be 100644 --- a/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/BundledAppWithSubDirs.cs +++ b/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/BundledAppWithSubDirs.cs @@ -92,7 +92,7 @@ public SharedTestState() TestFrameworkDependentFixture = new TestProjectFixture("AppWithSubDirs", RepoDirectories); BundleHelper.AddLongNameContentToAppWithSubDirs(TestFrameworkDependentFixture); TestFrameworkDependentFixture - .EnsureRestoredForRid(TestFrameworkDependentFixture.CurrentRid, RepoDirectories.CorehostPackages) + .EnsureRestoredForRid(TestFrameworkDependentFixture.CurrentRid) .PublishProject(runtime: TestFrameworkDependentFixture.CurrentRid, selfContained: false, outputDirectory: BundleHelper.GetPublishPath(TestFrameworkDependentFixture)); @@ -100,7 +100,7 @@ public SharedTestState() TestSelfContainedFixture = new TestProjectFixture("AppWithSubDirs", RepoDirectories); BundleHelper.AddLongNameContentToAppWithSubDirs(TestSelfContainedFixture); TestSelfContainedFixture - .EnsureRestoredForRid(TestSelfContainedFixture.CurrentRid, RepoDirectories.CorehostPackages) + .EnsureRestoredForRid(TestSelfContainedFixture.CurrentRid) .PublishProject(runtime: TestSelfContainedFixture.CurrentRid, outputDirectory: BundleHelper.GetPublishPath(TestSelfContainedFixture)); @@ -108,7 +108,7 @@ public SharedTestState() BundleHelper.AddLongNameContentToAppWithSubDirs(TestAppWithEmptyFileFixture); BundleHelper.AddEmptyContentToApp(TestAppWithEmptyFileFixture); TestAppWithEmptyFileFixture - .EnsureRestoredForRid(TestAppWithEmptyFileFixture.CurrentRid, RepoDirectories.CorehostPackages) + .EnsureRestoredForRid(TestAppWithEmptyFileFixture.CurrentRid) .PublishProject(runtime: TestAppWithEmptyFileFixture.CurrentRid, outputDirectory: BundleHelper.GetPublishPath(TestAppWithEmptyFileFixture)); } diff --git a/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/HammerServiceTest.cs b/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/HammerServiceTest.cs index 77c657433809b..96c0c7c07baf0 100644 --- a/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/HammerServiceTest.cs +++ b/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/HammerServiceTest.cs @@ -80,7 +80,7 @@ public SharedTestState() ServiceFixture = new TestProjectFixture("ServicedLocation", RepoDirectories, assemblyName: "Location"); ServiceFixture - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .PublishProject(outputDirectory: BundleHelper.GetPublishPath(ServiceFixture)); } diff --git a/src/installer/tests/Microsoft.NET.HostModel.Tests/Microsoft.NET.HostModel.Bundle.Tests/BundleAndRun.cs b/src/installer/tests/Microsoft.NET.HostModel.Tests/Microsoft.NET.HostModel.Bundle.Tests/BundleAndRun.cs index 1c8af4b561c3f..d76af21245279 100644 --- a/src/installer/tests/Microsoft.NET.HostModel.Tests/Microsoft.NET.HostModel.Bundle.Tests/BundleAndRun.cs +++ b/src/installer/tests/Microsoft.NET.HostModel.Tests/Microsoft.NET.HostModel.Bundle.Tests/BundleAndRun.cs @@ -88,7 +88,7 @@ public SharedTestState() TestFixture = new TestProjectFixture("AppWithSubDirs", RepoDirectories); BundleHelper.AddLongNameContentToAppWithSubDirs(TestFixture); TestFixture - .EnsureRestoredForRid(TestFixture.CurrentRid, RepoDirectories.CorehostPackages) + .EnsureRestoredForRid(TestFixture.CurrentRid) .PublishProject(runtime: TestFixture.CurrentRid, outputDirectory: BundleHelper.GetPublishPath(TestFixture)); } diff --git a/src/installer/tests/Microsoft.NET.HostModel.Tests/Microsoft.NET.HostModel.Bundle.Tests/BundlerConsistencyTests.cs b/src/installer/tests/Microsoft.NET.HostModel.Tests/Microsoft.NET.HostModel.Bundle.Tests/BundlerConsistencyTests.cs index 19db431f44bb3..81322d7db9f30 100644 --- a/src/installer/tests/Microsoft.NET.HostModel.Tests/Microsoft.NET.HostModel.Bundle.Tests/BundlerConsistencyTests.cs +++ b/src/installer/tests/Microsoft.NET.HostModel.Tests/Microsoft.NET.HostModel.Bundle.Tests/BundlerConsistencyTests.cs @@ -245,7 +245,7 @@ public SharedTestState() TestFixture = new TestProjectFixture("StandaloneApp", RepoDirectories); TestFixture - .EnsureRestoredForRid(TestFixture.CurrentRid, RepoDirectories.CorehostPackages) + .EnsureRestoredForRid(TestFixture.CurrentRid) .PublishProject(runtime: TestFixture.CurrentRid, outputDirectory: BundleHelper.GetPublishPath(TestFixture)); } diff --git a/src/installer/tests/Microsoft.NET.HostModel.Tests/Microsoft.NET.HostModel.ComHost.Tests/ClsidMapTests.cs b/src/installer/tests/Microsoft.NET.HostModel.Tests/Microsoft.NET.HostModel.ComHost.Tests/ClsidMapTests.cs index f35038860ecf6..649b34c500b87 100644 --- a/src/installer/tests/Microsoft.NET.HostModel.Tests/Microsoft.NET.HostModel.ComHost.Tests/ClsidMapTests.cs +++ b/src/installer/tests/Microsoft.NET.HostModel.Tests/Microsoft.NET.HostModel.ComHost.Tests/ClsidMapTests.cs @@ -154,15 +154,15 @@ public SharedTestState() RepoDirectories = new RepoDirectoriesProvider(); ComLibraryFixture = new TestProjectFixture("ComLibrary", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .BuildProject(); ComLibraryMissingGuidFixture = new TestProjectFixture("ComLibraryMissingGuid", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .BuildProject(); ComLibraryConflictingGuidFixture = new TestProjectFixture("ComLibraryConflictingGuid", RepoDirectories) - .EnsureRestored(RepoDirectories.CorehostPackages) + .EnsureRestored() .BuildProject(); } diff --git a/src/installer/tests/TestUtils/RepoDirectoriesProvider.cs b/src/installer/tests/TestUtils/RepoDirectoriesProvider.cs index 507773773d30a..5bd21dd2f0887 100644 --- a/src/installer/tests/TestUtils/RepoDirectoriesProvider.cs +++ b/src/installer/tests/TestUtils/RepoDirectoriesProvider.cs @@ -17,28 +17,21 @@ public class RepoDirectoriesProvider public string Configuration { get; } public string RepoRoot { get; } public string BaseArtifactsFolder { get; } - public string BaseBinFolder { get; } - public string BaseObjFolder { get; } public string Artifacts { get; } public string HostArtifacts { get; } public string BuiltDotnet { get; } public string NugetPackages { get; } - public string CorehostPackages { get; } public string DotnetSDK { get; } private string _testContextVariableFilePath { get; } private ImmutableDictionary _testContextVariables { get; } public RepoDirectoriesProvider( - string repoRoot = null, - string artifacts = null, string builtDotnet = null, - string nugetPackages = null, - string corehostPackages = null, - string dotnetSdk = null, string microsoftNETCoreAppVersion = null) { - RepoRoot = repoRoot ?? GetRepoRootDirectory(); + RepoRoot = GetRepoRootDirectory(); + BaseArtifactsFolder = Path.Combine(RepoRoot, "artifacts"); _testContextVariableFilePath = Path.Combine( Directory.GetCurrentDirectory(), @@ -50,10 +43,6 @@ public RepoDirectoriesProvider( line => line.Substring(line.IndexOf('=') + 1), StringComparer.OrdinalIgnoreCase); - BaseArtifactsFolder = artifacts ?? Path.Combine(RepoRoot, "artifacts"); - BaseBinFolder = artifacts ?? Path.Combine(BaseArtifactsFolder, "bin"); - BaseObjFolder = artifacts ?? Path.Combine(BaseArtifactsFolder, "obj"); - TargetRID = GetTestContextVariable("TEST_TARGETRID"); BuildRID = GetTestContextVariable("BUILDRID"); BuildArchitecture = GetTestContextVariable("BUILD_ARCHITECTURE"); @@ -61,23 +50,19 @@ public RepoDirectoriesProvider( TestAssetsFolder = GetTestContextVariable("TEST_ASSETS"); Configuration = GetTestContextVariable("BUILD_CONFIGURATION"); - string osPlatformConfig = $"{BuildRID}.{Configuration}"; - DotnetSDK = dotnetSdk ?? GetTestContextVariable("DOTNET_SDK_PATH"); + string osPlatformConfig = $"{BuildRID}.{Configuration}"; + Artifacts = Path.Combine(BaseArtifactsFolder, "bin", osPlatformConfig); + HostArtifacts = Path.Combine(Artifacts, "corehost"); + DotnetSDK = GetTestContextVariable("DOTNET_SDK_PATH"); if (!Directory.Exists(DotnetSDK)) { throw new InvalidOperationException("ERROR: Test SDK folder not found."); } - Artifacts = Path.Combine(BaseBinFolder, osPlatformConfig); - HostArtifacts = artifacts ?? Path.Combine(Artifacts, "corehost"); - - NugetPackages = nugetPackages ?? - GetTestContextVariable("NUGET_PACKAGES") ?? - Path.Combine(RepoRoot, ".packages"); + NugetPackages = GetTestContextVariable("NUGET_PACKAGES") ?? Path.Combine(RepoRoot, ".packages"); - CorehostPackages = corehostPackages ?? Path.Combine(Artifacts, "corehost"); BuiltDotnet = builtDotnet ?? Path.Combine(GetTestContextVariable("TEST_ARTIFACTS"), "sharedFrameworkPublish"); } diff --git a/src/installer/tests/TestUtils/TestProjectFixture.cs b/src/installer/tests/TestUtils/TestProjectFixture.cs index 8f1c04f83467b..2ccce4dded155 100644 --- a/src/installer/tests/TestUtils/TestProjectFixture.cs +++ b/src/installer/tests/TestUtils/TestProjectFixture.cs @@ -119,9 +119,9 @@ private void ValidateRequiredDirectories(RepoDirectoriesProvider repoDirectories throw new Exception($"Unable to find built host and sharedfx, please ensure the build has been run: {repoDirectoriesProvider.BuiltDotnet}"); } - if ( ! Directory.Exists(repoDirectoriesProvider.CorehostPackages)) + if ( ! Directory.Exists(repoDirectoriesProvider.HostArtifacts)) { - throw new Exception($"Unable to find host packages directory, please ensure the build has been run: {repoDirectoriesProvider.CorehostPackages}"); + throw new Exception($"Unable to find host artifacts directory, please ensure the build has been run: {repoDirectoriesProvider.HostArtifacts}"); } } From 0c22987b30b026a65d751099fe130d01c861d12b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleksey=20Kliger=20=28=CE=BBgeek=29?= Date: Fri, 4 Dec 2020 14:37:27 -0500 Subject: [PATCH 27/87] [Mono] Arrays shouldn't implement linked out generic classes (#45125) --- src/mono/mono/metadata/class-init.c | 59 +++++++++++++++---- src/mono/mono/metadata/domain.c | 6 +- src/mono/mono/metadata/icall.c | 8 +-- .../src/ILLink/ILLink.Descriptors.xml | 11 +--- 4 files changed, 54 insertions(+), 30 deletions(-) diff --git a/src/mono/mono/metadata/class-init.c b/src/mono/mono/metadata/class-init.c index f70cf849976bb..ea240e39ff6f6 100644 --- a/src/mono/mono/metadata/class-init.c +++ b/src/mono/mono/metadata/class-init.c @@ -60,6 +60,13 @@ static int generic_array_methods (MonoClass *klass); static void setup_generic_array_ifaces (MonoClass *klass, MonoClass *iface, MonoMethod **methods, int pos, GHashTable *cache); static gboolean class_has_isbyreflike_attribute (MonoClass *klass); +static +GENERATE_TRY_GET_CLASS_WITH_CACHE(icollection, "System.Collections.Generic", "ICollection`1"); +static +GENERATE_TRY_GET_CLASS_WITH_CACHE(ienumerable, "System.Collections.Generic", "IEnumerable`1"); +static +GENERATE_TRY_GET_CLASS_WITH_CACHE(ireadonlycollection, "System.Collections.Generic", "IReadOnlyCollection`1"); + /* This TLS variable points to a GSList of classes which have setup_fields () executing */ static MonoNativeTlsKey setup_fields_tls_id; @@ -2483,6 +2490,16 @@ setup_generic_array_ifaces (MonoClass *klass, MonoClass *iface, MonoMethod **met } } +static gboolean +check_method_exists (MonoClass *iface, const char *method_name) +{ + g_assert (iface != NULL); + ERROR_DECL (method_lookup_error); + gboolean found = NULL != mono_class_get_method_from_name_checked (iface, method_name, -1, 0, method_lookup_error); + mono_error_cleanup (method_lookup_error); + return found; +} + static int generic_array_methods (MonoClass *klass) { @@ -2510,26 +2527,37 @@ generic_array_methods (MonoClass *klass) const char *ireadonlylist_prefix = "InternalArray__IReadOnlyList_"; const char *ireadonlycollection_prefix = "InternalArray__IReadOnlyCollection_"; - generic_array_method_info [i].array_method = m; + MonoClass *iface = NULL; + if (!strncmp (m->name, "InternalArray__ICollection_", 27)) { iname = "System.Collections.Generic.ICollection`1."; mname = m->name + 27; + iface = mono_class_try_get_icollection_class (); } else if (!strncmp (m->name, "InternalArray__IEnumerable_", 27)) { iname = "System.Collections.Generic.IEnumerable`1."; mname = m->name + 27; + iface = mono_class_try_get_ienumerable_class (); } else if (!strncmp (m->name, ireadonlylist_prefix, strlen (ireadonlylist_prefix))) { iname = "System.Collections.Generic.IReadOnlyList`1."; mname = m->name + strlen (ireadonlylist_prefix); + iface = mono_defaults.generic_ireadonlylist_class; } else if (!strncmp (m->name, ireadonlycollection_prefix, strlen (ireadonlycollection_prefix))) { iname = "System.Collections.Generic.IReadOnlyCollection`1."; mname = m->name + strlen (ireadonlycollection_prefix); + iface = mono_class_try_get_ireadonlycollection_class (); } else if (!strncmp (m->name, "InternalArray__", 15)) { iname = "System.Collections.Generic.IList`1."; mname = m->name + 15; + iface = mono_defaults.generic_ilist_class; } else { g_assert_not_reached (); } + if (!iface || !check_method_exists (iface, mname)) + continue; + + generic_array_method_info [i].array_method = m; + name = (gchar *)mono_image_alloc (mono_defaults.corlib, strlen (iname) + strlen (mname) + 1); strcpy (name, iname); strcpy (name + strlen (iname), mname); @@ -2538,7 +2566,10 @@ generic_array_methods (MonoClass *klass) } /*g_print ("array generic methods: %d\n", count_generic);*/ - generic_array_method_num = count_generic; + /* only count the methods we actually added, not the ones that we + * skipped if they implement an interface method that was trimmed. + */ + generic_array_method_num = i; g_list_free (list); return generic_array_method_num; } @@ -3715,20 +3746,26 @@ mono_class_setup_interfaces (MonoClass *klass, MonoError *error) MonoType *args [1]; /* IList and IReadOnlyList -> 2x if enum*/ - interface_count = klass->element_class->enumtype ? 4 : 2; + interface_count = 0; + int mult = klass->element_class->enumtype ? 2 : 1; + if (mono_defaults.generic_ilist_class) + interface_count += mult; + if (mono_defaults.generic_ireadonlylist_class) + interface_count += mult; interfaces = (MonoClass **)mono_image_alloc0 (klass->image, sizeof (MonoClass*) * interface_count); + int itf_idx = 0; args [0] = m_class_get_byval_arg (m_class_get_element_class (klass)); - interfaces [0] = mono_class_bind_generic_parameters ( - mono_defaults.generic_ilist_class, 1, args, FALSE); - interfaces [1] = mono_class_bind_generic_parameters ( - mono_defaults.generic_ireadonlylist_class, 1, args, FALSE); + if (mono_defaults.generic_ilist_class) + interfaces [itf_idx++] = mono_class_bind_generic_parameters (mono_defaults.generic_ilist_class, 1, args, FALSE); + if (mono_defaults.generic_ireadonlylist_class) + interfaces [itf_idx++] = mono_class_bind_generic_parameters (mono_defaults.generic_ireadonlylist_class, 1, args, FALSE); if (klass->element_class->enumtype) { args [0] = mono_class_enum_basetype_internal (klass->element_class); - interfaces [2] = mono_class_bind_generic_parameters ( - mono_defaults.generic_ilist_class, 1, args, FALSE); - interfaces [3] = mono_class_bind_generic_parameters ( - mono_defaults.generic_ireadonlylist_class, 1, args, FALSE); + if (mono_defaults.generic_ilist_class) + interfaces [itf_idx++] = mono_class_bind_generic_parameters (mono_defaults.generic_ilist_class, 1, args, FALSE); + if (mono_defaults.generic_ireadonlylist_class) + interfaces [itf_idx++] = mono_class_bind_generic_parameters (mono_defaults.generic_ireadonlylist_class, 1, args, FALSE); } } else if (mono_class_is_ginst (klass)) { MonoClass *gklass = mono_class_get_generic_class (klass)->container_class; diff --git a/src/mono/mono/metadata/domain.c b/src/mono/mono/metadata/domain.c index 185cd5b2eff79..c09c7bc5a7060 100644 --- a/src/mono/mono/metadata/domain.c +++ b/src/mono/mono/metadata/domain.c @@ -797,11 +797,11 @@ mono_init_internal (const char *filename, const char *exe_filename, const char * mono_class_init_internal (mono_defaults.array_class); mono_defaults.generic_nullable_class = mono_class_load_from_name ( mono_defaults.corlib, "System", "Nullable`1"); - mono_defaults.generic_ilist_class = mono_class_load_from_name ( + mono_defaults.generic_ilist_class = mono_class_try_load_from_name ( mono_defaults.corlib, "System.Collections.Generic", "IList`1"); - mono_defaults.generic_ireadonlylist_class = mono_class_load_from_name ( + mono_defaults.generic_ireadonlylist_class = mono_class_try_load_from_name ( mono_defaults.corlib, "System.Collections.Generic", "IReadOnlyList`1"); - mono_defaults.generic_ienumerator_class = mono_class_load_from_name ( + mono_defaults.generic_ienumerator_class = mono_class_try_load_from_name ( mono_defaults.corlib, "System.Collections.Generic", "IEnumerator`1"); #ifdef ENABLE_NETCORE diff --git a/src/mono/mono/metadata/icall.c b/src/mono/mono/metadata/icall.c index 77f8c05ee0ea3..1a3ee7456cb4e 100644 --- a/src/mono/mono/metadata/icall.c +++ b/src/mono/mono/metadata/icall.c @@ -4610,7 +4610,7 @@ method_nonpublic (MonoMethod* method, gboolean start_klass) { switch (method->flags & METHOD_ATTRIBUTE_MEMBER_ACCESS_MASK) { case METHOD_ATTRIBUTE_ASSEM: - return (start_klass || mono_defaults.generic_ilist_class); + return TRUE; case METHOD_ATTRIBUTE_PRIVATE: return start_klass; case METHOD_ATTRIBUTE_PUBLIC: @@ -5153,11 +5153,7 @@ ves_icall_System_Reflection_Assembly_InternalGetType (MonoReflectionAssemblyHand g_free (str); mono_reflection_free_type_info (&info); if (throwOnError) { - /* 1.0 and 2.0 throw different exceptions */ - if (mono_defaults.generic_ilist_class) - mono_error_set_argument (error, NULL, "Type names passed to Assembly.GetType() must not specify an assembly."); - else - mono_error_set_type_load_name (error, g_strdup (""), g_strdup (""), "Type names passed to Assembly.GetType() must not specify an assembly."); + mono_error_set_argument (error, NULL, "Type names passed to Assembly.GetType() must not specify an assembly."); goto fail; } return MONO_HANDLE_CAST (MonoReflectionType, NULL_HANDLE); diff --git a/src/mono/netcore/System.Private.CoreLib/src/ILLink/ILLink.Descriptors.xml b/src/mono/netcore/System.Private.CoreLib/src/ILLink/ILLink.Descriptors.xml index dbf1729c91840..7be1479fbce49 100644 --- a/src/mono/netcore/System.Private.CoreLib/src/ILLink/ILLink.Descriptors.xml +++ b/src/mono/netcore/System.Private.CoreLib/src/ILLink/ILLink.Descriptors.xml @@ -72,7 +72,7 @@ - + @@ -479,15 +479,6 @@ - - - - - - - - - From 274a0772c9a626e80cb2401b86cf55f0c4b68740 Mon Sep 17 00:00:00 2001 From: Carol Eidt Date: Fri, 4 Dec 2020 12:05:23 -0800 Subject: [PATCH 28/87] Add description of AvoidSplittingBackedge branch and link to #40264 (#45609) --- docs/design/coreclr/jit/lsra-detail.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/docs/design/coreclr/jit/lsra-detail.md b/docs/design/coreclr/jit/lsra-detail.md index 56e72979caacd..a37205b794d2d 100644 --- a/docs/design/coreclr/jit/lsra-detail.md +++ b/docs/design/coreclr/jit/lsra-detail.md @@ -1178,7 +1178,26 @@ I have an old experimental branch where I started working on this: https://github.com/CarolEidt/runtime/tree/NoEdgeSplitting. It was ported from the coreclr to the runtime repo, but not validated in any significant way. Initial experience showed that this resulted in more regressions than improvements. -Issue [\#8552](https://github.com/dotnet/runtime/issues/8552) may be related. + +A less aggressive approach would be to make minor modifications to reduce the +need for split edges: + +* When selecting a predecessor for the fall-through block for a loop backedge, + instead of using the actual predecessor, use the non-backedge predecessor of + the loop head. This will mean that both successors of the loop will use the same + mapping, reducing the need to split the edge. + +* When a `RefTypeExpUse` is encountered, if it is at a loop backedge, the variable + is in a register, and the loop head has the variable on the stack, spill it. + Spilling preemptively will enable the spill to be performed at an actual reference, + rather than at the block boundary. + +This approach has been implemented experimentally in https://github.com/CarolEidt/runtime/tree/AvoidSplittingBackedge. +Running crossgen diffs across frameworks and benchmarks for X64 Windows shows +a delta of -2392 (-0.007%) with 317 methods improved and 66 regressed. +Further analysis of the regressions is needed. + +Issues [\#8552](https://github.com/dotnet/runtime/issues/8552) and [\#40264](https://github.com/dotnet/runtime/issues/40264) may be related. ### Enable EHWriteThru by default From 964bb31600c0dd7f1f4d02ed30f80eeeda567424 Mon Sep 17 00:00:00 2001 From: Santiago Fernandez Madero Date: Fri, 4 Dec 2020 12:08:35 -0800 Subject: [PATCH 29/87] Add link to active issue attribute on PR guide (#45606) --- docs/pr-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pr-guide.md b/docs/pr-guide.md index 2240678786675..e379bffe7c230 100644 --- a/docs/pr-guide.md +++ b/docs/pr-guide.md @@ -82,7 +82,7 @@ If you have determined the failure is definitely not caused by changes in your P * Update the original pull request with a comment linking to the new or existing issue. * In a follow-up Pull Request, disable the failing test(s) with the corresponding issue link tracking the disable. * Update the tracking issue with the label `disabled-test`. - * For libraries tests add a `[ActiveIssue(link)]` attribute on the test method. You can narrow the disabling down to runtime variant, flavor, and platform. For an example see [File_AppendAllLinesAsync_Encoded](https://github.com/dotnet/runtime/blob/a259ec2e967d502f82163beba6b84da5319c5e08/src/libraries/System.IO.FileSystem/tests/File/AppendAsync.cs#L899) + * For libraries tests add a [`[ActiveIssue(link)]`](https://github.com/dotnet/arcade/blob/master/src/Microsoft.DotNet.XUnitExtensions/src/Attributes/ActiveIssueAttribute.cs) attribute on the test method. You can narrow the disabling down to runtime variant, flavor, and platform. For an example see [File_AppendAllLinesAsync_Encoded](https://github.com/dotnet/runtime/blob/a259ec2e967d502f82163beba6b84da5319c5e08/src/libraries/System.IO.FileSystem/tests/File/AppendAsync.cs#L899) * For runtime tests found under `src/tests`, please edit [`issues.targets`](https://github.com/dotnet/runtime/blob/master/src/tests/issues.targets). There are several groups for different types of disable (mono vs. coreclr, different platforms, different scenarios). Add the folder containing the test and issue mimicking any of the samples in the file. There are plenty of possible bugs, e.g. race conditions, where a failure might highlight a real problem and it won't manifest again on a retry. Therefore these steps should be followed for every iteration of the PR build, e.g. before retrying/rebuilding. From 7e9dee84a91560dc8e3fda8bf1ddef664d07aa99 Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Fri, 4 Dec 2020 15:16:49 -0500 Subject: [PATCH 30/87] Fix warnings in the code emitted by the wasm pinvoke generator. (#45322) --- .../mobile.tasks/WasmAppBuilder/PInvokeTableGenerator.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools-local/tasks/mobile.tasks/WasmAppBuilder/PInvokeTableGenerator.cs b/tools-local/tasks/mobile.tasks/WasmAppBuilder/PInvokeTableGenerator.cs index 9209f4f640cad..603fbcf17003c 100644 --- a/tools-local/tasks/mobile.tasks/WasmAppBuilder/PInvokeTableGenerator.cs +++ b/tools-local/tasks/mobile.tasks/WasmAppBuilder/PInvokeTableGenerator.cs @@ -218,13 +218,13 @@ private void EmitNativeToInterp(StreamWriter w, List callbacks) foreach (var p in method.GetParameters()) { if (pindex > 0) sb.Append(','); - sb.Append("int"); + sb.Append("int*"); pindex++; } if (pindex > 0) sb.Append(','); // Extra arg - sb.Append("int"); + sb.Append("int*"); sb.Append(");\n"); bool is_void = method.ReturnType.Name == "Void"; From acfd477eef554503a4b4fc37bcdf206e759fa617 Mon Sep 17 00:00:00 2001 From: Maoni Stephens Date: Fri, 4 Dec 2020 13:43:43 -0800 Subject: [PATCH 31/87] This is an initial checkin and allows to run some tests (I've included the ones I ran below). (#45172) I have not done a full functional test run - there are things I know don't work yet. But being able to run some tests will allow multiple people to work on this in parallel. I added an env var for now to specify the range for regions. We can have a default reserve range that's very large. This simplies a lot of things. Right now I'm only enabling the feature on 64-bit because I've only been testing on 64-bit. For 32-bit we would likely still need to have things like grow_brick_card_tables. Each generation has at least one region; each region can only belong to one generation. --- Main changes - + I'm using the current heap_segment to represent a region instead of doing a ton of renaming because each region also needs to keep track of the same allocated/committed/etc. So when USE_REGIONS is defined you could think region whenever you see segment. But gen/planned gen are now maintained by each region since we no long have a contiguous range for ephemeral gens. + Added a simple region allocator that finds free blocks for region alloc requests and coalesce adjacent free blocks. + Places that need to check for ephemeral generations are changed to check for gen_num/plan_gen_num accordingly, eg, gc_mark, mark_through_cards, relocate_address. + plan phase is changed quite a bit to accommodate regions, eg, we set each region's plan as we've planned them; we need to go through eph regions for allocating survivors, instead of detecting crossing gen0/1 boundary by the survivors position relative to their gen start, we plan the next generation (if necessary) when we run out of regions of the current generation we are going through. This actually avoids some of the complexity with segments. + sweep phase is heavily changed since we don't have a gen limit to detect eph gen boundaries anymore. + Rewrote the code that threads segments together for regions after compact/sweep is done. + Changed the SOH allocator to acquire new regions when needed, still maintain ephemeral_heap_segment but now it's used to indicate the region we are currently allocating in. + Got rid of the following that doesn't apply to regions - ephemeral_low/ephemeral_high demotion_low/demotion_high Some of these were replaced for regions; others haven't been (like ephemeral_low/ephemeral_high) which will be done in separate work items. + Added some internal stress mechanisms like selectively pinning some objects and creating ro segs in GC. + I have not changed the write barrier code so for WKS GC cards will be set unconditionally like in SVR GC. + Changed verify_heap to verify regions. + Perf changes, eg, to determine compaction. + Some changes for BGC; it's still incomplete but I've changed places where it needs to avoid reading into the ephemeral regions for concurrent like BGC revisit/overflow. Overflow can be optimized to be per region (this optimization applies to segs as well but more gains with regions). Some key implementation differences between regions and segments - + We no longer have the expand heap code paths which simplies things by a lot. + We no longer have a generation start object - each generation has a list of regions that belong to that generation. Any empty region can be removed off of this list. This is different from when we had a generation start which meant the first segment would never be empty and we don't reuse it for new eph seg. + With segments in plan phase we may not have allocated gen1/0 start while going through survivors since there may not be survivors in gen1/0... with regions it's different because each time I finish a generation I will call process_last_np to allocate the new gen. It's more consistent. + consing_gen in plan phase really doesn't need to be a generation. With segments it would change that generation's alloc seg and we'd switch to gen1 when we need to plan ephemeral generations. But this is unnecessary because all we need is the alloc_ptr/limit pair + alloc seg (or alloc region for regions). I've made some progress simplying this so this never changes (always the condemned gen) and always represents the alloc_ptr/limit/region. We can totally get rid of consing_gen and only maintain those 3 things. ======= Other things worth mentioning - + I intentionally left quite a bit of logging for the new code. Some can be removed when the code is more baked. + I have some "REGIONS TODO"s in the code that are things needed to changed about this PR. Of course there are many optimizations that will be done - seperated PRs will be submitted for those. ======= This is the env I used for testing - complus_gcConcurrent=0 complus_GCLogEnabled=1 complus_GCLogFile=c:\temp\gclog complus_GCLogFileSize=100 complus_GCName=clrgc.dll complus_GCRegionsRange=20000000 complus_heapverify=1 complus_StressLog=0 command line I used for GCPerfSim - -tc 2 -tagb 16 -tlgb 0.05 -lohar 0 -sohsi 10 -lohsi 0 -pohsi 0 -sohpi 0 -lohpi 0 -pohpi 0 -sohfi 0 -lohfi 0 -pohfi 0 -allocType reference -testKind time -printEveryNthIter 300000 -tc 2 -tagb 32 -tlgb 0.05 -lohar 100 -sohsi 10 -lohsi 100 -pohsi 0 -sohpi 0 -lohpi 0 -pohpi 0 -sohfi 0 -lohfi 0 -pohfi 0 -allocType reference -testKind time -printEveryNthIter 300000 --- src/coreclr/src/gc/gc.cpp | 4019 +++++++++++++++++++++++++++------ src/coreclr/src/gc/gc.h | 2 + src/coreclr/src/gc/gcconfig.h | 1 + src/coreclr/src/gc/gcee.cpp | 13 +- src/coreclr/src/gc/gcpriv.h | 585 ++++- 5 files changed, 3854 insertions(+), 766 deletions(-) diff --git a/src/coreclr/src/gc/gc.cpp b/src/coreclr/src/gc/gc.cpp index 88613e4a68753..558deb7dd5aba 100644 --- a/src/coreclr/src/gc/gc.cpp +++ b/src/coreclr/src/gc/gc.cpp @@ -392,9 +392,11 @@ void gc_heap::add_to_history_per_heap() size_t elapsed = dd_gc_elapsed_time (dynamic_data_of (0)); current_hist->gc_time_ms = (uint32_t)(elapsed / 1000); current_hist->gc_efficiency = (elapsed ? (total_promoted_bytes / elapsed) : total_promoted_bytes); - current_hist->eph_low = generation_allocation_start (generation_of (max_generation-1)); +#ifndef USE_REGIONS + current_hist->eph_low = generation_allocation_start (generation_of (max_generation - 1)); current_hist->gen0_start = generation_allocation_start (generation_of (0)); current_hist->eph_high = heap_segment_allocated (ephemeral_heap_segment); +#endif //!USE_REGIONS #ifdef BACKGROUND_GC current_hist->bgc_lowest = background_saved_lowest_address; current_hist->bgc_highest = background_saved_highest_address; @@ -551,7 +553,7 @@ void GCLogConfig (const char *fmt, ... ) void GCHeap::Shutdown() { -#if defined(TRACE_GC) && !defined(DACCESS_COMPILE) +#if defined(TRACE_GC) && !defined(DACCESS_COMPILE) && !defined(BUILD_AS_STANDALONE) if (gc_log_on && (gc_log != NULL)) { fwrite(gc_log_buffer, gc_log_buffer_offset, 1, gc_log); @@ -559,7 +561,7 @@ void GCHeap::Shutdown() fclose(gc_log); gc_log_buffer_offset = 0; } -#endif +#endif //TRACE_GC && !DACCESS_COMPILE && !BUILD_AS_STANDALONE } #ifdef SYNCHRONIZATION_STATS @@ -1826,6 +1828,8 @@ uint8_t* gc_heap::pad_for_alignment_large (uint8_t* newAlloc, int requiredAlignm #endif //SERVER_GC #define END_SPACE_AFTER_GC (loh_size_threshold + MAX_STRUCTALIGN) +// When we fit into the free list we need an extra of a min obj +#define END_SPACE_AFTER_GC_FL (END_SPACE_AFTER_GC + Align (min_obj_size)) #ifdef BACKGROUND_GC #define SEGMENT_INITIAL_COMMIT (2*OS_PAGE_SIZE) @@ -2231,7 +2235,16 @@ size_t gc_heap::heap_hard_limit = 0; size_t gc_heap::heap_hard_limit_oh[total_oh_count - 1] = {0, 0, 0}; +#ifdef USE_REGIONS +size_t gc_heap::regions_range = 0; +#endif //USE_REGIONS + bool affinity_config_specified_p = false; + +#ifdef USE_REGIONS +region_allocator global_region_allocator; +#endif //USE_REGIONS + #ifdef BACKGROUND_GC GCEvent gc_heap::bgc_start_event; @@ -2318,9 +2331,10 @@ BOOL gc_heap::ro_segments_in_range; size_t gc_heap::gen0_big_free_spaces = 0; +#ifndef USE_REGIONS uint8_t* gc_heap::ephemeral_low; - uint8_t* gc_heap::ephemeral_high; +#endif //!USE_REGIONS uint8_t* gc_heap::lowest_address; @@ -2339,13 +2353,15 @@ uint32_t* gc_heap::card_table; uint32_t* gc_heap::card_bundle_table; #endif //CARD_BUNDLE -uint8_t* gc_heap::gc_low; +uint8_t* gc_heap::gc_low = 0; -uint8_t* gc_heap::gc_high; +uint8_t* gc_heap::gc_high = 0; +#ifndef USE_REGIONS uint8_t* gc_heap::demotion_low; uint8_t* gc_heap::demotion_high; +#endif //!USE_REGIONS BOOL gc_heap::demote_gen1_p = TRUE; @@ -2367,6 +2383,35 @@ size_t gc_heap::allocation_running_amount; heap_segment* gc_heap::ephemeral_heap_segment = 0; +#ifdef USE_REGIONS +#ifdef STRESS_REGIONS +OBJECTHANDLE* gc_heap::pinning_handles_for_alloc = 0; +int gc_heap::ph_index_per_heap = 0; +int gc_heap::pinning_seg_interval = 2; +int gc_heap::num_gen0_segs = 0; +#endif //STRESS_REGIONS + +heap_segment* gc_heap::free_regions = 0; + +int gc_heap::num_free_regions = 0; + +int gc_heap::num_free_regions_added = 0; + +int gc_heap::num_free_regions_removed = 0; + +heap_segment* gc_heap::free_large_regions = 0; + +int gc_heap::num_free_large_regions = 0; + +size_t gc_heap::committed_in_free = 0; + +size_t gc_heap::end_gen0_region_space = 0; + +size_t gc_heap::gen0_pinned_free_space = 0; + +bool gc_heap::gen0_large_chunk_found = false; +#endif //USE_REGIONS + BOOL gc_heap::blocking_collection = FALSE; heap_segment* gc_heap::freeable_uoh_segment = 0; @@ -2448,15 +2493,17 @@ uint8_t* gc_heap::background_max_overflow_address =0; BOOL gc_heap::processed_soh_overflow_p = FALSE; +#ifndef USE_REGIONS uint8_t* gc_heap::background_min_soh_overflow_address =0; uint8_t* gc_heap::background_max_soh_overflow_address =0; +heap_segment* gc_heap::saved_overflow_ephemeral_seg = 0; + heap_segment* gc_heap::saved_sweep_ephemeral_seg = 0; uint8_t* gc_heap::saved_sweep_ephemeral_start = 0; - -heap_segment* gc_heap::saved_overflow_ephemeral_seg = 0; +#endif //!USE_REGIONS Thread* gc_heap::bgc_thread = 0; @@ -2560,10 +2607,12 @@ bool gc_heap::use_large_pages_p = 0; #ifdef HEAP_BALANCE_INSTRUMENTATION size_t gc_heap::last_gc_end_time_us = 0; #endif //HEAP_BALANCE_INSTRUMENTATION +#ifndef USE_REGIONS size_t gc_heap::min_segment_size = 0; +size_t gc_heap::min_uoh_segment_size = 0; +#endif //!USE_REGIONS size_t gc_heap::min_segment_size_shr = 0; size_t gc_heap::soh_segment_size = 0; -size_t gc_heap::min_uoh_segment_size = 0; size_t gc_heap::segment_info_size = 0; #ifdef GC_CONFIG_DRIVEN @@ -2685,6 +2734,27 @@ size_t gc_heap::interesting_mechanism_bits_per_heap[max_gc_mechanism_bits_co #ifndef DACCESS_COMPILE +// This is for methods that need to iterate through all SOH heap segments/regions. +inline +int get_start_generation_index() +{ +#ifdef USE_REGIONS + return 0; +#else + return max_generation; +#endif //USE_REGIONS +} + +inline +int get_stop_generation_index (int condemned_gen_number) +{ +#ifdef USE_REGIONS + return 0; +#else + return condemned_gen_number; +#endif //USE_REGIONS +} + void gen_to_condemn_tuning::print (int heap_num) { #ifdef DT_LOG @@ -3312,24 +3382,345 @@ sorted_table::clear() } #endif //FEATURE_BASICFREEZE +#ifdef USE_REGIONS +inline +uint8_t* align_on_region (uint8_t* add) +{ + return (uint8_t*)((size_t)(add + (REGION_SIZE - 1)) & ~(REGION_SIZE - 1)); +} + +inline +uint8_t* align_lower_region (uint8_t* add) +{ + return (uint8_t*)((size_t)add & ~(REGION_SIZE - 1)); +} + +// Go from a random address to its region info. The random address could be +// in one of the basic regions of a larger region so we need to check for that. +inline +heap_segment* get_region_info_for_address (uint8_t* address) +{ + size_t basic_region_index = (size_t)address >> gc_heap::min_segment_size_shr; + heap_segment* basic_region_info_entry = (heap_segment*)&seg_mapping_table[basic_region_index]; + ptrdiff_t first_field = (ptrdiff_t)heap_segment_allocated (basic_region_info_entry); + if (first_field < 0) + { + basic_region_index += first_field; + } + + return ((heap_segment*)(&seg_mapping_table[basic_region_index])); +} + +// Go from the physical start of a region to its region info. +inline +heap_segment* get_region_info (uint8_t* region_start) +{ + size_t region_index = (size_t)region_start >> gc_heap::min_segment_size_shr; + heap_segment* region_info_entry = (heap_segment*)&seg_mapping_table[region_index]; + dprintf (REGIONS_LOG, ("region info for region %Ix is at %Id, %Ix (alloc: %Ix)", + region_start, region_index, (size_t)region_info_entry, heap_segment_allocated (region_info_entry))); + return (heap_segment*)&seg_mapping_table[region_index]; +} + +// Go from the actual region info to its region start. +inline +uint8_t* get_region_start (heap_segment* region_info) +{ + uint8_t* obj_start = heap_segment_mem (region_info); + return (obj_start - sizeof (aligned_plug_and_gap)); +} + +inline +size_t get_region_size (heap_segment* region_info) +{ + return (size_t)(heap_segment_reserved (region_info) - get_region_start (region_info)); +} + +bool region_allocator::init (uint8_t* start, uint8_t* end, size_t alignment, uint8_t** lowest, uint8_t** highest) +{ + actual_start = start; + region_alignment = alignment; + large_region_alignment = LARGE_REGION_FACTOR * alignment; + global_region_start = (uint8_t*)align_region_up ((size_t)actual_start); + uint8_t* actual_end = end; + global_region_end = (uint8_t*)align_region_down ((size_t)actual_end); + global_region_used = global_region_start; + + // Note: I am allocating a map that covers the whole reserved range. + // We can optimize it to only cover the current heap range. + size_t num_user_heap_units = (global_region_end - global_region_start) / region_alignment; + + uint32_t* unit_map = new (nothrow) uint32_t[num_user_heap_units]; + if (unit_map) + { + memset (unit_map, 0, sizeof (uint32_t) * num_user_heap_units); + region_map_start = unit_map; + region_map_end = region_map_start; + + dprintf (1, ("start: %Ix, end: %Ix, total %Idmb(alignment: %Idmb), map units %d", + (size_t)start, (size_t)end, + (size_t)((end - start) / 1024 / 1024), + (alignment / 1024 / 1024), + num_user_heap_units)); + + *lowest = global_region_start; + *highest = global_region_end; + } + + return (unit_map != 0); +} + +inline +uint8_t* region_allocator::region_address_of (uint32_t* map_index) +{ + return (global_region_start + ((map_index - region_map_start) * region_alignment)); +} + +inline +uint32_t* region_allocator::region_map_index_of (uint8_t* address) +{ + return (region_map_start + ((address - global_region_start) / region_alignment)); +} + +void region_allocator::make_busy_block (uint32_t* index_start, uint32_t num_units) +{ +#ifdef _DEBUG + dprintf (1, ("MBB[B: %Id] %d->%d", (size_t)num_units, (int)(index_start - region_map_start), (int)(index_start - region_map_start + num_units))); +#endif //_DEBUG + *index_start = num_units; +} + +void region_allocator::make_free_block (uint32_t* index_start, uint32_t num_units) +{ +#ifdef _DEBUG + dprintf (1, ("MFB[F: %Id] %d->%d", (size_t)num_units, (int)(index_start - region_map_start), (int)(index_start - region_map_start + num_units))); +#endif //_DEBUG + *index_start = region_alloc_free_bit | num_units; +} + +// make [current_free_index_start, [current_free_index_start + num_units into a busy block. +// make [current_free_index_start + num_units, [current_free_index_start + num_contiguous_free_units +// into a new free block. +void region_allocator::adjust_map (uint32_t* current_free_index_start, + uint32_t num_contiguous_free_units, uint32_t num_busy_units) +{ + make_busy_block (current_free_index_start, num_busy_units); + if ((num_contiguous_free_units - num_busy_units) > 0) + { + make_free_block ((current_free_index_start + num_busy_units), (num_contiguous_free_units - num_busy_units)); + } +} + +void region_allocator::print_map (const char* msg) +{ +#ifdef _DEBUG + const char* heap_type = "UH"; + dprintf (1, ("\n[%s]-----printing----%s", heap_type, msg)); + + uint32_t* current_index = region_map_start; + uint32_t* end_index = region_map_end; + uint32_t* map_start = current_index; + + while (current_index < end_index) + { + uint32_t current_val = *current_index; + uint32_t current_num_units = get_num_units (current_val); + bool free_p = is_unit_memory_free (current_val); + + dprintf (1, ("[%s][%s: %Id]%d->%d", heap_type, (free_p ? "F" : "B"), (size_t)current_num_units, + (int)(current_index - map_start), + (int)(current_index - map_start + current_num_units))); + + current_index += current_num_units; + } + + uint32_t total_regions = (uint32_t)((global_region_end - global_region_start) / region_alignment); + + dprintf (1, ("[%s]-----end printing----[%d total, used %d]\n", heap_type, total_regions, (end_index - map_start))); +#endif //_DEBUG +} + +uint8_t* region_allocator::allocate_end_uh (uint32_t num_units) +{ + uint8_t* alloc = NULL; + + if (global_region_used < global_region_end) + { + size_t user_heap_remaining = global_region_end - global_region_used; + + if ((user_heap_remaining / region_alignment) >= num_units) + { + make_busy_block (region_map_end, num_units); + region_map_end += num_units; + alloc = global_region_used; + global_region_used += num_units * region_alignment; + } + } + + return alloc; +} + +uint8_t* region_allocator::allocate (uint32_t num_units) +{ + uint32_t* current_index = region_map_start; + uint32_t* end_index = region_map_end; + + dprintf (1, ("\nsearcing %d->%d", (int)(current_index - region_map_start), (int)(end_index - region_map_start))); + uint32_t* current_free_index_start = 0; + uint32_t num_contiguous_free_units = 0; + uint32_t last_num_free_units = 0; + + print_map ("before alloc"); + + while (current_index < end_index) + { + uint32_t current_val = *current_index; + uint32_t current_num_units = get_num_units (current_val); + bool free_p = is_unit_memory_free (current_val); + dprintf (1, ("ALLOC[%s: %Id]%d->%d", (free_p ? "F" : "B"), (size_t)current_num_units, + (int)(current_index - region_map_start), (int)(current_index + current_num_units - region_map_start))); + + if (free_p) + { + if (!current_free_index_start) + { + current_free_index_start = current_index; + } + + last_num_free_units = current_num_units; + num_contiguous_free_units += current_num_units; + + if (num_contiguous_free_units >= num_units) + { + dprintf (1, ("found %Id contiguous free units(%d->%d), sufficient", + (size_t)num_contiguous_free_units, + (int)(current_free_index_start - region_map_start), + (int)(current_free_index_start - region_map_start + num_contiguous_free_units))); + + adjust_map (current_free_index_start, num_contiguous_free_units, num_units); + + print_map ("alloc: found in free"); + return region_address_of (current_free_index_start); + } + } + else + { + // Take this opportunity to coalesce free blocks. + if (num_contiguous_free_units > last_num_free_units) + { + dprintf (1, ("Observed %Id free units in multiple blocks(%Id), coalescing", + (size_t)num_contiguous_free_units, (size_t)last_num_free_units)); + make_free_block (current_free_index_start, num_contiguous_free_units); + } + current_free_index_start = 0; + num_contiguous_free_units = 0; + } + + current_index += current_num_units; + } + + // If at this point current_free_index_start is not 0, it means we had + // free units at the end. Simply adjust used to be where the last free + // block starts. + if (current_free_index_start != 0) + { + global_region_used = region_address_of (current_free_index_start); + region_map_end = current_free_index_start; + } + + uint8_t* alloc = allocate_end_uh (num_units); + + if (alloc) + { + print_map ("alloc: found at the end"); + } + else + { + dprintf (1, ("couldn't find memory at the end! only %Id bytes left", (global_region_end - global_region_used))); + } + + return alloc; +} + +// ETW TODO: need to fire create seg events for these methods. +// FIRE_EVENT(GCCreateSegment_V1 +bool region_allocator::allocate_region (size_t size, uint8_t** start, uint8_t** end) +{ + uint32_t* map_start = region_map_start; + size_t alignment = region_alignment; + size_t alloc_size = align_region_up (size); + + uint32_t num_units = (uint32_t)(alloc_size / alignment); + bool ret = false; + uint8_t* alloc = NULL; + dprintf (1, ("----GET %d-----", num_units)); + + alloc = allocate (num_units); + *start = alloc; + *end = alloc + alloc_size; + ret = (alloc != NULL); + + return ret; +} + +bool region_allocator::allocate_basic_region (uint8_t** start, uint8_t** end) +{ + return allocate_region (region_alignment, start, end); +} + +// Large regions are 8x basic region sizes by default. If you need a larger region than that, +// call allocate_region with the size. +bool region_allocator::allocate_large_region (uint8_t** start, uint8_t** end) +{ + return allocate_region (large_region_alignment, start, end); +} + +void region_allocator::delete_region (uint8_t* start) +{ + assert (is_region_aligned (start)); + + print_map ("before delete"); + + uint32_t* current_index = region_map_index_of (start); + uint32_t current_val = *current_index; + assert (!is_unit_memory_free (current_val)); + + dprintf (1, ("----DEL %d-----", (current_index - region_map_start))); + + make_free_block (current_index, current_val); + + print_map ("after delete"); +} +#endif //USE_REGIONS + inline uint8_t* align_on_segment (uint8_t* add) { - return (uint8_t*)((size_t)(add + (gc_heap::min_segment_size - 1)) & ~(gc_heap::min_segment_size - 1)); + return (uint8_t*)((size_t)(add + (((size_t)1 << gc_heap::min_segment_size_shr) - 1)) & ~(((size_t)1 << gc_heap::min_segment_size_shr) - 1)); } inline uint8_t* align_lower_segment (uint8_t* add) { - return (uint8_t*)((size_t)(add) & ~(gc_heap::min_segment_size - 1)); + return (uint8_t*)((size_t)(add) & ~(((size_t)1 << gc_heap::min_segment_size_shr) - 1)); } size_t size_seg_mapping_table_of (uint8_t* from, uint8_t* end) { +#ifdef USE_REGIONS + from = align_lower_region (from); + end = align_on_region (end); + dprintf (1, ("region from: %Ix, end: %Ix, size: %Id(%Id)", + from, end, + (size_t)sizeof (seg_mapping)*((size_t)(end - from) >> gc_heap::min_segment_size_shr), + (size_t)sizeof (seg_mapping))); + return sizeof (seg_mapping)*((size_t)(end - from) >> gc_heap::min_segment_size_shr); +#else from = align_lower_segment (from); end = align_on_segment (end); dprintf (1, ("from: %Ix, end: %Ix, size: %Ix", from, end, sizeof (seg_mapping)*(((size_t)(end - from) >> gc_heap::min_segment_size_shr)))); return sizeof (seg_mapping)*((size_t)(end - from) >> gc_heap::min_segment_size_shr); +#endif //USE_REGIONS } // for seg_mapping_table we want it to start from a pointer sized address. @@ -3349,7 +3740,11 @@ size_t seg_mapping_word_of (uint8_t* add) inline size_t ro_seg_begin_index (heap_segment* seg) { +#ifdef USE_REGIONS + size_t begin_index = (size_t)heap_segment_mem (seg) >> gc_heap::min_segment_size_shr; +#else size_t begin_index = (size_t)seg >> gc_heap::min_segment_size_shr; +#endif //USE_REGIONS begin_index = max (begin_index, (size_t)g_gc_lowest_address >> gc_heap::min_segment_size_shr); return begin_index; } @@ -3368,7 +3763,14 @@ void seg_mapping_table_add_ro_segment (heap_segment* seg) return; for (size_t entry_index = ro_seg_begin_index (seg); entry_index <= ro_seg_end_index (seg); entry_index++) + { +#ifdef USE_REGIONS + heap_segment* region = (heap_segment*)&seg_mapping_table[entry_index]; + heap_segment_allocated (region) = (uint8_t*)ro_in_entry; +#else seg_mapping_table[entry_index].seg1 = (heap_segment*)((size_t)seg_mapping_table[entry_index].seg1 | ro_in_entry); +#endif //USE_REGIONS + } } void seg_mapping_table_remove_ro_segment (heap_segment* seg) @@ -3396,6 +3798,7 @@ heap_segment* ro_segment_lookup (uint8_t* o) void gc_heap::seg_mapping_table_add_segment (heap_segment* seg, gc_heap* hp) { +#ifndef USE_REGIONS size_t seg_end = (size_t)(heap_segment_reserved (seg) - 1); size_t begin_index = (size_t)seg >> gc_heap::min_segment_size_shr; seg_mapping* begin_entry = &seg_mapping_table[begin_index]; @@ -3454,10 +3857,12 @@ void gc_heap::seg_mapping_table_add_segment (heap_segment* seg, gc_heap* hp) end_index, (uint8_t*)(end_entry->h0), (end_entry->h0 ? end_entry->h0->heap_number : -1), (uint8_t*)(end_entry->h1), (end_entry->h1 ? end_entry->h1->heap_number : -1))); #endif //MULTIPLE_HEAPS && SIMPLE_DPRINTF +#endif //!USE_REGIONS } void gc_heap::seg_mapping_table_remove_segment (heap_segment* seg) { +#ifndef USE_REGIONS size_t seg_end = (size_t)(heap_segment_reserved (seg) - 1); size_t begin_index = (size_t)seg >> gc_heap::min_segment_size_shr; seg_mapping* begin_entry = &seg_mapping_table[begin_index]; @@ -3501,6 +3906,7 @@ void gc_heap::seg_mapping_table_remove_segment (heap_segment* seg) begin_index, (uint8_t*)(begin_entry->h0), (uint8_t*)(begin_entry->h1), end_index, (uint8_t*)(end_entry->h0), (uint8_t*)(end_entry->h1))); #endif //MULTIPLE_HEAPS +#endif //!USE_REGIONS } #ifdef MULTIPLE_HEAPS @@ -3510,6 +3916,9 @@ gc_heap* seg_mapping_table_heap_of_worker (uint8_t* o) size_t index = (size_t)o >> gc_heap::min_segment_size_shr; seg_mapping* entry = &seg_mapping_table[index]; +#ifdef USE_REGIONS + gc_heap* hp = heap_segment_heap ((heap_segment*)entry); +#else gc_heap* hp = ((o > entry->boundary) ? entry->h1 : entry->h0); dprintf (2, ("checking obj %Ix, index is %Id, entry: boundary: %Ix, h0: %Ix, seg0: %Ix, h1: %Ix, seg1: %Ix", @@ -3543,7 +3952,7 @@ gc_heap* seg_mapping_table_heap_of_worker (uint8_t* o) } #endif //TRACE_GC #endif //_DEBUG - +#endif //USE_REGIONS return hp; } @@ -3577,6 +3986,27 @@ heap_segment* seg_mapping_table_segment_of (uint8_t* o) size_t index = (size_t)o >> gc_heap::min_segment_size_shr; seg_mapping* entry = &seg_mapping_table[index]; +#ifdef USE_REGIONS + // REGIONS TODO: I think we could simplify this to having the same info for each + // basic entry in a large region so we can get it right away instead of having to go + // back some entries. + ptrdiff_t first_field = (ptrdiff_t)heap_segment_allocated ((heap_segment*)entry); + if (first_field == 0) + { + dprintf (REGIONS_LOG, ("asked for seg for %Ix, in a freed region mem: %Ix, committed %Ix", + o, heap_segment_mem ((heap_segment*)entry), + heap_segment_committed ((heap_segment*)entry))); + return 0; + } + // Regions are never going to intersect an ro seg, so this can never be ro_in_entry. + assert (first_field != 0); + assert (first_field != ro_in_entry); + if (first_field < 0) + { + index += first_field; + } + heap_segment* seg = (heap_segment*)&seg_mapping_table[index]; +#else //USE_REGIONS dprintf (2, ("checking obj %Ix, index is %Id, entry: boundary: %Ix, seg0: %Ix, seg1: %Ix", o, index, (entry->boundary + 1), (uint8_t*)(entry->seg0), (uint8_t*)(entry->seg1))); @@ -3586,6 +4016,7 @@ heap_segment* seg_mapping_table_segment_of (uint8_t* o) if ((size_t)seg & ro_in_entry) seg = (heap_segment*)((size_t)seg & ~ro_in_entry); #endif //FEATURE_BASICFREEZE +#endif //USE_REGIONS if (seg) { @@ -4552,12 +4983,11 @@ void gc_heap::destroy_initial_memory() } } -heap_segment* make_initial_segment (int gen, int h_number) +heap_segment* make_initial_segment (int gen, int h_number, gc_heap* hp) { void* mem = memory_details.get_initial_memory (gen, h_number); size_t size = memory_details.get_initial_size (gen); - gc_oh_num oh = gen_to_oh (gen); - heap_segment* res = gc_heap::make_heap_segment ((uint8_t*)mem, size, oh, h_number); + heap_segment* res = gc_heap::make_heap_segment ((uint8_t*)mem, size, hp, gen); return res; } @@ -4671,6 +5101,7 @@ static size_t get_valid_segment_size (BOOL large_seg=FALSE) return (seg_size); } +#ifndef USE_REGIONS void gc_heap::compute_new_ephemeral_size() { @@ -4831,6 +5262,7 @@ gc_heap::soh_get_segment_to_expand() dprintf (GTC_LOG, ("(gen%d)creating new segment %Ix", settings.condemned_generation, result)); return result; } +#endif //!USE_REGIONS #ifdef _MSC_VER #pragma warning(default:4706) @@ -4877,7 +5309,11 @@ gc_heap::get_segment (size_t size, gc_oh_num oh) if (result) { - init_heap_segment (result); + init_heap_segment (result, __this +#ifdef USE_REGIONS + , 0, size, (uoh_p ? max_generation : 0) +#endif //USE_REGIONS + ); #ifdef BACKGROUND_GC if (should_commit_mark_array()) { @@ -4914,7 +5350,7 @@ gc_heap::get_segment (size_t size, gc_oh_num oh) return 0; } - result = gc_heap::make_heap_segment ((uint8_t*)mem, size, oh, heap_number); + result = make_heap_segment ((uint8_t*)mem, size, __this, (uoh_p ? max_generation : 0)); if (result) { @@ -4986,8 +5422,19 @@ heap_segment* gc_heap::get_segment_for_uoh (int gen_number, size_t size #ifndef MULTIPLE_HEAPS gc_heap* hp = 0; #endif //MULTIPLE_HEAPS + +#ifdef USE_REGIONS + uint8_t* region_start; + uint8_t* region_end; + if (!global_region_allocator.allocate_large_region (®ion_start, ®ion_end)) + return 0; + + heap_segment* res = make_heap_segment (region_start, (region_end - region_start), hp, gen_number); +#else gc_oh_num oh = gen_to_oh (gen_number); heap_segment* res = hp->get_segment (size, oh); +#endif //USE_REGIONS + if (res != 0) { #ifdef MULTIPLE_HEAPS @@ -6426,40 +6873,17 @@ void gc_heap::fix_youngest_allocation_area() heap_segment_allocated (ephemeral_heap_segment) = alloc_allocated; } -void gc_heap::fix_uoh_allocation_area() -{ - for (int i = uoh_start_generation; i < total_generation_count; i++) - { -#ifdef _DEBUG - alloc_context* acontext = -#endif // _DEBUG - generation_alloc_context (generation_of (i)); - assert (acontext->alloc_ptr == 0); - assert (acontext->alloc_limit == 0); - -#if 0 - dprintf (3, ("UOH alloc context: gen: %Ix, ptr: %Ix, limit %Ix", - i, (size_t)acontext->alloc_ptr, (size_t)acontext->alloc_limit)); - fix_allocation_context (acontext, FALSE, get_alignment_constant (FALSE)); - if (for_gc_p) - { - acontext->alloc_ptr = 0; - acontext->alloc_limit = acontext->alloc_ptr; - } -#endif //0 - - } -} - //for_gc_p indicates that the work is being done for GC, //as opposed to concurrent heap verification void gc_heap::fix_allocation_context (alloc_context* acontext, BOOL for_gc_p, - int align_const) + BOOL record_ac_p) { dprintf (3, ("Fixing allocation context %Ix: ptr: %Ix, limit: %Ix", (size_t)acontext, (size_t)acontext->alloc_ptr, (size_t)acontext->alloc_limit)); + int align_const = get_alignment_constant (TRUE); + if (((size_t)(alloc_allocated - acontext->alloc_limit) > Align (min_obj_size, align_const)) || !for_gc_p) { @@ -6480,7 +6904,8 @@ void gc_heap::fix_allocation_context (alloc_context* acontext, BOOL for_gc_p, if (for_gc_p) { generation_free_obj_space (generation_of (0)) += size; - alloc_contexts_used ++; + if (record_ac_p) + alloc_contexts_used ++; } } } @@ -6489,7 +6914,8 @@ void gc_heap::fix_allocation_context (alloc_context* acontext, BOOL for_gc_p, alloc_allocated = acontext->alloc_ptr; assert (heap_segment_allocated (ephemeral_heap_segment) <= heap_segment_committed (ephemeral_heap_segment)); - alloc_contexts_used ++; + if (record_ac_p) + alloc_contexts_used ++; } if (for_gc_p) @@ -6556,7 +6982,6 @@ void gc_heap::fix_allocation_contexts (BOOL for_gc_p) GCToEEInterface::GcEnumAllocContexts(fix_alloc_context, &args); fix_youngest_allocation_area(); - fix_uoh_allocation_area(); } void gc_heap::fix_older_allocation_area (generation* older_gen) @@ -6601,6 +7026,10 @@ void gc_heap::fix_older_allocation_area (generation* older_gen) void gc_heap::set_allocation_heap_segment (generation* gen) { +#ifdef USE_REGIONS + heap_segment* seg = heap_segment_rw (generation_start_segment (gen)); + dprintf (REGIONS_LOG, ("set gen%d alloc seg to start seg %Ix", gen->gen_num, heap_segment_mem (seg))); +#else uint8_t* p = generation_allocation_start (gen); assert (p); heap_segment* seg = generation_allocation_segment (gen); @@ -6621,6 +7050,7 @@ void gc_heap::set_allocation_heap_segment (generation* gen) PREFIX_ASSUME(seg != NULL); } } +#endif //USE_REGIONS generation_allocation_segment (gen) = seg; } @@ -6629,7 +7059,9 @@ void gc_heap::reset_allocation_pointers (generation* gen, uint8_t* start) { assert (start); assert (Align ((size_t)start) == (size_t)start); +#ifndef USE_REGIONS generation_allocation_start (gen) = start; +#endif //!USE_REGIONS generation_allocation_pointer (gen) = 0;//start + Align (min_obj_size); generation_allocation_limit (gen) = 0;//generation_allocation_pointer (gen); set_allocation_heap_segment (gen); @@ -6666,8 +7098,10 @@ bool gc_heap::new_allocation_allowed (int gen_number) #ifndef MULTIPLE_HEAPS else if ((settings.pause_mode != pause_no_gc) && (gen_number == 0)) { - dprintf (3, ("evaluating allocation rate")); dynamic_data* dd0 = dynamic_data_of (0); + dprintf (3, ("evaluating, running amount %Id - new %Id = %Id", + allocation_running_amount, dd_new_allocation (dd0), + (allocation_running_amount - dd_new_allocation (dd0)))); if ((allocation_running_amount - dd_new_allocation (dd0)) > dd_min_size (dd0)) { @@ -6907,9 +7341,48 @@ mark* gc_heap::before_oldest_pin() inline BOOL gc_heap::ephemeral_pointer_p (uint8_t* o) { +#ifdef USE_REGIONS + int gen_num = object_gennum ((uint8_t*)o); + assert (gen_num >= 0); + return (gen_num < max_generation); +#else return ((o >= ephemeral_low) && (o < ephemeral_high)); +#endif //USE_REGIONS +} + +#ifdef USE_REGIONS +// This assumes o is guaranteed to be in a region. +inline +bool gc_heap::is_in_condemned_gc (uint8_t* o) +{ + int condemned_gen = settings.condemned_generation; + if (condemned_gen < max_generation) + { + int gen = get_region_gen_num (o); + if (gen > condemned_gen) + { + return false; + } + } + + return true; } +// REGIONS TODO - +// This method can be called by GCHeap::Promote/Relocate which means +// it could be in the heap range but not actually in a valid region. +// This would return true but find_object will return 0. But this +// seems counter-intuitive so we should consider a better implementation. +inline +bool gc_heap::is_in_condemned (uint8_t* o) +{ + if ((o >= g_gc_lowest_address) && (o < g_gc_highest_address)) + return is_in_condemned_gc (o); + else + return false; +} +#endif //USE_REGIONS + #ifdef MH_SC_MARK inline int& gc_heap::mark_stack_busy() @@ -8291,7 +8764,7 @@ void gc_heap::copy_brick_card_table() // for each of the segments and heaps, copy the brick table and // or the card table - for (int i = max_generation; i < total_generation_count; i++) + for (int i = get_start_generation_index(); i < total_generation_count; i++) { heap_segment* seg = generation_start_segment (generation_of (i)); while (seg) @@ -8338,6 +8811,17 @@ BOOL gc_heap::insert_ro_segment (heap_segment* seg) heap_segment_next (seg) = oldhead; generation_start_segment (gen2) = seg; +#ifdef USE_REGIONS + dprintf (REGIONS_LOG, ("setting gen2 start seg to %Ix(%Ix)->%Ix", + (size_t)seg, heap_segment_mem (seg), heap_segment_mem (oldhead))); + + if (generation_tail_ro_region (gen2) == 0) + { + dprintf (REGIONS_LOG, ("setting gen2 tail ro -> %Ix", heap_segment_mem (seg))); + generation_tail_ro_region (gen2) = seg; + } +#endif //USE_REGIONS + seg_table->insert (heap_segment_mem(seg), (size_t)seg); seg_mapping_table_add_ro_segment (seg); @@ -8376,6 +8860,14 @@ void gc_heap::remove_ro_segment (heap_segment* seg) // Locate segment (and previous segment) in the list. generation* gen2 = generation_of (max_generation); + +#ifdef USE_REGIONS + if (generation_tail_ro_region (gen2) == seg) + { + generation_tail_ro_region (gen2) = 0; + } +#endif //USE_REGIONS + heap_segment* curr_seg = generation_start_segment (gen2); heap_segment* prev_seg = NULL; @@ -9801,8 +10293,11 @@ BOOL gc_heap::is_mark_set (uint8_t* o) // Note that this will return max_generation for UOH objects int gc_heap::object_gennum (uint8_t* o) { +#ifdef USE_REGIONS + return get_region_gen_num (o); +#else if (in_range_for_segment (o, ephemeral_heap_segment) && - (o >= generation_allocation_start (generation_of (max_generation-1)))) + (o >= generation_allocation_start (generation_of (max_generation - 1)))) { // in an ephemeral generation. for ( int i = 0; i < max_generation-1; i++) @@ -9816,10 +10311,14 @@ int gc_heap::object_gennum (uint8_t* o) { return max_generation; } +#endif //USE_REGIONS } int gc_heap::object_gennum_plan (uint8_t* o) { +#ifdef USE_REGIONS + return get_region_plan_gen_num (o); +#else if (in_range_for_segment (o, ephemeral_heap_segment)) { for (int i = 0; i < ephemeral_generation_count; i++) @@ -9832,44 +10331,404 @@ int gc_heap::object_gennum_plan (uint8_t* o) } } return max_generation; +#endif //USE_REGIONS } #if defined(_MSC_VER) && defined(TARGET_X86) #pragma optimize("", on) // Go back to command line default optimizations #endif //_MSC_VER && TARGET_X86 -heap_segment* gc_heap::make_heap_segment (uint8_t* new_pages, size_t size, gc_oh_num oh, int h_number) +#ifdef USE_REGIONS +bool gc_heap::initial_make_soh_regions (gc_heap* hp) { - assert(oh != gc_oh_num::none); + uint8_t* region_start; + uint8_t* region_end; + + for (int i = max_generation; i >= 0; i--) + { + if (!global_region_allocator.allocate_basic_region (®ion_start, ®ion_end)) + return false; + + size_t region_size = region_end - region_start; + + heap_segment* current_region = make_heap_segment (region_start, region_size, hp, i); + uint8_t* gen_start = heap_segment_mem (current_region); + make_generation (i, current_region, gen_start); + + if (i == 0) + { + ephemeral_heap_segment = current_region; + alloc_allocated = heap_segment_allocated (current_region); + } + } + + for (int i = max_generation; i >= 0; i--) + { + dprintf (REGIONS_LOG, ("h%d gen%d alloc seg is %Ix, start seg is %Ix (%Ix-%Ix)", + heap_number, i, generation_allocation_segment (generation_of (i)), + generation_start_segment (generation_of (i)), + heap_segment_mem (generation_start_segment (generation_of (i))), + heap_segment_allocated (generation_start_segment (generation_of (i))))); + } + + return true; +} + +bool gc_heap::initial_make_uoh_regions (int gen, gc_heap* hp) +{ + uint8_t* region_start; + uint8_t* region_end; + + if (!global_region_allocator.allocate_large_region (®ion_start, ®ion_end)) + return false; + + size_t region_size = region_end - region_start; + heap_segment* uoh_region = make_heap_segment (region_start, region_size, hp, gen); + uoh_region->flags |= + (gen == loh_generation) ? heap_segment_flags_loh : heap_segment_flags_poh; + uint8_t* gen_start = heap_segment_mem (uoh_region); + make_generation (gen, uoh_region, gen_start); + return true; +} + +void gc_heap::clear_region_info (heap_segment* region) +{ + if (!heap_segment_uoh_p (region)) + { + //cleanup the brick table back to the empty value + clear_brick_table (heap_segment_mem (region), heap_segment_reserved (region)); + } + + // we should really clear cards as well!! + +#ifdef BACKGROUND_GC + ::record_changed_seg ((uint8_t*)region, heap_segment_reserved (region), + settings.gc_index, current_bgc_state, + seg_deleted); + decommit_mark_array_by_seg (region); +#endif //BACKGROUND_GC +} + +// Note that returning a region to free does not decommit. +// REGIONS PERF TODO: should decommit if needed. +void gc_heap::return_free_region (heap_segment* region) +{ + clear_region_info (region); + + num_free_regions++; + num_free_regions_added++; + heap_segment_next (region) = free_regions; + free_regions = region; + + committed_in_free += heap_segment_committed (region) - get_region_start (region); + + uint8_t* region_start = get_region_start (region); + uint8_t* region_end = heap_segment_reserved (region); + int num_basic_regions = (int)((region_end - region_start) / REGION_SIZE); + dprintf (REGIONS_LOG, ("RETURING region %Ix (%d basic regions) to free, total %d", + heap_segment_mem (region), num_basic_regions, num_free_regions)); + for (int i = 0; i < num_basic_regions; i++) + { + uint8_t* basic_region_start = region_start + (i * REGION_SIZE); + heap_segment* basic_region = get_region_info (basic_region_start); + heap_segment_allocated (basic_region) = 0; +#ifdef MULTIPLE_HEAPS + heap_segment_heap (basic_region) = 0; +#endif //MULTIPLE_HEAPS + + // I'm intentionally not resetting gen_num/plan_gen_num which will show us + // which gen/plan gen this region was and that's useful for debugging. + } +} + +// USE_REGIONS TODO: In Server GC we should allow to get a free region from another heap. +heap_segment* gc_heap::get_free_region (int gen_number) +{ + heap_segment* region = 0; + if (free_regions) + { + num_free_regions--; + num_free_regions_removed++; + region = free_regions; + dprintf (REGIONS_LOG, ("%d free regions left, get %Ix", + num_free_regions, heap_segment_mem (region))); + free_regions = heap_segment_next (free_regions); + committed_in_free -= heap_segment_committed (region) - get_region_start (region); + } + else + { + // TODO: We should keep enough reserve in the free region so we don't get OOM when + // this is called within GC when we sweep. + uint8_t* region_start; + uint8_t* region_end; + if (!global_region_allocator.allocate_basic_region (®ion_start, ®ion_end)) + return 0; + + return make_heap_segment (region_start, (region_end - region_start), __this, gen_number); + } + + if (region) + { + uint8_t* region_start = get_region_start (region); + uint8_t* region_end = heap_segment_reserved (region); + init_heap_segment (region, __this, region_start, + (region_end - region_start), + gen_number); + dprintf (REGIONS_LOG, ("h%d GFR get region %Ix (%Ix-%Ix) for gen%d", + heap_number, (size_t)region, + region_start, region_end, + gen_number)); + } + + // do we need to initialize the 1st brick??? see expand_heap and relocate_pre_plug_info. + return region; +} + +heap_segment* gc_heap::region_of (uint8_t* obj) +{ + size_t index = (size_t)obj >> gc_heap::min_segment_size_shr; + seg_mapping* entry = &seg_mapping_table[index]; + + return (heap_segment*)entry; +} + +// For debugging purposes to check that a region looks sane and +// do some logging. This was useful to sprinkle in various places +// where we were threading regions. +void gc_heap::check_seg_gen_num (heap_segment* seg) +{ +#ifdef _DEBUG + uint8_t* mem = heap_segment_mem (seg); + + if ((mem < g_gc_lowest_address) || (mem >= g_gc_highest_address)) + { + GCToOSInterface::DebugBreak(); + } + + int alloc_seg_gen_num = get_region_gen_num (mem); + int alloc_seg_plan_gen_num = get_region_plan_gen_num (mem); + dprintf (3, ("seg %Ix->%Ix, num %d, %d", + (size_t)seg, mem, alloc_seg_gen_num, alloc_seg_plan_gen_num)); +#endif //_DEBUG +} + +int gc_heap::get_region_gen_num (heap_segment* region) +{ + return heap_segment_gen_num (region); +} + +int gc_heap::get_region_gen_num (uint8_t* obj) +{ + return heap_segment_gen_num (region_of (obj)); +} + +int gc_heap::get_region_plan_gen_num (uint8_t* obj) +{ + return heap_segment_plan_gen_num (region_of (obj)); +} + +int gc_heap::get_plan_gen_num (int gen_number) +{ + return ((settings.promotion) ? + min ((gen_number + 1), max_generation) : gen_number); +} + +bool gc_heap::is_region_demoted (uint8_t* obj) +{ + return heap_segment_demoted_p (region_of (obj)); +} + +inline +void gc_heap::set_region_gen_num (heap_segment* region, int gen_num) +{ + heap_segment_gen_num (region) = gen_num; +} + +inline +void gc_heap::set_region_plan_gen_num (heap_segment* region, int plan_gen_num) +{ + int gen_num = heap_segment_gen_num (region); + int supposed_plan_gen_num = get_plan_gen_num (gen_num); + dprintf (REGIONS_LOG, ("h%d setting plan gen on %Ix->%Ix(was gen%d) to %d(should be: %d) %s", + heap_number, (size_t)region, + heap_segment_mem (region), + gen_num, plan_gen_num, + supposed_plan_gen_num, + ((plan_gen_num < supposed_plan_gen_num) ? "DEMOTED" : "ND"))); + if (plan_gen_num < supposed_plan_gen_num) + { + if (!settings.demotion) + { + settings.demotion = TRUE; + } + get_gc_data_per_heap()->set_mechanism_bit (gc_demotion_bit); + heap_segment_demoted_p (region) = true; + } + else + { + heap_segment_demoted_p (region) = false; + } + + heap_segment_plan_gen_num (region) = plan_gen_num; +} +#endif //USE_REGIONS + +uint8_t* gc_heap::get_uoh_start_object (heap_segment* region, generation* gen) +{ +#ifdef USE_REGIONS + uint8_t* o = heap_segment_mem (region); +#else + uint8_t* o = generation_allocation_start (gen); + assert(((CObjectHeader*)o)->IsFree()); + size_t s = Align (size (o), get_alignment_constant (FALSE)); + assert (s == AlignQword (min_obj_size)); + //Skip the generation gap object + o += s; +#endif //USE_REGIONS + return o; +} + +uint8_t* gc_heap::get_soh_start_object (heap_segment* region, generation* gen) +{ +#ifdef USE_REGIONS + uint8_t* o = heap_segment_mem (region); +#else + uint8_t* o = generation_allocation_start (gen); +#endif //USE_REGIONS + return o; +} + +size_t gc_heap::get_soh_start_obj_len (uint8_t* start_obj) +{ +#ifdef USE_REGIONS + return 0; +#else + return Align (size (start_obj)); +#endif //USE_REGIONS +} + +void gc_heap::clear_gen1_cards() +{ +#if defined(_DEBUG) && !defined(USE_REGIONS) + for (int x = 0; x <= max_generation; x++) + { + assert (generation_allocation_start (generation_of (x))); + } +#endif //_DEBUG && !USE_REGIONS + + if (!settings.demotion && settings.promotion) + { + //clear card for generation 1. generation 0 is empty +#ifdef USE_REGIONS + heap_segment* region = generation_start_segment (generation_of (1)); + while (region) + { + clear_card_for_addresses (heap_segment_mem (region), heap_segment_allocated (region)); + region = heap_segment_next (region); + } +#else //USE_REGIONS + clear_card_for_addresses ( + generation_allocation_start (generation_of (1)), + generation_allocation_start (generation_of (0))); +#endif //USE_REGIONS + +#ifdef _DEBUG + uint8_t* start = get_soh_start_object (ephemeral_heap_segment, youngest_generation); + assert (heap_segment_allocated (ephemeral_heap_segment) == + (start + get_soh_start_obj_len (start))); +#endif //_DEBUG + } +} + +heap_segment* gc_heap::make_heap_segment (uint8_t* new_pages, size_t size, gc_heap* hp, int gen_num) +{ + gc_oh_num oh = gen_to_oh (gen_num); size_t initial_commit = SEGMENT_INITIAL_COMMIT; + int h_number = +#ifdef MULTIPLE_HEAPS + hp->heap_number; +#else + 0; +#endif //MULTIPLE_HEAPS if (!virtual_commit (new_pages, initial_commit, oh, h_number)) { return 0; } +#ifdef USE_REGIONS + dprintf (REGIONS_LOG, ("Making region %Ix->%Ix(%Idmb)", new_pages, (new_pages + size), (size / 1024 / 1024))); + heap_segment* new_segment = get_region_info (new_pages); + uint8_t* start = new_pages + sizeof (aligned_plug_and_gap); +#else heap_segment* new_segment = (heap_segment*)new_pages; - uint8_t* start = new_pages + segment_info_size; +#endif //USE_REGIONS heap_segment_mem (new_segment) = start; heap_segment_used (new_segment) = start; heap_segment_reserved (new_segment) = new_pages + size; heap_segment_committed (new_segment) = (use_large_pages_p ? heap_segment_reserved(new_segment) : (new_pages + initial_commit)); - init_heap_segment (new_segment); + + init_heap_segment (new_segment, hp +#ifdef USE_REGIONS + , new_pages, size, gen_num +#endif //USE_REGIONS + ); dprintf (2, ("Creating heap segment %Ix", (size_t)new_segment)); + return new_segment; } -void gc_heap::init_heap_segment (heap_segment* seg) +void gc_heap::init_heap_segment (heap_segment* seg, gc_heap* hp +#ifdef USE_REGIONS + , uint8_t* start, size_t size, int gen_num +#endif //USE_REGIONS + ) { seg->flags = 0; heap_segment_next (seg) = 0; heap_segment_plan_allocated (seg) = heap_segment_mem (seg); heap_segment_allocated (seg) = heap_segment_mem (seg); + heap_segment_saved_allocated (seg) = heap_segment_mem (seg); #ifdef BACKGROUND_GC heap_segment_background_allocated (seg) = 0; heap_segment_saved_bg_allocated (seg) = 0; #endif //BACKGROUND_GC + +#ifdef MULTIPLE_HEAPS + heap_segment_heap (seg) = hp; +#endif //MULTIPLE_HEAPS + +#ifdef USE_REGIONS + int gen_num_for_region = min (gen_num, max_generation); + heap_segment_gen_num (seg) = gen_num_for_region; + heap_segment_plan_gen_num (seg) = gen_num_for_region; +#endif //USE_REGIONS + +#ifdef USE_REGIONS + int num_basic_regions = (int)(size / REGION_SIZE); + dprintf (REGIONS_LOG, ("this region contains %d basic regions", num_basic_regions)); + if (num_basic_regions > 1) + { + for (int i = 1; i < num_basic_regions; i++) + { + uint8_t* basic_region_start = start + (i * REGION_SIZE); + heap_segment* basic_region = get_region_info (basic_region_start); + heap_segment_allocated (basic_region) = (uint8_t*)(ptrdiff_t)-i; + dprintf (REGIONS_LOG, ("Initing basic region %Ix->%Ix(%Idmb) alloc to %Ix", + basic_region_start, (basic_region_start + REGION_SIZE), + (size_t)(REGION_SIZE / 1024 / 1024), + heap_segment_allocated (basic_region))); + + heap_segment_gen_num (basic_region) = gen_num; + heap_segment_plan_gen_num (basic_region) = gen_num; + +#ifdef MULTIPLE_HEAPS + heap_segment_heap (basic_region) = hp; +#endif //MULTIPLE_HEAPS + } + } +#endif //USE_REGIONS } //Releases the segment to the OS. @@ -9984,7 +10843,7 @@ void gc_heap::decommit_heap_segment (heap_segment* seg) { uint8_t* page_start = align_on_page (heap_segment_mem (seg)); - dprintf (3, ("Decommitting heap segment %Ix", (size_t)seg)); + dprintf (3, ("Decommitting heap segment %Ix(%Ix)", (size_t)seg, heap_segment_mem (seg))); #ifdef BACKGROUND_GC page_start += OS_PAGE_SIZE; @@ -10010,12 +10869,27 @@ void gc_heap::clear_gen0_bricks() { gen0_bricks_cleared = TRUE; //initialize brick table for gen 0 - for (size_t b = brick_of (generation_allocation_start (generation_of (0))); - b < brick_of (align_on_brick - (heap_segment_allocated (ephemeral_heap_segment))); - b++) +#ifdef USE_REGIONS + heap_segment* gen0_region = generation_start_segment (generation_of (0)); + while (gen0_region) { - set_brick (b, -1); + uint8_t* clear_start = heap_segment_mem (gen0_region); +#else + heap_segment* gen0_region = ephemeral_heap_segment; + uint8_t* clear_start = generation_allocation_start (generation_of (0)); + { +#endif //USE_REGIONS + for (size_t b = brick_of (clear_start); + b < brick_of (align_on_brick + (heap_segment_allocated (gen0_region))); + b++) + { + set_brick (b, -1); + } + +#ifdef USE_REGIONS + gen0_region = heap_segment_next (gen0_region); +#endif //USE_REGIONS } } } @@ -10048,6 +10922,7 @@ void gc_heap::rearrange_uoh_segments() freeable_uoh_segment = 0; } +#ifndef USE_REGIONS void gc_heap::rearrange_heap_segments(BOOL compacting) { heap_segment* seg = @@ -10112,7 +10987,7 @@ void gc_heap::rearrange_heap_segments(BOOL compacting) seg = next_seg; } } - +#endif //!USE_REGIONS #ifdef WRITE_WATCH uint8_t* g_addresses [array_size+2]; // to get around the bug in GetWriteWatch @@ -10316,7 +11191,7 @@ void gc_heap::reset_write_watch (BOOL concurrent_p) size_t reset_size = 0; - for (int i = max_generation; i < total_generation_count; i++) + for (int i = get_start_generation_index(); i < total_generation_count; i++) { heap_segment* seg = heap_segment_rw (generation_start_segment (generation_of (i))); @@ -10384,18 +11259,28 @@ void gc_heap::fire_alloc_wait_event_end (alloc_wait_reason awr) fire_alloc_wait_event (awr, FALSE); } #endif //BACKGROUND_GC + void gc_heap::make_generation (int gen_num, heap_segment* seg, uint8_t* start) { generation* gen = generation_of (gen_num); gen->gen_num = gen_num; +#ifndef USE_REGIONS gen->allocation_start = start; +#endif //USE_REGIONS gen->allocation_context.alloc_ptr = 0; gen->allocation_context.alloc_limit = 0; gen->allocation_context.alloc_bytes = 0; gen->allocation_context.alloc_bytes_uoh = 0; gen->allocation_context_start_region = 0; gen->start_segment = seg; + +#ifdef USE_REGIONS + dprintf (REGIONS_LOG, ("g%d start seg is %Ix-%Ix", gen_num, (size_t)seg, heap_segment_mem (seg))); + gen->tail_region = seg; + gen->plan_start_segment = 0; + gen->tail_ro_region = 0; +#endif //USE_REGIONS gen->allocation_segment = seg; gen->plan_allocation_start = 0; gen->free_list_space = 0; @@ -10424,6 +11309,7 @@ void gc_heap::make_generation (int gen_num, heap_segment* seg, uint8_t* start) void gc_heap::adjust_ephemeral_limits () { +#ifndef USE_REGIONS ephemeral_low = generation_allocation_start (generation_of (max_generation - 1)); ephemeral_high = heap_segment_reserved (ephemeral_heap_segment); @@ -10434,6 +11320,7 @@ void gc_heap::adjust_ephemeral_limits () // This updates the write barrier helpers with the new info. stomp_write_barrier_ephemeral(ephemeral_low, ephemeral_high); #endif // MULTIPLE_HEAPS +#endif //USE_REGIONS } #if defined(TRACE_GC) || defined(GC_CONFIG_DRIVEN) @@ -10618,9 +11505,38 @@ HRESULT gc_heap::initialize_gc (size_t soh_segment_size, check_commit_cs.Initialize(); } - bool separated_poh_p = use_large_pages_p && heap_hard_limit_oh[soh] && (GCConfig::GetGCHeapHardLimitPOH() == 0) && (GCConfig::GetGCHeapHardLimitPOHPercent() == 0); - if (!reserve_initial_memory (soh_segment_size, loh_segment_size, poh_segment_size, number_of_heaps, use_large_pages_p, separated_poh_p, heap_no_to_numa_node)) +#ifdef USE_REGIONS + if (regions_range) + { + // REGIONS TODO: we should reserve enough space at the end of what we reserved that's + // big enough to accommodate if we were to materialize all the GC bookkeeping datastructures. + // We only need to commit what we use and just need to commit more instead of having to + // relocate the exising table and then calling copy_brick_card_table. + // Right now all the non mark array portions are commmitted since I'm calling mark_card_table + // on the whole range. This can be committed as needed. + size_t reserve_size = regions_range; + uint8_t* reserve_range = (uint8_t*)virtual_alloc (reserve_size, use_large_pages_p); + if (!reserve_range) + return E_OUTOFMEMORY; + + if (!global_region_allocator.init (reserve_range, (reserve_range + reserve_size), REGION_SIZE, + &g_gc_lowest_address, &g_gc_highest_address)) + return E_OUTOFMEMORY; + } + else + { + assert (!"cannot use regions without specifying the range!!!"); + return E_FAIL; + } +#else //USE_REGIONS + bool separated_poh_p = use_large_pages_p && + heap_hard_limit_oh[soh] && + (GCConfig::GetGCHeapHardLimitPOH() == 0) && + (GCConfig::GetGCHeapHardLimitPOHPercent() == 0); + if (!reserve_initial_memory (soh_segment_size, loh_segment_size, poh_segment_size, number_of_heaps, + use_large_pages_p, separated_poh_p, heap_no_to_numa_node)) return E_OUTOFMEMORY; +#endif //USE_REGIONS #ifdef CARD_BUNDLE //check if we need to turn on card_bundles. @@ -11142,9 +12058,15 @@ gc_heap::init_gc_heap (int h_number) #endif //SPINLOCK_HISTORY // initialize per heap members. +#ifndef USE_REGIONS ephemeral_low = (uint8_t*)1; ephemeral_high = MAX_PTR; +#endif //!USE_REGIONS + + gc_low = 0; + + gc_high = 0; ephemeral_heap_segment = 0; @@ -11232,25 +12154,14 @@ gc_heap::init_gc_heap (int h_number) gc_done_event_lock = -1; gc_done_event_set = false; - heap_segment* seg = make_initial_segment (soh_gen0, h_number); - if (!seg) + if (!init_dynamic_data()) + { return 0; + } - FIRE_EVENT(GCCreateSegment_V1, heap_segment_mem(seg), - (size_t)(heap_segment_reserved (seg) - heap_segment_mem(seg)), - gc_etw_segment_small_object_heap); - - seg_mapping_table_add_segment (seg, __this); - -#ifdef MULTIPLE_HEAPS - heap_segment_heap (seg) = this; -#endif //MULTIPLE_HEAPS - - /* todo: Need a global lock for this */ uint32_t* ct = &g_gc_card_table [card_word (card_of (g_gc_lowest_address))]; own_card_table (ct); card_table = translate_card_table (ct); - /* End of global lock */ brick_table = card_table_brick_table (ct); highest_address = card_table_highest_address (ct); @@ -11269,6 +12180,49 @@ gc_heap::init_gc_heap (int h_number) mark_array = NULL; #endif //BACKGROUND_GC +#ifdef USE_REGIONS +#ifdef STRESS_REGIONS + pinning_handles_for_alloc = new (nothrow) (OBJECTHANDLE[PINNING_HANDLE_INITIAL_LENGTH]); + for (int i = 0; i < PINNING_HANDLE_INITIAL_LENGTH; i++) + { + pinning_handles_for_alloc[i] = g_gcGlobalHandleStore->CreateHandleOfType (0, HNDTYPE_PINNED); + } + ph_index_per_heap = 0; + pinning_seg_interval = 2; + num_gen0_segs = 0; +#endif //STRESS_REGIONS + free_regions = 0; + num_free_regions = 0; + num_free_regions_added = 0; + num_free_regions_removed = 0; + free_large_regions = 0; + num_free_large_regions = 0; + committed_in_free = 0; + end_gen0_region_space = 0; + gen0_pinned_free_space = 0; + gen0_large_chunk_found = false; + if (!initial_make_soh_regions (__this) || + !initial_make_uoh_regions (loh_generation, __this) || + !initial_make_uoh_regions (poh_generation, __this)) + { + return 0; + } + +#else //USE_REGIONS + + heap_segment* seg = make_initial_segment (soh_gen0, h_number, __this); + if (!seg) + return 0; + + FIRE_EVENT(GCCreateSegment_V1, heap_segment_mem(seg), + (size_t)(heap_segment_reserved (seg) - heap_segment_mem(seg)), + gc_etw_segment_small_object_heap); + + seg_mapping_table_add_segment (seg, __this); +#ifdef MULTIPLE_HEAPS + assert (heap_segment_heap (seg) == __this); +#endif //MULTIPLE_HEAPS + uint8_t* start = heap_segment_mem (seg); for (int i = max_generation; i >= 0; i--) @@ -11280,11 +12234,10 @@ gc_heap::init_gc_heap (int h_number) heap_segment_allocated (seg) = start; alloc_allocated = start; heap_segment_used (seg) = start - plug_skew; - ephemeral_heap_segment = seg; - // Create segments for the large and pinned generations - heap_segment* lseg = make_initial_segment(loh_generation, h_number); + // Create segments for the large and pinned generations + heap_segment* lseg = make_initial_segment(loh_generation, h_number, __this); if (!lseg) return 0; @@ -11294,7 +12247,7 @@ gc_heap::init_gc_heap (int h_number) (size_t)(heap_segment_reserved (lseg) - heap_segment_mem(lseg)), gc_etw_segment_large_object_heap); - heap_segment* pseg = make_initial_segment(poh_generation, h_number); + heap_segment* pseg = make_initial_segment (poh_generation, h_number, __this); if (!pseg) return 0; @@ -11316,10 +12269,6 @@ gc_heap::init_gc_heap (int h_number) heap_segment_allocated (pseg) = heap_segment_mem (pseg) + Align (min_obj_size, get_alignment_constant (FALSE)); heap_segment_used (pseg) = heap_segment_allocated (pseg) - plug_skew; - generation_of (max_generation)->free_list_allocator = allocator(NUM_GEN2_ALIST, BASE_GEN2_ALIST_BITS, gen2_alloc_list, max_generation); - generation_of (loh_generation)->free_list_allocator = allocator(NUM_LOH_ALIST, BASE_LOH_ALIST_BITS, loh_alloc_list); - generation_of (poh_generation)->free_list_allocator = allocator(NUM_POH_ALIST, BASE_POH_ALIST_BITS, poh_alloc_list); - for (int gen_num = 0; gen_num < total_generation_count; gen_num++) { generation* gen = generation_of (gen_num); @@ -11327,9 +12276,12 @@ gc_heap::init_gc_heap (int h_number) } #ifdef MULTIPLE_HEAPS - heap_segment_heap (lseg) = this; - heap_segment_heap (pseg) = this; + assert (heap_segment_heap (lseg) == __this); + assert (heap_segment_heap (pseg) == __this); +#endif //MULTIPLE_HEAPS +#endif //USE_REGIONS +#ifdef MULTIPLE_HEAPS //initialize the alloc context heap generation_alloc_context (generation_of (soh_gen0))->set_alloc_heap(vm_heap); generation_alloc_context (generation_of (loh_generation))->set_alloc_heap(vm_heap); @@ -11337,10 +12289,9 @@ gc_heap::init_gc_heap (int h_number) #endif //MULTIPLE_HEAPS - if (!init_dynamic_data()) - { - return 0; - } + generation_of (max_generation)->free_list_allocator = allocator(NUM_GEN2_ALIST, BASE_GEN2_ALIST_BITS, gen2_alloc_list, max_generation); + generation_of (loh_generation)->free_list_allocator = allocator(NUM_LOH_ALIST, BASE_LOH_ALIST_BITS, loh_alloc_list); + generation_of (poh_generation)->free_list_allocator = allocator(NUM_POH_ALIST, BASE_POH_ALIST_BITS, poh_alloc_list); etw_allocation_running_amount[0] = 0; etw_allocation_running_amount[1] = 0; @@ -11377,16 +12328,19 @@ gc_heap::init_gc_heap (int h_number) make_background_mark_stack (b_arr); #endif //BACKGROUND_GC +#ifndef USE_REGIONS ephemeral_low = generation_allocation_start(generation_of(max_generation - 1)); ephemeral_high = heap_segment_reserved(ephemeral_heap_segment); +#endif //!USE_REGIONS + if (heap_number == 0) { stomp_write_barrier_initialize( -#ifdef MULTIPLE_HEAPS +#if defined(MULTIPLE_HEAPS) || defined(USE_REGIONS) reinterpret_cast(1), reinterpret_cast(~0) #else ephemeral_low, ephemeral_high -#endif //!MULTIPLE_HEAPS +#endif //!MULTIPLE_HEAPS || USE_REGIONS ); } @@ -11520,7 +12474,7 @@ gc_heap::self_destroy() } // destroy every segment - for (int i = max_generation; i < total_generation_count; i++) + for (int i = get_start_generation_index(); i < total_generation_count; i++) { heap_segment* seg = heap_segment_rw (generation_start_segment (generation_of (i))); PREFIX_ASSUME(seg != NULL); @@ -12611,11 +13565,20 @@ void gc_heap::adjust_limit_clr (uint8_t* start, size_t limit_size, size_t size, { if (gen_number == 0) { - size_t pad_size = Align (min_obj_size, align_const); - dprintf (3, ("contigous ac: making min obj gap %Ix->%Ix(%Id)", - acontext->alloc_ptr, (acontext->alloc_ptr + pad_size), pad_size)); - make_unused_array (acontext->alloc_ptr, pad_size); - acontext->alloc_ptr += pad_size; +#ifdef USE_REGIONS + if (acontext->alloc_ptr == 0) + { + acontext->alloc_ptr = start; + } + else +#endif //USE_REGIONS + { + size_t pad_size = Align (min_obj_size, align_const); + dprintf (3, ("contigous ac: making min obj gap %Ix->%Ix(%Id)", + acontext->alloc_ptr, (acontext->alloc_ptr + pad_size), pad_size)); + make_unused_array (acontext->alloc_ptr, pad_size); + acontext->alloc_ptr += pad_size; + } } } acontext->alloc_limit = (start + limit_size - aligned_min_obj_size); @@ -12775,7 +13738,8 @@ size_t gc_heap::limit_from_size (size_t size, uint32_t flags, size_t physical_li new_physical_limit, gen_number); assert (new_limit >= (size + Align (min_obj_size, align_const))); - dprintf (100, ("requested to allocate %Id bytes, actual size is %Id", size, new_limit)); + dprintf (3, ("h%d requested to allocate %Id bytes, actual size is %Id, phy limit: %Id", + heap_number, size, new_limit, physical_limit)); return new_limit; } @@ -13072,14 +14036,18 @@ size_t gc_heap::get_full_compact_gc_count() // DTREVIEW - we should check this in dt_low_ephemeral_space_p // as well. inline -BOOL gc_heap::short_on_end_of_seg (heap_segment* seg, int align_const) +BOOL gc_heap::short_on_end_of_seg (heap_segment* seg) { - uint8_t* allocated = heap_segment_allocated(seg); + uint8_t* allocated = heap_segment_allocated (seg); +#ifdef USE_REGIONS + BOOL sufficient_p = sufficient_space_regions (end_gen0_region_space, end_space_after_gc()); +#else BOOL sufficient_p = sufficient_space_end_seg (allocated, heap_segment_reserved (seg), end_space_after_gc(), tuning_deciding_short_on_seg); +#endif //USE_REGIONS if (!sufficient_p) { if (sufficient_gen0_space_p) @@ -13631,14 +14599,76 @@ BOOL gc_heap::soh_try_fit (int gen_number, { if (short_seg_end_p) { - *short_seg_end_p = short_on_end_of_seg (ephemeral_heap_segment, align_const); + *short_seg_end_p = short_on_end_of_seg (ephemeral_heap_segment); } // If the caller doesn't care, we always try to fit at the end of seg; // otherwise we would only try if we are actually not short at end of seg. if (!short_seg_end_p || !(*short_seg_end_p)) { - can_allocate = a_fit_segment_end_p (gen_number, ephemeral_heap_segment, size, - acontext, flags, align_const, commit_failed_p); +#ifdef USE_REGIONS + while (ephemeral_heap_segment) +#endif //USE_REGIONS + { + can_allocate = a_fit_segment_end_p (gen_number, ephemeral_heap_segment, size, + acontext, flags, align_const, commit_failed_p); +#ifdef USE_REGIONS + if (can_allocate) + { +#ifdef STRESS_REGIONS + uint8_t* res = acontext->alloc_ptr; + heap_segment* seg = ephemeral_heap_segment; + size_t region_size = get_region_size (seg); + uint8_t* region_start = heap_segment_mem (seg) + (8 * 1024); + uint8_t* region_mid = get_region_start (seg) + (region_size / 2); + if (((num_gen0_segs % pinning_seg_interval) == 0) && + ((res == heap_segment_mem (seg)) || + ((res >= (region_mid - size)) && (res < (region_mid + size))))) + { + HndAssignHandle(pinning_handles_for_alloc[ph_index_per_heap], + ObjectToOBJECTREF ((Object*)(acontext->alloc_ptr))); + dprintf (REGIONS_LOG, ("h%d pinning object at %Ix on eph seg %Ix (ph#%d)", + heap_number, res, heap_segment_mem (seg), ph_index_per_heap)); + + ph_index_per_heap++; + if (ph_index_per_heap == PINNING_HANDLE_INITIAL_LENGTH) + { + ph_index_per_heap = 0; + } + } +#endif //STRESS_REGIONS + break; + } + + dprintf (REGIONS_LOG, ("h%d fixing region %Ix end to alloc ptr: %Ix, alloc_allocated %Ix", + heap_number, heap_segment_mem (ephemeral_heap_segment), acontext->alloc_ptr, + alloc_allocated)); + + fix_allocation_context (acontext, TRUE, FALSE); + fix_youngest_allocation_area(); + + heap_segment* next_seg = heap_segment_next (ephemeral_heap_segment); + + if (next_seg) + { + dprintf (REGIONS_LOG, ("eph seg %Ix -> next %Ix", + heap_segment_mem (ephemeral_heap_segment), heap_segment_mem (next_seg))); + ephemeral_heap_segment = next_seg; + } + else + { + assert (ephemeral_heap_segment == generation_tail_region (generation_of (gen_number))); + ephemeral_heap_segment = get_new_region (gen_number); + } + + assert (ephemeral_heap_segment != 0); + +#if defined(STRESS_REGIONS) && defined(STRESS_HEAP) + num_gen0_segs++; +#endif //STRESS_REGIONS && STRESS_HEAP + alloc_allocated = heap_segment_allocated (ephemeral_heap_segment); + dprintf (REGIONS_LOG, ("h%d alloc_allocated is now %Ix", heap_number, alloc_allocated)); +#endif //USE_REGIONS + } } } @@ -13980,7 +15010,12 @@ int gc_heap::bgc_poh_allocate_spin() size_t gc_heap::get_uoh_seg_size (size_t size) { - size_t default_seg_size = min_uoh_segment_size; + size_t default_seg_size = +#ifdef USE_REGIONS + global_region_allocator.get_large_region_alignment(); +#else + min_uoh_segment_size; +#endif //USE_REGIONS size_t align_size = default_seg_size; int align_const = get_alignment_constant (FALSE); size_t large_seg_size = align_on_page ( @@ -15339,10 +16374,16 @@ BOOL gc_heap::should_set_bgc_mark_bit (uint8_t* o) // to check for that. if ((o >= current_sweep_pos) && (o < heap_segment_background_allocated (current_sweep_seg))) { +#ifndef USE_REGIONS if (current_sweep_seg == saved_sweep_ephemeral_seg) + { return (o < saved_sweep_ephemeral_start); + } else +#endif //!USE_REGIONS + { return TRUE; + } } else return FALSE; @@ -15542,6 +16583,13 @@ uint8_t* gc_heap::allocate_in_older_generation (generation* gen, size_t size, free_list = free_list_slot (free_list); } } +#ifdef USE_REGIONS + // We don't want to always go back to the first region since there might be many. + heap_segment* seg = generation_allocation_segment (gen); + dprintf (3, ("end of seg, starting from alloc seg %Ix", heap_segment_mem (seg))); + assert (seg != ephemeral_heap_segment); + while (true) +#else //go back to the beginning of the segment list heap_segment* seg = heap_segment_rw (generation_start_segment (gen)); if (seg != generation_allocation_segment (gen)) @@ -15550,18 +16598,18 @@ uint8_t* gc_heap::allocate_in_older_generation (generation* gen, size_t size, generation_allocation_segment (gen) = seg; } while (seg != ephemeral_heap_segment) +#endif //USE_REGIONS { if (size_fit_p(size REQD_ALIGN_AND_OFFSET_ARG, heap_segment_plan_allocated (seg), heap_segment_committed (seg), old_loc, USE_PADDING_TAIL | pad_in_front)) { - dprintf (3, ("using what's left in committed")); adjust_limit (heap_segment_plan_allocated (seg), (heap_segment_committed (seg) - heap_segment_plan_allocated (seg)), gen); generation_allocate_end_seg_p (gen) = TRUE; - // dformat (t, 3, "Expanding segment allocation"); heap_segment_plan_allocated (seg) = heap_segment_committed (seg); + dprintf (3, ("seg %Ix is used for end of seg alloc", heap_segment_mem (seg))); goto finished; } else @@ -15570,13 +16618,14 @@ uint8_t* gc_heap::allocate_in_older_generation (generation* gen, size_t size, heap_segment_reserved (seg), old_loc, USE_PADDING_TAIL | pad_in_front) && grow_heap_segment (seg, heap_segment_plan_allocated (seg), old_loc, size, pad_in_front REQD_ALIGN_AND_OFFSET_ARG)) { - dprintf (3, ("using what's left in reserved")); adjust_limit (heap_segment_plan_allocated (seg), (heap_segment_committed (seg) - heap_segment_plan_allocated (seg)), gen); generation_allocate_end_seg_p (gen) = TRUE; heap_segment_plan_allocated (seg) = heap_segment_committed (seg); + dprintf (3, ("seg %Ix is used for end of seg alloc after grow, %Ix", + heap_segment_mem (seg), heap_segment_committed (seg))); goto finished; } @@ -15584,12 +16633,17 @@ uint8_t* gc_heap::allocate_in_older_generation (generation* gen, size_t size, { leave_allocation_segment (gen); heap_segment* next_seg = heap_segment_next_rw (seg); + +#ifdef USE_REGIONS + assert (next_seg != ephemeral_heap_segment); +#endif //USE_REGIONS + if (next_seg) { - dprintf (3, ("getting next segment")); generation_allocation_segment (gen) = next_seg; generation_allocation_pointer (gen) = heap_segment_mem (next_seg); generation_allocation_limit (gen) = generation_allocation_pointer (gen); + dprintf (3, ("alloc region advanced to %Ix", heap_segment_mem (next_seg))); } else { @@ -15604,7 +16658,8 @@ uint8_t* gc_heap::allocate_in_older_generation (generation* gen, size_t size, size = 0; goto finished; } - finished: + +finished: if (0 == size) { return 0; @@ -15687,6 +16742,7 @@ uint8_t* gc_heap::allocate_in_older_generation (generation* gen, size_t size, } } +#ifndef USE_REGIONS void gc_heap::repair_allocation_in_expanded_heap (generation* consing_gen) { //make sure that every generation has a planned allocation start @@ -15962,6 +17018,7 @@ generation* gc_heap::ensure_ephemeral_heap_segment (generation* consing_gen) else return consing_gen; } +#endif //!USE_REGIONS uint8_t* gc_heap::allocate_in_condemned_generations (generation* gen, size_t size, @@ -15988,7 +17045,8 @@ uint8_t* gc_heap::allocate_in_condemned_generations (generation* gen, to_gen_number = from_gen_number + (settings.promotion ? 1 : 0); } - dprintf (3, ("aic gen%d: s: %Id", gen->gen_num, size)); + dprintf (3, ("aic gen%d: s: %Id, ac: %Ix-%Ix", gen->gen_num, size, + generation_allocation_pointer (gen), generation_allocation_limit (gen))); #ifdef SHORT_PLUGS int pad_in_front = ((old_loc != 0) && (to_gen_number != max_generation)) ? USE_PADDING_FRONT : 0; @@ -16018,6 +17076,15 @@ uint8_t* gc_heap::allocate_in_condemned_generations (generation* gen, uint8_t* plug = pinned_plug (pinned_plug_entry); set_new_pin_info (pinned_plug_entry, generation_allocation_pointer (gen)); +#ifdef USE_REGIONS + if (to_gen_number == 0) + { + update_planned_gen0_free_space (pinned_len (pinned_plug_entry), plug); + dprintf (REGIONS_LOG, ("aic: not promotion, gen0 added free space %Id at %Ix", + pinned_len (pinned_plug_entry), plug)); + } +#endif //USE_REGIONS + #ifdef FREE_USAGE_STATS generation_allocated_in_pinned_free (gen) += generation_allocated_since_last_pin (gen); dprintf (3, ("allocated %Id so far within pin %Ix, total->%Id", @@ -16044,8 +17111,17 @@ uint8_t* gc_heap::allocate_in_condemned_generations (generation* gen, int frgn = object_gennum (plug); if ((frgn != (int)max_generation) && settings.promotion) { - generation_pinned_allocation_sweep_size ((generation_of (frgn +1))) += len; + generation_pinned_allocation_sweep_size (generation_of (frgn + 1)) += len; + +#ifdef USE_REGIONS + // With regions it's a bit more complicated since we only set the plan_gen_num + // of a region after we've planned it. This means if the pinning plug is in the + // the same seg we are planning, we haven't set its plan_gen_num yet. So we + // need to check for that first. + int togn = (in_range_for_segment (plug, seg) ? to_gen_number : object_gennum_plan (plug)); +#else int togn = object_gennum_plan (plug); +#endif //USE_REGIONS if (frgn < togn) { generation_pinned_allocation_compact_size (generation_of (togn)) += len; @@ -16069,9 +17145,9 @@ uint8_t* gc_heap::allocate_in_condemned_generations (generation* gen, } else { -#ifndef RESPECT_LARGE_ALIGNMENT +#if !defined(RESPECT_LARGE_ALIGNMENT) && !defined(USE_REGIONS) assert (gen != youngest_generation); -#endif //RESPECT_LARGE_ALIGNMENT +#endif //!RESPECT_LARGE_ALIGNMENT && !USE_REGIONS if (size_fit_p (size REQD_ALIGN_AND_OFFSET_ARG, generation_allocation_pointer (gen), heap_segment_reserved (seg), old_loc, USE_PADDING_TAIL | pad_in_front) && @@ -16104,6 +17180,18 @@ uint8_t* gc_heap::allocate_in_condemned_generations (generation* gen, heap_segment_committed (seg)); heap_segment_plan_allocated (seg) = generation_allocation_pointer (gen); +#ifdef USE_REGIONS + set_region_plan_gen_num (seg, to_gen_number); + if ((next_seg == 0) && (heap_segment_gen_num (seg) > 0)) + { + // We need to switch to a younger gen's segments so the allocate seg will be in + // sync with the pins. + next_seg = generation_start_segment (generation_of (heap_segment_gen_num (seg) - 1)); + dprintf (REGIONS_LOG, ("h%d aic: switching to next gen%d start %Ix", + heap_number, heap_segment_gen_num (next_seg), (size_t)next_seg)); + } +#endif //USE_REGIONS + if (next_seg) { generation_allocation_segment (gen) = next_seg; @@ -16218,9 +17306,10 @@ uint8_t* gc_heap::allocate_in_condemned_generations (generation* gen, generation_allocated_since_last_pin (gen) += size; #endif //FREE_USAGE_STATS - dprintf (3, ("aic: ptr: %Ix, limit: %Ix, sr: %Ix", + dprintf (3, ("aic: ptr: %Ix, limit: %Ix, sr: %Ix, res: %Ix, pad: %Id", generation_allocation_pointer (gen), generation_allocation_limit (gen), - generation_allocation_context_start_region (gen))); + generation_allocation_context_start_region (gen), + result, (size_t)pad)); assert (result + pad); return result + pad; @@ -16801,6 +17890,7 @@ int gc_heap::generation_to_condemn (int n_initial, dprintf (BGC_TUNING_LOG, ("BTL[GTC]: trigger based on gen%d b: %Id", (i), get_new_allocation (i))); + break; } } } @@ -17476,6 +18566,7 @@ void gc_heap::gc1() #endif { +#ifndef USE_REGIONS if (n == max_generation) { gc_low = lowest_address; @@ -17486,6 +18577,8 @@ void gc_heap::gc1() gc_low = generation_allocation_start (generation_of (n)); gc_high = heap_segment_reserved (ephemeral_heap_segment); } +#endif //USE_REGIONS + #ifdef BACKGROUND_GC if (settings.concurrent) { @@ -17619,10 +18712,10 @@ void gc_heap::gc1() adjust_ephemeral_limits(); } -#ifdef BACKGROUND_GC +#if defined(BACKGROUND_GC) && !defined(USE_REGIONS) assert (ephemeral_low == generation_allocation_start (generation_of ( max_generation -1))); assert (ephemeral_high == heap_segment_reserved (ephemeral_heap_segment)); -#endif //BACKGROUND_GC +#endif //BACKGROUND_GC && !USE_REGIONS if (fgn_maxgen_percent) { @@ -17665,7 +18758,7 @@ void gc_heap::gc1() } } - descr_generations (FALSE); + descr_generations ("END"); verify_soh_segment_list(); @@ -18417,6 +19510,10 @@ void gc_heap::update_collection_counts () BOOL gc_heap::expand_soh_with_minimal_gc() { +#ifdef USE_REGIONS + assert (!"NoGC region mode is not implemented yet for regions"); + return FALSE; +#else if ((size_t)(heap_segment_reserved (ephemeral_heap_segment) - heap_segment_allocated (ephemeral_heap_segment)) >= soh_allocation_no_gc) return TRUE; @@ -18482,6 +19579,7 @@ BOOL gc_heap::expand_soh_with_minimal_gc() { return FALSE; } +#endif //USE_REGIONS } // Only to be done on the thread that calls restart in a join for server GC @@ -18654,6 +19752,12 @@ void gc_heap::init_records() gc_data_per_heap.gen_data[i].free_obj_space_before = generation_free_obj_space (gen); } +#ifdef USE_REGIONS + end_gen0_region_space = 0; + gen0_pinned_free_space = 0; + gen0_large_chunk_found = false; +#endif //USE_REGIONS + sufficient_gen0_space_p = FALSE; #ifdef MULTIPLE_HEAPS @@ -18909,7 +20013,7 @@ void gc_heap::garbage_collect (int n) #endif //MULTIPLE_HEAPS } - descr_generations (TRUE); + descr_generations ("BEGIN"); #ifdef VERIFY_HEAP if ((GCConfig::GetHeapVerifyLevel() & GCConfig::HEAPVERIFY_GC) && @@ -18919,7 +20023,6 @@ void gc_heap::garbage_collect (int n) } if (GCConfig::GetHeapVerifyLevel() & GCConfig::HEAPVERIFY_BARRIERCHECK) checkGCWriteBarrier(); - #endif // VERIFY_HEAP #ifdef BACKGROUND_GC @@ -19272,12 +20375,45 @@ BOOL gc_heap::gc_mark1 (uint8_t* o) BOOL marked = !marked (o); set_marked (o); dprintf (3, ("*%Ix*, newly marked: %d", (size_t)o, marked)); +#if defined(USE_REGIONS) && defined(_DEBUG) + heap_segment* seg = seg_mapping_table_segment_of (o); + if (o > heap_segment_allocated (seg)) + { + dprintf (REGIONS_LOG, ("%Ix is in seg %Ix(%Ix) but beyond alloc %Ix!!", + o, (size_t)seg, heap_segment_mem (seg), heap_segment_allocated (seg))); + GCToOSInterface::DebugBreak(); + } +#endif //USE_REGIONS && _DEBUG return marked; } inline -BOOL gc_heap::gc_mark (uint8_t* o, uint8_t* low, uint8_t* high) +BOOL gc_heap::gc_mark (uint8_t* o, uint8_t* low, uint8_t* high, int condemned_gen) { +#ifdef USE_REGIONS + assert (low == 0); + assert (high == 0); + if (o) + { + BOOL already_marked = marked (o); + if (already_marked) + return FALSE; + if (condemned_gen == max_generation) + { + set_marked (o); + return TRUE; + } + int gen = get_region_gen_num (o); + if (gen <= condemned_gen) + { + set_marked (o); + return TRUE; + } + } + return FALSE; +#else //USE_REGIONS + assert (condemned_gen == -1); + BOOL marked = FALSE; if ((o >= low) && (o < high)) marked = gc_mark1 (o); @@ -19304,6 +20440,7 @@ BOOL gc_heap::gc_mark (uint8_t* o, uint8_t* low, uint8_t* high) #endif //SNOOP_STATS #endif //MULTIPLE_HEAPS return marked; +#endif //USE_REGIONS } #ifdef BACKGROUND_GC @@ -19668,6 +20805,12 @@ void gc_heap::mark_object_simple1 (uint8_t* oo, uint8_t* start THREAD_NUMBER_DCL // If we are doing a full GC we don't use mark list anyway so use m_boundary_fullgc that doesn't // update mark list. BOOL full_p = (settings.condemned_generation == max_generation); + int condemned_gen = +#ifdef USE_REGIONS + settings.condemned_generation; +#else + -1; +#endif //USE_REGIONS assert ((start >= oo) && (start < oo+size(oo))); @@ -19711,7 +20854,7 @@ void gc_heap::mark_object_simple1 (uint8_t* oo, uint8_t* start THREAD_NUMBER_DCL { uint8_t* o = *ppslot; Prefetch(o); - if (gc_mark (o, gc_low, gc_high)) + if (gc_mark (o, gc_low, gc_high, condemned_gen)) { if (full_p) { @@ -19755,7 +20898,7 @@ void gc_heap::mark_object_simple1 (uint8_t* oo, uint8_t* start THREAD_NUMBER_DCL if (is_collectible (oo)) { uint8_t* class_obj = get_class_object (oo); - if (gc_mark (class_obj, gc_low, gc_high)) + if (gc_mark (class_obj, gc_low, gc_high, condemned_gen)) { if (full_p) { @@ -19811,7 +20954,7 @@ void gc_heap::mark_object_simple1 (uint8_t* oo, uint8_t* start THREAD_NUMBER_DCL { uint8_t* o = *ppslot; Prefetch(o); - if (gc_mark (o, gc_low, gc_high)) + if (gc_mark (o, gc_low, gc_high,condemned_gen)) { if (full_p) { @@ -20234,6 +21377,13 @@ gc_heap::ha_mark_object_simple (uint8_t** po THREAD_NUMBER_DCL) void gc_heap::mark_object_simple (uint8_t** po THREAD_NUMBER_DCL) { + int condemned_gen = +#ifdef USE_REGIONS + settings.condemned_generation; +#else + -1; +#endif //USE_REGIONS + uint8_t* o = *po; #ifdef MULTIPLE_HEAPS #else //MULTIPLE_HEAPS @@ -20253,7 +21403,7 @@ gc_heap::mark_object_simple (uint8_t** po THREAD_NUMBER_DCL) go_through_object_cl (method_table(o), o, s, poo, { uint8_t* oo = *poo; - if (gc_mark (oo, gc_low, gc_high)) + if (gc_mark (oo, gc_low, gc_high, condemned_gen)) { m_boundary (oo); size_t obj_size = size (oo); @@ -20272,6 +21422,12 @@ gc_heap::mark_object_simple (uint8_t** po THREAD_NUMBER_DCL) inline void gc_heap::mark_object (uint8_t* o THREAD_NUMBER_DCL) { +#ifdef USE_REGIONS + if (is_in_condemned_gc (o)) + { + mark_object_simple (&o THREAD_NUMBER_ARG); + } +#else //USE_REGIONS if ((o >= gc_low) && (o < gc_high)) mark_object_simple (&o THREAD_NUMBER_ARG); #ifdef MULTIPLE_HEAPS @@ -20283,6 +21439,7 @@ void gc_heap::mark_object (uint8_t* o THREAD_NUMBER_DCL) mark_object_simple (&o THREAD_NUMBER_ARG); } #endif //MULTIPLE_HEAPS +#endif //USE_REGIONS } #ifdef BACKGROUND_GC @@ -20687,12 +21844,14 @@ gc_heap::scan_background_roots (promote_func* fn, int hn, ScanContext *pSC) uint8_t* gc_heap::background_seg_end (heap_segment* seg, BOOL concurrent_p) { +#ifndef USE_REGIONS if (concurrent_p && (seg == saved_overflow_ephemeral_seg)) { // for now we stop at where gen1 started when we started processing return background_min_soh_overflow_address; } else +#endif //!USE_REGIONS { return heap_segment_allocated (seg); } @@ -20707,6 +21866,9 @@ uint8_t* gc_heap::background_first_overflow (uint8_t* min_add, if (small_object_p) { +#ifdef USE_REGIONS + return find_first_object (min_add, heap_segment_mem (seg)); +#else if (in_range_for_segment (min_add, seg)) { // min_add was the beginning of gen1 when we did the concurrent @@ -20732,14 +21894,14 @@ uint8_t* gc_heap::background_first_overflow (uint8_t* min_add, } } } +#endif //USE_REGIONS } o = max (heap_segment_mem (seg), min_add); return o; } -void gc_heap::background_process_mark_overflow_internal (int condemned_gen_number, - uint8_t* min_add, uint8_t* max_add, +void gc_heap::background_process_mark_overflow_internal (uint8_t* min_add, uint8_t* max_add, BOOL concurrent_p) { if (concurrent_p) @@ -20753,6 +21915,12 @@ void gc_heap::background_process_mark_overflow_internal (int condemned_gen_numbe int thread = heap_number; #endif //MULTIPLE_HEAPS + int start_gen_idx = get_start_generation_index(); +#ifdef USE_REGIONS + if (concurrent_p) + start_gen_idx = max_generation; +#endif //USE_REGIONS + exclusive_sync* loh_alloc_lock = 0; dprintf (2,("Processing Mark overflow [%Ix %Ix]", (size_t)min_add, (size_t)max_add)); @@ -20773,18 +21941,29 @@ void gc_heap::background_process_mark_overflow_internal (int condemned_gen_numbe BOOL small_object_segments = TRUE; loh_alloc_lock = hp->bgc_alloc_lock; - for (int i = condemned_gen_number; i < total_generation_count; i++) + for (int i = start_gen_idx; i < total_generation_count; i++) { int align_const = get_alignment_constant (small_object_segments); generation* gen = hp->generation_of (i); heap_segment* seg = heap_segment_in_range (generation_start_segment (gen)); PREFIX_ASSUME(seg != NULL); + uint8_t* current_min_add = min_add; + uint8_t* current_max_add = max_add; + while (seg) { - uint8_t* o = hp->background_first_overflow (min_add, seg, concurrent_p, small_object_segments); - - while ((o < hp->background_seg_end (seg, concurrent_p)) && (o <= max_add)) +#ifdef USE_REGIONS + if (heap_segment_overflow_p (seg)) + { + assert (!concurrent_p); + current_min_add = min (heap_segment_mem (seg), min_add); + current_max_add = min (heap_segment_allocated (seg), max_add); + } +#endif //USE_REGIONS + uint8_t* o = hp->background_first_overflow (current_min_add, seg, concurrent_p, small_object_segments); + + while ((o < hp->background_seg_end (seg, concurrent_p)) && (o <= current_max_add)) { dprintf (3, ("considering %Ix", (size_t)o)); @@ -20833,11 +22012,12 @@ void gc_heap::background_process_mark_overflow_internal (int condemned_gen_numbe dprintf (2, ("went through overflow objects in segment %Ix (%d) (so far %Id marked)", heap_segment_mem (seg), (small_object_segments ? 0 : 1), total_marked_objects)); +#ifndef USE_REGIONS if (concurrent_p && (seg == hp->saved_overflow_ephemeral_seg)) { break; } - +#endif //USE_REGIONS seg = heap_segment_next_in_range (seg); } @@ -20870,19 +22050,40 @@ BOOL gc_heap::background_process_mark_overflow (BOOL concurrent_p) if ((background_max_overflow_address != 0) && (background_min_overflow_address != MAX_PTR)) { +#ifdef USE_REGIONS + // We don't want to step into the ephemeral regions so remember these regions and + // be sure to process them later. An FGC cannot happen while we are going through + // the region lists. + for (int i = 0; i < max_generation; i++) + { + heap_segment* region = generation_start_segment (generation_of (i)); + while (region) + { + if ((heap_segment_mem (region) <= background_max_overflow_address) && + (heap_segment_allocated (region) >= background_min_overflow_address)) + { + region->flags |= heap_segment_flag_overflow; + } + region = heap_segment_next (region); + } + } +#else //USE_REGIONS // We have overflow to process but we know we can't process the ephemeral generations // now (we actually could process till the current gen1 start but since we are going to // make overflow per segment, for now I'll just stop at the saved gen1 start. saved_overflow_ephemeral_seg = ephemeral_heap_segment; background_max_soh_overflow_address = heap_segment_reserved (saved_overflow_ephemeral_seg); - background_min_soh_overflow_address = generation_allocation_start (generation_of (max_generation-1)); + background_min_soh_overflow_address = generation_allocation_start (generation_of (max_generation - 1)); +#endif //USE_REGIONS } } else { +#ifndef USE_REGIONS assert ((saved_overflow_ephemeral_seg == 0) || ((background_max_soh_overflow_address != 0) && (background_min_soh_overflow_address != MAX_PTR))); +#endif //!USE_REGIONS if (!processed_soh_overflow_p) { @@ -20893,11 +22094,12 @@ BOOL gc_heap::background_process_mark_overflow (BOOL concurrent_p) dprintf (2, ("final processing mark overflow - no more overflow since last time")); grow_mark_array_p = FALSE; } - +#ifndef USE_REGIONS background_min_overflow_address = min (background_min_overflow_address, background_min_soh_overflow_address); background_max_overflow_address = max (background_max_overflow_address, background_max_soh_overflow_address); +#endif //!USE_REGIONS processed_soh_overflow_p = TRUE; } } @@ -20947,7 +22149,7 @@ BOOL gc_heap::background_process_mark_overflow (BOOL concurrent_p) background_max_overflow_address = 0; background_min_overflow_address = MAX_PTR; - background_process_mark_overflow_internal (max_generation, min_add, max_add, concurrent_p); + background_process_mark_overflow_internal (min_add, max_add, concurrent_p); if (!concurrent_p) { goto recheck; @@ -20956,7 +22158,6 @@ BOOL gc_heap::background_process_mark_overflow (BOOL concurrent_p) return overflow_p; } - #endif //BACKGROUND_GC inline @@ -20995,6 +22196,8 @@ size_t gc_heap::get_total_heap_size() { size_t total_heap_size = 0; + // It's correct to start from max_generation for this method because + // generation_sizes will return all SOH sizes when passed max_generation. #ifdef MULTIPLE_HEAPS int hn = 0; @@ -21079,18 +22282,28 @@ size_t gc_heap::committed_size() { size_t total_committed = 0; - for (int i = max_generation; i < total_generation_count; i++) + for (int i = get_start_generation_index(); i < total_generation_count; i++) { generation* gen = generation_of (i); heap_segment* seg = heap_segment_rw (generation_start_segment (gen)); while (seg) { - total_committed += heap_segment_committed (seg) - (uint8_t*)seg; + total_committed += heap_segment_committed (seg) - +#ifdef USE_REGIONS + get_region_start (seg); +#else + (uint8_t*)seg; +#endif //USE_REGIONS + seg = heap_segment_next (seg); } } +#ifdef USE_REGIONS + total_committed += committed_in_free; +#endif //USE_REGIO + return total_committed; } @@ -21122,8 +22335,14 @@ size_t gc_heap::uoh_committed_size (int gen_number, size_t* allocated) while (seg) { - total_committed += heap_segment_committed (seg) - (uint8_t*)seg; - total_allocated += heap_segment_allocated (seg) - (uint8_t*)seg; + uint8_t* start = +#ifdef USE_REGIONS + get_region_start (seg); +#else + (uint8_t*)seg; +#endif //USE_REGIONS + total_committed += heap_segment_committed (seg) - start; + total_allocated += heap_segment_allocated (seg) - start; seg = heap_segment_next (seg); } @@ -21418,6 +22637,16 @@ void gc_heap::scan_dependent_handles (int condemned_gen_number, ScanContext *sc, } #endif //MULTIPLE_HEAPS +size_t gc_heap::get_generation_start_size (int gen_number) +{ +#ifdef USE_REGIONS + return 0; +#else + return Align (size (generation_allocation_start (generation_of (gen_number))), + get_alignment_constant (gen_number <= max_generation)); +#endif //!USE_REGIONS +} + void gc_heap::mark_phase (int condemned_gen_number, BOOL mark_only_p) { assert (settings.concurrent == FALSE); @@ -21441,7 +22670,11 @@ void gc_heap::mark_phase (int condemned_gen_number, BOOL mark_only_p) dynamic_data* dd = dynamic_data_of (gen_idx); dd_begin_data_size (dd) = generation_size (gen_idx) - dd_fragmentation (dd) - - Align (size (generation_allocation_start (generation_of (gen_idx)))); +#ifdef USE_REGIONS + 0; +#else + get_generation_start_size (gen_idx); +#endif //USE_REGIONS dprintf (2, ("begin data size for gen%d is %Id", gen_idx, dd_begin_data_size (dd))); dd_survived_size (dd) = 0; dd_pinned_survived_size (dd) = 0; @@ -22313,6 +23546,7 @@ size_t gc_heap::update_brick_table (uint8_t* tree, size_t current_brick, return brick_of (x); } +#ifndef USE_REGIONS void gc_heap::plan_generation_start (generation* gen, generation* consing_gen, uint8_t* next_plug_to_allocate) { #ifdef HOST_64BIT @@ -22616,6 +23850,7 @@ void gc_heap::process_ephemeral_boundaries (uint8_t* x, goto retry; } } +#endif //!USE_REGIONS inline void gc_heap::seg_clear_mark_bits (heap_segment* seg) @@ -22919,7 +24154,7 @@ BOOL gc_heap::plan_loh() heap_segment* start_seg = heap_segment_rw (generation_start_segment (gen)); PREFIX_ASSUME(start_seg != NULL); heap_segment* seg = start_seg; - uint8_t* o = generation_allocation_start (gen); + uint8_t* o = get_uoh_start_object (seg, gen); dprintf (1235, ("before GC LOH size: %Id, free list: %Id, free obj: %Id\n", generation_size (loh_generation), @@ -22934,8 +24169,6 @@ BOOL gc_heap::plan_loh() seg = start_seg; - //Skip the generation gap object - o = o + AlignQword (size (o)); // We don't need to ever realloc gen3 start so don't touch it. heap_segment_plan_allocated (seg) = o; generation_allocation_pointer (gen) = o; @@ -23054,10 +24287,8 @@ void gc_heap::compact_loh() PREFIX_ASSUME(start_seg != NULL); heap_segment* seg = start_seg; heap_segment* prev_seg = 0; - uint8_t* o = generation_allocation_start (gen); + uint8_t* o = get_uoh_start_object (seg, gen); - //Skip the generation gap object - o = o + AlignQword (size (o)); // We don't need to ever realloc gen3 start so don't touch it. uint8_t* free_space_start = o; uint8_t* free_space_end = o; @@ -23176,10 +24407,7 @@ void gc_heap::relocate_in_loh_compact() { generation* gen = large_object_generation; heap_segment* seg = heap_segment_rw (generation_start_segment (gen)); - uint8_t* o = generation_allocation_start (gen); - - //Skip the generation gap object - o = o + AlignQword (size (o)); + uint8_t* o = get_uoh_start_object (seg, gen); while (1) { @@ -23232,10 +24460,7 @@ void gc_heap::walk_relocation_for_loh (void* profiling_context, record_surv_fn f { generation* gen = large_object_generation; heap_segment* seg = heap_segment_rw (generation_start_segment (gen)); - uint8_t* o = generation_allocation_start (gen); - - //Skip the generation gap object - o = o + AlignQword (size (o)); + uint8_t* o = get_uoh_start_object (seg, gen); while (1) { @@ -23394,6 +24619,319 @@ void gc_heap::record_interesting_data_point (interesting_data_point idp) #endif //GC_CONFIG_DRIVEN } +#ifdef USE_REGIONS +// If the next plan gen number is different, since different generations cannot share the same +// region, we need to get a new alloc region and skip all remaining pins in the alloc region if +// any. +void gc_heap::process_last_np_surv_region (generation* consing_gen, + int current_plan_gen_num, + int next_plan_gen_num) +{ + heap_segment* alloc_region = generation_allocation_segment (consing_gen); + //assert (in_range_for_segment (generation_allocation_pointer (consing_gen), alloc_region)); + // I'm not using in_range_for_segment here because alloc pointer/limit can be exactly the same + // as reserved. size_fit_p in allocate_in_condemned_generations can be used to fit the exact + // size of a plug at the end of the segment which makes alloc pointer/limit both reserved + // on exit of that method. + uint8_t* consing_gen_alloc_ptr = generation_allocation_pointer (consing_gen); + assert ((consing_gen_alloc_ptr >= heap_segment_mem (alloc_region)) && + (consing_gen_alloc_ptr <= heap_segment_reserved (alloc_region))); + + dprintf (REGIONS_LOG, ("h%d was planning gen%d (plan start seg: %Ix), alloc region: %Ix(%Ix)", + heap_number, current_plan_gen_num, + (generation_plan_start_segment (generation_of (current_plan_gen_num)) ? + heap_segment_mem (generation_plan_start_segment (generation_of (current_plan_gen_num))) : 0), + (size_t)alloc_region, heap_segment_mem (alloc_region))); + + dprintf (REGIONS_LOG, ("h%d next need to plan gen%d, consing alloc ptr: %Ix(consing gen: %d)", + heap_number, next_plan_gen_num, + generation_allocation_pointer (consing_gen), + consing_gen->gen_num)); + + if (current_plan_gen_num != next_plan_gen_num) + { + heap_segment* current_plan_start_seg = generation_plan_start_segment (generation_of (current_plan_gen_num)); + // If we haven't needed to consume this alloc region at all, we can use it to allocate the new + // gen, unless this is the only seg in the current plan gen. + // + // REGIONS TODO: I'd like to simply this logic because it's easy to just check if a generation + // is empty and get a new region for it. + if ((generation_allocation_pointer (consing_gen) == heap_segment_mem (alloc_region)) && + (alloc_region != current_plan_start_seg)) + { + uint8_t* plan_seg = (current_plan_start_seg ? heap_segment_mem (current_plan_start_seg) : 0); + dprintf (REGIONS_LOG, ("h%d alloc region %Ix unused for alloc (!= gen%d plan start seg %Ix), use it to plan gen%d", + heap_number, heap_segment_mem (alloc_region), + current_plan_gen_num, plan_seg, + next_plan_gen_num)); + generation_plan_start_segment (generation_of (next_plan_gen_num)) = alloc_region; + dprintf (REGIONS_LOG, ("h%d setting gen%d plan start seg to %Ix (current consing)", + heap_number, next_plan_gen_num, heap_segment_mem (alloc_region))); + return; + } + + // skip all the pins in this region since we cannot use it to plan the next gen. + while (!pinned_plug_que_empty_p()) + { + uint8_t* oldest_plug = pinned_plug (oldest_pin()); + + if ((oldest_plug >= generation_allocation_pointer (consing_gen)) && + (oldest_plug < heap_segment_allocated (alloc_region))) + { + mark* m = pinned_plug_of (deque_pinned_plug()); + uint8_t* plug = pinned_plug (m); + size_t len = pinned_len (m); + + set_new_pin_info (m, generation_allocation_pointer (consing_gen)); + dprintf (REGIONS_LOG, ("pin %Ix b: %Ix->%Ix", plug, brick_of (plug), + (size_t)(brick_table[brick_of (plug)]))); + + generation_allocation_pointer (consing_gen) = plug + len; + } + else + { + // Exit when we detect the first pin that's not on the alloc seg anymore. + break; + } + } + + dprintf (REGIONS_LOG, ("before moving onto plan gen%d, set %Ix plan gen to %d", + next_plan_gen_num, heap_segment_mem (alloc_region), current_plan_gen_num)); + + set_region_plan_gen_num (alloc_region, current_plan_gen_num); + heap_segment_plan_allocated (alloc_region) = generation_allocation_pointer (consing_gen); + + heap_segment* next_region = heap_segment_next (alloc_region); + + // PERF TODO: we just use the next region but we should see if we should skip some regions with + // large pins. + // + // However, right now we have this coupling between going through the segs and the pins on + // the segs, as in, I cannot change the seg order without re-arranging pins on them accordingly. + // We could record where the index of the 1st pin and last pin in a region as part of the + // region info. + + if (!next_region) + { + int gen_num = heap_segment_gen_num (alloc_region); + if (gen_num > 0) + { + next_region = generation_start_segment (generation_of (gen_num - 1)); + dprintf (REGIONS_LOG, ("h%d consing switching to next gen%d seg %Ix", + heap_number, heap_segment_gen_num (next_region), heap_segment_mem (next_region))); + assert (next_region != 0); + } + } + else + { + dprintf (REGIONS_LOG, ("h%d consing switching to next seg %Ix in gen%d to alloc in", + heap_number, heap_segment_mem (next_region), heap_segment_gen_num (next_region))); + } + + if (next_region) + { + generation_allocation_segment (consing_gen) = next_region; + generation_allocation_pointer (consing_gen) = heap_segment_mem (next_region); + generation_allocation_context_start_region (consing_gen) = generation_allocation_pointer (consing_gen); + generation_allocation_limit (consing_gen) = generation_allocation_pointer (consing_gen); + + if (next_plan_gen_num != -1) + { + generation_plan_start_segment (generation_of (next_plan_gen_num)) = next_region; + dprintf (REGIONS_LOG, ("h%d setting gen%d plan start seg to %Ix (new consing)", + heap_number, next_plan_gen_num, heap_segment_mem (next_region))); + } + dprintf (REGIONS_LOG, ("h%d consing(%d) alloc seg: %Ix, ptr: %Ix, planning gen%d", + heap_number, consing_gen->gen_num, + heap_segment_mem (generation_allocation_segment (consing_gen)), + generation_allocation_pointer (consing_gen), next_plan_gen_num)); + } + else + { + assert (!settings.promotion); + } + } +} + +void gc_heap::process_remaining_regions (int current_plan_gen_num, generation* consing_gen) +{ + assert ((current_plan_gen_num == 0) || (!settings.promotion && (current_plan_gen_num == -1))); + + dprintf (REGIONS_LOG, ("h%d PRR: plan %d: consing alloc seg: %Ix, ptr: %Ix", + heap_number, current_plan_gen_num, + heap_segment_mem (generation_allocation_segment (consing_gen)), + generation_allocation_pointer (consing_gen))); + + if (current_plan_gen_num == -1) + { + current_plan_gen_num = 0; + } + + while (!pinned_plug_que_empty_p()) + { + uint8_t* oldest_plug = pinned_plug (oldest_pin()); + + // detect pinned block in segments without pins + heap_segment* nseg = heap_segment_rw (generation_allocation_segment (consing_gen)); + dprintf (3, ("h%d oldest pin: %Ix, consing alloc %Ix, ptr %Ix, limit %Ix", + heap_number, oldest_plug, heap_segment_mem (nseg), + generation_allocation_pointer (consing_gen), + generation_allocation_limit (consing_gen))); + + while ((oldest_plug < generation_allocation_pointer (consing_gen)) || + (oldest_plug >= heap_segment_allocated (nseg))) + { + assert ((oldest_plug < heap_segment_mem (nseg)) || + (oldest_plug > heap_segment_reserved (nseg))); + assert (generation_allocation_pointer (consing_gen)>= + heap_segment_mem (nseg)); + assert (generation_allocation_pointer (consing_gen)<= + heap_segment_committed (nseg)); + + dprintf (3, ("h%d PRR: in loop, seg %Ix pa %Ix -> alloc ptr %Ix, plan gen %d->%d", + heap_number, heap_segment_mem (nseg), + heap_segment_plan_allocated (nseg), + generation_allocation_pointer (consing_gen), + heap_segment_plan_gen_num (nseg), + current_plan_gen_num)); + heap_segment_plan_allocated (nseg) = generation_allocation_pointer (consing_gen); + set_region_plan_gen_num (nseg, current_plan_gen_num); + + heap_segment* next_seg = heap_segment_next_rw (nseg); + + if ((next_seg == 0) && (heap_segment_gen_num (nseg) > 0)) + { + next_seg = generation_start_segment (generation_of (heap_segment_gen_num (nseg) - 1)); + dprintf (3, ("h%d PRR: switching to next gen%d start %Ix", + heap_number, heap_segment_gen_num (next_seg), (size_t)next_seg)); + } + + assert (next_seg != 0); + nseg = next_seg; + + generation_allocation_segment (consing_gen) = nseg; + generation_allocation_pointer (consing_gen) = heap_segment_mem (nseg); + } + + mark* m = pinned_plug_of (deque_pinned_plug()); + uint8_t* plug = pinned_plug (m); + size_t len = pinned_len (m); + + set_new_pin_info (m, generation_allocation_pointer (consing_gen)); + dprintf (2, ("pin %Ix b: %Ix->%Ix", plug, brick_of (plug), + (size_t)(brick_table[brick_of (plug)]))); + + size_t free_size = pinned_len (m); + update_planned_gen0_free_space (free_size, plug); + + generation_allocation_pointer (consing_gen) = plug + len; + generation_allocation_limit (consing_gen) = + generation_allocation_pointer (consing_gen); + } + + heap_segment* current_region = generation_allocation_segment (consing_gen); + set_region_plan_gen_num (current_region, current_plan_gen_num); + heap_segment_plan_allocated (current_region) = generation_allocation_pointer (consing_gen); + dprintf (3, ("h%d setting alloc seg %Ix plan alloc to %Ix", + heap_number, heap_segment_mem (current_region), + heap_segment_plan_allocated (current_region))); + + heap_segment* region_no_pins = heap_segment_next_rw (current_region); + + while (region_no_pins) + { + set_region_plan_gen_num (region_no_pins, current_plan_gen_num); + heap_segment_plan_allocated (region_no_pins) = heap_segment_mem (region_no_pins); + dprintf (REGIONS_LOG, ("h%d setting seg %Ix(no pins) plan alloc to %Ix", + heap_number, heap_segment_mem (region_no_pins), + heap_segment_plan_allocated (region_no_pins))); + region_no_pins = heap_segment_next_rw (region_no_pins); + } +} + +void gc_heap::update_planned_gen0_free_space (size_t free_size, uint8_t* plug) +{ + gen0_pinned_free_space += free_size; + if (!gen0_large_chunk_found) + { + gen0_large_chunk_found = (free_size >= END_SPACE_AFTER_GC_FL); + if (gen0_large_chunk_found) + { + dprintf (3, ("h%d found large pin free space: %Id at %Ix", + heap_number, free_size, plug)); + } + } +} + +// REGIONS TODO: I wrote this in the same spirit as ephemeral_gen_fit_p but we really should +// take committed into consideration instead of reserved. +void gc_heap::get_gen0_end_plan_space_worker (heap_segment* region) +{ + while (region) + { + // This assert will no longer be true when we selectively demote regions. + assert (heap_segment_plan_gen_num (region) == 0); + size_t end_plan_space = heap_segment_reserved (region) - heap_segment_plan_allocated (region); + if (!gen0_large_chunk_found) + { + gen0_large_chunk_found = (end_plan_space >= END_SPACE_AFTER_GC_FL); + + if (gen0_large_chunk_found) + { + dprintf (REGIONS_LOG, ("h%d found large end space: %Id in region %Ix", + heap_number, end_plan_space, heap_segment_mem (region))); + } + } + + dprintf (REGIONS_LOG, ("h%d found end space: %Id in region %Ix, total %Id", + heap_number, end_plan_space, heap_segment_mem (region), end_gen0_region_space)); + end_gen0_region_space += end_plan_space; + + region = heap_segment_next (region); + } +} + +void gc_heap::get_gen0_end_plan_space() +{ + generation* gen = generation_of (0); + heap_segment* region = generation_plan_start_segment (gen); + get_gen0_end_plan_space_worker (region); + + if (heap_segment_gen_num (region) != 0) + { + get_gen0_end_plan_space_worker (generation_start_segment (gen)); + } +} + +size_t gc_heap::get_gen0_end_space() +{ + size_t end_space = 0; + heap_segment* seg = generation_start_segment (generation_of (0)); + + while (seg) + { + // TODO - + // This method can also be called concurrently by full GC notification but + // there's no synchronization between checking for ephemeral_heap_segment and + // getting alloc_allocated so for now we just always use heap_segment_allocated. + //uint8_t* allocated = ((seg == ephemeral_heap_segment) ? + // alloc_allocated : heap_segment_allocated (seg)); + uint8_t* allocated = heap_segment_allocated (seg); + end_space += heap_segment_reserved (seg) - allocated; + + dprintf (REGIONS_LOG, ("h%d gen0 seg %Ix, end %Ix-%Ix=%Ix, end_space->%Id", + heap_number, heap_segment_mem (seg), + heap_segment_reserved (seg), allocated, + (heap_segment_reserved (seg) - allocated), + end_space)); + + seg = heap_segment_next (seg); + } + + return end_space; +} +#endif //USE_REGIONS + #ifdef _PREFAST_ #pragma warning(push) #pragma warning(disable:21000) // Suppress PREFast warning about overly large function @@ -23459,107 +24997,125 @@ void gc_heap::plan_phase (int condemned_gen_number) #endif //MARK_LIST #ifdef FEATURE_BASICFREEZE +#ifdef USE_REGIONS + assert (!ro_segments_in_range); +#else //USE_REGIONS if ((generation_start_segment (condemned_gen1) != ephemeral_heap_segment) && ro_segments_in_range) { sweep_ro_segments (generation_start_segment (condemned_gen1)); } +#endif //USE_REGIONS #endif // FEATURE_BASICFREEZE #ifndef MULTIPLE_HEAPS - if (shigh != (uint8_t*)0) + int condemned_gen_index = get_stop_generation_index (condemned_gen_number); + for (; condemned_gen_index <= condemned_gen_number; condemned_gen_index++) { - heap_segment* seg = heap_segment_rw (generation_start_segment (condemned_gen1)); - - PREFIX_ASSUME(seg != NULL); - - heap_segment* fseg = seg; - do + generation* current_gen = generation_of (condemned_gen_index); + if (shigh != (uint8_t*)0) { - if (slow > heap_segment_mem (seg) && - slow < heap_segment_reserved (seg)) + heap_segment* seg = heap_segment_rw (generation_start_segment (current_gen)); + PREFIX_ASSUME(seg != NULL); + + heap_segment* fseg = seg; + do { - if (seg == fseg) + if (in_range_for_segment (slow, seg)) { - uint8_t* o = generation_allocation_start (condemned_gen1) + - Align (size (generation_allocation_start (condemned_gen1))); - if (slow > o) + uint8_t* start_unmarked = 0; +#ifdef USE_REGIONS + start_unmarked = heap_segment_mem (seg); +#else //USE_REGIONS + if (seg == fseg) { - assert ((slow - o) >= (int)Align (min_obj_size)); -#ifdef BACKGROUND_GC - if (current_c_gc_state == c_gc_state_marking) + uint8_t* o = generation_allocation_start (current_gen); + o += get_soh_start_obj_len (o); + if (slow > o) { - bgc_clear_batch_mark_array_bits (o, slow); + start_unmarked = o; + assert ((slow - o) >= (int)Align (min_obj_size)); } + } + else + { + assert (condemned_gen_number == max_generation); + start_unmarked = heap_segment_mem (seg); + } +#endif //USE_REGIONS + + if (start_unmarked) + { + size_t unmarked_size = slow - start_unmarked; + + if (unmarked_size > 0) + { +#ifdef BACKGROUND_GC + if (current_c_gc_state == c_gc_state_marking) + { + bgc_clear_batch_mark_array_bits (start_unmarked, slow); + } #endif //BACKGROUND_GC - make_unused_array (o, slow - o); + make_unused_array (start_unmarked, unmarked_size); + } } } - else + if (in_range_for_segment (shigh, seg)) { - assert (condemned_gen_number == max_generation); - make_unused_array (heap_segment_mem (seg), - slow - heap_segment_mem (seg)); - } - } - if (in_range_for_segment (shigh, seg)) - { #ifdef BACKGROUND_GC - if (current_c_gc_state == c_gc_state_marking) + if (current_c_gc_state == c_gc_state_marking) + { + bgc_clear_batch_mark_array_bits ((shigh + Align (size (shigh))), heap_segment_allocated (seg)); + } +#endif //BACKGROUND_GC + heap_segment_saved_allocated (seg) = heap_segment_allocated (seg); + heap_segment_allocated (seg) = shigh + Align (size (shigh)); + } + // test if the segment is in the range of [slow, shigh] + if (!((heap_segment_reserved (seg) >= slow) && + (heap_segment_mem (seg) <= shigh))) { - bgc_clear_batch_mark_array_bits ((shigh + Align (size (shigh))), heap_segment_allocated (seg)); + heap_segment_saved_allocated (seg) = heap_segment_allocated (seg); + // shorten it to minimum + heap_segment_allocated (seg) = heap_segment_mem (seg); } -#endif //BACKGROUND_GC - heap_segment_allocated (seg) = shigh + Align (size (shigh)); - } - // test if the segment is in the range of [slow, shigh] - if (!((heap_segment_reserved (seg) >= slow) && - (heap_segment_mem (seg) <= shigh))) - { - // shorten it to minimum - heap_segment_allocated (seg) = heap_segment_mem (seg); - } - seg = heap_segment_next_rw (seg); - } while (seg); - } - else - { - heap_segment* seg = heap_segment_rw (generation_start_segment (condemned_gen1)); + seg = heap_segment_next_rw (seg); + } while (seg); + } + else + { + heap_segment* seg = heap_segment_rw (generation_start_segment (current_gen)); - PREFIX_ASSUME(seg != NULL); + PREFIX_ASSUME(seg != NULL); - heap_segment* sseg = seg; - do - { - // shorten it to minimum - if (seg == sseg) + heap_segment* sseg = seg; + do { - // no survivors make all generations look empty - uint8_t* o = generation_allocation_start (condemned_gen1) + - Align (size (generation_allocation_start (condemned_gen1))); -#ifdef BACKGROUND_GC - if (current_c_gc_state == c_gc_state_marking) + uint8_t* start_unmarked = heap_segment_mem (seg); +#ifndef USE_REGIONS + // shorten it to minimum + if (seg == sseg) { - bgc_clear_batch_mark_array_bits (o, heap_segment_allocated (seg)); + // no survivors make all generations look empty + uint8_t* o = generation_allocation_start (current_gen); + o += get_soh_start_obj_len (o); + start_unmarked = o; } -#endif //BACKGROUND_GC - heap_segment_allocated (seg) = o; - } - else - { - assert (condemned_gen_number == max_generation); +#endif //!USE_REGIONS + #ifdef BACKGROUND_GC if (current_c_gc_state == c_gc_state_marking) { - bgc_clear_batch_mark_array_bits (heap_segment_mem (seg), heap_segment_allocated (seg)); + bgc_clear_batch_mark_array_bits (start_unmarked, heap_segment_allocated (seg)); } #endif //BACKGROUND_GC - heap_segment_allocated (seg) = heap_segment_mem (seg); - } - seg = heap_segment_next_rw (seg); - } while (seg); - } + heap_segment_saved_allocated (seg) = heap_segment_allocated (seg); + heap_segment_allocated (seg) = start_unmarked; + seg = heap_segment_next_rw (seg); + } while (seg); + } + } #endif //MULTIPLE_HEAPS heap_segment* seg1 = heap_segment_rw (generation_start_segment (condemned_gen1)); @@ -23567,10 +25123,12 @@ void gc_heap::plan_phase (int condemned_gen_number) PREFIX_ASSUME(seg1 != NULL); uint8_t* end = heap_segment_allocated (seg1); - uint8_t* first_condemned_address = generation_allocation_start (condemned_gen1); + uint8_t* first_condemned_address = get_soh_start_object (seg1, condemned_gen1); uint8_t* x = first_condemned_address; +#ifndef USE_REGIONS assert (!marked (x)); +#endif //!USE_REGIONS uint8_t* plug_end = x; uint8_t* tree = 0; size_t sequence_number = 0; @@ -23581,6 +25139,17 @@ void gc_heap::plan_phase (int condemned_gen_number) int active_old_gen_number = condemned_gen_number; int active_new_gen_number = (allocate_in_condemned ? condemned_gen_number: (1 + condemned_gen_number)); + +#ifdef USE_REGIONS + generation_plan_start_segment (generation_of (active_new_gen_number)) = + ((active_new_gen_number > active_old_gen_number) ? + generation_tail_region (generation_of (active_new_gen_number)) : + heap_segment_rw (generation_start_segment (generation_of (active_new_gen_number)))); + dprintf (REGIONS_LOG, ("active new starts as %d, active old %d, set highest plan gen start seg to %Ix(%s)", + active_new_gen_number, active_old_gen_number, + heap_segment_mem (generation_plan_start_segment (generation_of (active_new_gen_number))), + ((active_new_gen_number > active_old_gen_number) ? "old gen's last region" : "this gen's start region"))); +#endif //USE_REGIONS generation* older_gen = 0; generation* consing_gen = condemned_gen1; alloc_list r_free_list [MAX_SOH_BUCKET_COUNT]; @@ -23625,14 +25194,33 @@ void gc_heap::plan_phase (int condemned_gen_number) r_allocation_pointer = generation_allocation_pointer (older_gen); r_allocation_start_region = generation_allocation_context_start_region (older_gen); r_allocation_segment = generation_allocation_segment (older_gen); + +#ifdef USE_REGIONS + if (older_gen->gen_num == max_generation) + { + check_seg_gen_num (r_allocation_segment); + } +#endif //USE_REGIONS + heap_segment* start_seg = heap_segment_rw (generation_start_segment (older_gen)); PREFIX_ASSUME(start_seg != NULL); +#ifdef USE_REGIONS + heap_segment* skip_seg = 0; + + assert (generation_allocation_pointer (older_gen) == 0); + assert (generation_allocation_limit (older_gen) == 0); +#else //USE_REGIONS + heap_segment* skip_seg = ephemeral_heap_segment; if (start_seg != ephemeral_heap_segment) { assert (condemned_gen_number == (max_generation - 1)); - while (start_seg && (start_seg != ephemeral_heap_segment)) + } +#endif //USE_REGIONS + if (start_seg != skip_seg) + { + while (start_seg && (start_seg != skip_seg)) { assert (heap_segment_allocated (start_seg) >= heap_segment_mem (start_seg)); @@ -23645,19 +25233,24 @@ void gc_heap::plan_phase (int condemned_gen_number) } } - //reset all of the segment allocated sizes + //reset all of the segment's plan_allocated { - heap_segment* seg2 = heap_segment_rw (generation_start_segment (condemned_gen1)); - - PREFIX_ASSUME(seg2 != NULL); - - while (seg2) + int condemned_gen_index1 = get_stop_generation_index (condemned_gen_number); + for (; condemned_gen_index1 <= condemned_gen_number; condemned_gen_index1++) { - heap_segment_plan_allocated (seg2) = - heap_segment_mem (seg2); - seg2 = heap_segment_next_rw (seg2); + generation* current_gen = generation_of (condemned_gen_index1); + heap_segment* seg2 = heap_segment_rw (generation_start_segment (current_gen)); + PREFIX_ASSUME(seg2 != NULL); + + while (seg2) + { + heap_segment_plan_allocated (seg2) = + heap_segment_mem (seg2); + seg2 = heap_segment_next_rw (seg2); + } } } + int condemned_gn = condemned_gen_number; int bottom_gen = 0; @@ -23688,6 +25281,10 @@ void gc_heap::plan_phase (int condemned_gen_number) PREFIX_ASSUME(generation_allocation_segment(condemned_gen2) != NULL); +#ifdef USE_REGIONS + generation_allocation_pointer (condemned_gen2) = + heap_segment_mem (generation_allocation_segment (condemned_gen2)); +#else //USE_REGIONS if (generation_start_segment (condemned_gen2) != ephemeral_heap_segment) { generation_allocation_pointer (condemned_gen2) = @@ -23697,7 +25294,7 @@ void gc_heap::plan_phase (int condemned_gen_number) { generation_allocation_pointer (condemned_gen2) = generation_allocation_start (condemned_gen2); } - +#endif //USE_REGIONS generation_allocation_limit (condemned_gen2) = generation_allocation_pointer (condemned_gen2); generation_allocation_context_start_region (condemned_gen2) = generation_allocation_pointer (condemned_gen2); @@ -23713,8 +25310,10 @@ void gc_heap::plan_phase (int condemned_gen_number) dprintf(3,( " From %Ix to %Ix", (size_t)x, (size_t)end)); +#ifndef USE_REGIONS demotion_low = MAX_PTR; demotion_high = heap_segment_allocated (ephemeral_heap_segment); +#endif //!USE_REGIONS // If we are doing a gen1 only because of cards, it means we should not demote any pinned plugs // from gen1. They should get promoted to gen2. @@ -23726,6 +25325,7 @@ void gc_heap::plan_phase (int condemned_gen_number) print_free_and_plug ("BP"); +#ifndef USE_REGIONS for (int gen_idx = 0; gen_idx <= max_generation; gen_idx++) { generation* temp_gen = generation_of (gen_idx); @@ -23735,6 +25335,7 @@ void gc_heap::plan_phase (int condemned_gen_number) generation_allocation_start (temp_gen), generation_plan_allocation_start (temp_gen))); } +#endif //!USE_REGIONS BOOL fire_pinned_plug_events_p = EVENT_ENABLED(PinPlugAtGCTime); size_t last_plug_len = 0; @@ -23748,11 +25349,14 @@ void gc_heap::plan_phase (int condemned_gen_number) { if (x >= end) { +#ifdef MARK_LIST if (!use_mark_list) +#endif { assert (x == end); } assert (heap_segment_allocated (seg1) == end); + heap_segment_saved_allocated (seg1) = heap_segment_allocated (seg1); heap_segment_allocated (seg1) = plug_end; current_brick = update_brick_table (tree, current_brick, x, plug_end); @@ -23771,7 +25375,68 @@ void gc_heap::plan_phase (int condemned_gen_number) } else { +#ifdef USE_REGIONS + // We have a few task here when we ran out of regions to go through for the + // active_old_gen_number - + // + // + decide on which pins to skip + // + set the plan alloc and planned gen for the regions we process here + // + set the consing gen's alloc ptr/limit + // + decide on the new active_old_gen_number (which is just the current one - 1) + // + decide on the new active_new_gen_number (which depends on settings.promotion) + // + // Important differences between process_last_np_surv_region and process_ephemeral_boundaries + // - it's guaranteed we would ask to allocate gen1 start for promotion and gen0 + // start for non promotion case. + // - consing_gen is never changed. In fact we really don't need consing_gen, we just + // need the alloc ptr/limit pair and the alloc seg. + // TODO : should just get rid of consing_gen. + // These make things more regular and easier to keep track of. + // + // Also I'm doing everything here instead of having to have separate code to go + // through the left over pins after the main loop in plan phase. + int saved_active_new_gen_number = active_new_gen_number; + BOOL saved_allocate_in_condemned = allocate_in_condemned; + + dprintf (REGIONS_LOG, ("h%d switching to look at next gen - current active old %d, new %d, alloc_in_condemned: %d", + heap_number, active_old_gen_number, active_new_gen_number, allocate_in_condemned)); + + if (active_old_gen_number <= (settings.promotion ? (max_generation - 1) : max_generation)) + { + dprintf (REGIONS_LOG, ("h%d active old: %d, new: %d->%d, allocate_in_condemned %d->1", + heap_number, active_old_gen_number, + active_new_gen_number, (active_new_gen_number - 1), + allocate_in_condemned)); + active_new_gen_number--; + allocate_in_condemned = TRUE; + } + + if (active_new_gen_number >= 0) + { + process_last_np_surv_region (consing_gen, saved_active_new_gen_number, active_new_gen_number); + } + + if (active_old_gen_number == 0) + { + // We need to process the pins on the remaining regions if any. + process_remaining_regions (active_new_gen_number, consing_gen); + break; + } + else + { + active_old_gen_number--; + + seg1 = heap_segment_rw (generation_start_segment (generation_of (active_old_gen_number))); + end = heap_segment_allocated (seg1); + plug_end = x = heap_segment_mem (seg1); + current_brick = brick_of (x); + dprintf (REGIONS_LOG,("h%d switching to gen%d start region %Ix to %Ix", + heap_number, active_old_gen_number, x, end)); + continue; + } +#else //USE_REGIONS break; +#endif //USE_REGIONS } } @@ -23910,6 +25575,7 @@ void gc_heap::plan_phase (int condemned_gen_number) } } +#ifndef USE_REGIONS if (allocate_first_generation_start) { allocate_first_generation_start = FALSE; @@ -23924,6 +25590,7 @@ void gc_heap::plan_phase (int condemned_gen_number) consing_gen, allocate_in_condemned); } +#endif //!USE_REGIONS dprintf (3, ("adding %Id to gen%d surv", ps, active_old_gen_number)); @@ -23931,6 +25598,7 @@ void gc_heap::plan_phase (int condemned_gen_number) dd_survived_size (dd_active_old) += ps; BOOL convert_to_pinned_p = FALSE; + BOOL allocated_in_older_p = FALSE; if (!pinned_plug_p) { @@ -23962,6 +25630,7 @@ void gc_heap::plan_phase (int condemned_gen_number) if (new_address != 0) { + allocated_in_older_p = TRUE; if (settings.condemned_generation == (max_generation - 1)) { dprintf (3, (" NA: %Ix-%Ix -> %Ix, %Ix (%Ix)", @@ -24012,11 +25681,12 @@ void gc_heap::plan_phase (int condemned_gen_number) else { #ifdef SIMPLE_DPRINTF - dprintf (3, ("(%Ix)[%Ix->%Ix, NA: [%Ix(%Id), %Ix[: %Ix(%d)", + dprintf (3, ("(%Ix)[%Ix->%Ix, NA: [%Ix(%Id), %Ix[: %Ix(%d), x: %Ix (%s)", (size_t)(node_gap_size (plug_start)), plug_start, plug_end, (size_t)new_address, (size_t)(plug_start - new_address), (size_t)new_address + ps, ps, - (is_plug_padded (plug_start) ? 1 : 0))); + (is_plug_padded (plug_start) ? 1 : 0), x, + (allocated_in_older_p ? "O" : "C"))); #endif //SIMPLE_DPRINTF #ifdef SHORT_PLUGS @@ -24099,7 +25769,9 @@ void gc_heap::plan_phase (int condemned_gen_number) verify_pins_with_post_plug_info("before insert node"); tree = insert_node (plug_start, ++sequence_number, tree, last_node); - dprintf (3, ("tree is %Ix (b: %Ix) after insert_node", tree, brick_of (tree))); + dprintf (3, ("tree is %Ix (b: %Ix) after insert_node(lc: %Ix, rc: %Ix)", + tree, brick_of (tree), + (tree + node_left_child (tree)), (tree + node_right_child (tree)))); last_node = plug_start; #ifdef _DEBUG @@ -24191,6 +25863,7 @@ void gc_heap::plan_phase (int condemned_gen_number) } } +#ifndef USE_REGIONS while (!pinned_plug_que_empty_p()) { if (settings.promotion) @@ -24274,10 +25947,13 @@ void gc_heap::plan_phase (int condemned_gen_number) { generation_pinned_allocation_sweep_size ((generation_of (frgn +1))) += len; } - } plan_generation_starts (consing_gen); +#endif //!USE_REGIONS + + descr_generations ("AP"); + print_free_and_plug ("AP"); { @@ -24302,11 +25978,8 @@ void gc_heap::plan_phase (int condemned_gen_number) #else 0; #endif //SHORT_PLUGS - dprintf (1, ("gen%d: %Ix, %Ix(%Id), NON PIN alloc: %Id, pin com: %Id, sweep: %Id, surv: %Id, pinsurv: %Id(%d%% added, %d%% art), np surv: %Id, pad: %Id", + dprintf (1, ("gen%d: NON PIN alloc: %Id, pin com: %Id, sweep: %Id, surv: %Id, pinsurv: %Id(%d%% added, %d%% art), np surv: %Id, pad: %Id", gen_idx, - generation_allocation_start (temp_gen), - generation_plan_allocation_start (temp_gen), - (size_t)(generation_plan_allocation_start (temp_gen) - generation_allocation_start (temp_gen)), generation_allocation_size (temp_gen), generation_pinned_allocation_compact_size (temp_gen), generation_pinned_allocation_sweep_size (temp_gen), @@ -24316,6 +25989,14 @@ void gc_heap::plan_phase (int condemned_gen_number) artificial_pinned_ratio, (dd_survived_size (temp_dd) - dd_pinned_survived_size (temp_dd)), padding_size)); + +#ifndef USE_REGIONS + dprintf (1, ("gen%d: %Ix, %Ix(%Id)", + gen_idx, + generation_allocation_start (temp_gen), + generation_plan_allocation_start (temp_gen), + (size_t)(generation_plan_allocation_start (temp_gen) - generation_allocation_start (temp_gen)))); +#endif //USE_REGIONS } #endif //SIMPLE_DPRINTF } @@ -24414,20 +26095,20 @@ void gc_heap::plan_phase (int condemned_gen_number) get_gc_data_per_heap()->set_mechanism (gc_heap_compact, ((settings.gen0_reduction_count > 0) ? compact_fragmented_gen0 : compact_high_mem_load)); +#ifndef USE_REGIONS if ((condemned_gen_number >= (max_generation - 1)) && dt_low_ephemeral_space_p (tuning_deciding_expansion)) { dprintf (GTC_LOG, ("Not enough space for all ephemeral generations with compaction")); should_expand = TRUE; } +#endif //!USE_REGIONS } else - { #endif // HOST_64BIT + { should_compact = decide_on_compacting (condemned_gen_number, fragmentation, should_expand); -#ifdef HOST_64BIT } -#endif // HOST_64BIT #ifdef FEATURE_LOH_COMPACTION loh_compacted_p = FALSE; @@ -24507,7 +26188,9 @@ void gc_heap::plan_phase (int condemned_gen_number) } else { +#ifndef USE_REGIONS settings.demotion = FALSE; +#endif //!USE_REGIONS int pol_max = policy_sweep; #ifdef GC_CONFIG_DRIVEN BOOL is_compaction_mandatory = FALSE; @@ -24518,12 +26201,14 @@ void gc_heap::plan_phase (int condemned_gen_number) { if (pol_max < g_heaps[i]->gc_policy) pol_max = policy_compact; +#ifndef USE_REGIONS // set the demotion flag is any of the heap has demotion if (g_heaps[i]->demotion_high >= g_heaps[i]->demotion_low) { (g_heaps[i]->get_gc_data_per_heap())->set_mechanism_bit (gc_demotion_bit); settings.demotion = TRUE; } +#endif //!USE_REGIONS #ifdef GC_CONFIG_DRIVEN if (!is_compaction_mandatory) @@ -24555,6 +26240,7 @@ void gc_heap::plan_phase (int condemned_gen_number) } #endif //GC_CONFIG_DRIVEN +#ifndef USE_REGIONS for (i = 0; i < n_heaps; i++) { if (pol_max > g_heaps[i]->gc_policy) @@ -24572,6 +26258,7 @@ void gc_heap::plan_phase (int condemned_gen_number) } } } +#endif //!USE_REGIONS BOOL is_full_compacting_gc = FALSE; @@ -24619,9 +26306,12 @@ void gc_heap::plan_phase (int condemned_gen_number) } else { +#ifndef USE_REGIONS + // for regions it was already set when we set plan_gen_num for regions. settings.demotion = ((demotion_high >= demotion_low) ? TRUE : FALSE); if (settings.demotion) get_gc_data_per_heap()->set_mechanism_bit (gc_demotion_bit); +#endif //!USE_REGIONS #ifdef GC_CONFIG_DRIVEN BOOL is_compaction_mandatory = FALSE; @@ -24678,6 +26368,7 @@ void gc_heap::plan_phase (int condemned_gen_number) { dprintf (2,( "**** Doing Compacting GC ****")); +#ifndef USE_REGIONS if (should_expand) { #ifndef MULTIPLE_HEAPS @@ -24699,6 +26390,8 @@ void gc_heap::plan_phase (int condemned_gen_number) should_expand = FALSE; } } +#endif //!USE_REGIONS + generation_allocation_limit (condemned_gen1) = generation_allocation_pointer (condemned_gen1); if ((condemned_gen_number < max_generation)) @@ -24708,8 +26401,10 @@ void gc_heap::plan_phase (int condemned_gen_number) // Fix the allocation area of the older generation fix_older_allocation_area (older_gen); } +#ifndef USE_REGIONS assert (generation_allocation_segment (consing_gen) == ephemeral_heap_segment); +#endif //!USE_REGIONS GCToEEInterface::DiagWalkSurvivors(__this, true); @@ -24719,6 +26414,8 @@ void gc_heap::plan_phase (int condemned_gen_number) fix_generation_bounds (condemned_gen_number, consing_gen); assert (generation_allocation_limit (youngest_generation) == generation_allocation_pointer (youngest_generation)); + +#ifndef USE_REGIONS if (condemned_gen_number >= (max_generation -1)) { #ifdef MULTIPLE_HEAPS @@ -24751,6 +26448,7 @@ void gc_heap::plan_phase (int condemned_gen_number) } } } +#endif //!USE_REGIONS { #ifdef FEATURE_PREMORTEM_FINALIZATION @@ -24793,10 +26491,12 @@ void gc_heap::plan_phase (int condemned_gen_number) gen0_big_free_spaces = 0; reset_pinned_queue_bos(); +#ifndef USE_REGIONS unsigned int gen_number = min (max_generation, 1 + condemned_gen_number); generation* gen = generation_of (gen_number); uint8_t* low = generation_allocation_start (generation_of (gen_number-1)); uint8_t* high = heap_segment_allocated (ephemeral_heap_segment); +#endif //!USE_REGIONS while (!pinned_plug_que_empty_p()) { @@ -24828,6 +26528,10 @@ void gc_heap::plan_phase (int condemned_gen_number) } } +#ifdef USE_REGIONS + int gen_number = object_gennum_plan (arr); + generation* gen = generation_of (gen_number); +#else //when we take an old segment to make the new //ephemeral segment. we can have a bunch of //pinned plugs out of order going to the new ephemeral seg @@ -24835,7 +26539,6 @@ void gc_heap::plan_phase (int condemned_gen_number) if ((heap_segment_mem (ephemeral_heap_segment) <= arr) && (heap_segment_reserved (ephemeral_heap_segment) > arr)) { - while ((low <= arr) && (high > arr)) { gen_number--; @@ -24856,36 +26559,17 @@ void gc_heap::plan_phase (int condemned_gen_number) gen_number = max_generation; gen = generation_of (gen_number); } +#endif //USE_REGIONS - dprintf(3,("threading it into generation %d", gen_number)); + dprintf(3,("h%d threading %Ix (%Id) before pin in gen %d", + heap_number, arr, len, gen_number)); thread_gap (arr, len, gen); add_gen_free (gen_number, len); } } } -#ifdef _DEBUG - for (int x = 0; x <= max_generation; x++) - { - assert (generation_allocation_start (generation_of (x))); - } -#endif //_DEBUG - - if (!settings.demotion && settings.promotion) - { - //clear card for generation 1. generation 0 is empty - clear_card_for_addresses ( - generation_allocation_start (generation_of (1)), - generation_allocation_start (generation_of (0))); - } - if (settings.promotion && !settings.demotion) - { - uint8_t* start = generation_allocation_start (youngest_generation); -#ifdef _DEBUG - assert (heap_segment_allocated (ephemeral_heap_segment) == - (start + Align (size (start)))); -#endif //_DEBUG - } + clear_gen1_cards(); } else { @@ -24893,6 +26577,12 @@ void gc_heap::plan_phase (int condemned_gen_number) settings.promotion = TRUE; settings.compaction = FALSE; +#ifdef USE_REGIONS + // This should be set for segs too actually. We should always reset demotion + // if we sweep. + settings.demotion = FALSE; +#endif //USE_REGIONS + ScanContext sc; sc.thread_number = heap_number; sc.promotion = FALSE; @@ -24932,6 +26622,12 @@ void gc_heap::plan_phase (int condemned_gen_number) generation_allocation_pointer (older_gen) = r_allocation_pointer; generation_allocation_context_start_region (older_gen) = r_allocation_start_region; generation_allocation_segment (older_gen) = r_allocation_segment; +#ifdef USE_REGIONS + if (older_gen->gen_num == max_generation) + { + check_seg_gen_num (r_allocation_segment); + } +#endif //USE_REGIONS } if ((condemned_gen_number < max_generation)) @@ -24965,6 +26661,8 @@ void gc_heap::plan_phase (int condemned_gen_number) { GCScan::GcPromotionsGranted(condemned_gen_number, max_generation, &sc); + +#ifndef USE_REGIONS if (condemned_gen_number >= (max_generation -1)) { #ifdef MULTIPLE_HEAPS @@ -24976,6 +26674,7 @@ void gc_heap::plan_phase (int condemned_gen_number) rearrange_heap_segments(FALSE); #endif //MULTIPLE_HEAPS } +#endif //!USE_REGIONS #ifdef MULTIPLE_HEAPS //join all threads to make sure they are synchronized @@ -24984,20 +26683,7 @@ void gc_heap::plan_phase (int condemned_gen_number) #endif //MULTIPLE_HEAPS } -#ifdef _DEBUG - for (int x = 0; x <= max_generation; x++) - { - assert (generation_allocation_start (generation_of (x))); - } -#endif //_DEBUG - - //clear card for generation 1. generation 0 is empty - clear_card_for_addresses ( - generation_allocation_start (generation_of (1)), - generation_allocation_start (generation_of (0))); - assert ((heap_segment_allocated (ephemeral_heap_segment) == - (generation_allocation_start (youngest_generation) + - Align (min_obj_size)))); + clear_gen1_cards(); } //verify_partial(); @@ -25006,7 +26692,6 @@ void gc_heap::plan_phase (int condemned_gen_number) #pragma warning(pop) #endif //_PREFAST_ - /***************************** Called after compact phase to fix all generation gaps ********************************/ @@ -25017,11 +26702,107 @@ void gc_heap::fix_generation_bounds (int condemned_gen_number, UNREFERENCED_PARAMETER(consing_gen); #endif //_DEBUG + int gen_number = condemned_gen_number; + dprintf (2, ("---- thread regions gen%d GC ----", gen_number)); + +#ifdef USE_REGIONS + // For ephemeral GCs, we handle up till the generation_allocation_segment as that's the last one we + // changed in the older gen. + if (settings.promotion && (condemned_gen_number < max_generation)) + { + int older_gen_number = condemned_gen_number + 1; + generation* older_gen = generation_of (older_gen_number); + heap_segment* last_alloc_region = generation_allocation_segment (older_gen); + + dprintf (REGIONS_LOG, ("fix till we see alloc region which is %Ix", heap_segment_mem (last_alloc_region))); + + heap_segment* region = heap_segment_rw (generation_start_segment (older_gen)); + while (region) + { + heap_segment_allocated (region) = heap_segment_plan_allocated (region); + if (region == last_alloc_region) + break; + region = heap_segment_next (region); + } + } + + // The way we threads regions for the new generations is the following - + // instead of having to check 2 things at once (both original and plan), we just thread + // regions from generations together so we only have one list to go through. The first time + // we see a different plan gen number from the one we are currently looking at, we construct + // the generation start for that gen. + int gen_to_link_num = condemned_gen_number; + while (gen_to_link_num > 0) + { + heap_segment_next (generation_tail_region (generation_of (gen_to_link_num))) = + generation_start_segment (generation_of (gen_to_link_num - 1)); + assert (heap_segment_rw (generation_start_segment (generation_of (gen_to_link_num - 1))) == + generation_start_segment (generation_of (gen_to_link_num - 1))); + gen_to_link_num--; + } + + for (gen_to_link_num = condemned_gen_number; gen_to_link_num >= 0; gen_to_link_num--) + { + generation* gen_to_link = generation_of (gen_to_link_num); + heap_segment* tail_region_next = (generation_tail_region (gen_to_link) ? + heap_segment_next (generation_tail_region (gen_to_link)) : 0); + dprintf (REGIONS_LOG, ("gen%d start %Ix, plan start %Ix, tail region %Ix next -> %Ix", + gen_to_link_num, + heap_segment_mem (generation_start_segment (gen_to_link)), + heap_segment_mem (generation_plan_start_segment (gen_to_link)), + heap_segment_mem (generation_tail_region (gen_to_link)), + (tail_region_next ? heap_segment_mem (tail_region_next) : 0))); + } + + // As we are going through each region, we check its plan gen and thread it to that gen + // while updating its tail_region. The reason why we do this is because later we'd + // want to be able to demote only some regions with pinned survivor only, which means + // you could have 3 regions with their plan_gen_nums as 2, 1, 2. + // + // It's guarateed that the plan_start will come before any other planned region in this + // generation. So we construct gen start when we see a region that's a plan_start_seg. + heap_segment* current_region = heap_segment_rw (generation_start_segment (generation_of (condemned_gen_number))); + dprintf (REGIONS_LOG, ("gen%d start from %Ix", condemned_gen_number, heap_segment_mem (current_region))); + while (current_region = find_first_valid_region (current_region)) + { + assert (heap_segment_plan_gen_num (current_region) == heap_segment_gen_num (current_region)); + int new_gen_num = heap_segment_plan_gen_num (current_region); + generation* new_gen = generation_of (new_gen_num); + if (current_region != generation_plan_start_segment (new_gen)) + { + dprintf (REGIONS_LOG, ("gen%d start exists, tail region %Ix next -> %Ix", + new_gen_num, heap_segment_mem (generation_tail_region (new_gen)), + heap_segment_mem (current_region))); + heap_segment_next (generation_tail_region (new_gen)) = current_region; + generation_tail_region (new_gen) = current_region; + } + else + { + dprintf (REGIONS_LOG, ("gen%d start doesn't exist, set region %Ix as start", + new_gen_num, heap_segment_mem (current_region))); + thread_start_region (new_gen, current_region); + uint8_t* new_gen_start = heap_segment_mem (current_region); + reset_allocation_pointers (new_gen, new_gen_start); + } + + current_region = heap_segment_next (current_region); + } + + int highest_gen_modified = min ((condemned_gen_number + 1), max_generation); + for (int i = 0; i <= highest_gen_modified; i++) + { + generation* gen = generation_of (i); + heap_segment_next (generation_tail_region (gen)) = 0; + dprintf (REGIONS_LOG, ("setting gen%d tail %Ix next to 0", + i, heap_segment_mem (generation_tail_region (gen)))); + } + + ephemeral_heap_segment = generation_start_segment (generation_of (0)); + alloc_allocated = heap_segment_allocated (ephemeral_heap_segment); +#else //USE_REGIONS assert (generation_allocation_segment (consing_gen) == ephemeral_heap_segment); - //assign the planned allocation start to the generation - int gen_number = condemned_gen_number; int bottom_gen = 0; while (gen_number >= bottom_gen) @@ -25063,14 +26844,16 @@ void gc_heap::fix_generation_bounds (int condemned_gen_number, } } #endif //MULTIPLE_HEAPS +#endif //!USE_REGIONS + { alloc_allocated = heap_segment_plan_allocated(ephemeral_heap_segment); //reset the allocated size #ifdef _DEBUG - uint8_t* start = generation_allocation_start (youngest_generation); + uint8_t* start = get_soh_start_object (ephemeral_heap_segment, youngest_generation); if (settings.promotion && !settings.demotion) { - assert ((start + Align (size (start))) == + assert ((start + get_soh_start_obj_len (start)) == heap_segment_plan_allocated(ephemeral_heap_segment)); } #endif //_DEBUG @@ -25079,6 +26862,7 @@ void gc_heap::fix_generation_bounds (int condemned_gen_number, } } +#ifndef USE_REGIONS uint8_t* gc_heap::generation_limit (int gen_number) { if (settings.promotion) @@ -25096,9 +26880,11 @@ uint8_t* gc_heap::generation_limit (int gen_number) return generation_allocation_start (generation_of ((gen_number - 1))); } } +#endif //!USE_REGIONS BOOL gc_heap::ensure_gap_allocation (int condemned_gen_number) { +#ifndef USE_REGIONS uint8_t* start = heap_segment_allocated (ephemeral_heap_segment); size_t size = Align (min_obj_size)*(condemned_gen_number+1); assert ((start + size) <= @@ -25111,6 +26897,7 @@ BOOL gc_heap::ensure_gap_allocation (int condemned_gen_number) return FALSE; } } +#endif //USE_REGIONS return TRUE; } @@ -25129,6 +26916,156 @@ uint8_t* gc_heap::allocate_at_end (size_t size) return result; } +#ifdef USE_REGIONS +// Find the first non empty region and also does the following in the process - +// + decommit end of region if it's not a gen0 region; +// + set the region gen_num to the new one; +// +// For empty regions, we always return empty regions to free unless it's a gen +// start region. Note that I'm returning gen0 empty regions as well, however, +// returning a region to free does not decommit. +// +// If gen_num is -1, it means this is called for a compacting GC and we'll need +// to also set the allocated. +heap_segment* gc_heap::find_first_valid_region (heap_segment* region, int gen_num) +{ + check_seg_gen_num (generation_allocation_segment (generation_of (max_generation))); + + dprintf (REGIONS_LOG, (" FFVR gen%d(%d), region %Ix(%Ix)", + gen_num, (region ? heap_segment_gen_num (region) : 0), + (size_t)region, (region ? heap_segment_mem (region) : 0))); + if (!region) + return 0; + + heap_segment* current_region = region; + + do + { + int plan_gen_num = gen_num; + heap_segment* plan_start_region = 0; + if (gen_num == -1) + { + assert (settings.compaction); + plan_gen_num = heap_segment_plan_gen_num (current_region); + plan_start_region = generation_plan_start_segment (generation_of (plan_gen_num)); + dprintf (REGIONS_LOG, (" gen%d->%d plan start region %Ix", + gen_num, plan_gen_num, heap_segment_mem (plan_start_region))); + } + + uint8_t* allocated = ((gen_num == -1) ? + heap_segment_plan_allocated (current_region) : + heap_segment_allocated (current_region)); + if ((heap_segment_mem (current_region) == allocated) && + !((gen_num == -1) && (current_region == plan_start_region))) + { + heap_segment* region_to_delete = current_region; + current_region = heap_segment_next (current_region); + return_free_region (region_to_delete); + dprintf (REGIONS_LOG, (" h%d gen%d return region %Ix to free, current->%Ix(%Ix)", + heap_number, gen_num, heap_segment_mem (region_to_delete), + current_region, (current_region ? heap_segment_mem (current_region) : 0))); + if (!current_region) + return 0; + } + else + { + if (gen_num == -1) + { + dprintf (REGIONS_LOG, (" gen%d setting region %Ix alloc %Ix to plan %Ix", + gen_num, heap_segment_mem (current_region), + heap_segment_allocated (current_region), + heap_segment_plan_allocated (current_region))); + gen_num = plan_gen_num; + heap_segment_allocated (current_region) = heap_segment_plan_allocated (current_region); + } + else + { + // Set this so we keep plan gen and gen the same. + set_region_plan_gen_num (current_region, gen_num); + } + + if (gen_num != 0) + { + dprintf (REGIONS_LOG, (" gen%d decommit end of region %Ix(%Ix)", + gen_num, current_region, heap_segment_mem (current_region))); + decommit_heap_segment_pages (current_region, 0); + } + + dprintf (REGIONS_LOG, (" set region %Ix(%Ix) gen num to %d", + current_region, heap_segment_mem (current_region), gen_num)); + set_region_gen_num (current_region, gen_num); + return current_region; + } + } while (current_region); + + return current_region; +} + +void gc_heap::thread_start_region (generation* gen, heap_segment* region) +{ + heap_segment* prev_region = generation_tail_ro_region (gen); + + if (prev_region) + { + heap_segment_next (prev_region) = region; + dprintf (REGIONS_LOG,("gen%d tail ro %Ix(%Ix) next -> %Ix(%Ix)", + gen->gen_num, (size_t)prev_region, heap_segment_mem (prev_region), + (size_t)region, heap_segment_mem (region))); + } + else + { + generation_start_segment (gen) = region; + dprintf (REGIONS_LOG, ("start region of gen%d -> %Ix(%Ix)", gen->gen_num, + (size_t)region, heap_segment_mem (region))); + } + + dprintf (REGIONS_LOG, ("tail region of gen%d -> %Ix(%Ix)", gen->gen_num, + (size_t)region, heap_segment_mem (region))); + generation_tail_region (gen) = region; + + set_region_gen_num (region, gen->gen_num); + set_region_plan_gen_num (region, gen->gen_num); +} + +// This method starts with the next region of start_region and thread each non empty region onto gen +// till the end at which point it also sets that gen's tail_region. +// If there's no more non empty regions after start_region, then it will become the tail +// of this generation. +// +// Only called by the sweep phase. +void gc_heap::thread_rest_of_generation (generation* gen, heap_segment* start_region) +{ + int gen_num = gen->gen_num; + heap_segment* prev_region = start_region; + heap_segment* next_valid_region = heap_segment_next (start_region); + dprintf (REGIONS_LOG, ("gen%d threading non empty regions after %Ix", + gen->gen_num, heap_segment_mem (start_region))); + while (next_valid_region = find_first_valid_region (next_valid_region, gen_num)) + { + dprintf (REGIONS_LOG, ("gen%d threading %Ix->%Ix", + gen->gen_num, heap_segment_mem (prev_region), + heap_segment_mem (next_valid_region))); + heap_segment_next (prev_region) = next_valid_region; + prev_region = next_valid_region; + next_valid_region = heap_segment_next (next_valid_region); + } + + dprintf (REGIONS_LOG, ("gen%d tail region ->%Ix", gen_num, heap_segment_mem (prev_region))); + generation_tail_region (gen) = prev_region; + + heap_segment_next (generation_tail_region (gen)) = 0; +} + +heap_segment* gc_heap::get_new_region (int gen_number) +{ + heap_segment* new_region = get_free_region (gen_number); + generation* gen = generation_of (gen_number); + heap_segment_next (generation_tail_region (gen)) = new_region; + generation_tail_region (gen) = new_region; + + return new_region; +} +#endif //USE_REGIONS void gc_heap::make_free_lists (int condemned_gen_number) { @@ -25136,10 +27073,10 @@ void gc_heap::make_free_lists (int condemned_gen_number) assert (settings.promotion); generation* condemned_gen = generation_of (condemned_gen_number); - uint8_t* start_address = generation_allocation_start (condemned_gen); - size_t current_brick = brick_of (start_address); heap_segment* current_heap_segment = heap_segment_rw (generation_start_segment (condemned_gen)); + uint8_t* start_address = get_soh_start_object (current_heap_segment, condemned_gen); + size_t current_brick = brick_of (start_address); PREFIX_ASSUME(current_heap_segment != NULL); @@ -25147,19 +27084,28 @@ void gc_heap::make_free_lists (int condemned_gen_number) size_t end_brick = brick_of (end_address-1); make_free_args args; args.free_list_gen_number = min (max_generation, 1 + condemned_gen_number); +#ifdef USE_REGIONS + int current_gen_num = condemned_gen_number; + dprintf (REGIONS_LOG, ("starting at gen%d %Ix -> %Ix", + condemned_gen_number, start_address, end_address)); +#else args.current_gen_limit = (((condemned_gen_number == max_generation)) ? MAX_PTR : (generation_limit (args.free_list_gen_number))); +#endif //USE_REGIONS args.free_list_gen = generation_of (args.free_list_gen_number); args.highest_plug = 0; +#ifndef USE_REGIONS if ((start_address < end_address) || (condemned_gen_number == max_generation)) +#endif //!USE_REGIONS { while (1) { if ((current_brick > end_brick)) { +#ifndef USE_REGIONS if (args.current_gen_limit == MAX_PTR) { //We had an empty segment @@ -25180,18 +27126,47 @@ void gc_heap::make_free_lists (int condemned_gen_number) max_generation, (size_t)gap)); args.current_gen_limit = generation_limit (args.free_list_gen_number); } +#endif //!USE_REGIONS + if (heap_segment_next_rw (current_heap_segment)) { current_heap_segment = heap_segment_next_rw (current_heap_segment); - current_brick = brick_of (heap_segment_mem (current_heap_segment)); - end_brick = brick_of (heap_segment_allocated (current_heap_segment)-1); - - continue; } else { - break; +#ifdef USE_REGIONS + if (current_gen_num > 0) + { + current_gen_num--; + + int plan_gen_num = get_plan_gen_num (current_gen_num); + + generation* current_gen = generation_of (current_gen_num); + current_heap_segment = generation_start_segment (current_gen); + + dprintf (REGIONS_LOG, ("moving onto gen%d (plan %d), %Ix->%Ix, promoting to gen%d", + current_gen_num, plan_gen_num, (size_t)current_heap_segment, + heap_segment_mem (current_heap_segment), plan_gen_num)); + + if (plan_gen_num != args.free_list_gen_number) + { + args.free_list_gen_number--; + assert (plan_gen_num == args.free_list_gen_number); + args.free_list_gen = generation_of (args.free_list_gen_number); + dprintf (REGIONS_LOG,("starting new gen%d on region %Ix", + args.free_list_gen_number, heap_segment_mem (current_heap_segment))); + } + } + else +#endif //USE_REGIONS + { + break; + } } + + current_brick = brick_of (heap_segment_mem (current_heap_segment)); + end_brick = brick_of (heap_segment_allocated (current_heap_segment)-1); + continue; } { int brick_entry = brick_table [ current_brick ]; @@ -25224,6 +27199,98 @@ void gc_heap::make_free_lists (int condemned_gen_number) } } { +#ifdef USE_REGIONS + // Each condemned gen falls into one of the 2 cases - + // either its new gen is already constructed, in which case it needs to thread its regions + // onto that existing new gen; + // or the new gen does not exist, in which case it needs to constructed its new gen. + // + // We need to change the plan gen num for regions because in some code paths (like + // mark_through_cards_help) we are getting the plan gen num and it needs to be correct. + // Instead of having those code paths have to check if they are looking at an object in + // the condemned gen first, then get the plan gen num. We just gaurantee that the plan + // gen num is always correct. + // + // REGIONS TODO! + // We might consider calling this on one heap in a serialized fashion + // because of decommit like we did with rearrange_heap_segments. The OS did change though + // so we may not need to do this anymore. Should try out the new OS change see how well it + // works. + current_gen_num = condemned_gen_number; + + check_seg_gen_num (generation_allocation_segment (generation_of (max_generation))); + + while (current_gen_num >= 0) + { + int new_gen_num = get_plan_gen_num (current_gen_num); + generation* new_gen = generation_of (new_gen_num); + dprintf (REGIONS_LOG, ("gen%d->%d", current_gen_num, new_gen_num)); + + // If the new gen is outside the condemned gens, it always already exists, + // unless we are condemning max_gen. + bool new_gen_exists_p = (new_gen_num > condemned_gen_number); + if (condemned_gen_number == max_generation) + { + new_gen_exists_p = (current_gen_num == (max_generation - 1)); + } + dprintf (REGIONS_LOG, ("new_gen%d %s", new_gen_num, (new_gen_exists_p ? "exists" : "doesn't exist"))); + + if (new_gen_exists_p) + { + assert (current_gen_num != max_generation); + heap_segment* region = heap_segment_rw (generation_start_segment (generation_of (current_gen_num))); + dprintf (REGIONS_LOG, ("appending gen%d with gen%d seg starting %Ix(%Ix)", + new_gen_num, current_gen_num, (size_t)region, heap_segment_mem (region))); + heap_segment* next_valid_region = find_first_valid_region (region, new_gen_num); + + if (next_valid_region) + { + heap_segment* tail_region = generation_tail_region (new_gen); + heap_segment_next (tail_region) = next_valid_region; + dprintf (REGIONS_LOG, ("set tail to %Ix(%Ix) and its next to %Ix(%Ix)", + (size_t)tail_region, heap_segment_mem (tail_region), + (size_t)next_valid_region, heap_segment_mem (next_valid_region))); + thread_rest_of_generation (new_gen, next_valid_region); + } + } + else + { + heap_segment* start_region = heap_segment_rw (generation_start_segment (generation_of (current_gen_num))); + heap_segment* start_new_region = find_first_valid_region (start_region, new_gen_num); + heap_segment* old_start_region = heap_segment_rw (generation_start_segment (generation_of (new_gen_num))); + dprintf (REGIONS_LOG, ("new_gen%d start was %Ix(%Ix), is now %Ix(%Ix)", + new_gen_num, + (size_t)old_start_region, heap_segment_mem (old_start_region), + (size_t)start_new_region, (start_new_region ? heap_segment_mem (start_new_region) : 0))); + if (start_new_region) + { + thread_start_region (new_gen, start_new_region); + thread_rest_of_generation (new_gen, start_new_region); + } + else + { + heap_segment* new_region = get_free_region (new_gen_num); + thread_start_region (new_gen, new_region); + } + + uint8_t* new_gen_start = heap_segment_mem (heap_segment_rw (generation_start_segment (new_gen))); + reset_allocation_pointers (new_gen, new_gen_start); + } + + current_gen_num--; + } + + // We need to get a new region for the new gen0. + assert (num_free_regions > 0); + generation* gen_gen0 = generation_of (0); + heap_segment* gen0_region = get_free_region (0); + thread_start_region (gen_gen0, gen0_region); + ephemeral_heap_segment = gen0_region; + reset_allocation_pointers (gen_gen0, heap_segment_mem (gen0_region)); + alloc_allocated = heap_segment_allocated (ephemeral_heap_segment); + // Since we didn't compact, we should recalculate the end_gen0_region_space. + end_gen0_region_space = get_gen0_end_space(); +#else int bottom_gen = 0; args.free_list_gen_number--; while (args.free_list_gen_number >= bottom_gen) @@ -25244,6 +27311,7 @@ void gc_heap::make_free_lists (int condemned_gen_number) //reset the allocated size uint8_t* start2 = generation_allocation_start (youngest_generation); alloc_allocated = start2 + Align (size (start2)); +#endif //USE_REGIONS } } @@ -25259,16 +27327,14 @@ void gc_heap::make_free_list_in_brick (uint8_t* tree, make_free_args* args) if (! (0 == left_node)) { make_free_list_in_brick (tree + left_node, args); - } { uint8_t* plug = tree; size_t gap_size = node_gap_size (tree); uint8_t* gap = (plug - gap_size); - dprintf (3,("Making free list %Ix len %d in %d", - //dprintf (3,("F: %Ix len %Ix in %d", - (size_t)gap, gap_size, args->free_list_gen_number)); args->highest_plug = tree; + dprintf (3,("plug: %Ix (highest p: %Ix), free %Ix len %Id in %d", + plug, args->highest_plug, (size_t)gap, gap_size, args->free_list_gen_number)); #ifdef SHORT_PLUGS if (is_plug_padded (plug)) { @@ -25291,6 +27357,7 @@ void gc_heap::make_free_list_in_brick (uint8_t* tree, make_free_args* args) } #endif //DOUBLY_LINKED_FL +#ifndef USE_REGIONS gen_crossing: { if ((args->current_gen_limit == MAX_PTR) || @@ -25326,6 +27393,7 @@ void gc_heap::make_free_list_in_brick (uint8_t* tree, make_free_args* args) goto gen_crossing; } } +#endif //!USE_REGIONS thread_gap (gap, gap_size, args->free_list_gen); add_gen_free (args->free_list_gen->gen_num, gap_size); @@ -25340,7 +27408,10 @@ void gc_heap::make_free_list_in_brick (uint8_t* tree, make_free_args* args) void gc_heap::thread_gap (uint8_t* gap_start, size_t size, generation* gen) { +#ifndef USE_REGIONS assert (generation_allocation_start (gen)); +#endif + if ((size > 0)) { if ((gen->gen_num == 0) && (size > CLR_SIZE)) @@ -25348,9 +27419,11 @@ void gc_heap::thread_gap (uint8_t* gap_start, size_t size, generation* gen) gen0_big_free_spaces += size; } - assert ((heap_segment_rw (generation_start_segment (gen))!= - ephemeral_heap_segment) || +#ifndef USE_REGIONS + assert ((heap_segment_rw (generation_start_segment (gen)) != ephemeral_heap_segment) || (gap_start > generation_allocation_start (gen))); +#endif //USE_REGIONS + // The beginning of a segment gap is not aligned assert (size >= Align (min_obj_size)); make_unused_array (gap_start, size, @@ -25372,7 +27445,10 @@ void gc_heap::thread_gap (uint8_t* gap_start, size_t size, generation* gen) void gc_heap::loh_thread_gap_front (uint8_t* gap_start, size_t size, generation* gen) { +#ifndef USE_REGIONS assert (generation_allocation_start (gen)); +#endif + if (size >= min_free_list) { generation_free_list_space (gen) += size; @@ -25533,6 +27609,12 @@ bool gc_heap::frozen_object_p (Object* obj) void gc_heap::relocate_address (uint8_t** pold_address THREAD_NUMBER_DCL) { uint8_t* old_address = *pold_address; +#ifdef USE_REGIONS + if (!old_address || !is_in_condemned (old_address)) + { + return; + } +#else //USE_REGIONS if (!((old_address >= gc_low) && (old_address < gc_high))) #ifdef MULTIPLE_HEAPS { @@ -25547,6 +27629,7 @@ void gc_heap::relocate_address (uint8_t** pold_address THREAD_NUMBER_DCL) #else //MULTIPLE_HEAPS return ; #endif //MULTIPLE_HEAPS +#endif //USE_REGIONS // delta translates old_address into address_gc (old_address); size_t brick = brick_of (old_address); int brick_entry = brick_table [ brick ]; @@ -25592,6 +27675,14 @@ void gc_heap::relocate_address (uint8_t** pold_address THREAD_NUMBER_DCL) if (settings.loh_compaction) { heap_segment* pSegment = seg_mapping_table_segment_of ((uint8_t*)old_address); +#ifdef USE_REGIONS + // pSegment could be 0 for regions, see comment for is_in_condemned. + if (!pSegment) + { + return; + } +#endif //USE_REGIONS + #ifdef MULTIPLE_HEAPS if (heap_segment_heap (pSegment)->loh_compacted_p) #else @@ -25654,6 +27745,17 @@ gc_heap::check_class_object_demotion_internal (uint8_t* obj) inline void gc_heap::check_demotion_helper (uint8_t** pval, uint8_t* parent_obj) { +#ifdef USE_REGIONS + uint8_t* child_object = *pval; + if (!child_object) return; + int child_object_plan_gen = get_region_plan_gen_num (child_object); + bool child_obj_demoted_p = is_region_demoted (child_object); + + if (child_obj_demoted_p) + { + set_card (card_of (parent_obj)); + } +#else //USE_REGIONS // detect if we are demoting an object if ((*pval < demotion_high) && (*pval >= demotion_low)) @@ -25680,6 +27782,7 @@ gc_heap::check_demotion_helper (uint8_t** pval, uint8_t* parent_obj) } } #endif //MULTIPLE_HEAPS +#endif //USE_REGIONS } inline void @@ -25722,33 +27825,10 @@ void gc_heap::reloc_ref_in_shortened_obj (uint8_t** address_to_set_card, uint8_t relocate_address (address_to_reloc THREAD_NUMBER_ARG); if (address_to_reloc) { - dprintf (3, ("SR %Ix: %Ix->%Ix", (uint8_t*)address_to_reloc, old_val, *address_to_reloc)); - } - - //check_demotion_helper (current_saved_info_to_relocate, (uint8_t*)pval); - uint8_t* relocated_addr = *address_to_reloc; - if ((relocated_addr < demotion_high) && - (relocated_addr >= demotion_low)) - { - dprintf (3, ("set card for location %Ix(%Ix)", - (size_t)address_to_set_card, card_of((uint8_t*)address_to_set_card))); - - set_card (card_of ((uint8_t*)address_to_set_card)); + dprintf (3, ("SR %Ix: %Ix->%Ix", (uint8_t*)address_to_reloc, old_val, *address_to_reloc)); } -#ifdef MULTIPLE_HEAPS - else if (settings.demotion) - { - gc_heap* hp = heap_of (relocated_addr); - if ((relocated_addr < hp->demotion_high) && - (relocated_addr >= hp->demotion_low)) - { - dprintf (3, ("%Ix on h%d, set card for location %Ix(%Ix)", - relocated_addr, hp->heap_number, (size_t)address_to_set_card, card_of((uint8_t*)address_to_set_card))); - set_card (card_of ((uint8_t*)address_to_set_card)); - } - } -#endif //MULTIPLE_HEAPS + check_demotion_helper (address_to_reloc, (uint8_t*)address_to_set_card); } void gc_heap::relocate_pre_plug_info (mark* pinned_plug_entry) @@ -26021,8 +28101,9 @@ void gc_heap::relocate_survivors_in_plug (uint8_t* plug, uint8_t* plug_end, BOOL check_last_object_p, mark* pinned_plug_entry) { - //dprintf(3,("Relocating pointers in Plug [%Ix,%Ix[", (size_t)plug, (size_t)plug_end)); - dprintf (3,("RP: [%Ix,%Ix[", (size_t)plug, (size_t)plug_end)); + dprintf (3,("RP: [%Ix(%Ix->%Ix),%Ix(%Ix->%Ix)[", + (size_t)plug, brick_of (plug), (size_t)brick_table[brick_of (plug)], + (size_t)plug_end, brick_of (plug_end), (size_t)brick_table[brick_of (plug_end)])); if (check_last_object_p) { @@ -26103,65 +28184,73 @@ void gc_heap::update_oldest_pinned_plug() void gc_heap::relocate_survivors (int condemned_gen_number, uint8_t* first_condemned_address) { - generation* condemned_gen = generation_of (condemned_gen_number); - uint8_t* start_address = first_condemned_address; - size_t current_brick = brick_of (start_address); - heap_segment* current_heap_segment = heap_segment_rw (generation_start_segment (condemned_gen)); - - PREFIX_ASSUME(current_heap_segment != NULL); - - uint8_t* end_address = 0; - reset_pinned_queue_bos(); update_oldest_pinned_plug(); - end_address = heap_segment_allocated (current_heap_segment); + int stop_gen_idx = get_stop_generation_index (condemned_gen_number); - size_t end_brick = brick_of (end_address - 1); - relocate_args args; - args.is_shortened = FALSE; - args.pinned_plug_entry = 0; - args.last_plug = 0; - while (1) +#ifndef USE_REGIONS + assert (first_condemned_address == generation_allocation_start (generation_of (condemned_gen_number))); +#endif //!USE_REGIONS + + for (int i = condemned_gen_number; i >= stop_gen_idx; i--) { - if (current_brick > end_brick) + generation* condemned_gen = generation_of (i); + heap_segment* current_heap_segment = heap_segment_rw (generation_start_segment (condemned_gen)); + uint8_t* start_address = get_soh_start_object (current_heap_segment, condemned_gen); + size_t current_brick = brick_of (start_address); + + PREFIX_ASSUME(current_heap_segment != NULL); + + uint8_t* end_address = heap_segment_allocated (current_heap_segment); + + size_t end_brick = brick_of (end_address - 1); + relocate_args args; + args.is_shortened = FALSE; + args.pinned_plug_entry = 0; + args.last_plug = 0; + + while (1) { - if (args.last_plug) + if (current_brick > end_brick) { + if (args.last_plug) { - assert (!(args.is_shortened)); - relocate_survivors_in_plug (args.last_plug, - heap_segment_allocated (current_heap_segment), - args.is_shortened, - args.pinned_plug_entry); - } + { + assert (!(args.is_shortened)); + relocate_survivors_in_plug (args.last_plug, + heap_segment_allocated (current_heap_segment), + args.is_shortened, + args.pinned_plug_entry); + } - args.last_plug = 0; - } + args.last_plug = 0; + } - if (heap_segment_next_rw (current_heap_segment)) - { - current_heap_segment = heap_segment_next_rw (current_heap_segment); - current_brick = brick_of (heap_segment_mem (current_heap_segment)); - end_brick = brick_of (heap_segment_allocated (current_heap_segment)-1); - continue; + if (heap_segment_next_rw (current_heap_segment)) + { + current_heap_segment = heap_segment_next_rw (current_heap_segment); + current_brick = brick_of (heap_segment_mem (current_heap_segment)); + end_brick = brick_of (heap_segment_allocated (current_heap_segment)-1); + continue; + } + else + { + break; + } } - else { - break; - } - } - { - int brick_entry = brick_table [ current_brick ]; + int brick_entry = brick_table [ current_brick ]; - if (brick_entry >= 0) - { - relocate_survivors_in_brick (brick_address (current_brick) + - brick_entry -1, - &args); + if (brick_entry >= 0) + { + relocate_survivors_in_brick (brick_address (current_brick) + + brick_entry -1, + &args); + } } + current_brick++; } - current_brick++; } } @@ -26258,57 +28347,63 @@ void gc_heap::walk_relocation_in_brick (uint8_t* tree, walk_relocate_args* args) void gc_heap::walk_relocation (void* profiling_context, record_surv_fn fn) { - generation* condemned_gen = generation_of (settings.condemned_generation); - uint8_t* start_address = generation_allocation_start (condemned_gen); - size_t current_brick = brick_of (start_address); - heap_segment* current_heap_segment = heap_segment_rw (generation_start_segment (condemned_gen)); + int condemned_gen_number = settings.condemned_generation; + int stop_gen_idx = get_stop_generation_index (condemned_gen_number); - PREFIX_ASSUME(current_heap_segment != NULL); + for (int i = condemned_gen_number; i >= stop_gen_idx; i--) + { + generation* condemned_gen = generation_of (i); + heap_segment* current_heap_segment = heap_segment_rw (generation_start_segment (condemned_gen)); + uint8_t* start_address = get_soh_start_object (current_heap_segment, condemned_gen); + size_t current_brick = brick_of (start_address); - reset_pinned_queue_bos(); - update_oldest_pinned_plug(); - size_t end_brick = brick_of (heap_segment_allocated (current_heap_segment)-1); - walk_relocate_args args; - args.is_shortened = FALSE; - args.pinned_plug_entry = 0; - args.last_plug = 0; - args.profiling_context = profiling_context; - args.fn = fn; + PREFIX_ASSUME(current_heap_segment != NULL); - while (1) - { - if (current_brick > end_brick) + reset_pinned_queue_bos(); + update_oldest_pinned_plug(); + size_t end_brick = brick_of (heap_segment_allocated (current_heap_segment)-1); + walk_relocate_args args; + args.is_shortened = FALSE; + args.pinned_plug_entry = 0; + args.last_plug = 0; + args.profiling_context = profiling_context; + args.fn = fn; + + while (1) { - if (args.last_plug) - { - walk_plug (args.last_plug, - (heap_segment_allocated (current_heap_segment) - args.last_plug), - args.is_shortened, - &args); - args.last_plug = 0; - } - if (heap_segment_next_rw (current_heap_segment)) - { - current_heap_segment = heap_segment_next_rw (current_heap_segment); - current_brick = brick_of (heap_segment_mem (current_heap_segment)); - end_brick = brick_of (heap_segment_allocated (current_heap_segment)-1); - continue; - } - else + if (current_brick > end_brick) { - break; + if (args.last_plug) + { + walk_plug (args.last_plug, + (heap_segment_allocated (current_heap_segment) - args.last_plug), + args.is_shortened, + &args); + args.last_plug = 0; + } + if (heap_segment_next_rw (current_heap_segment)) + { + current_heap_segment = heap_segment_next_rw (current_heap_segment); + current_brick = brick_of (heap_segment_mem (current_heap_segment)); + end_brick = brick_of (heap_segment_allocated (current_heap_segment)-1); + continue; + } + else + { + break; + } } - } - { - int brick_entry = brick_table [ current_brick ]; - if (brick_entry >= 0) { - walk_relocation_in_brick (brick_address (current_brick) + - brick_entry - 1, - &args); + int brick_entry = brick_table [ current_brick ]; + if (brick_entry >= 0) + { + walk_relocation_in_brick (brick_address (current_brick) + + brick_entry - 1, + &args); + } } + current_brick++; } - current_brick++; } } @@ -26329,7 +28424,7 @@ void gc_heap::walk_survivors_for_bgc (void* profiling_context, record_surv_fn fn { assert(settings.concurrent); - for (int i = max_generation; i < total_generation_count; i++) + for (int i = get_start_generation_index(); i < total_generation_count; i++) { int align_const = get_alignment_constant (i == max_generation); heap_segment* seg = heap_segment_rw (generation_start_segment (generation_of (i))); @@ -26428,7 +28523,6 @@ void gc_heap::relocate_phase (int condemned_gen_number, __this); #endif // FEATURE_PREMORTEM_FINALIZATION - { dprintf(3, ("Relocating handle table")); GCScan::GcScanHandles(GCHeap::Relocate, @@ -26503,7 +28597,6 @@ void gc_heap::relocate_phase (int condemned_gen_number, __this); #endif // FEATURE_PREMORTEM_FINALIZATION - // MTHTS { dprintf(3,("Relocating handle table")); @@ -26977,15 +29070,18 @@ void gc_heap::compact_phase (int condemned_gen_number, } #endif //MULTIPLE_HEAPS - generation* condemned_gen = generation_of (condemned_gen_number); - uint8_t* start_address = first_condemned_address; - size_t current_brick = brick_of (start_address); - heap_segment* current_heap_segment = heap_segment_rw (generation_start_segment (condemned_gen)); - PREFIX_ASSUME(current_heap_segment != NULL); + dprintf (2,("---- Compact Phase: %Ix(%Ix)----", + first_condemned_address, brick_of (first_condemned_address))); + +#ifdef FEATURE_LOH_COMPACTION + if (loh_compacted_p) + { + compact_loh(); + } +#endif //FEATURE_LOH_COMPACTION reset_pinned_queue_bos(); update_oldest_pinned_plug(); - BOOL reused_seg = expand_reused_seg_p(); if (reused_seg) { @@ -26995,35 +29091,48 @@ void gc_heap::compact_phase (int condemned_gen_number, } } - uint8_t* end_address = heap_segment_allocated (current_heap_segment); - - size_t end_brick = brick_of (end_address-1); - compact_args args; - args.last_plug = 0; - args.before_last_plug = 0; - args.current_compacted_brick = ~((size_t)1); - args.is_shortened = FALSE; - args.pinned_plug_entry = 0; - args.copy_cards_p = (condemned_gen_number >= 1) || !clear_cards; - args.check_gennum_p = reused_seg; - if (args.check_gennum_p) +#ifdef USE_REGIONS + for (int i = condemned_gen_number; i >= 0; i--) +#else + int i = condemned_gen_number; +#endif //USE_REGIONS { - args.src_gennum = ((current_heap_segment == ephemeral_heap_segment) ? -1 : 2); - } + generation* condemned_gen = generation_of (i); + heap_segment* current_heap_segment = heap_segment_rw (generation_start_segment (condemned_gen)); + PREFIX_ASSUME(current_heap_segment != NULL); - dprintf (2,("---- Compact Phase: %Ix(%Ix)----", - first_condemned_address, brick_of (first_condemned_address))); +#ifdef USE_REGIONS + size_t current_brick = brick_of (heap_segment_mem (current_heap_segment)); +#else + size_t current_brick = brick_of (first_condemned_address); +#endif //USE_REGIONS -#ifdef FEATURE_LOH_COMPACTION - if (loh_compacted_p) - { - compact_loh(); - } -#endif //FEATURE_LOH_COMPACTION + uint8_t* end_address = heap_segment_allocated (current_heap_segment); + +#ifndef USE_REGIONS + if ((first_condemned_address >= end_address) && (condemned_gen_number < max_generation)) + { + return; + } +#endif //!USE_REGIONS + + size_t end_brick = brick_of (end_address-1); + compact_args args; + args.last_plug = 0; + args.before_last_plug = 0; + args.current_compacted_brick = ~((size_t)1); + args.is_shortened = FALSE; + args.pinned_plug_entry = 0; + args.copy_cards_p = (condemned_gen_number >= 1) || !clear_cards; + args.check_gennum_p = reused_seg; + if (args.check_gennum_p) + { + args.src_gennum = ((current_heap_segment == ephemeral_heap_segment) ? -1 : 2); + } +#ifdef USE_REGIONS + assert (!args.check_gennum_p); +#endif //USE_REGIONS - if ((start_address < end_address) || - (condemned_gen_number == max_generation)) - { while (1) { if (current_brick > end_brick) @@ -27334,7 +29443,7 @@ BOOL gc_heap::should_commit_mark_array() void gc_heap::clear_commit_flag() { - for (int i = max_generation; i < total_generation_count; i++) + for (int i = get_start_generation_index(); i < total_generation_count; i++) { generation* gen = generation_of (i); heap_segment* seg = heap_segment_in_range (generation_start_segment (gen)); @@ -27390,12 +29499,23 @@ void gc_heap::verify_mark_array_cleared (uint8_t* begin, uint8_t* end, uint32_t* #endif //_DEBUG } +uint8_t* gc_heap::get_start_address (heap_segment* seg) +{ + uint8_t* start = +#ifdef USE_REGIONS + heap_segment_mem (seg); +#else + (heap_segment_read_only_p(seg) ? heap_segment_mem (seg) : (uint8_t*)seg); +#endif //USE_REGIONS + return start; +} + BOOL gc_heap::commit_mark_array_new_seg (gc_heap* hp, heap_segment* seg, uint32_t* new_card_table, uint8_t* new_lowest_address) { - uint8_t* start = (heap_segment_read_only_p(seg) ? heap_segment_mem(seg) : (uint8_t*)seg); + uint8_t* start = get_start_address (seg); uint8_t* end = heap_segment_reserved (seg); uint8_t* lowest = hp->background_saved_lowest_address; @@ -27497,7 +29617,7 @@ BOOL gc_heap::commit_mark_array_by_range (uint8_t* begin, uint8_t* end, uint32_t BOOL gc_heap::commit_mark_array_with_check (heap_segment* seg, uint32_t* new_mark_array_addr) { - uint8_t* start = (heap_segment_read_only_p(seg) ? heap_segment_mem(seg) : (uint8_t*)seg); + uint8_t* start = get_start_address (seg); uint8_t* end = heap_segment_reserved (seg); #ifdef MULTIPLE_HEAPS @@ -27528,7 +29648,7 @@ BOOL gc_heap::commit_mark_array_by_seg (heap_segment* seg, uint32_t* mark_array_ seg, heap_segment_reserved (seg), mark_array_addr)); - uint8_t* start = (heap_segment_read_only_p (seg) ? heap_segment_mem (seg) : (uint8_t*)seg); + uint8_t* start = get_start_address (seg); return commit_mark_array_by_range (start, heap_segment_reserved (seg), mark_array_addr); } @@ -27538,7 +29658,7 @@ BOOL gc_heap::commit_mark_array_bgc_init() dprintf (GC_TABLE_LOG, ("BGC init commit: lowest: %Ix, highest: %Ix, mark_array: %Ix", lowest_address, highest_address, mark_array)); - for (int i = max_generation; i < total_generation_count; i++) + for (int i = get_start_generation_index(); i < total_generation_count; i++) { generation* gen = generation_of (i); heap_segment* seg = heap_segment_in_range (generation_start_segment (gen)); @@ -27611,7 +29731,7 @@ BOOL gc_heap::commit_new_mark_array (uint32_t* new_mark_array_addr) { dprintf (GC_TABLE_LOG, ("committing existing segs on MA %Ix", new_mark_array_addr)); - for (int i = max_generation; i < total_generation_count; i++) + for (int i = get_start_generation_index(); i < total_generation_count; i++) { generation* gen = generation_of (i); heap_segment* seg = heap_segment_in_range (generation_start_segment (gen)); @@ -27675,7 +29795,7 @@ void gc_heap::decommit_mark_array_by_seg (heap_segment* seg) if ((flags & heap_segment_flags_ma_committed) || (flags & heap_segment_flags_ma_pcommitted)) { - uint8_t* start = (heap_segment_read_only_p(seg) ? heap_segment_mem(seg) : (uint8_t*)seg); + uint8_t* start = get_start_address (seg); uint8_t* end = heap_segment_reserved (seg); if (flags & heap_segment_flags_ma_pcommitted) @@ -27747,11 +29867,14 @@ void gc_heap::background_mark_phase () background_min_overflow_address = MAX_PTR; background_max_overflow_address = 0; +#ifndef USE_REGIONS background_min_soh_overflow_address = MAX_PTR; background_max_soh_overflow_address = 0; +#endif //!USE_REGIONS processed_soh_overflow_p = FALSE; { +#ifdef MARK_LIST //set up the mark lists from g_mark_list assert (g_mark_list); mark_list = g_mark_list; @@ -27760,6 +29883,7 @@ void gc_heap::background_mark_phase () //is likely to overflow mark_list_end = &mark_list [0]; mark_list_index = &mark_list [0]; +#endif //MARK_LIST c_mark_list_index = 0; @@ -27800,7 +29924,9 @@ void gc_heap::background_mark_phase () FIRE_EVENT(BGC1stNonConEnd); expanded_in_fgc = FALSE; +#ifndef USE_REGIONS saved_overflow_ephemeral_seg = 0; +#endif //!USE_REGIONS current_bgc_state = bgc_reset_ww; // we don't need a join here - just whichever thread that gets here @@ -28221,8 +30347,8 @@ void gc_heap::background_mark_phase () generation* gen = generation_of (gen_idx); dynamic_data* dd = dynamic_data_of (gen_idx); dd_begin_data_size (dd) = generation_size (gen_idx) - - (generation_free_list_space (gen) + generation_free_obj_space (gen)) - - Align (size (generation_allocation_start (gen))); + (generation_free_list_space (gen) + generation_free_obj_space (gen)) - + get_generation_start_size (gen_idx); dd_survived_size (dd) = 0; dd_pinned_survived_size (dd) = 0; dd_artificial_pinned_survived_size (dd) = 0; @@ -28241,11 +30367,13 @@ void gc_heap::background_mark_phase () FATAL_GC_ERROR(); } +#ifndef USE_REGIONS if (seg == ephemeral_heap_segment) { heap_segment_background_allocated (seg) = generation_allocation_start (generation_of (max_generation - 1)); } else +#endif //!USE_REGIONS { heap_segment_background_allocated (seg) = heap_segment_allocated (seg); } @@ -28322,16 +30450,20 @@ gc_heap::restart_EE () #endif //MULTIPLE_HEAPS } -inline uint8_t* gc_heap::high_page ( heap_segment* seg, BOOL concurrent_p) +inline uint8_t* gc_heap::high_page (heap_segment* seg, BOOL concurrent_p) { +#ifdef USE_REGIONS + assert (!concurrent_p || (heap_segment_gen_num (seg) >= max_generation)); +#else if (concurrent_p) { uint8_t* end = ((seg == ephemeral_heap_segment) ? - generation_allocation_start (generation_of (max_generation-1)) : + generation_allocation_start (generation_of (max_generation - 1)) : heap_segment_allocated (seg)); return align_lower_page (end); } else +#endif //USE_REGIONS { return heap_segment_allocated (seg); } @@ -28520,7 +30652,16 @@ void gc_heap::revisit_written_pages (BOOL concurrent_p, BOOL reset_only_p) bool reset_watch_state = !!concurrent_p; bool is_runtime_suspended = !concurrent_p; BOOL small_object_segments = TRUE; - for (int i = max_generation; i < total_generation_count; i++) + int start_gen_idx = get_start_generation_index(); +#ifdef USE_REGIONS + if (concurrent_p && !reset_only_p) + { + // We don't go into ephemeral regions during concurrent revisit. + start_gen_idx = max_generation; + } +#endif //USE_REGIONS + + for (int i = start_gen_idx; i < total_generation_count; i++) { heap_segment* seg = heap_segment_rw (generation_start_segment (generation_of (i))); PREFIX_ASSUME(seg != NULL); @@ -30604,7 +32745,6 @@ BOOL gc_heap::find_card_dword (size_t& cardw, size_t cardw_end) return FALSE; } - } #endif //CARD_BUNDLE @@ -30712,7 +32852,7 @@ BOOL gc_heap::find_card(uint32_t* card_table, } - //because of heap expansion, computing end is complicated. +//because of heap expansion, computing end is complicated. uint8_t* compute_next_end (heap_segment* seg, uint8_t* low) { if ((low >= heap_segment_mem (seg)) && @@ -30722,6 +32862,8 @@ uint8_t* compute_next_end (heap_segment* seg, uint8_t* low) return heap_segment_allocated (seg); } + +#ifndef USE_REGIONS uint8_t* gc_heap::compute_next_boundary (int gen_number, BOOL relocating) @@ -30741,11 +32883,17 @@ gc_heap::compute_next_boundary (int gen_number, return generation_allocation_start (generation_of (gen_number - 1 )); } } +#endif //!USE_REGIONS +// This is called during relocate where n_gen is not used, so for regions +// I'm just taking a shortcut. Should just get rid of this method. inline void gc_heap::keep_card_live (uint8_t* o, size_t& n_gen, size_t& cg_pointers_found) { +#ifdef USE_REGIONS + n_gen++; +#else //USE_REGIONS if ((gc_low <= o) && (gc_high > o)) { n_gen++; @@ -30764,15 +32912,24 @@ gc_heap::keep_card_live (uint8_t* o, size_t& n_gen, } } #endif //MULTIPLE_HEAPS +#endif //USE_REGIONS cg_pointers_found ++; dprintf (4, ("keep card live for %Ix", o)); } +// For regions - +// n_gen means it's pointing into the condemned regions so it's incremented +// if the child object's region is <= condemned_gen. +// cg_pointers_found means it's pointing into a lower generation so it's incremented +// if the child object's region is < current_gen. inline void gc_heap::mark_through_cards_helper (uint8_t** poo, size_t& n_gen, size_t& cg_pointers_found, card_fn fn, uint8_t* nhigh, - uint8_t* next_boundary + uint8_t* next_boundary, + int condemned_gen, + // generation of the parent object + int current_gen CARD_MARKING_STEALING_ARG(gc_heap* hpt)) { #if defined(FEATURE_CARD_MARKING_STEALING) && defined(MULTIPLE_HEAPS) @@ -30783,6 +32940,33 @@ gc_heap::mark_through_cards_helper (uint8_t** poo, size_t& n_gen, gc_heap* hpt = this; #endif #endif + +#ifdef USE_REGIONS + assert (nhigh == 0); + assert (next_boundary == 0); + uint8_t* child_object = *poo; + if (!child_object) return; + int child_object_gen = get_region_gen_num (child_object); + int saved_child_object_gen = child_object_gen; + uint8_t* saved_child_object = child_object; + + if (child_object_gen <= condemned_gen) + { + n_gen++; + call_fn(hpt,fn) (poo THREAD_NUMBER_ARG); + } + + if (fn == &gc_heap::relocate_address) + { + child_object_gen = get_region_plan_gen_num (*poo); + } + + if (child_object_gen < current_gen) + { + cg_pointers_found++; + } +#else //USE_REGIONS + assert (condemned_gen == -1); if ((gc_low <= *poo) && (gc_high > *poo)) { n_gen++; @@ -30815,6 +32999,7 @@ gc_heap::mark_through_cards_helper (uint8_t** poo, size_t& n_gen, dprintf (4, ("cg pointer %Ix found, %Id so far", (size_t)*poo, cg_pointers_found )); } +#endif //USE_REGIONS } BOOL gc_heap::card_transition (uint8_t* po, uint8_t* end, size_t card_word_end, @@ -30974,36 +33159,55 @@ bool gc_heap::find_next_chunk(card_marking_enumerator& card_mark_enumerator, hea void gc_heap::mark_through_cards_for_segments (card_fn fn, BOOL relocating CARD_MARKING_STEALING_ARG(gc_heap* hpt)) { #ifdef BACKGROUND_GC +#ifdef USE_REGIONS + dprintf (3, ("current_sweep_pos is %Ix", current_sweep_pos)); +#else dprintf (3, ("current_sweep_pos is %Ix, saved_sweep_ephemeral_seg is %Ix(%Ix)", current_sweep_pos, saved_sweep_ephemeral_seg, saved_sweep_ephemeral_start)); - - heap_segment* soh_seg = heap_segment_rw (generation_start_segment (generation_of (max_generation))); - PREFIX_ASSUME(soh_seg != NULL); - - while (soh_seg) +#endif //USE_REGIONS + for (int i = get_start_generation_index(); i < max_generation; i++) { - dprintf (3, ("seg %Ix, bgc_alloc: %Ix, alloc: %Ix", - soh_seg, - heap_segment_background_allocated (soh_seg), - heap_segment_allocated (soh_seg))); + heap_segment* soh_seg = heap_segment_rw (generation_start_segment (generation_of (i))); + PREFIX_ASSUME(soh_seg != NULL); - soh_seg = heap_segment_next_rw (soh_seg); + while (soh_seg) + { + dprintf (3, ("seg %Ix, bgc_alloc: %Ix, alloc: %Ix", + soh_seg, + heap_segment_background_allocated (soh_seg), + heap_segment_allocated (soh_seg))); + + soh_seg = heap_segment_next_rw (soh_seg); + } } #endif //BACKGROUND_GC - uint8_t* low = gc_low; - uint8_t* high = gc_high; size_t end_card = 0; generation* oldest_gen = generation_of (max_generation); int curr_gen_number = max_generation; + // Note - condemned_gen is only needed for regions and the other 2 are + // only for if USE_REGIONS is not defined, but I need to pass them to a + // function inside the macro below so just assert they are the unused values. +#ifdef USE_REGIONS + uint8_t* low = 0; + uint8_t* gen_boundary = 0; + uint8_t* next_boundary = 0; + int condemned_gen = settings.condemned_generation; + uint8_t* nhigh = 0; +#else + uint8_t* low = gc_low; + uint8_t* high = gc_high; uint8_t* gen_boundary = generation_allocation_start(generation_of(curr_gen_number - 1)); uint8_t* next_boundary = compute_next_boundary(curr_gen_number, relocating); - + int condemned_gen = -1; + uint8_t* nhigh = (relocating ? + heap_segment_plan_allocated (ephemeral_heap_segment) : high); +#endif //USE_REGIONS heap_segment* seg = heap_segment_rw (generation_start_segment (oldest_gen)); PREFIX_ASSUME(seg != NULL); - uint8_t* beg = generation_allocation_start (oldest_gen); + uint8_t* beg = get_soh_start_object (seg, oldest_gen); uint8_t* end = compute_next_end (seg, low); uint8_t* last_object = beg; @@ -31014,8 +33218,6 @@ void gc_heap::mark_through_cards_for_segments (card_fn fn, BOOL relocating CARD_ size_t n_eph = 0; size_t n_gen = 0; size_t n_card_set = 0; - uint8_t* nhigh = (relocating ? - heap_segment_plan_allocated (ephemeral_heap_segment) : high); BOOL foundp = FALSE; uint8_t* start_address = 0; @@ -31089,13 +33291,33 @@ void gc_heap::mark_through_cards_for_segments (card_fn fn, BOOL relocating CARD_ // we have decided to move to the next segment - make sure we exhaust the chunk enumerator for this segment card_mark_enumerator.exhaust_segment(seg); #endif // FEATURE_CARD_MARKING_STEALING - if ((seg = heap_segment_next_in_range (seg)) != 0) + + seg = heap_segment_next_in_range (seg); +#ifdef USE_REGIONS + if (!seg) + { + curr_gen_number--; + if (curr_gen_number > condemned_gen) + { + // Switch to regions for this generation. + seg = generation_start_segment (generation_of (curr_gen_number)); + dprintf (REGIONS_LOG, ("h%d switching to gen%d start seg %Ix", + heap_number, curr_gen_number, (size_t)seg)); + } + } +#endif //USE_REGIONS + + if (seg) { #ifdef BACKGROUND_GC should_check_bgc_mark (seg, &consider_bgc_mark_p, &check_current_sweep_p, &check_saved_sweep_p); #endif //BACKGROUND_GC beg = heap_segment_mem (seg); +#ifdef USE_REGIONS + end = heap_segment_allocated (seg); +#else end = compute_next_end (seg, low); +#endif //USE_REGIONS #ifdef FEATURE_CARD_MARKING_STEALING card_word_end = 0; #else // FEATURE_CARD_MARKING_STEALING @@ -31120,9 +33342,11 @@ void gc_heap::mark_through_cards_for_segments (card_fn fn, BOOL relocating CARD_ // Never visit an object twice. assert (o >= last_object); +#ifndef USE_REGIONS //dprintf(3,("Considering card %Ix start object: %Ix, %Ix[ boundary: %Ix", dprintf(3, ("c: %Ix, o: %Ix, l: %Ix[ boundary: %Ix", card, (size_t)o, (size_t)limit, (size_t)gen_boundary)); +#endif //USE_REGIONS while (o < limit) { @@ -31137,6 +33361,7 @@ void gc_heap::mark_through_cards_for_segments (card_fn fn, BOOL relocating CARD_ Prefetch (next_o); +#ifndef USE_REGIONS if ((o >= gen_boundary) && (seg == ephemeral_heap_segment)) { @@ -31148,6 +33373,7 @@ void gc_heap::mark_through_cards_for_segments (card_fn fn, BOOL relocating CARD_ next_boundary = (compute_next_boundary (curr_gen_number, relocating)); } +#endif //!USE_REGIONS dprintf (4, ("|%Ix|", (size_t)o)); @@ -31191,7 +33417,8 @@ void gc_heap::mark_through_cards_for_segments (card_fn fn, BOOL relocating CARD_ uint8_t* class_obj = get_class_object (o); mark_through_cards_helper (&class_obj, n_gen, cg_pointers_found, fn, - nhigh, next_boundary CARD_MARKING_STEALING_ARG(hpt)); + nhigh, next_boundary, + condemned_gen, curr_gen_number CARD_MARKING_STEALING_ARG(hpt)); } } @@ -31260,7 +33487,8 @@ void gc_heap::mark_through_cards_for_segments (card_fn fn, BOOL relocating CARD_ mark_through_cards_helper (poo, n_gen, cg_pointers_found, fn, - nhigh, next_boundary CARD_MARKING_STEALING_ARG(hpt)); + nhigh, next_boundary, + condemned_gen, curr_gen_number CARD_MARKING_STEALING_ARG(hpt)); } ); } @@ -31303,6 +33531,7 @@ void gc_heap::mark_through_cards_for_segments (card_fn fn, BOOL relocating CARD_ } } +#ifndef USE_REGIONS #ifdef SEG_REUSE_STATS size_t gc_heap::dump_buckets (size_t* ordered_indices, int count, size_t* total_size) { @@ -31443,7 +33672,7 @@ void gc_heap::build_ordered_plug_indices () // we need to make sure that after fitting all the existing plugs, we // have big enough free space left to guarantee that the next allocation // will succeed. - size_t extra_size = END_SPACE_AFTER_GC + Align (min_obj_size); + size_t extra_size = END_SPACE_AFTER_GC_FL; total_ephemeral_plugs += extra_size; dprintf (SEG_REUSE_LOG_0, ("Making sure we can fit a large object after fitting all plugs")); ordered_plug_indices[relative_index_power2_plug (round_up_power2 (extra_size))]++; @@ -31751,10 +33980,10 @@ BOOL gc_heap::best_fit (size_t free_space, memcpy (ordered_plug_indices, saved_ordered_plug_indices, sizeof(ordered_plug_indices)); } - if (total_ephemeral_plugs == (END_SPACE_AFTER_GC + Align (min_obj_size))) + if (total_ephemeral_plugs == END_SPACE_AFTER_GC_FL) { dprintf (SEG_REUSE_LOG_0, ("No ephemeral plugs to realloc, done")); - size_t empty_eph = (END_SPACE_AFTER_GC + Align (min_obj_size) + (Align (min_obj_size)) * (max_generation + 1)); + size_t empty_eph = (END_SPACE_AFTER_GC_FL + (Align (min_obj_size)) * (max_generation + 1)); BOOL can_fit_empty_eph = (largest_free_space >= empty_eph); if (!can_fit_empty_eph) { @@ -31959,19 +34188,6 @@ BOOL gc_heap::process_free_space (heap_segment* seg, return FALSE; } -BOOL gc_heap::expand_reused_seg_p() -{ - BOOL reused_seg = FALSE; - int heap_expand_mechanism = gc_data_per_heap.get_mechanism (gc_heap_expand); - if ((heap_expand_mechanism == expand_reuse_bestfit) || - (heap_expand_mechanism == expand_reuse_normal)) - { - reused_seg = TRUE; - } - - return reused_seg; -} - BOOL gc_heap::can_expand_into_p (heap_segment* seg, size_t min_free_size, size_t min_cont_size, allocator* gen_allocator) { @@ -32528,34 +34744,6 @@ gc_heap::realloc_plugs (generation* consing_gen, heap_segment* seg, heap_segment_plan_allocated (seg) = last_pinned_gap; } -void gc_heap::verify_no_pins (uint8_t* start, uint8_t* end) -{ -#ifdef VERIFY_HEAP - if (GCConfig::GetHeapVerifyLevel() & GCConfig::HEAPVERIFY_GC) - { - BOOL contains_pinned_plugs = FALSE; - size_t mi = 0; - mark* m = 0; - while (mi != mark_stack_tos) - { - m = pinned_plug_of (mi); - if ((pinned_plug (m) >= start) && (pinned_plug (m) < end)) - { - contains_pinned_plugs = TRUE; - break; - } - else - mi++; - } - - if (contains_pinned_plugs) - { - FATAL_GC_ERROR(); - } - } -#endif //VERIFY_HEAP -} - void gc_heap::set_expand_in_full_gc (int condemned_gen_number) { if (!should_expand_in_full_gc) @@ -32804,6 +34992,52 @@ generation* gc_heap::expand_heap (int condemned_generation, dprintf(2,("---- End of Heap Expansion ----")); return consing_gen; } +#endif //!USE_REGIONS + +BOOL gc_heap::expand_reused_seg_p() +{ +#ifdef USE_REGIONS + return FALSE; +#else + BOOL reused_seg = FALSE; + int heap_expand_mechanism = gc_data_per_heap.get_mechanism (gc_heap_expand); + if ((heap_expand_mechanism == expand_reuse_bestfit) || + (heap_expand_mechanism == expand_reuse_normal)) + { + reused_seg = TRUE; + } + + return reused_seg; +#endif //USE_REGIONS +} + +void gc_heap::verify_no_pins (uint8_t* start, uint8_t* end) +{ +#ifdef VERIFY_HEAP + if (GCConfig::GetHeapVerifyLevel() & GCConfig::HEAPVERIFY_GC) + { + BOOL contains_pinned_plugs = FALSE; + size_t mi = 0; + mark* m = 0; + while (mi != mark_stack_tos) + { + m = pinned_plug_of (mi); + if ((pinned_plug (m) >= start) && (pinned_plug (m) < end)) + { + contains_pinned_plugs = TRUE; + break; + } + else + mi++; + } + + if (contains_pinned_plugs) + { + FATAL_GC_ERROR(); + } + } +#endif //VERIFY_HEAP +} void gc_heap::set_static_data() { @@ -33111,9 +35345,24 @@ size_t gc_heap::desired_new_allocation (dynamic_data* dd, } } +// REGIONS TODO: this can be merged with generation_size. //returns the planned size of a generation (including free list element) size_t gc_heap::generation_plan_size (int gen_number) { +#ifdef USE_REGIONS + size_t result = 0; + heap_segment* seg = heap_segment_rw (generation_start_segment (generation_of (gen_number))); + while (seg) + { + uint8_t* end = heap_segment_plan_allocated (seg); + result += end - heap_segment_mem (seg); + dprintf (REGIONS_LOG, ("h%d size + %Id (%Ix - %Ix) -> %Id", + heap_number, (end - heap_segment_mem (seg)), + heap_segment_mem (seg), end, result)); + seg = heap_segment_next (seg); + } + return result; +#else //USE_REGIONS if (0 == gen_number) return max((heap_segment_plan_allocated (ephemeral_heap_segment) - generation_plan_allocation_start (generation_of (gen_number))), @@ -33145,12 +35394,26 @@ size_t gc_heap::generation_plan_size (int gen_number) return gensize; } } - +#endif //USE_REGIONS } //returns the size of a generation (including free list element) size_t gc_heap::generation_size (int gen_number) { +#ifdef USE_REGIONS + size_t result = 0; + heap_segment* seg = heap_segment_rw (generation_start_segment (generation_of (gen_number))); + while (seg) + { + uint8_t* end = heap_segment_allocated (seg); + result += end - heap_segment_mem (seg); + dprintf (2, ("h%d size + %Id (%Ix - %Ix) -> %Id", + heap_number, (end - heap_segment_mem (seg)), + heap_segment_mem (seg), end, result)); + seg = heap_segment_next (seg); + } + return result; +#else //USE_REGIONS if (0 == gen_number) return max((heap_segment_allocated (ephemeral_heap_segment) - generation_allocation_start (generation_of (gen_number))), @@ -33183,7 +35446,7 @@ size_t gc_heap::generation_size (int gen_number) return gensize; } } - +#endif //USE_REGIONS } size_t gc_heap::compute_in (int gen_number) @@ -33573,27 +35836,48 @@ size_t gc_heap::decommit_ephemeral_segment_pages_step () #endif //MULTIPLE_HEAPS //This is meant to be called by decide_on_compacting. - size_t gc_heap::generation_fragmentation (generation* gen, generation* consing_gen, uint8_t* end) { - size_t frag; + ptrdiff_t frag = 0; + +#ifdef USE_REGIONS + for (int gen_num = 0; gen_num <= gen->gen_num; gen_num++) + { + generation* gen = generation_of (gen_num); + heap_segment* seg = heap_segment_rw (generation_start_segment (gen)); + while (seg) + { + frag += (heap_segment_saved_allocated (seg) - + heap_segment_plan_allocated (seg)); + + dprintf (REGIONS_LOG, ("h%d g%d adding seg plan frag: %Ix-%Ix=%Id -> %Id", + heap_number, gen_num, + heap_segment_saved_allocated (seg), + heap_segment_plan_allocated (seg), + (heap_segment_saved_allocated (seg) - heap_segment_plan_allocated (seg)), + frag)); + + seg = heap_segment_next_rw (seg); + } + } +#else //USE_REGIONS uint8_t* alloc = generation_allocation_pointer (consing_gen); // If the allocation pointer has reached the ephemeral segment // fine, otherwise the whole ephemeral segment is considered // fragmentation if (in_range_for_segment (alloc, ephemeral_heap_segment)) + { + if (alloc <= heap_segment_allocated(ephemeral_heap_segment)) + frag = end - alloc; + else { - if (alloc <= heap_segment_allocated(ephemeral_heap_segment)) - frag = end - alloc; - else - { - // case when no survivors, allocated set to beginning - frag = 0; - } - dprintf (3, ("ephemeral frag: %Id", frag)); + // case when no survivors, allocated set to beginning + frag = 0; } + dprintf (3, ("ephemeral frag: %Id", frag)); + } else frag = (heap_segment_allocated (ephemeral_heap_segment) - heap_segment_mem (ephemeral_heap_segment)); @@ -33612,6 +35896,8 @@ size_t gc_heap::generation_fragmentation (generation* gen, seg = heap_segment_next_rw (seg); assert (seg); } +#endif //USE_REGIONS + dprintf (3, ("frag: %Id discounting pinned plugs", frag)); //add the length of the dequeued plug free space size_t bos = 0; @@ -33627,9 +35913,28 @@ size_t gc_heap::generation_fragmentation (generation* gen, // for SOH this returns the total sizes of the generation and its // younger generation(s). // for LOH this returns just LOH size. -size_t gc_heap::generation_sizes (generation* gen) +size_t gc_heap::generation_sizes (generation* gen, bool use_saved_p) { size_t result = 0; + +#ifdef USE_REGIONS + int gen_num = gen->gen_num; + int start_gen_index = ((gen_num > max_generation) ? gen_num : 0); + for (int i = start_gen_index; i <= gen_num; i++) + { + heap_segment* seg = heap_segment_in_range (generation_start_segment (generation_of (i))); + while (seg) + { + uint8_t* end = (use_saved_p ? + heap_segment_saved_allocated (seg) : heap_segment_allocated (seg)); + result += end - heap_segment_mem (seg); + dprintf (3, ("h%d gen%d size + %Id (%Ix - %Ix) -> %Id", + heap_number, i, (end - heap_segment_mem (seg)), + heap_segment_mem (seg), end, result)); + seg = heap_segment_next (seg); + } + } +#else //USE_REGIONS if (generation_start_segment (gen ) == ephemeral_heap_segment) result = (heap_segment_allocated (ephemeral_heap_segment) - generation_allocation_start (gen)); @@ -33646,10 +35951,37 @@ size_t gc_heap::generation_sizes (generation* gen) seg = heap_segment_next_in_range (seg); } } +#endif //USE_REGIONS return result; } +#ifdef USE_REGIONS +bool gc_heap::decide_on_expansion() +{ + bool should_expand = false; + size_t gen0size = approximate_new_allocation(); + size_t free_region_size = num_free_regions * REGION_SIZE; + get_gen0_end_plan_space(); + + if (!gen0_large_chunk_found) + { + gen0_large_chunk_found = (num_free_regions > 0); + } + + dprintf (REGIONS_LOG, ("gen0_pinned_free_space: %Id, end_gen0_region_space: %Id, free regions: %Id, gen0size: %Id", + gen0_pinned_free_space, end_gen0_region_space, free_region_size, gen0size)); + // Do we want to add the extra here, see ephemeral_gen_fit_p + if (((gen0_pinned_free_space + end_gen0_region_space + free_region_size) < gen0size) || + !gen0_large_chunk_found) + { + should_expand = TRUE; + } + + return should_expand; +} +#endif //USE_REGIONS + size_t gc_heap::estimated_reclaim (int gen_number) { dynamic_data* dd = dynamic_data_of (gen_number); @@ -33677,13 +36009,14 @@ BOOL gc_heap::decide_on_compacting (int condemned_gen_number, should_expand = FALSE; generation* gen = generation_of (condemned_gen_number); dynamic_data* dd = dynamic_data_of (condemned_gen_number); - size_t gen_sizes = generation_sizes(gen); + size_t gen_sizes = generation_sizes(gen, true); float fragmentation_burden = ( ((0 == fragmentation) || (0 == gen_sizes)) ? (0.0f) : (float (fragmentation) / gen_sizes) ); - dprintf (GTC_LOG, ("h%d g%d fragmentation: %Id (%d%%)", + dprintf (GTC_LOG, ("h%d g%d fragmentation: %Id (%d%%), gen_sizes: %Id", heap_number, settings.condemned_generation, - fragmentation, (int)(fragmentation_burden * 100.0))); + fragmentation, (int)(fragmentation_burden * 100.0), + gen_sizes)); #if defined(STRESS_HEAP) && !defined(FEATURE_REDHAWK) // for GC stress runs we need compaction @@ -33727,6 +36060,7 @@ BOOL gc_heap::decide_on_compacting (int condemned_gen_number, should_compact = TRUE; } +#ifndef USE_REGIONS if (!should_compact) { if (dt_low_ephemeral_space_p (tuning_deciding_compaction)) @@ -33748,6 +36082,7 @@ BOOL gc_heap::decide_on_compacting (int condemned_gen_number, } } } +#endif //USE_REGIONS #ifdef HOST_64BIT BOOL high_memory = FALSE; @@ -33777,6 +36112,12 @@ BOOL gc_heap::decide_on_compacting (int condemned_gen_number, #endif // BACKGROUND_GC } +#ifdef USE_REGIONS + should_expand = decide_on_expansion(); + if (should_expand) + should_compact = TRUE; +#endif //USE_REGIONS + #ifdef HOST_64BIT // check for high memory situation if(!should_compact) @@ -33812,6 +36153,7 @@ BOOL gc_heap::decide_on_compacting (int condemned_gen_number, #endif // HOST_64BIT } +#ifndef USE_REGIONS // The purpose of calling ensure_gap_allocation here is to make sure // that we actually are able to commit the memory to allocate generation // starts. @@ -33841,6 +36183,7 @@ BOOL gc_heap::decide_on_compacting (int condemned_gen_number, settings.should_lock_elevation = TRUE; } } +#endif //!USE_REGIONS if (settings.pause_mode == pause_no_gc) { @@ -33867,6 +36210,16 @@ size_t gc_heap::approximate_new_allocation() return max (2*dd_min_size (dd0), ((dd_desired_allocation (dd0)*2)/3)); } +#ifdef USE_REGIONS +bool gc_heap::sufficient_space_regions (size_t end_space, size_t end_space_required) +{ + size_t total_alloc_space = end_space + (num_free_regions * REGION_SIZE); + dprintf (REGIONS_LOG, ("h%d required %Id, has %Id", + heap_number, end_space_required, total_alloc_space)); + return (total_alloc_space > end_space_required); +} +#endif //USE_REGIONS + BOOL gc_heap::sufficient_space_end_seg (uint8_t* start, uint8_t* seg_end, size_t end_space_required, gc_tuning_point tp) { BOOL can_fit = FALSE; @@ -33905,13 +36258,16 @@ BOOL gc_heap::sufficient_space_end_seg (uint8_t* start, uint8_t* seg_end, size_t // a reasonable amount of allocation requests. size_t gc_heap::end_space_after_gc() { - return max ((dd_min_size (dynamic_data_of (0))/2), (END_SPACE_AFTER_GC + Align (min_obj_size))); + return max ((dd_min_size (dynamic_data_of (0))/2), (END_SPACE_AFTER_GC_FL)); } BOOL gc_heap::ephemeral_gen_fit_p (gc_tuning_point tp) { uint8_t* start = 0; +#ifdef USE_REGIONS + assert ((tp == tuning_deciding_condemned_gen) || (tp == tuning_deciding_full_gc)); +#else//USE_REGIONS if ((tp == tuning_deciding_condemned_gen) || (tp == tuning_deciding_compaction)) { @@ -33980,7 +36336,7 @@ BOOL gc_heap::ephemeral_gen_fit_p (gc_tuning_point tp) size_t end_seg = room; //look at the plug free space - size_t largest_alloc = END_SPACE_AFTER_GC + Align (min_obj_size); + size_t largest_alloc = END_SPACE_AFTER_GC_FL; bool large_chunk_found = FALSE; size_t bos = 0; uint8_t* gen0start = generation_plan_allocation_start (youngest_generation); @@ -34035,6 +36391,7 @@ BOOL gc_heap::ephemeral_gen_fit_p (gc_tuning_point tp) } } else +#endif //USE_REGIONS { size_t end_space = 0; dynamic_data* dd = dynamic_data_of (0); @@ -34049,8 +36406,12 @@ BOOL gc_heap::ephemeral_gen_fit_p (gc_tuning_point tp) end_space = approximate_new_allocation(); } +#ifdef USE_REGIONS + size_t gen0_end_space = get_gen0_end_space(); + BOOL can_fit = sufficient_space_regions (gen0_end_space, end_space); +#else //USE_REGIONS BOOL can_fit = sufficient_space_end_seg (start, heap_segment_reserved (ephemeral_heap_segment), end_space, tp); - +#endif //USE_REGIONS return can_fit; } } @@ -34226,7 +36587,7 @@ void gc_heap::walk_survivors_for_uoh (void* profiling_context, record_surv_fn fn PREFIX_ASSUME(seg != NULL); - uint8_t* o = generation_allocation_start (gen); + uint8_t* o = get_uoh_start_object (seg, gen); uint8_t* plug_end = o; uint8_t* plug_start = o; @@ -34478,6 +36839,10 @@ BOOL gc_heap::fgc_should_consider_object (uint8_t* o, BOOL check_current_sweep_p, BOOL check_saved_sweep_p) { +#ifdef USE_REGIONS + assert (!check_saved_sweep_p); +#endif //USE_REGIONS + // the logic for this function must be kept in sync with the analogous function // in ToolBox\SOS\Strike\gc.cpp @@ -34495,18 +36860,23 @@ BOOL gc_heap::fgc_should_consider_object (uint8_t* o, if (!no_bgc_mark_p) { +#ifndef USE_REGIONS if(check_saved_sweep_p && (o >= saved_sweep_ephemeral_start)) { dprintf (3, ("no bgc mark - o: %Ix >= ss: %Ix", o, saved_sweep_ephemeral_start)); no_bgc_mark_p = TRUE; } - +#endif //!USE_REGIONS if (!check_saved_sweep_p) { uint8_t* background_allocated = heap_segment_background_allocated (seg); + +#ifndef USE_REGIONS // if this was the saved ephemeral segment, check_saved_sweep_p // would've been true. assert (heap_segment_background_allocated (seg) != saved_sweep_ephemeral_start); +#endif //!USE_REGIONS + // background_allocated could be 0 for the new segments acquired during bgc // sweep and we still want no_bgc_mark_p to be true. if (o >= background_allocated) @@ -34559,11 +36929,13 @@ void gc_heap::should_check_bgc_mark (heap_segment* seg, dprintf (3, ("seg %Ix hasn't been swept by bgc", seg)); +#ifndef USE_REGIONS if (seg == saved_sweep_ephemeral_seg) { dprintf (3, ("seg %Ix is the saved ephemeral seg", seg)); *check_saved_sweep_p = TRUE; } +#endif //!USE_REGIONS if (in_range_for_segment (current_sweep_pos, seg)) { @@ -34575,14 +36947,18 @@ void gc_heap::should_check_bgc_mark (heap_segment* seg, } } +// REGIONS TODO: I'm not releasing any empty ephemeral regions here the gen0 allocator is +// iterating over these regions. We'd want to do the same as what we do with LOH segs/regions. void gc_heap::background_ephemeral_sweep() { dprintf (3, ("bgc ephemeral sweep")); int align_const = get_alignment_constant (TRUE); +#ifndef USE_REGIONS saved_sweep_ephemeral_seg = ephemeral_heap_segment; saved_sweep_ephemeral_start = generation_allocation_start (generation_of (max_generation - 1)); +#endif //!USE_REGIONS // Since we don't want to interfere with gen0 allocation while we are threading gen0 free list, // we thread onto a list first then publish it when we are done. @@ -34603,89 +36979,104 @@ void gc_heap::background_ephemeral_sweep() for (int i = (max_generation - 1); i >= 0; i--) { generation* current_gen = generation_of (i); - uint8_t* o = generation_allocation_start (current_gen); - //Skip the generation gap object - o = o + Align(size (o), align_const); - uint8_t* end = ((i > 0) ? - generation_allocation_start (generation_of (i - 1)) : - heap_segment_allocated (ephemeral_heap_segment)); +#ifdef USE_REGIONS + heap_segment* ephemeral_region = heap_segment_rw (generation_start_segment (current_gen)); + while (ephemeral_region) +#endif //USE_REGIONS + { +#ifdef USE_REGIONS + uint8_t* o = heap_segment_mem (ephemeral_region); + uint8_t* end = heap_segment_allocated (ephemeral_region); +#else //USE_REGIONS + uint8_t* o = generation_allocation_start (current_gen); + //Skip the generation gap object + o = o + Align(size (o), align_const); + uint8_t* end = ((i > 0) ? + generation_allocation_start (generation_of (i - 1)) : + heap_segment_allocated (ephemeral_heap_segment)); +#endif //USE_REGIONS - uint8_t* plug_end = o; - uint8_t* plug_start = o; - BOOL marked_p = FALSE; + uint8_t* plug_end = o; + uint8_t* plug_start = o; + BOOL marked_p = FALSE; - while (o < end) - { - marked_p = background_object_marked (o, TRUE); - if (marked_p) + while (o < end) { - plug_start = o; - size_t plug_size = plug_start - plug_end; - - if (i >= 1) - { - thread_gap (plug_end, plug_size, current_gen); - } - else + marked_p = background_object_marked (o, TRUE); + if (marked_p) { - if (plug_size > 0) + plug_start = o; + size_t plug_size = plug_start - plug_end; + + if (i >= 1) { - make_unused_array (plug_end, plug_size); - if (plug_size >= min_free_list) + thread_gap (plug_end, plug_size, current_gen); + } + else + { + if (plug_size > 0) { - youngest_free_list_space += plug_size; - youngest_free_list.thread_item (plug_end, plug_size); + make_unused_array (plug_end, plug_size); + if (plug_size >= min_free_list) + { + youngest_free_list_space += plug_size; + youngest_free_list.thread_item (plug_end, plug_size); + } + else + { + youngest_free_obj_space += plug_size; + } } - else + } + + fix_brick_to_highest (plug_end, plug_start); + fix_brick_to_highest (plug_start, plug_start); + + BOOL m = TRUE; + while (m) + { + o = o + Align (size (o), align_const); + if (o >= end) { - youngest_free_obj_space += plug_size; + break; } + + m = background_object_marked (o, TRUE); } + plug_end = o; + dprintf (3, ("bgs: plug [%Ix, %Ix[", (size_t)plug_start, (size_t)plug_end)); } - - fix_brick_to_highest (plug_end, plug_start); - fix_brick_to_highest (plug_start, plug_start); - - BOOL m = TRUE; - while (m) + else { - o = o + Align (size (o), align_const); - if (o >= end) + while ((o < end) && !background_object_marked (o, FALSE)) { - break; + o = o + Align (size (o), align_const); } - - m = background_object_marked (o, TRUE); } - plug_end = o; - dprintf (3, ("bgs: plug [%Ix, %Ix[", (size_t)plug_start, (size_t)plug_end)); } - else + + if (plug_end != end) { - while ((o < end) && !background_object_marked (o, FALSE)) + if (i >= 1) { - o = o + Align (size (o), align_const); + thread_gap (plug_end, end - plug_end, current_gen); + } + else + { +#ifndef USE_REGIONS + heap_segment_allocated (ephemeral_heap_segment) = plug_end; + heap_segment_saved_bg_allocated (ephemeral_heap_segment) = plug_end; +#endif //!USE_REGIONS + make_unused_array (plug_end, (end - plug_end)); } - } - } - if (plug_end != end) - { - if (i >= 1) - { - thread_gap (plug_end, end - plug_end, current_gen); - } - else - { - heap_segment_allocated (ephemeral_heap_segment) = plug_end; - // the following line is temporary. - heap_segment_saved_bg_allocated (ephemeral_heap_segment) = plug_end; - make_unused_array (plug_end, (end - plug_end)); + fix_brick_to_highest (plug_end, end); } - - fix_brick_to_highest (plug_end, end); +#ifdef USE_REGIONS + ephemeral_region->flags |= heap_segment_flags_swept; + ephemeral_region = heap_segment_next (ephemeral_region); +#endif //USE_REGIONS } - dd_fragmentation (dynamic_data_of (i)) = generation_free_list_space (current_gen) + generation_free_obj_space (current_gen); } @@ -34841,9 +37232,13 @@ void gc_heap::background_sweep() #ifndef DOUBLY_LINKED_FL if (i == max_generation) { +#ifdef USE_REGIONS + start_seg = generation_tail_region (gen); +#else // start with saved ephemeral segment // we are no longer holding gc_lock, so a new ephemeral segment could be added, we want the saved one. start_seg = saved_sweep_ephemeral_seg; +#endif //USE_REGIONS prev_seg = heap_segment_next(start_seg); } else @@ -34891,9 +37286,11 @@ void gc_heap::background_sweep() uint8_t* o = heap_segment_mem (seg); if (seg == gen_start_seg) { +#ifndef USE_REGIONS assert (o == generation_allocation_start (gen)); assert (method_table (o) == g_gc_pFreeObjectMethodTable); o = o + Align (size (o), align_const); +#endif //!USE_REGIONS } uint8_t* plug_end = o; @@ -35211,11 +37608,7 @@ void gc_heap::sweep_uoh_objects (int gen_num) heap_segment* seg = start_seg; heap_segment* prev_seg = 0; - uint8_t* o = generation_allocation_start (gen); - int align_const = get_alignment_constant (FALSE); - - //Skip the generation gap object - o = o + Align(size (o), align_const); + uint8_t* o = get_uoh_start_object (seg, gen); uint8_t* plug_end = o; uint8_t* plug_start = o; @@ -35311,7 +37704,7 @@ void gc_heap::relocate_in_uoh_objects (int gen_num) PREFIX_ASSUME(seg != NULL); - uint8_t* o = generation_allocation_start (gen); + uint8_t* o = get_uoh_start_object (seg, gen); while (1) { @@ -35346,14 +37739,18 @@ void gc_heap::mark_through_cards_for_uoh_objects (card_fn fn, BOOL relocating CARD_MARKING_STEALING_ARG(gc_heap* hpt)) { +#ifdef USE_REGIONS + uint8_t* low = 0; +#else uint8_t* low = gc_low; +#endif //USE_REGIONS size_t end_card = 0; generation* oldest_gen = generation_of (gen_num); heap_segment* seg = heap_segment_rw (generation_start_segment (oldest_gen)); PREFIX_ASSUME(seg != NULL); - uint8_t* beg = generation_allocation_start (oldest_gen); + uint8_t* beg = get_uoh_start_object (seg, oldest_gen); uint8_t* end = heap_segment_allocated (seg); size_t cg_pointers_found = 0; @@ -35364,6 +37761,11 @@ void gc_heap::mark_through_cards_for_uoh_objects (card_fn fn, size_t n_eph = 0; size_t n_gen = 0; size_t n_card_set = 0; + +#ifdef USE_REGIONS + uint8_t* next_boundary = 0; + uint8_t* nhigh = 0; +#else uint8_t* next_boundary = (relocating ? generation_plan_allocation_start (generation_of (max_generation -1)) : ephemeral_low); @@ -35371,7 +37773,7 @@ void gc_heap::mark_through_cards_for_uoh_objects (card_fn fn, uint8_t* nhigh = (relocating ? heap_segment_plan_allocated (ephemeral_heap_segment) : ephemeral_high); - +#endif //USE_REGIONS BOOL foundp = FALSE; uint8_t* start_address = 0; uint8_t* limit = 0; @@ -35395,6 +37797,12 @@ void gc_heap::mark_through_cards_for_uoh_objects (card_fn fn, card_word_end = 0; #endif // FEATURE_CARD_MARKING_STEALING +#ifdef USE_REGIONS + int condemned_gen = settings.condemned_generation; +#else + int condemned_gen = -1; +#endif //USE_REGIONS + //dprintf(3,( "scanning large objects from %Ix to %Ix", (size_t)beg, (size_t)end)); dprintf(3, ("CMl: %Ix->%Ix", (size_t)beg, (size_t)end)); while (1) @@ -35527,7 +37935,8 @@ void gc_heap::mark_through_cards_for_uoh_objects (card_fn fn, uint8_t* class_obj = get_class_object (o); mark_through_cards_helper (&class_obj, n_gen, cg_pointers_found, fn, - nhigh, next_boundary CARD_MARKING_STEALING_ARG(hpt)); + nhigh, next_boundary, + condemned_gen, max_generation CARD_MARKING_STEALING_ARG(hpt)); } } @@ -35586,7 +37995,8 @@ void gc_heap::mark_through_cards_for_uoh_objects (card_fn fn, mark_through_cards_helper (poo, n_gen, cg_pointers_found, fn, - nhigh, next_boundary CARD_MARKING_STEALING_ARG(hpt)); + nhigh, next_boundary, + condemned_gen, max_generation CARD_MARKING_STEALING_ARG(hpt)); } ); } @@ -35627,6 +38037,9 @@ void gc_heap::mark_through_cards_for_uoh_objects (card_fn fn, void gc_heap::descr_generations_to_profiler (gen_walk_fn fn, void *context) { +#ifdef USE_REGIONS + assert (!"not impl!!"); +#else #ifdef MULTIPLE_HEAPS int n_heaps = g_theGCHeap->GetNumberOfHeaps (); for (int i = 0; i < n_heaps; i++) @@ -35703,6 +38116,7 @@ void gc_heap::descr_generations_to_profiler (gen_walk_fn fn, void *context) } } } +#endif //USE_REGIONS } #ifdef TRACE_GC @@ -35749,10 +38163,10 @@ void gc_heap::print_free_list (int gen, heap_segment* seg) } #endif //TRACE_GC -void gc_heap::descr_generations (BOOL begin_gc_p) +void gc_heap::descr_generations (const char* msg) { #ifndef TRACE_GC - UNREFERENCED_PARAMETER(begin_gc_p); + UNREFERENCED_PARAMETER(msg); #endif //!TRACE_GC #ifdef STRESS_LOG @@ -35766,11 +38180,13 @@ void gc_heap::descr_generations (BOOL begin_gc_p) STRESS_LOG1(LF_GC, LL_INFO10, "GC Heap %p\n", hp); for (int n = max_generation; n >= 0; --n) { +#ifndef USE_REGIONS STRESS_LOG4(LF_GC, LL_INFO10, " Generation %d [%p, %p] cur = %p\n", n, generation_allocation_start(generation_of(n)), generation_allocation_limit(generation_of(n)), generation_allocation_pointer(generation_of(n))); +#endif //USE_REGIONS heap_segment* seg = generation_start_segment(generation_of(n)); while (seg) @@ -35804,7 +38220,7 @@ void gc_heap::descr_generations (BOOL begin_gc_p) size_t total_gen_size = generation_size (curr_gen_number); #ifdef SIMPLE_DPRINTF dprintf (GTC_LOG, ("[%s][g%d]gen %d:, size: %Id, frag: %Id(L: %Id, O: %Id), f: %d%% %s %s %s", - (begin_gc_p ? "BEG" : "END"), + msg, settings.condemned_generation, curr_gen_number, total_gen_size, @@ -35814,7 +38230,7 @@ void gc_heap::descr_generations (BOOL begin_gc_p) (total_gen_size ? (int)(((double)dd_fragmentation (dynamic_data_of (curr_gen_number)) / (double)total_gen_size) * 100) : 0), - (begin_gc_p ? ("") : (settings.compaction ? "(compact)" : "(sweep)")), + (settings.compaction ? "(compact)" : "(sweep)"), (settings.heap_expansion ? "(EX)" : " "), (settings.promotion ? "Promotion" : "NoPromotion"))); #else @@ -35826,7 +38242,31 @@ void gc_heap::descr_generations (BOOL begin_gc_p) #endif //SIMPLE_DPRINTF generation* gen = generation_of (curr_gen_number); - heap_segment* seg = generation_start_segment (gen); + heap_segment* seg = heap_segment_rw (generation_start_segment (gen)); +#ifdef USE_REGIONS + dprintf (1, ("g%d: start seg: %Ix alloc seg: %Ix, plan start seg: %Ix, plan start: %Ix", + curr_gen_number, + heap_segment_mem (seg), + heap_segment_mem (generation_allocation_segment (gen)), + (generation_plan_start_segment (gen) ? heap_segment_mem (generation_plan_start_segment (gen)) : 0), + generation_plan_allocation_start (gen))); + while (seg) + { + dprintf (GTC_LOG, ("g%d: (%d:p %d) [%Ix %Ix(sa: %Ix, pa: %Ix)[-%Ix[ (%Id) (%Id)", + curr_gen_number, + heap_segment_gen_num (seg), + heap_segment_plan_gen_num (seg), + (size_t)heap_segment_mem (seg), + (size_t)heap_segment_allocated (seg), + (size_t)heap_segment_saved_allocated (seg), + (size_t)heap_segment_plan_allocated (seg), + (size_t)heap_segment_committed (seg), + (size_t)(heap_segment_allocated (seg) - heap_segment_mem (seg)), + (size_t)(heap_segment_committed (seg) - heap_segment_allocated (seg)))); + print_free_list (curr_gen_number, seg); + seg = heap_segment_next (seg); + } +#else while (seg && (seg != ephemeral_heap_segment)) { dprintf (GTC_LOG, ("g%d: [%Ix %Ix[-%Ix[ (%Id) (%Id)", @@ -35862,6 +38302,7 @@ void gc_heap::descr_generations (BOOL begin_gc_p) )); print_free_list (curr_gen_number, seg); } +#endif //USE_REGIONS } #endif //TRACE_GC @@ -36073,7 +38514,7 @@ void gc_heap::verify_mark_bits_cleared (uint8_t* obj, size_t s) void gc_heap::clear_all_mark_array() { - for (int i = max_generation; i < total_generation_count; i++) + for (int i = get_start_generation_index(); i < total_generation_count; i++) { generation* gen = generation_of (i); heap_segment* seg = heap_segment_rw (generation_start_segment (gen)); @@ -36129,7 +38570,7 @@ void gc_heap::verify_mark_array_cleared() if (gc_heap::background_running_p() && (GCConfig::GetHeapVerifyLevel() & GCConfig::HEAPVERIFY_GC)) { - for (int i = max_generation; i < total_generation_count; i++) + for (int i = get_start_generation_index(); i < total_generation_count; i++) { generation* gen = generation_of (i); heap_segment* seg = heap_segment_rw (generation_start_segment (gen)); @@ -36154,17 +38595,24 @@ void gc_heap::verify_soh_segment_list() #ifdef VERIFY_HEAP if (GCConfig::GetHeapVerifyLevel() & GCConfig::HEAPVERIFY_GC) { - generation* gen = generation_of (max_generation); - heap_segment* seg = heap_segment_rw (generation_start_segment (gen)); - heap_segment* last_seg = 0; - while (seg) - { - last_seg = seg; - seg = heap_segment_next_rw (seg); - } - if (last_seg != ephemeral_heap_segment) + for (int i = get_start_generation_index(); i <= max_generation; i++) { - FATAL_GC_ERROR(); + generation* gen = generation_of (i); + heap_segment* seg = heap_segment_rw (generation_start_segment (gen)); + heap_segment* last_seg = 0; + while (seg) + { + last_seg = seg; + seg = heap_segment_next_rw (seg); + } +#ifdef USE_REGIONS + if (last_seg != generation_tail_region (gen)) +#else + if (last_seg != ephemeral_heap_segment) +#endif //USE_REGIONS + { + FATAL_GC_ERROR(); + } } } #endif //VERIFY_HEAP @@ -36183,7 +38631,7 @@ void gc_heap::verify_partial() BOOL bad_ref_p = FALSE; BOOL free_ref_p = FALSE; - for (int i = max_generation; i < total_generation_count; i++) + for (int i = get_start_generation_index(); i < total_generation_count; i++) { generation* gen = generation_of (i); int align_const = get_alignment_constant (i == max_generation); @@ -36324,10 +38772,19 @@ gc_heap::verify_free_lists () } } -void -gc_heap::verify_heap (BOOL begin_gc_p) +BOOL gc_heap::check_need_card (uint8_t* child_obj, int gen_num_for_cards, + uint8_t* low, uint8_t* high) { - int heap_verify_level = static_cast(GCConfig::GetHeapVerifyLevel()); +#ifdef USE_REGIONS + return (get_region_gen_num (child_obj) < gen_num_for_cards); +#else + return ((child_obj < high) && (child_obj >= low)); +#endif //USE_REGIONS +} + +void gc_heap::verify_heap (BOOL begin_gc_p) +{ + int heap_verify_level = static_cast(GCConfig::GetHeapVerifyLevel()); #ifdef MULTIPLE_HEAPS t_join* current_join = &gc_t_join; @@ -36355,11 +38812,13 @@ gc_heap::verify_heap (BOOL begin_gc_p) #endif //BACKGROUND_GC #ifndef MULTIPLE_HEAPS +#ifndef USE_REGIONS if ((ephemeral_low != generation_allocation_start (generation_of (max_generation - 1))) || (ephemeral_high != heap_segment_reserved (ephemeral_heap_segment))) { FATAL_GC_ERROR(); } +#endif //!USE_REGIONS #endif //MULTIPLE_HEAPS #ifdef BACKGROUND_GC @@ -36370,7 +38829,7 @@ gc_heap::verify_heap (BOOL begin_gc_p) if (!(heap_verify_level & GCConfig::HEAPVERIFY_NO_MEM_FILL)) { // 0xaa the unused portions of segments. - for (int i = max_generation; i < total_generation_count; i++) + for (int i = get_start_generation_index(); i < total_generation_count; i++) { generation* gen1 = generation_of (i); heap_segment* seg1 = heap_segment_rw (generation_start_segment (gen1)); @@ -36416,6 +38875,43 @@ gc_heap::verify_heap (BOOL begin_gc_p) //verify that the generation structures makes sense { +#ifdef USE_REGIONS + // For each generation, verify that + // + // 1) it has at least one region. + // 2) the tail region is the same as the last region if we following the list of regions + // in that generation. + for (int i = 0; i < total_generation_count; i++) + { + generation* gen = generation_of (i); + int num_regions_in_gen = 0; + heap_segment* seg_in_gen = heap_segment_rw (generation_start_segment (gen)); + heap_segment* prev_region_in_gen = 0; + heap_segment* tail_region = generation_tail_region (gen); + + while (seg_in_gen) + { + prev_region_in_gen = seg_in_gen; + num_regions_in_gen++; + seg_in_gen = heap_segment_next (seg_in_gen); + } + + if (num_regions_in_gen == 0) + { + dprintf (REGIONS_LOG, ("h%d gen%d has no regions!!", heap_number, i)); + FATAL_GC_ERROR(); + } + + if (tail_region != prev_region_in_gen) + { + dprintf (REGIONS_LOG, ("h%d gen%d tail region is %Ix, diff from last region %Ix!!", + heap_number, i, + heap_segment_mem (tail_region), + heap_segment_mem (prev_region_in_gen))); + FATAL_GC_ERROR(); + } + } +#else //USE_REGIONS generation* gen = generation_of (max_generation); assert (generation_allocation_start (gen) == @@ -36438,6 +38934,7 @@ gc_heap::verify_heap (BOOL begin_gc_p) prev_gen = gen; gen_num--; } +#endif //USE_REGIONS } size_t total_objects_verified = 0; @@ -36447,15 +38944,27 @@ gc_heap::verify_heap (BOOL begin_gc_p) size_t last_valid_brick = 0; size_t curr_brick = 0; size_t prev_brick = (size_t)-1; - uint8_t* begin_youngest = generation_allocation_start(generation_of(0)); + int gen_num_for_cards = 0; +#ifdef USE_REGIONS + int gen_num_to_stop = 0; + uint8_t* e_high = 0; + uint8_t* next_boundary = 0; +#else //USE_REGIONS + // For no regions the gen number is seperately reduced when we detect the ephemeral seg. + int gen_num_to_stop = max_generation; + uint8_t* e_high = ephemeral_high; uint8_t* next_boundary = generation_allocation_start (generation_of (max_generation - 1)); + uint8_t* begin_youngest = generation_allocation_start(generation_of(0)); +#endif //!USE_REGIONS // go through all generations starting with the highest - for (int curr_gen_num = total_generation_count - 1; curr_gen_num >= max_generation; curr_gen_num--) + for (int curr_gen_num = total_generation_count - 1; curr_gen_num >= gen_num_to_stop; curr_gen_num--) { int align_const = get_alignment_constant (curr_gen_num == max_generation); - BOOL large_brick_p = (curr_gen_num != max_generation); - + BOOL large_brick_p = (curr_gen_num > max_generation); +#ifdef USE_REGIONS + gen_num_for_cards = ((curr_gen_num >= max_generation) ? max_generation : curr_gen_num); +#endif //USE_REGIONS heap_segment* seg = heap_segment_in_range (generation_start_segment (generation_of (curr_gen_num) )); while (seg) @@ -36463,20 +38972,29 @@ gc_heap::verify_heap (BOOL begin_gc_p) uint8_t* curr_object = heap_segment_mem (seg); uint8_t* prev_object = 0; - #ifdef BACKGROUND_GC +#ifdef USE_REGIONS + if (heap_segment_gen_num (seg) != heap_segment_plan_gen_num (seg)) + { + dprintf (1, ("Seg %Ix, gen num is %d, plan gen num is %d", + heap_segment_mem (seg), heap_segment_gen_num (seg), heap_segment_plan_gen_num (seg))); + FATAL_GC_ERROR(); + } +#endif //USE_REGIONS + +#ifdef BACKGROUND_GC BOOL consider_bgc_mark_p = FALSE; BOOL check_current_sweep_p = FALSE; BOOL check_saved_sweep_p = FALSE; should_check_bgc_mark (seg, &consider_bgc_mark_p, &check_current_sweep_p, &check_saved_sweep_p); - #endif //BACKGROUND_GC +#endif //BACKGROUND_GC while (curr_object < heap_segment_allocated (seg)) { - //if (is_mark_set (curr_object)) - //{ - // printf ("curr_object: %Ix is marked!",(size_t)curr_object); - // FATAL_GC_ERROR(); - //} + if (is_mark_set (curr_object)) + { + dprintf (1, ("curr_object: %Ix is marked!",(size_t)curr_object)); + FATAL_GC_ERROR(); + } size_t s = size (curr_object); dprintf (3, ("o: %Ix, s: %d", (size_t)curr_object, s)); @@ -36486,6 +39004,7 @@ gc_heap::verify_heap (BOOL begin_gc_p) FATAL_GC_ERROR(); } +#ifndef USE_REGIONS // handle generation boundaries within ephemeral segment if (seg == ephemeral_heap_segment) { @@ -36498,11 +39017,16 @@ gc_heap::verify_heap (BOOL begin_gc_p) } } } +#endif //!USE_REGIONS +#ifdef USE_REGIONS + if (curr_gen_num != 0) +#else // If object is not in the youngest generation, then lets // verify that the brick table is correct.... if (((seg != ephemeral_heap_segment) || (brick_of(curr_object) < brick_of(begin_youngest)))) +#endif //USE_REGIONS { curr_brick = brick_of(curr_object); @@ -36595,19 +39119,19 @@ gc_heap::verify_heap (BOOL begin_gc_p) if (*((uint8_t**)curr_object) != (uint8_t *) g_gc_pFreeObjectMethodTable) { - #ifdef FEATURE_LOH_COMPACTION +#ifdef FEATURE_LOH_COMPACTION if ((curr_gen_num == loh_generation) && (prev_object != 0)) { assert (method_table (prev_object) == g_gc_pFreeObjectMethodTable); } - #endif //FEATURE_LOH_COMPACTION +#endif //FEATURE_LOH_COMPACTION total_objects_verified++; BOOL can_verify_deep = TRUE; - #ifdef BACKGROUND_GC +#ifdef BACKGROUND_GC can_verify_deep = fgc_should_consider_object (curr_object, seg, consider_bgc_mark_p, check_current_sweep_p, check_saved_sweep_p); - #endif //BACKGROUND_GC +#endif //BACKGROUND_GC BOOL deep_verify_obj = can_verify_deep; if ((heap_verify_level & GCConfig::HEAPVERIFY_DEEP_ON_COMPACT) && !settings.compaction) @@ -36626,11 +39150,11 @@ gc_heap::verify_heap (BOOL begin_gc_p) size_t crd = card_of (curr_object); BOOL found_card_p = card_set_p (crd); - #ifdef COLLECTIBLE_CLASS +#ifdef COLLECTIBLE_CLASS if (is_collectible(curr_object)) { uint8_t* class_obj = get_class_object (curr_object); - if ((class_obj < ephemeral_high) && (class_obj >= next_boundary)) + if (check_need_card (class_obj, gen_num_for_cards, next_boundary, e_high)) { if (!found_card_p) { @@ -36641,26 +39165,26 @@ gc_heap::verify_heap (BOOL begin_gc_p) } } } - #endif //COLLECTIBLE_CLASS +#endif //COLLECTIBLE_CLASS if (contain_pointers(curr_object)) { go_through_object_nostart (method_table(curr_object), curr_object, s, oo, { - if ((crd != card_of ((uint8_t*)oo)) && !found_card_p) + if (crd != card_of ((uint8_t*)oo)) { crd = card_of ((uint8_t*)oo); found_card_p = card_set_p (crd); need_card_p = FALSE; } - if ((*oo < ephemeral_high) && (*oo >= next_boundary)) + if (*oo && check_need_card (*oo, gen_num_for_cards, next_boundary, e_high)) { need_card_p = TRUE; } - if (need_card_p && !found_card_p) - { + if (need_card_p && !found_card_p) + { dprintf (3, ("Card not set, curr_object = [%Ix:%Ix, %Ix:%Ix[", card_of (curr_object), (size_t)curr_object, @@ -36673,8 +39197,8 @@ gc_heap::verify_heap (BOOL begin_gc_p) if (need_card_p && !found_card_p) { dprintf (3, ("Card not set, curr_object = [%Ix:%Ix, %Ix:%Ix[", - card_of (curr_object), (size_t)curr_object, - card_of (curr_object+Align(s, align_const)), (size_t)curr_object+Align(s, align_const))); + card_of (curr_object), (size_t)curr_object, + card_of (curr_object+Align(s, align_const)), (size_t)curr_object+Align(s, align_const))); FATAL_GC_ERROR(); } } @@ -36754,7 +39278,6 @@ gc_heap::verify_heap (BOOL begin_gc_p) dprintf (2,("GC#d: Verifying heap - end", VolatileLoad(&settings.gc_index))); #endif //BACKGROUND_GC } - #endif //VERIFY_HEAP @@ -36834,7 +39357,6 @@ HRESULT GCHeap::StaticShutdown() gc_heap::segment_standby_list = next_seg; } - #ifdef MULTIPLE_HEAPS for (int i = 0; i < gc_heap::n_heaps; i ++) @@ -36911,6 +39433,10 @@ HRESULT GCHeap::Initialize() gc_heap::total_physical_mem = GCToOSInterface::GetPhysicalMemoryLimit (&gc_heap::is_restricted_physical_mem); } +#ifdef USE_REGIONS + gc_heap::regions_range = (size_t)GCConfig::GetGCRegionsRange(); +#endif //USE_REGIONS + #ifdef HOST_64BIT gc_heap::heap_hard_limit = (size_t)GCConfig::GetGCHeapHardLimit(); gc_heap::heap_hard_limit_oh[soh] = (size_t)GCConfig::GetGCHeapHardLimitSOH(); @@ -37046,6 +39572,7 @@ HRESULT GCHeap::Initialize() size_t large_seg_size = 0; size_t pin_seg_size = 0; +#ifndef USE_REGIONS if (gc_heap::heap_hard_limit) { gc_heap::use_large_pages_p = GCConfig::GetGCLargePages(); @@ -37131,7 +39658,20 @@ HRESULT GCHeap::Initialize() { gc_heap::min_segment_size = min (seg_size, gc_heap::min_uoh_segment_size); } +#endif //!USE_REGIONS + +#ifdef USE_REGIONS + // REGIONS TODO: + // soh_segment_size is used by a few places, I'm setting it temporarily and will + // get rid of it. + gc_heap::soh_segment_size = INITIAL_ALLOC; +#ifdef MULTIPLE_HEAPS + gc_heap::soh_segment_size /= 4; +#endif //MULTIPLE_HEAPS + gc_heap::min_segment_size_shr = index_of_highest_set_bit (REGION_SIZE); +#else gc_heap::min_segment_size_shr = index_of_highest_set_bit (gc_heap::min_segment_size); +#endif //USE_REGIONS #ifdef MULTIPLE_HEAPS gc_heap::n_heaps = nhp; @@ -37285,10 +39825,37 @@ HRESULT GCHeap::Initialize() GCScan::GcRuntimeStructuresValid (TRUE); GCToEEInterface::DiagUpdateGenerationBounds(); + +#if defined(STRESS_REGIONS) && defined(FEATURE_BASICFREEZE) +#ifdef MULTIPLE_HEAPS + gc_heap* hp = gc_heap::g_heaps[0]; +#else + gc_heap* hp = pGenGCHeap; +#endif //MULTIPLE_HEAPS + + // allocate some artificial ro seg datastructures. + for (int i = 0; i < 2; i++) + { + size_t ro_seg_size = 1024 * 1024; + // I'm not allocating this within the normal reserved range + // because ro segs are supposed to always be out of range + // for regions. + uint8_t* seg_mem = new (nothrow) uint8_t [ro_seg_size]; + heap_segment* ro_seg = (heap_segment*) seg_mem; + uint8_t* start = seg_mem + gc_heap::segment_info_size; + heap_segment_mem (ro_seg) = start; + heap_segment_used (ro_seg) = start; + heap_segment_reserved (ro_seg) = seg_mem + ro_seg_size; + heap_segment_committed (ro_seg) = heap_segment_reserved (ro_seg); + gc_heap::init_heap_segment (ro_seg, hp, seg_mem, ro_seg_size, 2); + ro_seg->flags = heap_segment_flags_readonly; + hp->insert_ro_segment (ro_seg); + } +#endif //STRESS_REGIONS && FEATURE_BASICFREEZE } return hr; -}; +} //// // GC callback functions @@ -37327,9 +39894,13 @@ bool GCHeap::IsPromoted(Object* object) } else { +#ifdef USE_REGIONS + return (gc_heap::is_in_condemned_gc (o) ? gc_heap::is_mark_set (o) : false); +#else gc_heap* hp = gc_heap::heap_of (o); return (!((o < hp->gc_high) && (o >= hp->gc_low)) || hp->is_mark_set (o)); +#endif //USE_REGIONS } } @@ -37462,7 +40033,11 @@ void GCHeap::Promote(Object** ppObject, ScanContext* sc, uint32_t flags) gc_heap* hp = gc_heap::heap_of (o); +#ifdef USE_REGIONS + if (!gc_heap::is_in_condemned (o)) +#else //USE_REGIONS if ((o < hp->gc_low) || (o >= hp->gc_high)) +#endif //USE_REGIONS { return; } @@ -37528,7 +40103,11 @@ void GCHeap::Relocate (Object** ppObject, ScanContext* sc, { // We cannot validate this object if it's in the condemned gen because it could // be one of the objects that were overwritten by an artificial gap due to a pinned plug. +#ifdef USE_REGIONS + if (!gc_heap::is_in_condemned (object)) +#else //USE_REGIONS if (!((object >= hp->gc_low) && (object < hp->gc_high))) +#endif //USE_REGIONS { ((CObjectHeader*)object)->Validate(FALSE); } @@ -37541,7 +40120,11 @@ void GCHeap::Relocate (Object** ppObject, ScanContext* sc, if ((flags & GC_CALL_INTERIOR) && gc_heap::settings.loh_compaction) { +#ifdef USE_REGIONS + if (!gc_heap::is_in_condemned (object)) +#else //USE_REGIONS if (!((object >= hp->gc_low) && (object < hp->gc_high))) +#endif //USE_REGIONS { return; } @@ -37619,7 +40202,6 @@ bool GCHeap::StressHeap(gc_alloc_context * context) if (g_pConfig->FastGCStressLevel() && !GCToEEInterface::GetThread()->StressHeapIsEnabled()) { return FALSE; } - #endif //_DEBUG if ((g_pConfig->GetGCStressLevel() & EEConfig::GCSTRESS_UNIQUE) @@ -37633,11 +40215,11 @@ bool GCHeap::StressHeap(gc_alloc_context * context) } #ifdef BACKGROUND_GC - // don't trigger a GC from the GC threads but still trigger GCs from user threads. - if (GCToEEInterface::WasCurrentThreadCreatedByGC()) - { - return FALSE; - } + // don't trigger a GC from the GC threads but still trigger GCs from user threads. + if (GCToEEInterface::WasCurrentThreadCreatedByGC()) + { + return FALSE; + } #endif //BACKGROUND_GC if (g_pStringClass == 0) @@ -37905,6 +40487,14 @@ GCHeap::Alloc(gc_alloc_context* context, size_t size, uint32_t flags REQD_ALIGN_ } CHECK_ALLOC_AND_POSSIBLY_REGISTER_FOR_FINALIZATION(newAlloc, size, flags & GC_ALLOC_FINALIZE); + +#ifdef USE_REGIONS + if (!IsHeapPointer (newAlloc)) + { + GCToOSInterface::DebugBreak(); + } +#endif //USE_REGIONS + return newAlloc; } @@ -37931,8 +40521,7 @@ GCHeap::FixAllocContext (gc_alloc_context* context, void* arg, void *heap) if (heap == NULL || heap == hp) { - hp->fix_allocation_context (acontext, ((arg != 0)? TRUE : FALSE), - get_alignment_constant(TRUE)); + hp->fix_allocation_context (acontext, ((arg != 0)? TRUE : FALSE), TRUE); } } @@ -37943,19 +40532,31 @@ GCHeap::GetContainingObject (void *pInteriorPtr, bool fCollectedGenOnly) gc_heap* hp = gc_heap::heap_of (o); - uint8_t* lowest = (fCollectedGenOnly ? hp->gc_low : hp->lowest_address); - uint8_t* highest = (fCollectedGenOnly ? hp->gc_high : hp->highest_address); - - if (o >= lowest && o < highest) +#ifdef USE_REGIONS + if (fCollectedGenOnly) { - o = hp->find_object (o); + if (!gc_heap::is_in_condemned (o)) + { + return NULL; + } } else { - o = NULL; + if (!((o >= g_gc_lowest_address) && (o < g_gc_highest_address))) + return NULL; + } +#else //USE_REGIONS + + uint8_t* lowest = (fCollectedGenOnly ? hp->gc_low : hp->lowest_address); + uint8_t* highest = (fCollectedGenOnly ? hp->gc_high : hp->highest_address); + + if (!((o >= lowest) && (o < highest))) + { + return NULL; } +#endif //USE_REGIONS - return (Object *)o; + return (Object*)(hp->find_object (o)); } BOOL should_collect_optimized (dynamic_data* dd, BOOL low_memory_p) @@ -38230,9 +40831,10 @@ void gc_heap::do_pre_gc() { size_t total_heap_committed = get_total_committed_size(); size_t total_heap_committed_recorded = current_total_committed - current_total_committed_bookkeeping; - dprintf (1, ("(%d)GC commit BEG #%Id: %Id (recorded: %Id)", + dprintf (1, ("(%d)GC commit BEG #%Id: %Id (recorded: %Id = %Id-%Id)", settings.condemned_generation, - (size_t)settings.gc_index, total_heap_committed, total_heap_committed_recorded)); + (size_t)settings.gc_index, total_heap_committed, total_heap_committed_recorded, + current_total_committed, current_total_committed_bookkeeping)); } #endif //TRACE_GC @@ -38700,9 +41302,10 @@ void gc_heap::do_post_gc() if (heap_hard_limit) { size_t total_heap_committed_recorded = current_total_committed - current_total_committed_bookkeeping; - dprintf (1, ("(%d)GC commit END #%Id: %Id (recorded: %Id), heap %Id, frag: %Id", + dprintf (1, ("(%d)GC commit END #%Id: %Id (recorded: %Id=%Id-%Id), heap %Id, frag: %Id", settings.condemned_generation, (size_t)settings.gc_index, total_heap_committed, total_heap_committed_recorded, + current_total_committed, current_total_committed_bookkeeping, last_gc_info->heap_size, last_gc_info->fragmentation)); } #endif //TRACE_GC @@ -38782,11 +41385,14 @@ void gc_heap::do_post_gc() #else record_interesting_info_per_heap(); #endif //MULTIPLE_HEAPS + +#ifdef MARK_LIST if (mark_list_overflow) { grow_mark_list(); mark_list_overflow = false; } +#endif //MARK_LIST record_global_mechanisms(); #endif //GC_CONFIG_DRIVEN @@ -39356,6 +41962,11 @@ int GCHeap::WaitForFullGCComplete(int millisecondsTimeout) int GCHeap::StartNoGCRegion(uint64_t totalSize, bool lohSizeKnown, uint64_t lohSize, bool disallowFullBlockingGC) { +#ifdef USE_REGIONS + assert (!"not impl!"); + return -1; +#endif //USE_REGIONS + NoGCRegionLockHolder lh; dprintf (1, ("begin no gc called")); @@ -39374,6 +41985,11 @@ int GCHeap::StartNoGCRegion(uint64_t totalSize, bool lohSizeKnown, uint64_t lohS int GCHeap::EndNoGCRegion() { +#ifdef USE_REGIONS + assert (!"not impl!"); + return -1; +#endif //USE_REGIONS + NoGCRegionLockHolder lh; return (int)gc_heap::end_no_gc_region(); } @@ -39433,7 +42049,12 @@ HRESULT GCHeap::GetGcCounters(int gen, gc_counters* counters) // Get the segment size to use, making sure it conforms. size_t GCHeap::GetValidSegmentSize(bool large_seg) { +#ifdef USE_REGIONS + return (large_seg ? global_region_allocator.get_large_region_alignment() : + global_region_allocator.get_region_alignment()); +#else return (large_seg ? gc_heap::min_uoh_segment_size : gc_heap::soh_segment_size); +#endif //USE_REGIONS } size_t gc_heap::get_gen0_min_size() @@ -39503,6 +42124,14 @@ size_t gc_heap::get_gen0_min_size() gen0size = gen0size / 8 * 5; } +#ifdef USE_REGIONS +#ifdef STRESS_REGIONS + // This is just so we can test allocation using more than one region on machines with very + // small caches. + gen0size = REGION_SIZE * 3; +#endif //STRESS_REGIONS +#endif //USE_REGIONS + gen0size = Align (gen0size); return gen0size; @@ -40086,15 +42715,12 @@ void gc_heap::walk_heap_per_heap (walk_fn fn, void* context, int gen_number, BOO { generation* gen = gc_heap::generation_of (gen_number); heap_segment* seg = generation_start_segment (gen); - uint8_t* x = ((gen_number == max_generation) ? heap_segment_mem (seg) : - generation_allocation_start (gen)); - + uint8_t* x = ((gen_number == max_generation) ? heap_segment_mem (seg) : get_soh_start_object (seg, gen)); uint8_t* end = heap_segment_allocated (seg); int align_const = get_alignment_constant (TRUE); BOOL walk_pinned_object_heap = walk_large_object_heap_p; while (1) - { if (x >= end) { @@ -40301,7 +42927,7 @@ void initGCShadow() // NOTE: This is the one situation where the combination of heap_segment_rw(gen_start_segment()) // can produce a NULL result. This is because the initialization has not completed. // - for (int i = max_generation; i < total_generation_count; i++) + for (int i = get_start_generation_index(); i < total_generation_count; i++) { generation* gen = gc_heap::generation_of (i); heap_segment* seg = heap_segment_rw (generation_start_segment (gen)); @@ -40532,8 +43158,13 @@ void PopulateDacVars(GcDacVars *gcDacVars) gcDacVars->mark_array = &gc_heap::mark_array; gcDacVars->ephemeral_heap_segment = reinterpret_cast(&gc_heap::ephemeral_heap_segment); gcDacVars->current_c_gc_state = const_cast(&gc_heap::current_c_gc_state); +#ifdef USE_REGIONS + gcDacVars->saved_sweep_ephemeral_seg = 0; + gcDacVars->saved_sweep_ephemeral_start = 0; +#else gcDacVars->saved_sweep_ephemeral_seg = reinterpret_cast(&gc_heap::saved_sweep_ephemeral_seg); gcDacVars->saved_sweep_ephemeral_start = &gc_heap::saved_sweep_ephemeral_start; +#endif //!USE_REGIONS gcDacVars->background_saved_lowest_address = &gc_heap::background_saved_lowest_address; gcDacVars->background_saved_highest_address = &gc_heap::background_saved_highest_address; gcDacVars->alloc_allocated = &gc_heap::alloc_allocated; diff --git a/src/coreclr/src/gc/gc.h b/src/coreclr/src/gc/gc.h index 52efaa454baee..e67db5c5eea65 100644 --- a/src/coreclr/src/gc/gc.h +++ b/src/coreclr/src/gc/gc.h @@ -16,6 +16,8 @@ Module Name: #include "gcinterface.h" #include "env/gcenv.os.h" +#include "gchandletableimpl.h" + #ifdef BUILD_AS_STANDALONE #include "gcenv.ee.standalone.inl" diff --git a/src/coreclr/src/gc/gcconfig.h b/src/coreclr/src/gc/gcconfig.h index 62ea34f3659e4..e7b5e1f21804d 100644 --- a/src/coreclr/src/gc/gcconfig.h +++ b/src/coreclr/src/gc/gcconfig.h @@ -102,6 +102,7 @@ class GCConfigStringHolder INT_CONFIG (GCHeapHardLimit, "GCHeapHardLimit", "System.GC.HeapHardLimit", 0, "Specifies a hard limit for the GC heap") \ INT_CONFIG (GCHeapHardLimitPercent, "GCHeapHardLimitPercent", "System.GC.HeapHardLimitPercent", 0, "Specifies the GC heap usage as a percentage of the total memory") \ INT_CONFIG (GCTotalPhysicalMemory, "GCTotalPhysicalMemory", NULL, 0, "Specifies what the GC should consider to be total physical memory") \ + INT_CONFIG (GCRegionsRange, "GCRegionsRange", NULL, 0, "Specifies the range for the GC heap") \ STRING_CONFIG(LogFile, "GCLogFile", NULL, "Specifies the name of the GC log file") \ STRING_CONFIG(ConfigLogFile, "GCConfigLogFile", NULL, "Specifies the name of the GC config log file") \ INT_CONFIG (BGCFLTuningEnabled, "BGCFLTuningEnabled", NULL, 0, "Enables FL tuning") \ diff --git a/src/coreclr/src/gc/gcee.cpp b/src/coreclr/src/gc/gcee.cpp index 4912f2e866912..30eaa44434f4f 100644 --- a/src/coreclr/src/gc/gcee.cpp +++ b/src/coreclr/src/gc/gcee.cpp @@ -58,12 +58,15 @@ void GCHeap::UpdatePreGCCounters() void GCHeap::ReportGenerationBounds() { - g_theGCHeap->DiagDescrGenerations([](void*, int generation, uint8_t* rangeStart, uint8_t* rangeEnd, uint8_t* rangeEndReserved) + if (EVENT_ENABLED(GCGenerationRange)) { - uint64_t range = static_cast(rangeEnd - rangeStart); - uint64_t rangeReserved = static_cast(rangeEndReserved - rangeStart); - FIRE_EVENT(GCGenerationRange, generation, rangeStart, range, rangeReserved); - }, nullptr); + g_theGCHeap->DiagDescrGenerations([](void*, int generation, uint8_t* rangeStart, uint8_t* rangeEnd, uint8_t* rangeEndReserved) + { + uint64_t range = static_cast(rangeEnd - rangeStart); + uint64_t rangeReserved = static_cast(rangeEndReserved - rangeStart); + FIRE_EVENT(GCGenerationRange, generation, rangeStart, range, rangeReserved); + }, nullptr); + } } void GCHeap::UpdatePostGCCounters() diff --git a/src/coreclr/src/gc/gcpriv.h b/src/coreclr/src/gc/gcpriv.h index 223db42108ed4..0d034f45dc6d9 100644 --- a/src/coreclr/src/gc/gcpriv.h +++ b/src/coreclr/src/gc/gcpriv.h @@ -42,6 +42,29 @@ inline void FATAL_GC_ERROR() #pragma inline_depth(20) #endif +/* the following section defines the optional features */ + +// Regions invariants - +// +// + each generation consists of 1+ regions. +// + a region is in a contiguous address range; different regions could have +// gaps inbetween. +// + a region cannot contain more than one generation. +// +// This means any empty regions can be freely used for any generation. For +// Server GC we will balance regions between heaps. +#ifdef HOST_64BIT +//#define USE_REGIONS +#endif //HOST_64BIT + +#ifdef USE_REGIONS +// Currently this - +// + creates some pins on our own +// + creates some ro segs +// We can add more mechanisms here. +#define STRESS_REGIONS +#endif //USE_REGIONS + // FEATURE_STRUCTALIGN was added by Midori. In CLR we are not interested // in supporting custom alignments on LOH. Currently FEATURE_LOH_COMPACTION // and FEATURE_STRUCTALIGN are mutually exclusive. It shouldn't be much @@ -77,14 +100,20 @@ inline void FATAL_GC_ERROR() #define initial_internal_roots (1024*16) #endif // HEAP_ANALYZE +// Temporarily disabling using the mark list for regions. We would need to have +// each region find their starting and ending positions on the sorted mark list. +#ifndef USE_REGIONS #define MARK_LIST //used sorted list to speed up plan phase +#endif //!USE_REGIONS #define BACKGROUND_GC //concurrent background GC (requires WRITE_WATCH) #ifdef SERVER_GC #define MH_SC_MARK //scalable marking //#define SNOOP_STATS //diagnostic +#ifdef MARK_LIST #define PARALLEL_MARK_LIST_SORT //do the sorting and merging of the multiple mark lists in server gc in parallel +#endif //MARK_LIST #endif //SERVER_GC //This is used to mark some type volatile only when the scalable marking is used. @@ -222,7 +251,7 @@ const int policy_expand = 2; #define JOIN_LOG (MIN_CUSTOM_LOG_LEVEL + 6) #define SPINLOCK_LOG (MIN_CUSTOM_LOG_LEVEL + 7) #define SNOOP_LOG (MIN_CUSTOM_LOG_LEVEL + 8) -#define COMMIT_ACCOUNTING_LOG (MIN_CUSTOM_LOG_LEVEL + 9) +#define REGIONS_LOG (MIN_CUSTOM_LOG_LEVEL + 9) // NOTE! This is for HEAP_BALANCE_INSTRUMENTATION // This particular one is special and needs to be well formatted because we @@ -230,8 +259,8 @@ const int policy_expand = 2; // detail to help with investigation that's not 't processed by tooling // prefix it with TEMP so that line will be written to the results as is in // the result. I have some already logged with HEAP_BALANCE_TEMP_LOG. -#define HEAP_BALANCE_LOG (DT_LOG_0 + 7) -#define HEAP_BALANCE_TEMP_LOG (DT_LOG_0 + 8) +#define HEAP_BALANCE_LOG (MIN_CUSTOM_LOG_LEVEL + 10) +#define HEAP_BALANCE_TEMP_LOG (MIN_CUSTOM_LOG_LEVEL + 11) #ifndef DACCESS_COMPILE @@ -750,9 +779,18 @@ class generation // from the __asm in jitinterface.cpp. alloc_context allocation_context; PTR_heap_segment start_segment; +#ifndef USE_REGIONS uint8_t* allocation_start; +#endif //USE_REGIONS heap_segment* allocation_segment; uint8_t* allocation_context_start_region; +#ifdef USE_REGIONS + heap_segment* tail_region; + heap_segment* plan_start_segment; + // only max_generation could have ro regions; for other generations + // this will be 0. + heap_segment* tail_ro_region; +#endif //USE_REGIONS allocator free_list_allocator; size_t free_list_allocated; size_t end_seg_allocated; @@ -790,7 +828,9 @@ class generation static_assert(offsetof(dac_generation, allocation_context) == offsetof(generation, allocation_context), "DAC generation offset mismatch"); static_assert(offsetof(dac_generation, start_segment) == offsetof(generation, start_segment), "DAC generation offset mismatch"); +#ifndef USE_REGIONS static_assert(offsetof(dac_generation, allocation_start) == offsetof(generation, allocation_start), "DAC generation offset mismatch"); +#endif //!USE_REGIONS // static data remains the same after it's initialized. // It's per generation. @@ -879,32 +919,6 @@ struct last_recorded_gc_info bool concurrent; }; -#define ro_in_entry 0x1 - -// Note that I am storing both h0 and seg0, even though in Server GC you can get to -// the heap* from the segment info. This is because heap_of needs to be really fast -// and we would not want yet another indirection. -struct seg_mapping -{ - // if an address is > boundary it belongs to h1; else h0. - // since we init h0 and h1 to 0, if we get 0 it means that - // address doesn't exist on managed segments. And heap_of - // would just return heap0 which is what it does now. - uint8_t* boundary; -#ifdef MULTIPLE_HEAPS - gc_heap* h0; - gc_heap* h1; -#endif //MULTIPLE_HEAPS - // You could have an address that's inbetween 2 segments and - // this would return a seg, the caller then will use - // in_range_for_segment to determine if it's on that seg. - heap_segment* seg0; // this is what the seg for h0 is. - heap_segment* seg1; // this is what the seg for h1 is. - // Note that when frozen objects are used we mask seg1 - // with 0x1 to indicate that there is a ro segment for - // this entry. -}; - // alignment helpers //Alignment constant for allocation #define ALIGNCONST (DATA_ALIGNMENT-1) @@ -1202,6 +1216,9 @@ class gc_heap void verify_free_lists(); PER_HEAP void verify_heap (BOOL begin_gc_p); + PER_HEAP + BOOL check_need_card (uint8_t* child_obj, int gen_num_for_cards, + uint8_t* low, uint8_t* high); #endif //VERIFY_HEAP PER_HEAP_ISOLATED @@ -1214,11 +1231,90 @@ class gc_heap static void walk_read_only_segment(heap_segment *seg, void *pvContext, object_callback_func pfnMethodTable, object_callback_func pfnObjRef); #endif + // region is only needed for regions and gen is only needed otherwise for these + // 2 methods. + // + // Skips the generation start object for non regions. + PER_HEAP + uint8_t* get_uoh_start_object (heap_segment* region, generation* gen); + + // Does not skip the generation start object for non regions. + PER_HEAP + uint8_t* get_soh_start_object (heap_segment* region, generation* gen); + + PER_HEAP + size_t get_soh_start_obj_len (uint8_t* start_obj); + + PER_HEAP + void clear_gen1_cards(); + +#ifdef USE_REGIONS + PER_HEAP + bool sufficient_space_regions (size_t end_space, size_t end_space_required); + PER_HEAP + bool initial_make_soh_regions (gc_heap* hp); + PER_HEAP + bool initial_make_uoh_regions (int gen, gc_heap* hp); + PER_HEAP + void return_free_region (heap_segment* region); + PER_HEAP + heap_segment* get_free_region (int gen_number); + PER_HEAP + void clear_region_info (heap_segment* region); + PER_HEAP_ISOLATED + heap_segment* region_of (uint8_t* obj); + PER_HEAP_ISOLATED + int get_region_gen_num (heap_segment* region); + PER_HEAP + void check_seg_gen_num (heap_segment* seg); + PER_HEAP_ISOLATED + int get_region_gen_num (uint8_t* obj); + PER_HEAP_ISOLATED + void set_region_gen_num (heap_segment* region, int gen_num); + PER_HEAP_ISOLATED + int get_region_plan_gen_num (uint8_t* obj); + PER_HEAP_ISOLATED + int get_plan_gen_num (int gen_number); + PER_HEAP_ISOLATED + bool is_region_demoted (uint8_t* obj); + PER_HEAP + void set_region_plan_gen_num (heap_segment* region, int plan_gen_num); + PER_HEAP + void process_last_np_surv_region (generation* consing_gen, + int current_plan_gen_num, + int next_plan_gen_num); + PER_HEAP + void process_remaining_regions (int current_plan_gen_num, + generation* consing_gen); + + // Used as we discover free spaces before pins during plan. + // the plug arg is only for logging. + PER_HEAP + void update_planned_gen0_free_space (size_t free_size, uint8_t* plug); + // used when deciding on expansion. + PER_HEAP + void get_gen0_end_plan_space_worker (heap_segment* region); + PER_HEAP + void get_gen0_end_plan_space(); + PER_HEAP + size_t get_gen0_end_space(); + PER_HEAP + bool decide_on_expansion(); + PER_HEAP + heap_segment* find_first_valid_region (heap_segment* region, int gen_num=-1); + PER_HEAP + void thread_start_region (generation* gen, heap_segment* region); + PER_HEAP + void thread_rest_of_generation (generation* gen, heap_segment* region); + PER_HEAP + heap_segment* get_new_region (int gen_number); +#endif //USE_REGIONS + static heap_segment* make_heap_segment (uint8_t* new_pages, size_t size, - gc_oh_num oh, - int h_number); + gc_heap* hp, + int gen_num); static gc_heap* make_gc_heap( @@ -1355,7 +1451,7 @@ class gc_heap gc_heap* hp, BOOL loh_p); - PER_HEAP + PER_HEAP_ISOLATED BOOL is_mark_set (uint8_t* o); #ifdef FEATURE_BASICFREEZE @@ -1530,7 +1626,7 @@ class gc_heap size_t get_full_compact_gc_count(); PER_HEAP - BOOL short_on_end_of_seg (heap_segment* seg, int align_const); + BOOL short_on_end_of_seg (heap_segment* seg); PER_HEAP BOOL a_fit_free_list_p (int gen_number, @@ -1703,9 +1799,7 @@ class gc_heap void fix_youngest_allocation_area(); PER_HEAP void fix_allocation_context (alloc_context* acontext, BOOL for_gc_p, - int align_const); - PER_HEAP - void fix_uoh_allocation_area(); + BOOL record_ac_p); PER_HEAP void fix_older_allocation_area (generation* older_gen); PER_HEAP @@ -1717,7 +1811,11 @@ class gc_heap PER_HEAP int object_gennum_plan (uint8_t* o); PER_HEAP_ISOLATED - void init_heap_segment (heap_segment* seg); + void init_heap_segment (heap_segment* seg, gc_heap* hp +#ifdef USE_REGIONS + , uint8_t* start, size_t size, int gen_num +#endif //USE_REGIONS + ); PER_HEAP void delete_heap_segment (heap_segment* seg, BOOL consider_hoarding=FALSE); #ifdef FEATURE_BASICFREEZE @@ -1728,8 +1826,10 @@ class gc_heap #endif //FEATURE_BASICFREEZE PER_HEAP BOOL set_ro_segment_in_range (heap_segment* seg); +#ifndef USE_REGIONS PER_HEAP heap_segment* soh_get_segment_to_expand(); +#endif //!USE_REGIONS PER_HEAP heap_segment* get_segment (size_t size, gc_oh_num oh); PER_HEAP_ISOLATED @@ -1776,9 +1876,10 @@ class gc_heap #endif //BACKGROUND_GC PER_HEAP void rearrange_uoh_segments(); +#ifndef USE_REGIONS PER_HEAP void rearrange_heap_segments(BOOL compacting); - +#endif //!USE_REGIONS PER_HEAP_ISOLATED void reset_write_watch_for_gc_heap(void* base_address, size_t region_size); PER_HEAP_ISOLATED @@ -1977,8 +2078,11 @@ class gc_heap int from_gen_number, uint8_t* old_loc=0 REQD_ALIGN_AND_OFFSET_DEFAULT_DCL); + +#ifndef USE_REGIONS PER_HEAP generation* ensure_ephemeral_heap_segment (generation* consing_gen); +#endif //!USE_REGIONS PER_HEAP uint8_t* allocate_in_condemned_generations (generation* gen, size_t size, @@ -2072,7 +2176,7 @@ class gc_heap PER_HEAP BOOL gc_mark1 (uint8_t* o); PER_HEAP - BOOL gc_mark (uint8_t* o, uint8_t* low, uint8_t* high); + BOOL gc_mark (uint8_t* o, uint8_t* low, uint8_t* high, int condemned_gen); PER_HEAP void mark_object (uint8_t* o THREAD_NUMBER_DCL); #ifdef HEAP_ANALYZE @@ -2154,8 +2258,7 @@ class gc_heap BOOL concurrent_p, BOOL small_object_p); PER_HEAP - void background_process_mark_overflow_internal (int condemned_gen_number, - uint8_t* min_add, uint8_t* max_add, + void background_process_mark_overflow_internal (uint8_t* min_add, uint8_t* max_add, BOOL concurrent_p); PER_HEAP BOOL background_process_mark_overflow (BOOL concurrent_p); @@ -2456,6 +2559,9 @@ class gc_heap PER_HEAP void scan_dependent_handles (int condemned_gen_number, ScanContext *sc, BOOL initial_scan_p); + PER_HEAP + size_t get_generation_start_size (int gen_number); + PER_HEAP void mark_phase (int condemned_gen_number, BOOL mark_only_p); @@ -2474,6 +2580,7 @@ class gc_heap size_t update_brick_table (uint8_t* tree, size_t current_brick, uint8_t* x, uint8_t* plug_end); +#ifndef USE_REGIONS PER_HEAP void plan_generation_start (generation* gen, generation* consing_gen, uint8_t* next_plug_to_allocate); @@ -2491,6 +2598,8 @@ class gc_heap int& active_old_gen_number, generation*& consing_gen, BOOL& allocate_in_condemned); +#endif //!USE_REGIONS + PER_HEAP void seg_clear_mark_bits (heap_segment* seg); PER_HEAP @@ -2582,13 +2691,17 @@ class gc_heap PER_HEAP void fix_generation_bounds (int condemned_gen_number, generation* consing_gen); +#ifndef USE_REGIONS PER_HEAP uint8_t* generation_limit (int gen_number); +#endif //!USE_REGIONS struct make_free_args { int free_list_gen_number; +#ifndef USE_REGIONS uint8_t* current_gen_limit; +#endif //USE_REGIONS generation* free_list_gen; uint8_t* highest_plug; }; @@ -2731,15 +2844,24 @@ class gc_heap void copy_mark_bits_for_addresses (uint8_t* dest, uint8_t* src, size_t len); #endif //BACKGROUND_GC - +#ifdef USE_REGIONS + // o is guaranteed to be in the heap range. + PER_HEAP_ISOLATED + bool is_in_condemned_gc (uint8_t* o); + // requires checking if o is in the heap range first. + PER_HEAP_ISOLATED + bool is_in_condemned (uint8_t* o); +#endif //USE_REGIONS PER_HEAP BOOL ephemeral_pointer_p (uint8_t* o); PER_HEAP void fix_brick_to_highest (uint8_t* o, uint8_t* next_o); PER_HEAP uint8_t* find_first_object (uint8_t* start_address, uint8_t* first_object); +#ifndef USE_REGIONS PER_HEAP uint8_t* compute_next_boundary (int gen_number, BOOL relocating); +#endif //!USE_REGIONS PER_HEAP void keep_card_live (uint8_t* o, size_t& n_gen, size_t& cg_pointers_found); @@ -2747,9 +2869,10 @@ class gc_heap void mark_through_cards_helper (uint8_t** poo, size_t& ngen, size_t& cg_pointers_found, card_fn fn, uint8_t* nhigh, - uint8_t* next_boundary + uint8_t* next_boundary, + int condemned_gen, + int current_gen CARD_MARKING_STEALING_ARG(gc_heap* hpt)); - PER_HEAP BOOL card_transition (uint8_t* po, uint8_t* end, size_t card_word_end, size_t& cg_pointers_found, @@ -2761,6 +2884,7 @@ class gc_heap PER_HEAP void mark_through_cards_for_segments(card_fn fn, BOOL relocating CARD_MARKING_STEALING_ARG(gc_heap* hpt)); +#ifndef USE_REGIONS PER_HEAP void repair_allocation_in_expanded_heap (generation* gen); PER_HEAP @@ -2797,12 +2921,8 @@ class gc_heap size_t* total_free_space, size_t* largest_free_space); PER_HEAP - size_t compute_eph_gen_starts_size(); - PER_HEAP void compute_new_ephemeral_size(); PER_HEAP - BOOL expand_reused_seg_p(); - PER_HEAP BOOL can_expand_into_p (heap_segment* seg, size_t min_free_size, size_t min_cont_size, allocator* al); PER_HEAP @@ -2833,13 +2953,9 @@ class gc_heap void realloc_plugs (generation* consing_gen, heap_segment* seg, uint8_t* start_address, uint8_t* end_address, unsigned active_new_gen_number); - PER_HEAP void set_expand_in_full_gc (int condemned_gen_number); - PER_HEAP - void verify_no_pins (uint8_t* start, uint8_t* end); - PER_HEAP generation* expand_heap (int condemned_generation, generation* consing_gen, @@ -2847,6 +2963,13 @@ class gc_heap PER_HEAP void save_ephemeral_generation_starts(); +#endif //!USE_REGIONS + + PER_HEAP + BOOL expand_reused_seg_p(); + + PER_HEAP + void verify_no_pins (uint8_t* start, uint8_t* end); PER_HEAP_ISOLATED size_t get_gen0_min_size(); @@ -2943,7 +3066,7 @@ class gc_heap generation* consing_gen, uint8_t* end); PER_HEAP - size_t generation_sizes (generation* gen); + size_t generation_sizes (generation* gen, bool use_saved_p=FALSE); PER_HEAP size_t committed_size(); PER_HEAP @@ -2972,7 +3095,7 @@ class gc_heap void mark_through_cards_for_uoh_objects(card_fn fn, int oldest_gen_num, BOOL relocating CARD_MARKING_STEALING_ARG(gc_heap* hpt)); PER_HEAP - void descr_generations (BOOL begin_gc_p); + void descr_generations (const char* msg); PER_HEAP_ISOLATED void descr_generations_to_profiler (gen_walk_fn fn, void *context); @@ -2987,6 +3110,7 @@ class gc_heap bool create_gc_thread(); PER_HEAP void gc_thread_function(); + #ifdef MARK_LIST #ifdef PARALLEL_MARK_LIST_SORT PER_HEAP @@ -2999,7 +3123,7 @@ class gc_heap PER_HEAP_ISOLATED void combine_mark_lists(); #endif //PARALLEL_MARK_LIST_SORT -#endif +#endif //MARK_LIST #endif //MULTIPLE_HEAPS #ifdef MARK_LIST @@ -3054,6 +3178,9 @@ class gc_heap PER_HEAP_ISOLATED void verify_mark_array_cleared (uint8_t* begin, uint8_t* end, uint32_t* mark_array_addr); + PER_HEAP_ISOLATED + uint8_t* get_start_address (heap_segment* seg); + PER_HEAP_ISOLATED BOOL commit_mark_array_by_range (uint8_t* begin, uint8_t* end, @@ -3173,6 +3300,7 @@ class gc_heap uint8_t* alloc_allocated; // The ephemeral heap segment + // For regions this is the region we currently allocate in. PER_HEAP heap_segment* ephemeral_heap_segment; @@ -3212,6 +3340,62 @@ class gc_heap // End DAC zone +#ifdef USE_REGIONS +#ifdef STRESS_REGIONS + // TODO: could consider dynamically grow this. + // Right now the way it works - + // For each gen0 region, pin an object somewhere near the beginning and middle. + // When we run out start replacing objects pinned by the earlier handles. +#define PINNING_HANDLE_INITIAL_LENGTH 128 + PER_HEAP + OBJECTHANDLE* pinning_handles_for_alloc; + PER_HEAP + int ph_index_per_heap; + PER_HEAP + int pinning_seg_interval; + PER_HEAP + int num_gen0_segs; +#endif //STRESS_REGIONS + + PER_HEAP + heap_segment* free_regions; + + PER_HEAP + int num_free_regions; + + PER_HEAP + int num_free_regions_added; + + PER_HEAP + int num_free_regions_removed; + + PER_HEAP + heap_segment* free_large_regions; + + PER_HEAP + int num_free_large_regions; + + PER_HEAP + size_t committed_in_free; + + PER_HEAP + // After plan we calculate this as the planned end gen0 space; + // but if we end up sweeping, we recalculate it at the end of + // sweep. + size_t end_gen0_region_space; + + // These are updated as we plan and will be used to make compaction + // decision. + PER_HEAP + size_t gen0_pinned_free_space; + + PER_HEAP + bool gen0_large_chunk_found; + + PER_HEAP_ISOLATED + size_t regions_range; +#endif //USE_REGIONS + #define max_oom_history_count 4 PER_HEAP @@ -3263,11 +3447,13 @@ class gc_heap PER_HEAP void exit_gc_done_event_lock(); +#ifndef USE_REGIONS PER_HEAP uint8_t* ephemeral_low; //lowest ephemeral address PER_HEAP uint8_t* ephemeral_high; //highest ephemeral address +#endif //!USE_REGIONS PER_HEAP uint32_t* card_table; @@ -3324,11 +3510,13 @@ class gc_heap static wait_full_gc_status full_gc_wait (GCEvent *event, int time_out_ms); +#ifndef USE_REGIONS PER_HEAP uint8_t* demotion_low; PER_HEAP uint8_t* demotion_high; +#endif //!USE_REGIONS PER_HEAP BOOL demote_gen1_p; @@ -3562,10 +3750,6 @@ class gc_heap PER_HEAP_ISOLATED size_t current_total_committed_bookkeeping; - // This is what GC's own book keeping consumes. - PER_HEAP_ISOLATED - size_t current_total_committed_gc_own; - // This is if large pages should be used. PER_HEAP_ISOLATED bool use_large_pages_p; @@ -3575,9 +3759,15 @@ class gc_heap size_t last_gc_end_time_us; #endif //HEAP_BALANCE_INSTRUMENTATION +#ifndef USE_REGIONS PER_HEAP_ISOLATED size_t min_segment_size; + PER_HEAP_ISOLATED + size_t min_uoh_segment_size; +#endif //!USE_REGIONS + + // For regions this is for region size. PER_HEAP_ISOLATED size_t min_segment_size_shr; @@ -3586,9 +3776,6 @@ class gc_heap PER_HEAP_ISOLATED size_t soh_segment_size; - PER_HEAP_ISOLATED - size_t min_uoh_segment_size; - PER_HEAP_ISOLATED size_t segment_info_size; @@ -3621,11 +3808,13 @@ class gc_heap PER_HEAP uint64_t time_bgc_last; +//#ifndef USE_REGIONS PER_HEAP uint8_t* gc_low; // lowest address being condemned PER_HEAP - uint8_t* gc_high; //highest address being condemned + uint8_t* gc_high; // highest address being condemned +//#endif //USE_REGIONS PER_HEAP size_t mark_stack_tos; @@ -3760,9 +3949,11 @@ class gc_heap // This is in bytes per ms; consider breaking it // into the efficiency per phase. size_t gc_efficiency; +#ifndef USE_REGIONS uint8_t* eph_low; uint8_t* gen0_start; uint8_t* eph_high; +#endif //!USE_REGIONS uint8_t* bgc_highest; uint8_t* bgc_lowest; uint8_t* fgc_highest; @@ -3859,11 +4050,12 @@ class gc_heap PER_HEAP uint8_t* background_max_overflow_address; - // We can't process the soh range concurrently so we + // We can't process the ephemeral range concurrently so we // wait till final mark to process it. PER_HEAP BOOL processed_soh_overflow_p; +#ifndef USE_REGIONS PER_HEAP uint8_t* background_min_soh_overflow_address; @@ -3878,6 +4070,7 @@ class gc_heap PER_HEAP uint8_t* saved_sweep_ephemeral_start; +#endif //!USE_REGIONS PER_HEAP uint8_t* background_saved_lowest_address; @@ -4425,6 +4618,7 @@ class gc_heap #define ASSERT_OFFSETS_MATCH(field) \ static_assert(offsetof(dac_gc_heap, field) == offsetof(gc_heap, field), #field " offset mismatch") +#ifndef USE_REGIONS #ifdef MULTIPLE_HEAPS ASSERT_OFFSETS_MATCH(alloc_allocated); ASSERT_OFFSETS_MATCH(ephemeral_heap_segment); @@ -4439,6 +4633,7 @@ ASSERT_OFFSETS_MATCH(internal_root_array_index); ASSERT_OFFSETS_MATCH(heap_analyze_success); ASSERT_OFFSETS_MATCH(generation_table); #endif // MULTIPLE_HEAPS +#endif //USE_REGIONS #ifdef FEATURE_PREMORTEM_FINALIZATION class CFinalize @@ -4674,11 +4869,13 @@ alloc_context* generation_alloc_context (generation* inst) return &(inst->allocation_context); } +#ifndef USE_REGIONS inline uint8_t*& generation_allocation_start (generation* inst) { return inst->allocation_start; } +#endif //!USE_REGIONS inline uint8_t*& generation_allocation_pointer (generation* inst) { @@ -4700,6 +4897,27 @@ PTR_heap_segment& generation_start_segment (generation* inst) { return inst->start_segment; } + +#ifdef USE_REGIONS +inline +heap_segment*& generation_tail_region (generation* inst) +{ + return inst->tail_region; +} + +inline +heap_segment*& generation_plan_start_segment (generation* inst) +{ + return inst->plan_start_segment; +} + +inline +heap_segment*& generation_tail_ro_region (generation* inst) +{ + return inst->tail_ro_region; +} +#endif //USE_REGIONS + inline heap_segment*& generation_allocation_segment (generation* inst) { @@ -4910,19 +5128,31 @@ struct loh_padding_obj #define heap_segment_flags_ma_pcommitted 128 #define heap_segment_flags_uoh_delete 256 -#define heap_segment_flags_poh 512 +#ifdef USE_REGIONS +// This means this seg needs to be processed by +// BGC overflow when we process non concurrently. +#define heap_segment_flag_overflow 1024 +#endif //USE_REGIONS #endif //BACKGROUND_GC +#define heap_segment_flags_poh 512 + //need to be careful to keep enough pad items to fit a relocation node //padded to QuadWord before the plug_skew class heap_segment { public: + // For regions allocated is used to indicate whether this is a valid segment + // or not, ie, if it's 0 it means it's freed; else it's either a valid value + // or a negative value which means it's in a large region. uint8_t* allocated; uint8_t* committed; + // For regions This could be obtained from region_allocator as each + // busy block knows its size. uint8_t* reserved; uint8_t* used; + // For regions this is the actual physical start + aligned_plug_and_gap. uint8_t* mem; size_t flags; PTR_heap_segment next; @@ -4936,16 +5166,206 @@ class heap_segment #endif //MULTIPLE_HEAPS uint8_t* decommit_target; uint8_t* plan_allocated; + // In the plan phase we change the allocated for a seg but we need this + // value to correctly calculate how much space we can reclaim in + // generation_fragmentation. But it's beneficial to truncate it as it + // means in the later phases we only need to look up to the new allocated. + uint8_t* saved_allocated; uint8_t* saved_bg_allocated; +#ifdef USE_REGIONS + // These generation numbers are initialized to -1. + // For plan_gen_num: + // for all regions in condemned generations it needs + // to be re-initialized to -1 when a GC is done. + // When setting it we update the demotion decision accordingly. + int gen_num; + int plan_gen_num; + // This should be changed to a flag. + bool demoted_p; + + // Fields that we need to provide in response to a + // random address that might land anywhere on the region. + // - heap + // - gen_num + // - plan_gen_num + // which means if a region consists of multiple basic regions, + // these will need to be populated for each basic region in the + // seg mapping table. + // + // We can break this up into 2 data structures, one with the + // fields per basic region; the other with the rest of the fields. + // + // Could consider to have the region itself populated per basic + // region but so far it doesn't seem necessary so I'll leave it + // out. +#else //USE_REGIONS #ifdef _MSC_VER // Disable this warning - we intentionally want __declspec(align()) to insert padding for us #pragma warning(disable:4324) // structure was padded due to __declspec(align()) #endif + // REGIONS TODO: we don't need this for regions - to be removed. aligned_plug_and_gap padandplug; #ifdef _MSC_VER #pragma warning(default:4324) // structure was padded due to __declspec(align()) #endif +#endif //USE_REGIONS +}; + +#ifdef USE_REGIONS +// Region management +// +// We reserve a big space for regions. We could consider including the GC bookkeeping data +// structures in this space too (eg, at the end and only commit the portion that's used to +// cover the current regions). +// +// region_allocator is used to find where to put a region. When it finds a space to allocate +// a region in it will mark is as busy. Note that the actual commit operation for a region +// is not done by region_allocator - it's done as needed when GC actually stores objects there. +// +// TODO: +// When GC detects a region only containing dead objects, it does not immediately return this +// region to region_allocator. It doesn't decommit anything from this region and stores this +// region per heap as free_regions and free_large_regions respectively for SOH and UOH. When +// the memory pressure is high enough, we decommit an appropriate amount regions in free_regions +// and free_large_regions. These decommitted regions will be returned to region_allocator which +// mark the space as free blocks. +// +// Make configs available to change these. +#define REGION_SIZE ((size_t)4 * 1024 * 1024) +#define LARGE_REGION_FACTOR (8) + +#define region_alloc_free_bit (1 << (sizeof (uint32_t) * 8 - 1)) + +// The big space we reserve for regions is divided into units of region_alignment. +// +// SOH regions are all basic regions, meaning their size is the same as alignment. UOH regions +// are by default 8x as large. +// +// We use a map to encode info on these units. The map consists of an array of 32-bit uints. +// The encoding is the following: +// +// If the MSB is not set, it means it's busy (in use); otherwise it means it's free. +// +// The value (without the MSB) indicates how many units to walk till we get to the next +// group of encoded bytes which is called a block. +// +// For each region we encode the info with a busy block in the map. This block has the +// same # of uints as the # of units this region occupies. And we store the # in +// the starting uint. These uints can be converted to bytes since we have multiple units +// for larger regions anyway. I haven't done that since this will need to be changed in +// the near future based on more optimal allocation strategies. +// +// When we allocate, we search forward to find contiguous free units >= num_units +// We do take the opportunity to coalesce free blocks but we do not coalesce busy blocks. +// When we decommit a region, we simply mark its block free. Free blocks are coalesced +// opportunistically when we need to walk them. +class region_allocator +{ +private: + // We need to start from an aligned address. This is the actual address of the reserved range. + uint8_t* actual_start; + + uint8_t* global_region_start; + uint8_t* global_region_end; + uint8_t* global_region_used; + + size_t region_alignment; + size_t large_region_alignment; + + uint32_t* region_map_start; + uint32_t* region_map_end; + + uint8_t* region_address_of (uint32_t* map_index); + uint32_t* region_map_index_of (uint8_t* address); + + uint8_t* allocate (uint32_t num_units); + uint8_t* allocate_end_uh (uint32_t num_units); + + void make_busy_block (uint32_t* index_start, uint32_t num_units); + void make_free_block (uint32_t* index_start, uint32_t num_units); + + void adjust_map (uint32_t* current_free_index_start, + uint32_t num_contiguous_free_units, uint32_t num_busy_units); + + void print_map (const char* msg); + + size_t align_region_up (size_t size) + { + return ((size + (region_alignment - 1)) & ~(region_alignment - 1)); + } + + size_t align_region_down (size_t size) + { + return (size & ~(region_alignment - 1)); + } + + size_t is_region_aligned (uint8_t* address) + { + return ((size_t)address == ((size_t)address & ~(region_alignment - 1))); + } + + bool is_unit_memory_free (uint32_t val) + { + return !!(val & region_alloc_free_bit); + } + + uint32_t get_num_units (uint32_t val) + { + return (val & ~region_alloc_free_bit); + } + +public: + bool init (uint8_t* start, uint8_t* end, size_t alignment, uint8_t** lowest, uint8_t** highest); + bool allocate_region (size_t size, uint8_t** start, uint8_t** end); + bool allocate_basic_region (uint8_t** start, uint8_t** end); + bool allocate_large_region (uint8_t** start, uint8_t** end); + void delete_region (uint8_t* start); + size_t get_region_alignment () { return region_alignment; } + size_t get_large_region_alignment () { return large_region_alignment; } +}; +#endif //USE_REGIONS + +#define ro_in_entry 0x1 + +// Note that I am storing both h0 and seg0, even though in Server GC you can get to +// the heap* from the segment info. This is because heap_of needs to be really fast +// and we would not want yet another indirection. +// +// Note on USE_REGIONS - since ro segs will never be in range, we can simply return +// when an address is not between lowest and highest. Each entry in the seg_mapping +// table can indicate one of the following - +// +// - an rw seg +// - part of an rw seg +// - no seg +// +// If it's part of an rw seg, meaning this is a large region, each basic region would +// store the info for fast access but when we need to get to the actual region info +// we go back to the first basic region. +struct seg_mapping +{ +#ifdef USE_REGIONS + heap_segment region_info; +#else + // if an address is > boundary it belongs to h1; else h0. + // since we init h0 and h1 to 0, if we get 0 it means that + // address doesn't exist on managed segments. And heap_of + // would just return heap0 which is what it does now. + uint8_t* boundary; +#ifdef MULTIPLE_HEAPS + gc_heap* h0; + gc_heap* h1; +#endif //MULTIPLE_HEAPS + // You could have an address that's inbetween 2 segments and + // this would return a seg, the caller then will use + // in_range_for_segment to determine if it's on that seg. + heap_segment* seg0; // this is what the seg for h0 is. + heap_segment* seg1; // this is what the seg for h1 is. + // Note that when frozen objects are used we mask seg1 + // with 0x1 to indicate that there is a ro segment for + // this entry. +#endif //USE_REGIONS }; static_assert(offsetof(dac_heap_segment, allocated) == offsetof(heap_segment, allocated), "DAC heap segment layout mismatch"); @@ -5007,7 +5427,7 @@ BOOL heap_segment_unmappable_p (heap_segment* inst) } inline -BOOL heap_segment_uoh_p (heap_segment * inst) +BOOL heap_segment_uoh_p (heap_segment* inst) { return !!(inst->flags & (heap_segment_flags_loh | heap_segment_flags_poh)); } @@ -5028,6 +5448,14 @@ inline gc_oh_num heap_segment_oh (heap_segment * inst) } } +#ifdef USE_REGIONS +inline +bool heap_segment_overflow_p (heap_segment* inst) +{ + return ((inst->flags & heap_segment_flag_overflow) != 0); +} +#endif //USE_REGIONS + #ifdef BACKGROUND_GC inline BOOL heap_segment_decommitted_p (heap_segment * inst) @@ -5056,7 +5484,11 @@ uint8_t*& heap_segment_plan_allocated (heap_segment* inst) { return inst->plan_allocated; } - +inline +uint8_t*& heap_segment_saved_allocated (heap_segment* inst) +{ + return inst->saved_allocated; +} #ifdef BACKGROUND_GC inline uint8_t*& heap_segment_background_allocated (heap_segment* inst) @@ -5078,6 +5510,24 @@ gc_heap*& heap_segment_heap (heap_segment* inst) } #endif //MULTIPLE_HEAPS +#ifdef USE_REGIONS +inline +int& heap_segment_gen_num (heap_segment* inst) +{ + return inst->gen_num; +} +inline +int& heap_segment_plan_gen_num (heap_segment* inst) +{ + return inst->plan_gen_num; +} +inline +bool& heap_segment_demoted_p (heap_segment* inst) +{ + return inst->demoted_p; +} +#endif //USE_REGIONS + inline generation* gc_heap::generation_of (int n) { @@ -5126,6 +5576,7 @@ size_t gcard_of (uint8_t* object) // make this 8 card bundle bits (2 MB in 64-bit architectures, 1 MB in 32-bit) - should be at least 1 card bundle bit #define CARD_MARKING_STEALING_GRANULARITY (card_size*card_word_width*card_bundle_size*8) +// REGIONS TODO: this shouldn't need gc_low for regions. #define THIS_ARG , __this class card_marking_enumerator { From c2404a90b585babebd466d6c6257b763f06f76a0 Mon Sep 17 00:00:00 2001 From: Roman Konecny Date: Fri, 4 Dec 2020 23:42:40 +0100 Subject: [PATCH 32/87] Optimize huffman encoding static table initialization (#45303) Huffman encoding table split into two static arrays --- .../Http/aspnetcore/Http2/Hpack/Huffman.cs | 786 ++++++++++++------ 1 file changed, 526 insertions(+), 260 deletions(-) diff --git a/src/libraries/Common/src/System/Net/Http/aspnetcore/Http2/Hpack/Huffman.cs b/src/libraries/Common/src/System/Net/Http/aspnetcore/Http2/Hpack/Huffman.cs index eb1a14db937cf..ed20c1fb7bba8 100644 --- a/src/libraries/Common/src/System/Net/Http/aspnetcore/Http2/Hpack/Huffman.cs +++ b/src/libraries/Common/src/System/Net/Http/aspnetcore/Http2/Hpack/Huffman.cs @@ -10,272 +10,534 @@ namespace System.Net.Http.HPack internal static class Huffman { // HPack static huffman code. see: https://httpwg.org/specs/rfc7541.html#huffman.code - private static readonly (uint code, int bitLength)[] _encodingTable = new (uint code, int bitLength)[] + // Stored into two tables to optimize its initialization and memory consumption. + private static readonly uint[] s_encodingTableCodes = new uint[257] { - (0b11111111_11000000_00000000_00000000, 13), - (0b11111111_11111111_10110000_00000000, 23), - (0b11111111_11111111_11111110_00100000, 28), - (0b11111111_11111111_11111110_00110000, 28), - (0b11111111_11111111_11111110_01000000, 28), - (0b11111111_11111111_11111110_01010000, 28), - (0b11111111_11111111_11111110_01100000, 28), - (0b11111111_11111111_11111110_01110000, 28), - (0b11111111_11111111_11111110_10000000, 28), - (0b11111111_11111111_11101010_00000000, 24), - (0b11111111_11111111_11111111_11110000, 30), - (0b11111111_11111111_11111110_10010000, 28), - (0b11111111_11111111_11111110_10100000, 28), - (0b11111111_11111111_11111111_11110100, 30), - (0b11111111_11111111_11111110_10110000, 28), - (0b11111111_11111111_11111110_11000000, 28), - (0b11111111_11111111_11111110_11010000, 28), - (0b11111111_11111111_11111110_11100000, 28), - (0b11111111_11111111_11111110_11110000, 28), - (0b11111111_11111111_11111111_00000000, 28), - (0b11111111_11111111_11111111_00010000, 28), - (0b11111111_11111111_11111111_00100000, 28), - (0b11111111_11111111_11111111_11111000, 30), - (0b11111111_11111111_11111111_00110000, 28), - (0b11111111_11111111_11111111_01000000, 28), - (0b11111111_11111111_11111111_01010000, 28), - (0b11111111_11111111_11111111_01100000, 28), - (0b11111111_11111111_11111111_01110000, 28), - (0b11111111_11111111_11111111_10000000, 28), - (0b11111111_11111111_11111111_10010000, 28), - (0b11111111_11111111_11111111_10100000, 28), - (0b11111111_11111111_11111111_10110000, 28), - (0b01010000_00000000_00000000_00000000, 6), - (0b11111110_00000000_00000000_00000000, 10), - (0b11111110_01000000_00000000_00000000, 10), - (0b11111111_10100000_00000000_00000000, 12), - (0b11111111_11001000_00000000_00000000, 13), - (0b01010100_00000000_00000000_00000000, 6), - (0b11111000_00000000_00000000_00000000, 8), - (0b11111111_01000000_00000000_00000000, 11), - (0b11111110_10000000_00000000_00000000, 10), - (0b11111110_11000000_00000000_00000000, 10), - (0b11111001_00000000_00000000_00000000, 8), - (0b11111111_01100000_00000000_00000000, 11), - (0b11111010_00000000_00000000_00000000, 8), - (0b01011000_00000000_00000000_00000000, 6), - (0b01011100_00000000_00000000_00000000, 6), - (0b01100000_00000000_00000000_00000000, 6), - (0b00000000_00000000_00000000_00000000, 5), - (0b00001000_00000000_00000000_00000000, 5), - (0b00010000_00000000_00000000_00000000, 5), - (0b01100100_00000000_00000000_00000000, 6), - (0b01101000_00000000_00000000_00000000, 6), - (0b01101100_00000000_00000000_00000000, 6), - (0b01110000_00000000_00000000_00000000, 6), - (0b01110100_00000000_00000000_00000000, 6), - (0b01111000_00000000_00000000_00000000, 6), - (0b01111100_00000000_00000000_00000000, 6), - (0b10111000_00000000_00000000_00000000, 7), - (0b11111011_00000000_00000000_00000000, 8), - (0b11111111_11111000_00000000_00000000, 15), - (0b10000000_00000000_00000000_00000000, 6), - (0b11111111_10110000_00000000_00000000, 12), - (0b11111111_00000000_00000000_00000000, 10), - (0b11111111_11010000_00000000_00000000, 13), - (0b10000100_00000000_00000000_00000000, 6), - (0b10111010_00000000_00000000_00000000, 7), - (0b10111100_00000000_00000000_00000000, 7), - (0b10111110_00000000_00000000_00000000, 7), - (0b11000000_00000000_00000000_00000000, 7), - (0b11000010_00000000_00000000_00000000, 7), - (0b11000100_00000000_00000000_00000000, 7), - (0b11000110_00000000_00000000_00000000, 7), - (0b11001000_00000000_00000000_00000000, 7), - (0b11001010_00000000_00000000_00000000, 7), - (0b11001100_00000000_00000000_00000000, 7), - (0b11001110_00000000_00000000_00000000, 7), - (0b11010000_00000000_00000000_00000000, 7), - (0b11010010_00000000_00000000_00000000, 7), - (0b11010100_00000000_00000000_00000000, 7), - (0b11010110_00000000_00000000_00000000, 7), - (0b11011000_00000000_00000000_00000000, 7), - (0b11011010_00000000_00000000_00000000, 7), - (0b11011100_00000000_00000000_00000000, 7), - (0b11011110_00000000_00000000_00000000, 7), - (0b11100000_00000000_00000000_00000000, 7), - (0b11100010_00000000_00000000_00000000, 7), - (0b11100100_00000000_00000000_00000000, 7), - (0b11111100_00000000_00000000_00000000, 8), - (0b11100110_00000000_00000000_00000000, 7), - (0b11111101_00000000_00000000_00000000, 8), - (0b11111111_11011000_00000000_00000000, 13), - (0b11111111_11111110_00000000_00000000, 19), - (0b11111111_11100000_00000000_00000000, 13), - (0b11111111_11110000_00000000_00000000, 14), - (0b10001000_00000000_00000000_00000000, 6), - (0b11111111_11111010_00000000_00000000, 15), - (0b00011000_00000000_00000000_00000000, 5), - (0b10001100_00000000_00000000_00000000, 6), - (0b00100000_00000000_00000000_00000000, 5), - (0b10010000_00000000_00000000_00000000, 6), - (0b00101000_00000000_00000000_00000000, 5), - (0b10010100_00000000_00000000_00000000, 6), - (0b10011000_00000000_00000000_00000000, 6), - (0b10011100_00000000_00000000_00000000, 6), - (0b00110000_00000000_00000000_00000000, 5), - (0b11101000_00000000_00000000_00000000, 7), - (0b11101010_00000000_00000000_00000000, 7), - (0b10100000_00000000_00000000_00000000, 6), - (0b10100100_00000000_00000000_00000000, 6), - (0b10101000_00000000_00000000_00000000, 6), - (0b00111000_00000000_00000000_00000000, 5), - (0b10101100_00000000_00000000_00000000, 6), - (0b11101100_00000000_00000000_00000000, 7), - (0b10110000_00000000_00000000_00000000, 6), - (0b01000000_00000000_00000000_00000000, 5), - (0b01001000_00000000_00000000_00000000, 5), - (0b10110100_00000000_00000000_00000000, 6), - (0b11101110_00000000_00000000_00000000, 7), - (0b11110000_00000000_00000000_00000000, 7), - (0b11110010_00000000_00000000_00000000, 7), - (0b11110100_00000000_00000000_00000000, 7), - (0b11110110_00000000_00000000_00000000, 7), - (0b11111111_11111100_00000000_00000000, 15), - (0b11111111_10000000_00000000_00000000, 11), - (0b11111111_11110100_00000000_00000000, 14), - (0b11111111_11101000_00000000_00000000, 13), - (0b11111111_11111111_11111111_11000000, 28), - (0b11111111_11111110_01100000_00000000, 20), - (0b11111111_11111111_01001000_00000000, 22), - (0b11111111_11111110_01110000_00000000, 20), - (0b11111111_11111110_10000000_00000000, 20), - (0b11111111_11111111_01001100_00000000, 22), - (0b11111111_11111111_01010000_00000000, 22), - (0b11111111_11111111_01010100_00000000, 22), - (0b11111111_11111111_10110010_00000000, 23), - (0b11111111_11111111_01011000_00000000, 22), - (0b11111111_11111111_10110100_00000000, 23), - (0b11111111_11111111_10110110_00000000, 23), - (0b11111111_11111111_10111000_00000000, 23), - (0b11111111_11111111_10111010_00000000, 23), - (0b11111111_11111111_10111100_00000000, 23), - (0b11111111_11111111_11101011_00000000, 24), - (0b11111111_11111111_10111110_00000000, 23), - (0b11111111_11111111_11101100_00000000, 24), - (0b11111111_11111111_11101101_00000000, 24), - (0b11111111_11111111_01011100_00000000, 22), - (0b11111111_11111111_11000000_00000000, 23), - (0b11111111_11111111_11101110_00000000, 24), - (0b11111111_11111111_11000010_00000000, 23), - (0b11111111_11111111_11000100_00000000, 23), - (0b11111111_11111111_11000110_00000000, 23), - (0b11111111_11111111_11001000_00000000, 23), - (0b11111111_11111110_11100000_00000000, 21), - (0b11111111_11111111_01100000_00000000, 22), - (0b11111111_11111111_11001010_00000000, 23), - (0b11111111_11111111_01100100_00000000, 22), - (0b11111111_11111111_11001100_00000000, 23), - (0b11111111_11111111_11001110_00000000, 23), - (0b11111111_11111111_11101111_00000000, 24), - (0b11111111_11111111_01101000_00000000, 22), - (0b11111111_11111110_11101000_00000000, 21), - (0b11111111_11111110_10010000_00000000, 20), - (0b11111111_11111111_01101100_00000000, 22), - (0b11111111_11111111_01110000_00000000, 22), - (0b11111111_11111111_11010000_00000000, 23), - (0b11111111_11111111_11010010_00000000, 23), - (0b11111111_11111110_11110000_00000000, 21), - (0b11111111_11111111_11010100_00000000, 23), - (0b11111111_11111111_01110100_00000000, 22), - (0b11111111_11111111_01111000_00000000, 22), - (0b11111111_11111111_11110000_00000000, 24), - (0b11111111_11111110_11111000_00000000, 21), - (0b11111111_11111111_01111100_00000000, 22), - (0b11111111_11111111_11010110_00000000, 23), - (0b11111111_11111111_11011000_00000000, 23), - (0b11111111_11111111_00000000_00000000, 21), - (0b11111111_11111111_00001000_00000000, 21), - (0b11111111_11111111_10000000_00000000, 22), - (0b11111111_11111111_00010000_00000000, 21), - (0b11111111_11111111_11011010_00000000, 23), - (0b11111111_11111111_10000100_00000000, 22), - (0b11111111_11111111_11011100_00000000, 23), - (0b11111111_11111111_11011110_00000000, 23), - (0b11111111_11111110_10100000_00000000, 20), - (0b11111111_11111111_10001000_00000000, 22), - (0b11111111_11111111_10001100_00000000, 22), - (0b11111111_11111111_10010000_00000000, 22), - (0b11111111_11111111_11100000_00000000, 23), - (0b11111111_11111111_10010100_00000000, 22), - (0b11111111_11111111_10011000_00000000, 22), - (0b11111111_11111111_11100010_00000000, 23), - (0b11111111_11111111_11111000_00000000, 26), - (0b11111111_11111111_11111000_01000000, 26), - (0b11111111_11111110_10110000_00000000, 20), - (0b11111111_11111110_00100000_00000000, 19), - (0b11111111_11111111_10011100_00000000, 22), - (0b11111111_11111111_11100100_00000000, 23), - (0b11111111_11111111_10100000_00000000, 22), - (0b11111111_11111111_11110110_00000000, 25), - (0b11111111_11111111_11111000_10000000, 26), - (0b11111111_11111111_11111000_11000000, 26), - (0b11111111_11111111_11111001_00000000, 26), - (0b11111111_11111111_11111011_11000000, 27), - (0b11111111_11111111_11111011_11100000, 27), - (0b11111111_11111111_11111001_01000000, 26), - (0b11111111_11111111_11110001_00000000, 24), - (0b11111111_11111111_11110110_10000000, 25), - (0b11111111_11111110_01000000_00000000, 19), - (0b11111111_11111111_00011000_00000000, 21), - (0b11111111_11111111_11111001_10000000, 26), - (0b11111111_11111111_11111100_00000000, 27), - (0b11111111_11111111_11111100_00100000, 27), - (0b11111111_11111111_11111001_11000000, 26), - (0b11111111_11111111_11111100_01000000, 27), - (0b11111111_11111111_11110010_00000000, 24), - (0b11111111_11111111_00100000_00000000, 21), - (0b11111111_11111111_00101000_00000000, 21), - (0b11111111_11111111_11111010_00000000, 26), - (0b11111111_11111111_11111010_01000000, 26), - (0b11111111_11111111_11111111_11010000, 28), - (0b11111111_11111111_11111100_01100000, 27), - (0b11111111_11111111_11111100_10000000, 27), - (0b11111111_11111111_11111100_10100000, 27), - (0b11111111_11111110_11000000_00000000, 20), - (0b11111111_11111111_11110011_00000000, 24), - (0b11111111_11111110_11010000_00000000, 20), - (0b11111111_11111111_00110000_00000000, 21), - (0b11111111_11111111_10100100_00000000, 22), - (0b11111111_11111111_00111000_00000000, 21), - (0b11111111_11111111_01000000_00000000, 21), - (0b11111111_11111111_11100110_00000000, 23), - (0b11111111_11111111_10101000_00000000, 22), - (0b11111111_11111111_10101100_00000000, 22), - (0b11111111_11111111_11110111_00000000, 25), - (0b11111111_11111111_11110111_10000000, 25), - (0b11111111_11111111_11110100_00000000, 24), - (0b11111111_11111111_11110101_00000000, 24), - (0b11111111_11111111_11111010_10000000, 26), - (0b11111111_11111111_11101000_00000000, 23), - (0b11111111_11111111_11111010_11000000, 26), - (0b11111111_11111111_11111100_11000000, 27), - (0b11111111_11111111_11111011_00000000, 26), - (0b11111111_11111111_11111011_01000000, 26), - (0b11111111_11111111_11111100_11100000, 27), - (0b11111111_11111111_11111101_00000000, 27), - (0b11111111_11111111_11111101_00100000, 27), - (0b11111111_11111111_11111101_01000000, 27), - (0b11111111_11111111_11111101_01100000, 27), - (0b11111111_11111111_11111111_11100000, 28), - (0b11111111_11111111_11111101_10000000, 27), - (0b11111111_11111111_11111101_10100000, 27), - (0b11111111_11111111_11111101_11000000, 27), - (0b11111111_11111111_11111101_11100000, 27), - (0b11111111_11111111_11111110_00000000, 27), - (0b11111111_11111111_11111011_10000000, 26), - (0b11111111_11111111_11111111_11111100, 30) + 0b11111111_11000000_00000000_00000000, + 0b11111111_11111111_10110000_00000000, + 0b11111111_11111111_11111110_00100000, + 0b11111111_11111111_11111110_00110000, + 0b11111111_11111111_11111110_01000000, + 0b11111111_11111111_11111110_01010000, + 0b11111111_11111111_11111110_01100000, + 0b11111111_11111111_11111110_01110000, + 0b11111111_11111111_11111110_10000000, + 0b11111111_11111111_11101010_00000000, + 0b11111111_11111111_11111111_11110000, + 0b11111111_11111111_11111110_10010000, + 0b11111111_11111111_11111110_10100000, + 0b11111111_11111111_11111111_11110100, + 0b11111111_11111111_11111110_10110000, + 0b11111111_11111111_11111110_11000000, + 0b11111111_11111111_11111110_11010000, + 0b11111111_11111111_11111110_11100000, + 0b11111111_11111111_11111110_11110000, + 0b11111111_11111111_11111111_00000000, + 0b11111111_11111111_11111111_00010000, + 0b11111111_11111111_11111111_00100000, + 0b11111111_11111111_11111111_11111000, + 0b11111111_11111111_11111111_00110000, + 0b11111111_11111111_11111111_01000000, + 0b11111111_11111111_11111111_01010000, + 0b11111111_11111111_11111111_01100000, + 0b11111111_11111111_11111111_01110000, + 0b11111111_11111111_11111111_10000000, + 0b11111111_11111111_11111111_10010000, + 0b11111111_11111111_11111111_10100000, + 0b11111111_11111111_11111111_10110000, + 0b01010000_00000000_00000000_00000000, + 0b11111110_00000000_00000000_00000000, + 0b11111110_01000000_00000000_00000000, + 0b11111111_10100000_00000000_00000000, + 0b11111111_11001000_00000000_00000000, + 0b01010100_00000000_00000000_00000000, + 0b11111000_00000000_00000000_00000000, + 0b11111111_01000000_00000000_00000000, + 0b11111110_10000000_00000000_00000000, + 0b11111110_11000000_00000000_00000000, + 0b11111001_00000000_00000000_00000000, + 0b11111111_01100000_00000000_00000000, + 0b11111010_00000000_00000000_00000000, + 0b01011000_00000000_00000000_00000000, + 0b01011100_00000000_00000000_00000000, + 0b01100000_00000000_00000000_00000000, + 0b00000000_00000000_00000000_00000000, + 0b00001000_00000000_00000000_00000000, + 0b00010000_00000000_00000000_00000000, + 0b01100100_00000000_00000000_00000000, + 0b01101000_00000000_00000000_00000000, + 0b01101100_00000000_00000000_00000000, + 0b01110000_00000000_00000000_00000000, + 0b01110100_00000000_00000000_00000000, + 0b01111000_00000000_00000000_00000000, + 0b01111100_00000000_00000000_00000000, + 0b10111000_00000000_00000000_00000000, + 0b11111011_00000000_00000000_00000000, + 0b11111111_11111000_00000000_00000000, + 0b10000000_00000000_00000000_00000000, + 0b11111111_10110000_00000000_00000000, + 0b11111111_00000000_00000000_00000000, + 0b11111111_11010000_00000000_00000000, + 0b10000100_00000000_00000000_00000000, + 0b10111010_00000000_00000000_00000000, + 0b10111100_00000000_00000000_00000000, + 0b10111110_00000000_00000000_00000000, + 0b11000000_00000000_00000000_00000000, + 0b11000010_00000000_00000000_00000000, + 0b11000100_00000000_00000000_00000000, + 0b11000110_00000000_00000000_00000000, + 0b11001000_00000000_00000000_00000000, + 0b11001010_00000000_00000000_00000000, + 0b11001100_00000000_00000000_00000000, + 0b11001110_00000000_00000000_00000000, + 0b11010000_00000000_00000000_00000000, + 0b11010010_00000000_00000000_00000000, + 0b11010100_00000000_00000000_00000000, + 0b11010110_00000000_00000000_00000000, + 0b11011000_00000000_00000000_00000000, + 0b11011010_00000000_00000000_00000000, + 0b11011100_00000000_00000000_00000000, + 0b11011110_00000000_00000000_00000000, + 0b11100000_00000000_00000000_00000000, + 0b11100010_00000000_00000000_00000000, + 0b11100100_00000000_00000000_00000000, + 0b11111100_00000000_00000000_00000000, + 0b11100110_00000000_00000000_00000000, + 0b11111101_00000000_00000000_00000000, + 0b11111111_11011000_00000000_00000000, + 0b11111111_11111110_00000000_00000000, + 0b11111111_11100000_00000000_00000000, + 0b11111111_11110000_00000000_00000000, + 0b10001000_00000000_00000000_00000000, + 0b11111111_11111010_00000000_00000000, + 0b00011000_00000000_00000000_00000000, + 0b10001100_00000000_00000000_00000000, + 0b00100000_00000000_00000000_00000000, + 0b10010000_00000000_00000000_00000000, + 0b00101000_00000000_00000000_00000000, + 0b10010100_00000000_00000000_00000000, + 0b10011000_00000000_00000000_00000000, + 0b10011100_00000000_00000000_00000000, + 0b00110000_00000000_00000000_00000000, + 0b11101000_00000000_00000000_00000000, + 0b11101010_00000000_00000000_00000000, + 0b10100000_00000000_00000000_00000000, + 0b10100100_00000000_00000000_00000000, + 0b10101000_00000000_00000000_00000000, + 0b00111000_00000000_00000000_00000000, + 0b10101100_00000000_00000000_00000000, + 0b11101100_00000000_00000000_00000000, + 0b10110000_00000000_00000000_00000000, + 0b01000000_00000000_00000000_00000000, + 0b01001000_00000000_00000000_00000000, + 0b10110100_00000000_00000000_00000000, + 0b11101110_00000000_00000000_00000000, + 0b11110000_00000000_00000000_00000000, + 0b11110010_00000000_00000000_00000000, + 0b11110100_00000000_00000000_00000000, + 0b11110110_00000000_00000000_00000000, + 0b11111111_11111100_00000000_00000000, + 0b11111111_10000000_00000000_00000000, + 0b11111111_11110100_00000000_00000000, + 0b11111111_11101000_00000000_00000000, + 0b11111111_11111111_11111111_11000000, + 0b11111111_11111110_01100000_00000000, + 0b11111111_11111111_01001000_00000000, + 0b11111111_11111110_01110000_00000000, + 0b11111111_11111110_10000000_00000000, + 0b11111111_11111111_01001100_00000000, + 0b11111111_11111111_01010000_00000000, + 0b11111111_11111111_01010100_00000000, + 0b11111111_11111111_10110010_00000000, + 0b11111111_11111111_01011000_00000000, + 0b11111111_11111111_10110100_00000000, + 0b11111111_11111111_10110110_00000000, + 0b11111111_11111111_10111000_00000000, + 0b11111111_11111111_10111010_00000000, + 0b11111111_11111111_10111100_00000000, + 0b11111111_11111111_11101011_00000000, + 0b11111111_11111111_10111110_00000000, + 0b11111111_11111111_11101100_00000000, + 0b11111111_11111111_11101101_00000000, + 0b11111111_11111111_01011100_00000000, + 0b11111111_11111111_11000000_00000000, + 0b11111111_11111111_11101110_00000000, + 0b11111111_11111111_11000010_00000000, + 0b11111111_11111111_11000100_00000000, + 0b11111111_11111111_11000110_00000000, + 0b11111111_11111111_11001000_00000000, + 0b11111111_11111110_11100000_00000000, + 0b11111111_11111111_01100000_00000000, + 0b11111111_11111111_11001010_00000000, + 0b11111111_11111111_01100100_00000000, + 0b11111111_11111111_11001100_00000000, + 0b11111111_11111111_11001110_00000000, + 0b11111111_11111111_11101111_00000000, + 0b11111111_11111111_01101000_00000000, + 0b11111111_11111110_11101000_00000000, + 0b11111111_11111110_10010000_00000000, + 0b11111111_11111111_01101100_00000000, + 0b11111111_11111111_01110000_00000000, + 0b11111111_11111111_11010000_00000000, + 0b11111111_11111111_11010010_00000000, + 0b11111111_11111110_11110000_00000000, + 0b11111111_11111111_11010100_00000000, + 0b11111111_11111111_01110100_00000000, + 0b11111111_11111111_01111000_00000000, + 0b11111111_11111111_11110000_00000000, + 0b11111111_11111110_11111000_00000000, + 0b11111111_11111111_01111100_00000000, + 0b11111111_11111111_11010110_00000000, + 0b11111111_11111111_11011000_00000000, + 0b11111111_11111111_00000000_00000000, + 0b11111111_11111111_00001000_00000000, + 0b11111111_11111111_10000000_00000000, + 0b11111111_11111111_00010000_00000000, + 0b11111111_11111111_11011010_00000000, + 0b11111111_11111111_10000100_00000000, + 0b11111111_11111111_11011100_00000000, + 0b11111111_11111111_11011110_00000000, + 0b11111111_11111110_10100000_00000000, + 0b11111111_11111111_10001000_00000000, + 0b11111111_11111111_10001100_00000000, + 0b11111111_11111111_10010000_00000000, + 0b11111111_11111111_11100000_00000000, + 0b11111111_11111111_10010100_00000000, + 0b11111111_11111111_10011000_00000000, + 0b11111111_11111111_11100010_00000000, + 0b11111111_11111111_11111000_00000000, + 0b11111111_11111111_11111000_01000000, + 0b11111111_11111110_10110000_00000000, + 0b11111111_11111110_00100000_00000000, + 0b11111111_11111111_10011100_00000000, + 0b11111111_11111111_11100100_00000000, + 0b11111111_11111111_10100000_00000000, + 0b11111111_11111111_11110110_00000000, + 0b11111111_11111111_11111000_10000000, + 0b11111111_11111111_11111000_11000000, + 0b11111111_11111111_11111001_00000000, + 0b11111111_11111111_11111011_11000000, + 0b11111111_11111111_11111011_11100000, + 0b11111111_11111111_11111001_01000000, + 0b11111111_11111111_11110001_00000000, + 0b11111111_11111111_11110110_10000000, + 0b11111111_11111110_01000000_00000000, + 0b11111111_11111111_00011000_00000000, + 0b11111111_11111111_11111001_10000000, + 0b11111111_11111111_11111100_00000000, + 0b11111111_11111111_11111100_00100000, + 0b11111111_11111111_11111001_11000000, + 0b11111111_11111111_11111100_01000000, + 0b11111111_11111111_11110010_00000000, + 0b11111111_11111111_00100000_00000000, + 0b11111111_11111111_00101000_00000000, + 0b11111111_11111111_11111010_00000000, + 0b11111111_11111111_11111010_01000000, + 0b11111111_11111111_11111111_11010000, + 0b11111111_11111111_11111100_01100000, + 0b11111111_11111111_11111100_10000000, + 0b11111111_11111111_11111100_10100000, + 0b11111111_11111110_11000000_00000000, + 0b11111111_11111111_11110011_00000000, + 0b11111111_11111110_11010000_00000000, + 0b11111111_11111111_00110000_00000000, + 0b11111111_11111111_10100100_00000000, + 0b11111111_11111111_00111000_00000000, + 0b11111111_11111111_01000000_00000000, + 0b11111111_11111111_11100110_00000000, + 0b11111111_11111111_10101000_00000000, + 0b11111111_11111111_10101100_00000000, + 0b11111111_11111111_11110111_00000000, + 0b11111111_11111111_11110111_10000000, + 0b11111111_11111111_11110100_00000000, + 0b11111111_11111111_11110101_00000000, + 0b11111111_11111111_11111010_10000000, + 0b11111111_11111111_11101000_00000000, + 0b11111111_11111111_11111010_11000000, + 0b11111111_11111111_11111100_11000000, + 0b11111111_11111111_11111011_00000000, + 0b11111111_11111111_11111011_01000000, + 0b11111111_11111111_11111100_11100000, + 0b11111111_11111111_11111101_00000000, + 0b11111111_11111111_11111101_00100000, + 0b11111111_11111111_11111101_01000000, + 0b11111111_11111111_11111101_01100000, + 0b11111111_11111111_11111111_11100000, + 0b11111111_11111111_11111101_10000000, + 0b11111111_11111111_11111101_10100000, + 0b11111111_11111111_11111101_11000000, + 0b11111111_11111111_11111101_11100000, + 0b11111111_11111111_11111110_00000000, + 0b11111111_11111111_11111011_10000000, + 0b11111111_11111111_11111111_11111100, + }; + + private static ReadOnlySpan EncodingTableBitLengths => new byte[257] + { + 13, + 23, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 24, + 30, + 28, + 28, + 30, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 30, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 28, + 6, + 10, + 10, + 12, + 13, + 6, + 8, + 11, + 10, + 10, + 8, + 11, + 8, + 6, + 6, + 6, + 5, + 5, + 5, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 7, + 8, + 15, + 6, + 12, + 10, + 13, + 6, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 8, + 7, + 8, + 13, + 19, + 13, + 14, + 6, + 15, + 5, + 6, + 5, + 6, + 5, + 6, + 6, + 6, + 5, + 7, + 7, + 6, + 6, + 6, + 5, + 6, + 7, + 6, + 5, + 5, + 6, + 7, + 7, + 7, + 7, + 7, + 15, + 11, + 14, + 13, + 28, + 20, + 22, + 20, + 20, + 22, + 22, + 22, + 23, + 22, + 23, + 23, + 23, + 23, + 23, + 24, + 23, + 24, + 24, + 22, + 23, + 24, + 23, + 23, + 23, + 23, + 21, + 22, + 23, + 22, + 23, + 23, + 24, + 22, + 21, + 20, + 22, + 22, + 23, + 23, + 21, + 23, + 22, + 22, + 24, + 21, + 22, + 23, + 23, + 21, + 21, + 22, + 21, + 23, + 22, + 23, + 23, + 20, + 22, + 22, + 22, + 23, + 22, + 22, + 23, + 26, + 26, + 20, + 19, + 22, + 23, + 22, + 25, + 26, + 26, + 26, + 27, + 27, + 26, + 24, + 25, + 19, + 21, + 26, + 27, + 27, + 26, + 27, + 24, + 21, + 21, + 26, + 26, + 28, + 27, + 27, + 27, + 20, + 24, + 20, + 21, + 22, + 21, + 21, + 23, + 22, + 22, + 25, + 25, + 24, + 24, + 26, + 23, + 26, + 27, + 26, + 26, + 27, + 27, + 27, + 27, + 27, + 28, + 27, + 27, + 27, + 27, + 27, + 26, + 30 }; private static readonly ushort[] s_decodingTree = GenerateDecodingLookupTree(); public static (uint encoded, int bitLength) Encode(int data) { - return _encodingTable[data]; + return (s_encodingTableCodes[data], EncodingTableBitLengths[data]); } private static ushort[] GenerateDecodingLookupTree() @@ -312,11 +574,15 @@ private static ushort[] GenerateDecodingLookupTree() // it is guaranteed that for this huffman code generated decoding lookup tree MUST consist of exactly 15 lookup tables var decodingTree = new ushort[15 * 256]; + uint[] encodingTableCodes = s_encodingTableCodes; + ReadOnlySpan encodingTableBitLengths = EncodingTableBitLengths; + int allocatedLookupTableIndex = 0; // Create traverse path for all 0..256 octets, 256 is EOS, see: http://httpwg.org/specs/rfc7541.html#rfc.section.5.2 for (int octet = 0; octet <= 256; octet++) { - (uint code, int bitLength) = Encode(octet); + uint code = encodingTableCodes[octet]; + int bitLength = encodingTableBitLengths[octet]; int lookupTableIndex = 0; int bitsLeft = bitLength; From 29325a6d9592957d1acf55674d4aa8a85d895339 Mon Sep 17 00:00:00 2001 From: Andy Ayers Date: Fri, 4 Dec 2020 18:19:37 -0800 Subject: [PATCH 33/87] JIT: don't compute edge weights when there's no profile data (#45615) We don't look edge the weights unless there's profile data, so only compute edge weights if there is profile data. Saves a tiny bit on TP (~0.2%). --- src/coreclr/src/jit/flowgraph.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreclr/src/jit/flowgraph.cpp b/src/coreclr/src/jit/flowgraph.cpp index c1a5f3c602b8a..34ac6920f482e 100644 --- a/src/coreclr/src/jit/flowgraph.cpp +++ b/src/coreclr/src/jit/flowgraph.cpp @@ -13527,13 +13527,13 @@ void Compiler::fgComputeBlockAndEdgeWeights() JITDUMP(" -- no profile data, so using default called count\n"); } - if (isOptimizing) + if (usingProfileWeights && isOptimizing) { fgComputeEdgeWeights(); } else { - JITDUMP(" -- not optimizing, so not computing edge weights\n"); + JITDUMP(" -- not optimizing or no profile data, so not computing edge weights\n"); } } From dc0e11d2e681659fc20feebf4c092082e75706af Mon Sep 17 00:00:00 2001 From: Hong Li Date: Fri, 4 Dec 2020 18:38:12 -0800 Subject: [PATCH 34/87] Update area-owners.md (#45584) --- docs/area-owners.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/area-owners.md b/docs/area-owners.md index 1421f38517d71..4f2f62cc66594 100644 --- a/docs/area-owners.md +++ b/docs/area-owners.md @@ -118,7 +118,7 @@ Note: Editing this file doesn't update the mapping used by the `@msftbot` issue | area-System.Threading | @mangod9 | @kouvel | | | area-System.Threading.Channels | @ericstj | @tarekgh @stephentoub | | | area-System.Threading.Tasks | @ericstj | @tarekgh @stephentoub | | -| area-System.Transactions | @HongGit | @dasetser @HongGit | | +| area-System.Transactions | @HongGit | @HongGit | | | area-System.Xml | @jeffhandley | @buyaa-n @krwq | | | area-Threading-mono | @SamMonoRT | @lambdageek | | | area-TieredCompilation-coreclr | @mangod9 | @kouvel | | From ea35f6aae9e1aac0e0c5de6df97e05bd992a7528 Mon Sep 17 00:00:00 2001 From: Andy Ayers Date: Sat, 5 Dec 2020 08:33:21 -0800 Subject: [PATCH 35/87] Get exact class during devirtualization (#45526) If we devirtualize to a method on a generic class, try and obtain the exact class. Pass this back to the jit to unblock some types of inlines. Also refactor how information is passed during devirtualization in anticipation of follow on work to devirtualize default interface methods. Because there are now multiple inputs and outputs, convey everything using a struct. Resolves #38477. --- .../superpmi-shared/icorjitinfoimpl.h | 6 +- .../superpmi/superpmi-shared/lwmlist.h | 2 +- .../superpmi-shared/methodcontext.cpp | 54 +++++------ .../superpmi/superpmi-shared/methodcontext.h | 27 +++--- .../superpmi-shim-collector/icorjitinfo.cpp | 11 +-- .../superpmi-shim-counter/icorjitinfo.cpp | 8 +- .../superpmi-shim-simple/icorjitinfo.cpp | 8 +- .../ToolBox/superpmi/superpmi/icorjitinfo.cpp | 9 +- src/coreclr/src/inc/corinfo.h | 36 +++++-- src/coreclr/src/inc/jiteeversionguid.h | 10 +- .../src/jit/ICorJitInfo_API_wrapper.hpp | 8 +- src/coreclr/src/jit/importer.cpp | 87 ++++++++++------- .../tools/Common/JitInterface/CorInfoBase.cs | 6 +- .../tools/Common/JitInterface/CorInfoImpl.cs | 41 +++++--- .../tools/Common/JitInterface/CorInfoTypes.cs | 21 +++++ .../ThunkGenerator/ThunkInput.txt | 3 +- .../src/tools/aot/jitinterface/jitinterface.h | 10 +- src/coreclr/src/vm/jitinterface.cpp | 93 ++++++++++++------- src/coreclr/src/vm/jitinterface.h | 13 +-- src/coreclr/src/zap/zapinfo.cpp | 7 +- src/coreclr/src/zap/zapinfo.h | 5 +- src/tests/JIT/opt/Devirtualization/exact1.cs | 19 ++++ .../JIT/opt/Devirtualization/exact1.csproj | 13 +++ src/tests/JIT/opt/Devirtualization/exact2.cs | 43 +++++++++ .../JIT/opt/Devirtualization/exact2.csproj | 13 +++ 25 files changed, 355 insertions(+), 198 deletions(-) create mode 100644 src/tests/JIT/opt/Devirtualization/exact1.cs create mode 100644 src/tests/JIT/opt/Devirtualization/exact1.csproj create mode 100644 src/tests/JIT/opt/Devirtualization/exact2.cs create mode 100644 src/tests/JIT/opt/Devirtualization/exact2.csproj diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h index 688afbf53da81..cba48b62723a4 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h @@ -80,10 +80,8 @@ void getMethodVTableOffset( unsigned* offsetAfterIndirection, bool* isRelative); -CORINFO_METHOD_HANDLE resolveVirtualMethod( - CORINFO_METHOD_HANDLE virtualMethod, - CORINFO_CLASS_HANDLE implementingClass, - CORINFO_CONTEXT_HANDLE ownerType); +bool resolveVirtualMethod( + CORINFO_DEVIRTUALIZATION_INFO* info); CORINFO_METHOD_HANDLE getUnboxedEntry( CORINFO_METHOD_HANDLE ftn, diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/lwmlist.h b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/lwmlist.h index 803eae030a452..8aca1b1634b83 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/lwmlist.h +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/lwmlist.h @@ -151,7 +151,7 @@ LWM(MergeClasses, DLDL, DWORDLONG) LWM(IsMoreSpecificType, DLDL, DWORD) LWM(PInvokeMarshalingRequired, PInvokeMarshalingRequiredValue, DWORD) LWM(ResolveToken, Agnostic_CORINFO_RESOLVED_TOKENin, ResolveTokenValue) -LWM(ResolveVirtualMethod, Agnostic_ResolveVirtualMethod, DWORDLONG) +LWM(ResolveVirtualMethod, Agnostic_ResolveVirtualMethodKey, Agnostic_ResolveVirtualMethodResult) LWM(TryResolveToken, Agnostic_CORINFO_RESOLVED_TOKENin, TryResolveTokenValue) LWM(SatisfiesClassConstraints, DWORDLONG, DWORD) LWM(SatisfiesMethodConstraints, DLDL, DWORD) diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.cpp b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.cpp index 43131ddf4c129..73de00372b0e4 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.cpp +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.cpp @@ -3073,49 +3073,51 @@ void MethodContext::repGetMethodVTableOffset(CORINFO_METHOD_HANDLE method, DEBUG_REP(dmpGetMethodVTableOffset((DWORDLONG)method, value)); } -void MethodContext::recResolveVirtualMethod(CORINFO_METHOD_HANDLE virtMethod, - CORINFO_CLASS_HANDLE implClass, - CORINFO_CONTEXT_HANDLE ownerType, - CORINFO_METHOD_HANDLE result) +void MethodContext::recResolveVirtualMethod(CORINFO_DEVIRTUALIZATION_INFO * info, bool returnValue) { if (ResolveVirtualMethod == nullptr) { - ResolveVirtualMethod = new LightWeightMap(); + ResolveVirtualMethod = new LightWeightMap(); } - Agnostic_ResolveVirtualMethod key; - key.virtualMethod = (DWORDLONG)virtMethod; - key.implementingClass = (DWORDLONG)implClass; - key.ownerType = (DWORDLONG)ownerType; - ResolveVirtualMethod->Add(key, (DWORDLONG)result); - DEBUG_REC(dmpResolveVirtualMethod(key, (DWORDLONG)result)); + Agnostic_ResolveVirtualMethodKey key; + key.virtualMethod = (DWORDLONG)info->virtualMethod; + key.objClass = (DWORDLONG)info->objClass; + key.context = (DWORDLONG)info->context; + Agnostic_ResolveVirtualMethodResult result; + result.returnValue = returnValue; + result.devirtualizedMethod = (DWORDLONG)info->devirtualizedMethod; + result.requiresInstMethodTableArg = info->requiresInstMethodTableArg; + result.exactContext = (DWORDLONG)info->exactContext; + ResolveVirtualMethod->Add(key, result); + DEBUG_REC(dmpResolveVirtualMethod(key, result)); } -void MethodContext::dmpResolveVirtualMethod(const Agnostic_ResolveVirtualMethod& key, DWORDLONG value) +void MethodContext::dmpResolveVirtualMethod(const Agnostic_ResolveVirtualMethodKey& key, const Agnostic_ResolveVirtualMethodResult& result) { - printf("ResolveVirtualMethod virtMethod-%016llX, implClass-%016llX, ownerType--%016llX, result-%016llX", - key.virtualMethod, key.implementingClass, key.ownerType, value); + printf("ResolveVirtualMethod virtMethod-%016llX, objClass-%016llX, context-%016llX :: returnValue-%d, devirtMethod-%016llX, requiresInstArg-%d, exactContext-%016llX", + key.virtualMethod, key.objClass, key.context, result.returnValue, result.devirtualizedMethod, result.requiresInstMethodTableArg, result.exactContext); } -CORINFO_METHOD_HANDLE MethodContext::repResolveVirtualMethod(CORINFO_METHOD_HANDLE virtMethod, - CORINFO_CLASS_HANDLE implClass, - CORINFO_CONTEXT_HANDLE ownerType) +bool MethodContext::repResolveVirtualMethod(CORINFO_DEVIRTUALIZATION_INFO * info) { - Agnostic_ResolveVirtualMethod key; - key.virtualMethod = (DWORDLONG)virtMethod; - key.implementingClass = (DWORDLONG)implClass; - key.ownerType = (DWORDLONG)ownerType; + Agnostic_ResolveVirtualMethodKey key; + key.virtualMethod = (DWORDLONG)info->virtualMethod; + key.objClass = (DWORDLONG)info->objClass; + key.context = (DWORDLONG)info->context; AssertCodeMsg(ResolveVirtualMethod != nullptr, EXCEPTIONCODE_MC, - "No ResolveVirtualMap map for %016llX-%016llX-%016llX", key.virtualMethod, key.implementingClass, - key.ownerType); + "No ResolveVirtualMap map for %016llX-%016llX-%016llX", key.virtualMethod, key.objClass, key.context); AssertCodeMsg(ResolveVirtualMethod->GetIndex(key) != -1, EXCEPTIONCODE_MC, "Didn't find %016llX-%016llx-%016llX", - key.virtualMethod, key.implementingClass, key.ownerType); - DWORDLONG result = ResolveVirtualMethod->Get(key); + key.virtualMethod, key.objClass, key.context); + Agnostic_ResolveVirtualMethodResult result = ResolveVirtualMethod->Get(key); DEBUG_REP(dmpResolveVirtualMethod(key, result)); + info->devirtualizedMethod = (CORINFO_METHOD_HANDLE) result.devirtualizedMethod; + info->requiresInstMethodTableArg = result.requiresInstMethodTableArg; + info->exactContext = (CORINFO_CONTEXT_HANDLE) result.exactContext; - return (CORINFO_METHOD_HANDLE)result; + return result.returnValue; } void MethodContext::recGetUnboxedEntry(CORINFO_METHOD_HANDLE ftn, diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.h b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.h index 75466c13a480e..0f66613c66c5a 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.h +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.h @@ -507,11 +507,19 @@ class MethodContext DWORD result; }; - struct Agnostic_ResolveVirtualMethod + struct Agnostic_ResolveVirtualMethodKey { DWORDLONG virtualMethod; - DWORDLONG implementingClass; - DWORDLONG ownerType; + DWORDLONG objClass; + DWORDLONG context; + }; + + struct Agnostic_ResolveVirtualMethodResult + { + bool returnValue; + DWORDLONG devirtualizedMethod; + bool requiresInstMethodTableArg; + DWORDLONG exactContext; }; struct ResolveTokenValue @@ -927,14 +935,9 @@ class MethodContext unsigned* offsetAfterIndirection, bool* isRelative); - void recResolveVirtualMethod(CORINFO_METHOD_HANDLE virtMethod, - CORINFO_CLASS_HANDLE implClass, - CORINFO_CONTEXT_HANDLE ownerType, - CORINFO_METHOD_HANDLE result); - void dmpResolveVirtualMethod(const Agnostic_ResolveVirtualMethod& key, DWORDLONG value); - CORINFO_METHOD_HANDLE repResolveVirtualMethod(CORINFO_METHOD_HANDLE virtMethod, - CORINFO_CLASS_HANDLE implClass, - CORINFO_CONTEXT_HANDLE ownerType); + void recResolveVirtualMethod(CORINFO_DEVIRTUALIZATION_INFO * info, bool returnValue); + void dmpResolveVirtualMethod(const Agnostic_ResolveVirtualMethodKey& key, const Agnostic_ResolveVirtualMethodResult& value); + bool repResolveVirtualMethod(CORINFO_DEVIRTUALIZATION_INFO * info); void recGetUnboxedEntry(CORINFO_METHOD_HANDLE ftn, bool* requiresInstMethodTableArg, CORINFO_METHOD_HANDLE result); void dmpGetUnboxedEntry(DWORDLONG key, DLD value); @@ -1378,7 +1381,7 @@ class MethodContext }; // ********************* Please keep this up-to-date to ease adding more *************** -// Highest packet number: 182 +// Highest packet number: 184 // ************************************************************************************* enum mcPackets { diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp index 116e0756c7e9b..a0bfb5e5f4955 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp @@ -230,16 +230,11 @@ void interceptor_ICJI::getMethodVTableOffset(CORINFO_METHOD_HANDLE method, mc->recGetMethodVTableOffset(method, offsetOfIndirection, offsetAfterIndirection, isRelative); } -// Find the virtual method in implementingClass that overrides virtualMethod. -// Return null if devirtualization is not possible. -CORINFO_METHOD_HANDLE interceptor_ICJI::resolveVirtualMethod(CORINFO_METHOD_HANDLE virtualMethod, - CORINFO_CLASS_HANDLE implementingClass, - CORINFO_CONTEXT_HANDLE ownerType) +bool interceptor_ICJI::resolveVirtualMethod(CORINFO_DEVIRTUALIZATION_INFO * info) { mc->cr->AddCall("resolveVirtualMethod"); - CORINFO_METHOD_HANDLE result = - original_ICorJitInfo->resolveVirtualMethod(virtualMethod, implementingClass, ownerType); - mc->recResolveVirtualMethod(virtualMethod, implementingClass, ownerType, result); + bool result = original_ICorJitInfo->resolveVirtualMethod(info); + mc->recResolveVirtualMethod(info, result); return result; } diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp index a4ff0b09abeb2..fa5f38ed1d7e8 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp @@ -117,13 +117,11 @@ void interceptor_ICJI::getMethodVTableOffset( original_ICorJitInfo->getMethodVTableOffset(method, offsetOfIndirection, offsetAfterIndirection, isRelative); } -CORINFO_METHOD_HANDLE interceptor_ICJI::resolveVirtualMethod( - CORINFO_METHOD_HANDLE virtualMethod, - CORINFO_CLASS_HANDLE implementingClass, - CORINFO_CONTEXT_HANDLE ownerType) +bool interceptor_ICJI::resolveVirtualMethod( + CORINFO_DEVIRTUALIZATION_INFO* info) { mcs->AddCall("resolveVirtualMethod"); - return original_ICorJitInfo->resolveVirtualMethod(virtualMethod, implementingClass, ownerType); + return original_ICorJitInfo->resolveVirtualMethod(info); } CORINFO_METHOD_HANDLE interceptor_ICJI::getUnboxedEntry( diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp index e9aa02d40d75b..e06dd650348f5 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp @@ -105,12 +105,10 @@ void interceptor_ICJI::getMethodVTableOffset( original_ICorJitInfo->getMethodVTableOffset(method, offsetOfIndirection, offsetAfterIndirection, isRelative); } -CORINFO_METHOD_HANDLE interceptor_ICJI::resolveVirtualMethod( - CORINFO_METHOD_HANDLE virtualMethod, - CORINFO_CLASS_HANDLE implementingClass, - CORINFO_CONTEXT_HANDLE ownerType) +bool interceptor_ICJI::resolveVirtualMethod( + CORINFO_DEVIRTUALIZATION_INFO* info) { - return original_ICorJitInfo->resolveVirtualMethod(virtualMethod, implementingClass, ownerType); + return original_ICorJitInfo->resolveVirtualMethod(info); } CORINFO_METHOD_HANDLE interceptor_ICJI::getUnboxedEntry( diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/icorjitinfo.cpp b/src/coreclr/src/ToolBox/superpmi/superpmi/icorjitinfo.cpp index 39aa3661c2f2c..42abc8c338c49 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi/icorjitinfo.cpp +++ b/src/coreclr/src/ToolBox/superpmi/superpmi/icorjitinfo.cpp @@ -171,15 +171,10 @@ void MyICJI::getMethodVTableOffset(CORINFO_METHOD_HANDLE method, jitInstance->mc->repGetMethodVTableOffset(method, offsetOfIndirection, offsetAfterIndirection, isRelative); } -// Find the virtual method in implementingClass that overrides virtualMethod. -// Return null if devirtualization is not possible. -CORINFO_METHOD_HANDLE MyICJI::resolveVirtualMethod(CORINFO_METHOD_HANDLE virtualMethod, - CORINFO_CLASS_HANDLE implementingClass, - CORINFO_CONTEXT_HANDLE ownerType) +bool MyICJI::resolveVirtualMethod(CORINFO_DEVIRTUALIZATION_INFO * info) { jitInstance->mc->cr->AddCall("resolveVirtualMethod"); - CORINFO_METHOD_HANDLE result = - jitInstance->mc->repResolveVirtualMethod(virtualMethod, implementingClass, ownerType); + bool result = jitInstance->mc->repResolveVirtualMethod(info); return result; } diff --git a/src/coreclr/src/inc/corinfo.h b/src/coreclr/src/inc/corinfo.h index 5829954746c8a..8acaaa5509f24 100644 --- a/src/coreclr/src/inc/corinfo.h +++ b/src/coreclr/src/inc/corinfo.h @@ -1587,6 +1587,27 @@ struct CORINFO_CALL_INFO BOOL wrapperDelegateInvoke; }; +struct CORINFO_DEVIRTUALIZATION_INFO +{ + // + // [In] arguments of resolveVirtualMethod + // + CORINFO_METHOD_HANDLE virtualMethod; + CORINFO_CLASS_HANDLE objClass; + CORINFO_CONTEXT_HANDLE context; + + // + // [Out] results of resolveVirtualMethod. + // - devirtualizedMethod is set to MethodDesc of devirt'ed method iff we were able to devirtualize. + // invariant is `resolveVirtualMethod(...) == (devirtualizedMethod != nullptr)`. + // - requiresInstMethodTableArg is set to TRUE if the devirtualized method requires a type handle arg. + // - exactContext is set to wrapped CORINFO_CLASS_HANDLE of devirt'ed method table. + // + CORINFO_METHOD_HANDLE devirtualizedMethod; + bool requiresInstMethodTableArg; + CORINFO_CONTEXT_HANDLE exactContext; +}; + //---------------------------------------------------------------------------- // getFieldInfo and CORINFO_FIELD_INFO: The EE instructs the JIT about how to access a field @@ -2019,17 +2040,12 @@ class ICorStaticInfo bool* isRelative /* OUT */ ) = 0; - // Find the virtual method in implementingClass that overrides virtualMethod, - // or the method in implementingClass that implements the interface method - // represented by virtualMethod. + // Finds the virtual method in info->objClass that overrides info->virtualMethod, + // or the method in info->objClass that implements the interface method + // represented by info->virtualMethod. // - // Return null if devirtualization is not possible. Owner type is optional - // and provides additional context for shared interface devirtualization. - virtual CORINFO_METHOD_HANDLE resolveVirtualMethod( - CORINFO_METHOD_HANDLE virtualMethod, /* IN */ - CORINFO_CLASS_HANDLE implementingClass, /* IN */ - CORINFO_CONTEXT_HANDLE ownerType = NULL /* IN */ - ) = 0; + // Returns false if devirtualization is not possible. + virtual bool resolveVirtualMethod(CORINFO_DEVIRTUALIZATION_INFO * info) = 0; // Get the unboxed entry point for a method, if possible. virtual CORINFO_METHOD_HANDLE getUnboxedEntry( diff --git a/src/coreclr/src/inc/jiteeversionguid.h b/src/coreclr/src/inc/jiteeversionguid.h index abc6044508e4b..fdb8d016b49e0 100644 --- a/src/coreclr/src/inc/jiteeversionguid.h +++ b/src/coreclr/src/inc/jiteeversionguid.h @@ -25,11 +25,11 @@ // ////////////////////////////////////////////////////////////////////////////////////////////////////////// -constexpr GUID JITEEVersionIdentifier = { /* 0d235fe4-65a1-487a-8553-c845496da901 */ - 0x0d235fe4, - 0x65a1, - 0x487a, - {0x85, 0x53, 0xc8, 0x45, 0x49, 0x6d, 0xa9, 0x01} +constexpr GUID JITEEVersionIdentifier = { /* 94cd1e55-a53b-4c6a-b697-46415b5d4204 */ + 0x94cd1e55, + 0xa53b, + 0x4c6a, + {0xb6, 0x97, 0x46, 0x41, 0x5b, 0x5d, 0x42, 0x04} }; ////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/coreclr/src/jit/ICorJitInfo_API_wrapper.hpp b/src/coreclr/src/jit/ICorJitInfo_API_wrapper.hpp index 60010a2a275b8..ddcadced08b13 100644 --- a/src/coreclr/src/jit/ICorJitInfo_API_wrapper.hpp +++ b/src/coreclr/src/jit/ICorJitInfo_API_wrapper.hpp @@ -135,13 +135,11 @@ void WrapICorJitInfo::getMethodVTableOffset( API_LEAVE(getMethodVTableOffset); } -CORINFO_METHOD_HANDLE WrapICorJitInfo::resolveVirtualMethod( - CORINFO_METHOD_HANDLE virtualMethod, - CORINFO_CLASS_HANDLE implementingClass, - CORINFO_CONTEXT_HANDLE ownerType) +bool WrapICorJitInfo::resolveVirtualMethod( + CORINFO_DEVIRTUALIZATION_INFO* info) { API_ENTER(resolveVirtualMethod); - CORINFO_METHOD_HANDLE temp = wrapHnd->resolveVirtualMethod(virtualMethod, implementingClass, ownerType); + bool temp = wrapHnd->resolveVirtualMethod(info); API_LEAVE(resolveVirtualMethod); return temp; } diff --git a/src/coreclr/src/jit/importer.cpp b/src/coreclr/src/jit/importer.cpp index 88e60351aaae6..8f0354086f663 100644 --- a/src/coreclr/src/jit/importer.cpp +++ b/src/coreclr/src/jit/importer.cpp @@ -20643,8 +20643,8 @@ bool Compiler::IsMathIntrinsic(GenTree* tree) // call -- the call node to examine/modify // method -- [IN/OUT] the method handle for call. Updated iff call devirtualized. // methodFlags -- [IN/OUT] flags for the method to call. Updated iff call devirtualized. -// contextHandle -- [IN/OUT] context handle for the call. Updated iff call devirtualized. -// exactContextHandle -- [OUT] updated context handle iff call devirtualized +// pContextHandle -- [IN/OUT] context handle for the call. Updated iff call devirtualized. +// pExactContextHandle -- [OUT] updated context handle iff call devirtualized // isLateDevirtualization -- if devirtualization is happening after importation // isExplicitTailCalll -- [IN] true if we plan on using an explicit tail call // ilOffset -- IL offset of the call @@ -20679,8 +20679,8 @@ bool Compiler::IsMathIntrinsic(GenTree* tree) void Compiler::impDevirtualizeCall(GenTreeCall* call, CORINFO_METHOD_HANDLE* method, unsigned* methodFlags, - CORINFO_CONTEXT_HANDLE* contextHandle, - CORINFO_CONTEXT_HANDLE* exactContextHandle, + CORINFO_CONTEXT_HANDLE* pContextHandle, + CORINFO_CONTEXT_HANDLE* pExactContextHandle, bool isLateDevirtualization, bool isExplicitTailCall, IL_OFFSETX ilOffset) @@ -20688,7 +20688,7 @@ void Compiler::impDevirtualizeCall(GenTreeCall* call, assert(call != nullptr); assert(method != nullptr); assert(methodFlags != nullptr); - assert(contextHandle != nullptr); + assert(pContextHandle != nullptr); // This should be a virtual vtable or virtual stub call. assert(call->IsVirtual()); @@ -20920,15 +20920,20 @@ void Compiler::impDevirtualizeCall(GenTreeCall* call, // Ask the runtime to determine the method that would be called based on the likely type. // - CORINFO_CONTEXT_HANDLE ownerType = *contextHandle; - CORINFO_METHOD_HANDLE likelyMethod = info.compCompHnd->resolveVirtualMethod(baseMethod, likelyClass, ownerType); + CORINFO_DEVIRTUALIZATION_INFO dvInfo; + dvInfo.virtualMethod = baseMethod; + dvInfo.objClass = likelyClass; + dvInfo.context = *pContextHandle; - if (likelyMethod == nullptr) + bool canResolve = info.compCompHnd->resolveVirtualMethod(&dvInfo); + + if (!canResolve) { JITDUMP("Can't figure out which method would be invoked, sorry\n"); return; } + CORINFO_METHOD_HANDLE likelyMethod = dvInfo.devirtualizedMethod; JITDUMP("%s call would invoke method %s\n", callKind, eeGetMethodName(likelyMethod, nullptr)); // Some of these may be redundant @@ -20954,8 +20959,23 @@ void Compiler::impDevirtualizeCall(GenTreeCall* call, // Fetch the method that would be called based on the declared type of 'this', // and prepare to fetch the method attributes. // - CORINFO_CONTEXT_HANDLE ownerType = *contextHandle; - CORINFO_METHOD_HANDLE derivedMethod = info.compCompHnd->resolveVirtualMethod(baseMethod, objClass, ownerType); + CORINFO_DEVIRTUALIZATION_INFO dvInfo; + dvInfo.virtualMethod = baseMethod; + dvInfo.objClass = objClass; + dvInfo.context = *pContextHandle; + + info.compCompHnd->resolveVirtualMethod(&dvInfo); + + CORINFO_METHOD_HANDLE derivedMethod = dvInfo.devirtualizedMethod; + CORINFO_CONTEXT_HANDLE exactContext = dvInfo.exactContext; + CORINFO_CLASS_HANDLE derivedClass = NO_CLASS_HANDLE; + + if (exactContext != nullptr) + { + // We currently expect the context to always be a class context. + assert(((size_t)exactContext & CORINFO_CONTEXTFLAGS_MASK) == CORINFO_CONTEXTFLAGS_CLASS); + derivedClass = (CORINFO_CLASS_HANDLE)((size_t)exactContext & ~CORINFO_CONTEXTFLAGS_MASK); + } DWORD derivedMethodAttribs = 0; bool derivedMethodIsFinal = false; @@ -20998,7 +21018,8 @@ void Compiler::impDevirtualizeCall(GenTreeCall* call, if (verbose || doPrint) { - derivedMethodName = eeGetMethodName(derivedMethod, &derivedClassName); + derivedMethodName = eeGetMethodName(derivedMethod, nullptr); + derivedClassName = eeGetClassName(derivedClass); if (verbose) { printf(" devirt to %s::%s -- %s\n", derivedClassName, derivedMethodName, note); @@ -21029,9 +21050,10 @@ void Compiler::impDevirtualizeCall(GenTreeCall* call, // See if there's a likely guess for the class. // - const unsigned likelihoodThreshold = isInterface ? 25 : 30; - unsigned likelihood = 0; - unsigned numberOfClasses = 0; + const unsigned likelihoodThreshold = isInterface ? 25 : 30; + unsigned likelihood = 0; + unsigned numberOfClasses = 0; + CORINFO_CLASS_HANDLE likelyClass = info.compCompHnd->getLikelyClass(info.compMethodHnd, baseClass, ilOffset, &likelihood, &numberOfClasses); @@ -21081,15 +21103,20 @@ void Compiler::impDevirtualizeCall(GenTreeCall* call, // Figure out which method will be called. // - CORINFO_CONTEXT_HANDLE ownerType = *contextHandle; - CORINFO_METHOD_HANDLE likelyMethod = info.compCompHnd->resolveVirtualMethod(baseMethod, likelyClass, ownerType); + CORINFO_DEVIRTUALIZATION_INFO dvInfo; + dvInfo.virtualMethod = baseMethod; + dvInfo.objClass = likelyClass; + dvInfo.context = *pContextHandle; + + bool canResolve = info.compCompHnd->resolveVirtualMethod(&dvInfo); - if (likelyMethod == nullptr) + if (!canResolve) { JITDUMP("Can't figure out which method would be invoked, sorry\n"); return; } + CORINFO_METHOD_HANDLE likelyMethod = dvInfo.devirtualizedMethod; JITDUMP("%s call would invoke method %s\n", callKind, eeGetMethodName(likelyMethod, nullptr)); // Some of these may be redundant @@ -21273,24 +21300,20 @@ void Compiler::impDevirtualizeCall(GenTreeCall* call, } } - // Fetch the class that introduced the derived method. + // Need to update call info too. // - // Note this may not equal objClass, if there is a - // final method that objClass inherits. - CORINFO_CLASS_HANDLE derivedClass = info.compCompHnd->getMethodClass(derivedMethod); + *method = derivedMethod; + *methodFlags = derivedMethodAttribs; - // Need to update call info too. This is fragile and suboptimal - // https://github.com/dotnet/runtime/issues/38477 - // but hopefully the derived method conforms to - // the base in most other ways. - *method = derivedMethod; - *methodFlags = derivedMethodAttribs; - *contextHandle = MAKE_METHODCONTEXT(derivedMethod); + // Update context handle + // + *pContextHandle = MAKE_METHODCONTEXT(derivedMethod); - // Update context handle. - if ((exactContextHandle != nullptr) && (*exactContextHandle != nullptr)) + // Update exact context handle. + // + if (pExactContextHandle != nullptr) { - *exactContextHandle = MAKE_METHODCONTEXT(derivedMethod); + *pExactContextHandle = MAKE_CLASSCONTEXT(derivedClass); } #ifdef FEATURE_READYTORUN_COMPILER @@ -21303,7 +21326,7 @@ void Compiler::impDevirtualizeCall(GenTreeCall* call, CORINFO_RESOLVED_TOKEN derivedResolvedToken = {}; derivedResolvedToken.tokenScope = info.compCompHnd->getMethodModule(derivedMethod); - derivedResolvedToken.tokenContext = *contextHandle; + derivedResolvedToken.tokenContext = *pContextHandle; derivedResolvedToken.token = info.compCompHnd->getMethodDefFromMethod(derivedMethod); derivedResolvedToken.tokenType = CORINFO_TOKENKIND_Method; derivedResolvedToken.hClass = derivedClass; diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoBase.cs b/src/coreclr/src/tools/Common/JitInterface/CorInfoBase.cs index 0aeb5ee6952b4..8fd7bc81c3743 100644 --- a/src/coreclr/src/tools/Common/JitInterface/CorInfoBase.cs +++ b/src/coreclr/src/tools/Common/JitInterface/CorInfoBase.cs @@ -187,12 +187,12 @@ static void _getMethodVTableOffset(IntPtr thisHandle, IntPtr* ppException, CORIN } [UnmanagedCallersOnly] - static CORINFO_METHOD_STRUCT_* _resolveVirtualMethod(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* virtualMethod, CORINFO_CLASS_STRUCT_* implementingClass, CORINFO_CONTEXT_STRUCT* ownerType) + static byte _resolveVirtualMethod(IntPtr thisHandle, IntPtr* ppException, CORINFO_DEVIRTUALIZATION_INFO* info) { var _this = GetThis(thisHandle); try { - return _this.resolveVirtualMethod(virtualMethod, implementingClass, ownerType); + return _this.resolveVirtualMethod(info) ? 1 : 0; } catch (Exception ex) { @@ -2549,7 +2549,7 @@ static IntPtr GetUnmanagedCallbacks() callbacks[9] = (delegate* unmanaged)&_getMethodClass; callbacks[10] = (delegate* unmanaged)&_getMethodModule; callbacks[11] = (delegate* unmanaged)&_getMethodVTableOffset; - callbacks[12] = (delegate* unmanaged)&_resolveVirtualMethod; + callbacks[12] = (delegate* unmanaged)&_resolveVirtualMethod; callbacks[13] = (delegate* unmanaged)&_getUnboxedEntry; callbacks[14] = (delegate* unmanaged)&_getDefaultEqualityComparerClass; callbacks[15] = (delegate* unmanaged)&_expandRawHandleIntrinsic; diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs b/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs index b73d9d13f15bf..60283129d2897 100644 --- a/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs +++ b/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs @@ -954,22 +954,27 @@ private void getEHinfo(CORINFO_METHOD_STRUCT_* ftn, uint EHnumber, ref CORINFO_E return (CORINFO_MODULE_STRUCT_*)ObjectToHandle(methodIL); } - private CORINFO_METHOD_STRUCT_* resolveVirtualMethod(CORINFO_METHOD_STRUCT_* baseMethod, CORINFO_CLASS_STRUCT_* derivedClass, CORINFO_CONTEXT_STRUCT* ownerType) + private bool resolveVirtualMethod(CORINFO_DEVIRTUALIZATION_INFO* info) { - TypeDesc implType = HandleToObject(derivedClass); + // Initialize OUT fields + info->devirtualizedMethod = null; + info->requiresInstMethodTableArg = false; + info->exactContext = null; + + TypeDesc objType = HandleToObject(info->objClass); // __Canon cannot be devirtualized - if (implType.IsCanonicalDefinitionType(CanonicalFormKind.Any)) + if (objType.IsCanonicalDefinitionType(CanonicalFormKind.Any)) { - return null; + return false; } - MethodDesc decl = HandleToObject(baseMethod); + MethodDesc decl = HandleToObject(info->virtualMethod); Debug.Assert(!decl.HasInstantiation); - if (ownerType != null) + if (info->context != null) { - TypeDesc ownerTypeDesc = typeFromContext(ownerType); + TypeDesc ownerTypeDesc = typeFromContext(info->context); if (decl.OwningType != ownerTypeDesc) { Debug.Assert(ownerTypeDesc is InstantiatedType); @@ -977,19 +982,25 @@ private void getEHinfo(CORINFO_METHOD_STRUCT_* ftn, uint EHnumber, ref CORINFO_E } } - MethodDesc impl = _compilation.ResolveVirtualMethod(decl, implType); + MethodDesc impl = _compilation.ResolveVirtualMethod(decl, objType); - if (impl != null) + if (impl == null) { - if (impl.OwningType.IsValueType) - { - impl = getUnboxingThunk(impl); - } + return false; + } - return ObjectToHandle(impl); + if (impl.OwningType.IsValueType) + { + impl = getUnboxingThunk(impl); } - return null; + MethodDesc exactImpl = TypeSystemHelpers.FindMethodOnTypeWithMatchingTypicalMethod(objType, impl); + + info->devirtualizedMethod = ObjectToHandle(impl); + info->requiresInstMethodTableArg = false; + info->exactContext = contextFromType(exactImpl.OwningType); + + return true; } private CORINFO_METHOD_STRUCT_* getUnboxedEntry(CORINFO_METHOD_STRUCT_* ftn, byte* requiresInstMethodTableArg) diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.cs b/src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.cs index 631e848410d75..bb894cf5a0e04 100644 --- a/src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.cs +++ b/src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.cs @@ -1029,6 +1029,27 @@ public unsafe struct CORINFO_CALL_INFO public bool wrapperDelegateInvoke { get { return _wrapperDelegateInvoke != 0; } set { _wrapperDelegateInvoke = value ? (byte)1 : (byte)0; } } } + public unsafe struct CORINFO_DEVIRTUALIZATION_INFO + { + // + // [In] arguments of resolveVirtualMethod + // + public CORINFO_METHOD_STRUCT_* virtualMethod; + public CORINFO_CLASS_STRUCT_* objClass; + public CORINFO_CONTEXT_STRUCT* context; + + // + // [Out] results of resolveVirtualMethod. + // - devirtualizedMethod is set to MethodDesc of devirt'ed method iff we were able to devirtualize. + // invariant is `resolveVirtualMethod(...) == (devirtualizedMethod != nullptr)`. + // - requiresInstMethodTableArg is set to TRUE if the devirtualized method requires a type handle arg. + // - exactContext is set to wrapped CORINFO_CLASS_HANDLE of devirt'ed method table. + // + public CORINFO_METHOD_STRUCT_* devirtualizedMethod; + public byte _requiresInstMethodTableArg; + public bool requiresInstMethodTableArg { get { return _requiresInstMethodTableArg != 0; } set { _requiresInstMethodTableArg = value ? 1 : 0; } } + public CORINFO_CONTEXT_STRUCT* exactContext; + } //---------------------------------------------------------------------------- // getFieldInfo and CORINFO_FIELD_INFO: The EE instructs the JIT about how to access a field diff --git a/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt b/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt index 73c2a889857d5..026f57c57a36b 100644 --- a/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt +++ b/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt @@ -97,6 +97,7 @@ CORINFO_GENERICHANDLE_RESULT*,ref CORINFO_GENERICHANDLE_RESULT,void* CORINFO_METHOD_INFO*,CORINFO_METHOD_INFO*,void* CORINFO_FIELD_INFO*,CORINFO_FIELD_INFO*,void* CORINFO_CALL_INFO*,CORINFO_CALL_INFO*,void* +CORINFO_DEVIRTUALIZATION_INFO*,CORINFO_DEVIRTUALIZATION_INFO*,void* PatchpointInfo*,PatchpointInfo*,void* DelegateCtorArgs*,ref DelegateCtorArgs,void* ICorDynamicInfo*,IntPtr,void* @@ -171,7 +172,7 @@ FUNCTIONS CORINFO_CLASS_HANDLE getMethodClass( CORINFO_METHOD_HANDLE method ); CORINFO_MODULE_HANDLE getMethodModule( CORINFO_METHOD_HANDLE method ); void getMethodVTableOffset( CORINFO_METHOD_HANDLE method, unsigned* offsetOfIndirection, unsigned* offsetAfterIndirection, bool* isRelative); - CORINFO_METHOD_HANDLE resolveVirtualMethod( CORINFO_METHOD_HANDLE virtualMethod, CORINFO_CLASS_HANDLE implementingClass, CORINFO_CONTEXT_HANDLE ownerType); + bool resolveVirtualMethod(CORINFO_DEVIRTUALIZATION_INFO* info); CORINFO_METHOD_HANDLE getUnboxedEntry(CORINFO_METHOD_HANDLE ftn, BoolStar requiresInstMethodTableArg); CORINFO_CLASS_HANDLE getDefaultEqualityComparerClass(CORINFO_CLASS_HANDLE elemType); void expandRawHandleIntrinsic(CORINFO_RESOLVED_TOKEN * pResolvedToken, CORINFO_GENERICHANDLE_RESULT * pResult); diff --git a/src/coreclr/src/tools/aot/jitinterface/jitinterface.h b/src/coreclr/src/tools/aot/jitinterface/jitinterface.h index a1660c1c897ee..cbd3fd37044f0 100644 --- a/src/coreclr/src/tools/aot/jitinterface/jitinterface.h +++ b/src/coreclr/src/tools/aot/jitinterface/jitinterface.h @@ -22,7 +22,7 @@ struct JitInterfaceCallbacks void* (* getMethodClass)(void * thisHandle, CorInfoExceptionClass** ppException, void* method); void* (* getMethodModule)(void * thisHandle, CorInfoExceptionClass** ppException, void* method); void (* getMethodVTableOffset)(void * thisHandle, CorInfoExceptionClass** ppException, void* method, unsigned* offsetOfIndirection, unsigned* offsetAfterIndirection, bool* isRelative); - void* (* resolveVirtualMethod)(void * thisHandle, CorInfoExceptionClass** ppException, void* virtualMethod, void* implementingClass, void* ownerType); + bool (* resolveVirtualMethod)(void * thisHandle, CorInfoExceptionClass** ppException, void* info); void* (* getUnboxedEntry)(void * thisHandle, CorInfoExceptionClass** ppException, void* ftn, bool* requiresInstMethodTableArg); void* (* getDefaultEqualityComparerClass)(void * thisHandle, CorInfoExceptionClass** ppException, void* elemType); void (* expandRawHandleIntrinsic)(void * thisHandle, CorInfoExceptionClass** ppException, void* pResolvedToken, void* pResult); @@ -319,13 +319,11 @@ class JitInterfaceWrapper if (pException != nullptr) throw pException; } - virtual void* resolveVirtualMethod( - void* virtualMethod, - void* implementingClass, - void* ownerType) + virtual bool resolveVirtualMethod( + void* info) { CorInfoExceptionClass* pException = nullptr; - void* temp = _callbacks->resolveVirtualMethod(_thisHandle, &pException, virtualMethod, implementingClass, ownerType); + bool temp = _callbacks->resolveVirtualMethod(_thisHandle, &pException, info); if (pException != nullptr) throw pException; return temp; } diff --git a/src/coreclr/src/vm/jitinterface.cpp b/src/coreclr/src/vm/jitinterface.cpp index 6515a798ba588..cc7183d6ddb60 100644 --- a/src/coreclr/src/vm/jitinterface.cpp +++ b/src/coreclr/src/vm/jitinterface.cpp @@ -8857,9 +8857,7 @@ void CEEInfo::getMethodVTableOffset (CORINFO_METHOD_HANDLE methodHnd, } /*********************************************************************/ -CORINFO_METHOD_HANDLE CEEInfo::resolveVirtualMethodHelper(CORINFO_METHOD_HANDLE baseMethod, - CORINFO_CLASS_HANDLE derivedClass, - CORINFO_CONTEXT_HANDLE ownerType) +bool CEEInfo::resolveVirtualMethodHelper(CORINFO_DEVIRTUALIZATION_INFO * info) { CONTRACTL { THROWS; @@ -8867,7 +8865,12 @@ CORINFO_METHOD_HANDLE CEEInfo::resolveVirtualMethodHelper(CORINFO_METHOD_HANDLE MODE_PREEMPTIVE; } CONTRACTL_END; - MethodDesc* pBaseMD = GetMethod(baseMethod); + // Initialize OUT fields + info->devirtualizedMethod = NULL; + info->requiresInstMethodTableArg = false; + info->exactContext = NULL; + + MethodDesc* pBaseMD = GetMethod(info->virtualMethod); MethodTable* pBaseMT = pBaseMD->GetMethodTable(); // Method better be from a fully loaded class @@ -8881,14 +8884,14 @@ CORINFO_METHOD_HANDLE CEEInfo::resolveVirtualMethodHelper(CORINFO_METHOD_HANDLE MethodDesc* pDevirtMD = nullptr; - TypeHandle DerivedClsHnd(derivedClass); - MethodTable* pDerivedMT = DerivedClsHnd.GetMethodTable(); - _ASSERTE(pDerivedMT->IsRestored() && pDerivedMT->IsFullyLoaded()); + TypeHandle ObjClassHnd(info->objClass); + MethodTable* pObjMT = ObjClassHnd.GetMethodTable(); + _ASSERTE(pObjMT->IsRestored() && pObjMT->IsFullyLoaded()); // Can't devirtualize from __Canon. - if (DerivedClsHnd == TypeHandle(g_pCanonMethodTableClass)) + if (ObjClassHnd == TypeHandle(g_pCanonMethodTableClass)) { - return nullptr; + return false; } if (pBaseMT->IsInterface()) @@ -8896,7 +8899,7 @@ CORINFO_METHOD_HANDLE CEEInfo::resolveVirtualMethodHelper(CORINFO_METHOD_HANDLE #ifdef FEATURE_COMINTEROP // Don't try and devirtualize com interface calls. - if (pDerivedMT->IsComObjectType()) + if (pObjMT->IsComObjectType()) { return nullptr; } @@ -8904,37 +8907,37 @@ CORINFO_METHOD_HANDLE CEEInfo::resolveVirtualMethodHelper(CORINFO_METHOD_HANDLE // Interface call devirtualization. // - // We must ensure that pDerivedMT actually implements the + // We must ensure that pObjMT actually implements the // interface corresponding to pBaseMD. - if (!pDerivedMT->CanCastToInterface(pBaseMT)) + if (!pObjMT->CanCastToInterface(pBaseMT)) { - return nullptr; + return false; } - // For generic interface methods we must have an ownerType to + // For generic interface methods we must have context to // safely devirtualize. - if (ownerType != nullptr) + if (info->context != nullptr) { - TypeHandle OwnerClsHnd = GetTypeFromContext(ownerType); + TypeHandle OwnerClsHnd = GetTypeFromContext(info->context); MethodTable* pOwnerMT = OwnerClsHnd.GetMethodTable(); // If the derived class is a shared class, make sure the // owner class is too. - if (pDerivedMT->IsSharedByGenericInstantiations()) + if (pObjMT->IsSharedByGenericInstantiations()) { pOwnerMT = pOwnerMT->GetCanonicalMethodTable(); } - pDevirtMD = pDerivedMT->GetMethodDescForInterfaceMethod(TypeHandle(pOwnerMT), pBaseMD, FALSE /* throwOnConflict */); + pDevirtMD = pObjMT->GetMethodDescForInterfaceMethod(TypeHandle(pOwnerMT), pBaseMD, FALSE /* throwOnConflict */); } else if (!pBaseMD->HasClassOrMethodInstantiation()) { - pDevirtMD = pDerivedMT->GetMethodDescForInterfaceMethod(pBaseMD, FALSE /* throwOnConflict */); + pDevirtMD = pObjMT->GetMethodDescForInterfaceMethod(pBaseMD, FALSE /* throwOnConflict */); } if (pDevirtMD == nullptr) { - return nullptr; + return false; } // If we devirtualized into a default interface method on a generic type, we should actually return an @@ -8942,7 +8945,7 @@ CORINFO_METHOD_HANDLE CEEInfo::resolveVirtualMethodHelper(CORINFO_METHOD_HANDLE // Making this work is tracked by https://github.com/dotnet/runtime/issues/9588 if (pDevirtMD->GetMethodTable()->IsInterface() && pDevirtMD->HasClassInstantiation()) { - return nullptr; + return false; } } else @@ -8950,7 +8953,7 @@ CORINFO_METHOD_HANDLE CEEInfo::resolveVirtualMethodHelper(CORINFO_METHOD_HANDLE // Virtual call devirtualization. // // The derived class should be a subclass of the the base class. - MethodTable* pCheckMT = pDerivedMT; + MethodTable* pCheckMT = pObjMT; while (pCheckMT != nullptr) { @@ -8964,7 +8967,7 @@ CORINFO_METHOD_HANDLE CEEInfo::resolveVirtualMethodHelper(CORINFO_METHOD_HANDLE if (pCheckMT == nullptr) { - return nullptr; + return false; } // The base method should be in the base vtable @@ -8974,7 +8977,7 @@ CORINFO_METHOD_HANDLE CEEInfo::resolveVirtualMethodHelper(CORINFO_METHOD_HANDLE // Fetch the method that would be invoked if the class were // exactly derived class. It is up to the jit to determine whether // directly calling this method is correct. - pDevirtMD = pDerivedMT->GetMethodDescForSlot(slot); + pDevirtMD = pObjMT->GetMethodDescForSlot(slot); // If the derived method's slot does not match the vtable slot, // bail on devirtualization, as the method was installed into @@ -8987,12 +8990,32 @@ CORINFO_METHOD_HANDLE CEEInfo::resolveVirtualMethodHelper(CORINFO_METHOD_HANDLE if (dslot != slot) { - return nullptr; + return false; } } _ASSERTE(pDevirtMD->IsRestored()); + // Determine the exact class. + // + // We may fail to get an exact context if the method is a default + // interface method. If so, we'll use the method's class. + // + MethodTable* pApproxMT = pDevirtMD->GetMethodTable(); + MethodTable* pExactMT = pApproxMT; + + if (pApproxMT->IsInterface()) + { + // As noted above, we can't yet handle generic interfaces + // with default methods. + _ASSERTE(!pDevirtMD->HasClassInstantiation()); + + } + else + { + pExactMT = pDevirtMD->GetExactDeclaringType(pObjMT); + } + #ifdef FEATURE_READYTORUN_COMPILER // Check if devirtualization is dependent upon cross-version // bubble information and if so, disallow it. @@ -9002,21 +9025,25 @@ CORINFO_METHOD_HANDLE CEEInfo::resolveVirtualMethodHelper(CORINFO_METHOD_HANDLE Assembly* pCallerAssembly = callerMethod->GetModule()->GetAssembly(); bool allowDevirt = IsInSameVersionBubble(pCallerAssembly , pDevirtMD->GetModule()->GetAssembly()) - && IsInSameVersionBubble(pCallerAssembly , pDerivedMT->GetAssembly()); + && IsInSameVersionBubble(pCallerAssembly, pObjMT->GetAssembly()); if (!allowDevirt) { - return nullptr; + return false; } } #endif - return (CORINFO_METHOD_HANDLE) pDevirtMD; + // Success! Pass back the results. + // + info->devirtualizedMethod = (CORINFO_METHOD_HANDLE) pDevirtMD; + info->exactContext = MAKE_CLASSCONTEXT((CORINFO_CLASS_HANDLE) pExactMT); + info->requiresInstMethodTableArg = false; + + return true; } -CORINFO_METHOD_HANDLE CEEInfo::resolveVirtualMethod(CORINFO_METHOD_HANDLE methodHnd, - CORINFO_CLASS_HANDLE derivedClass, - CORINFO_CONTEXT_HANDLE ownerType) +bool CEEInfo::resolveVirtualMethod(CORINFO_DEVIRTUALIZATION_INFO * info) { CONTRACTL { THROWS; @@ -9024,11 +9051,11 @@ CORINFO_METHOD_HANDLE CEEInfo::resolveVirtualMethod(CORINFO_METHOD_HANDLE method MODE_PREEMPTIVE; } CONTRACTL_END; - CORINFO_METHOD_HANDLE result = nullptr; + bool result = false; JIT_TO_EE_TRANSITION(); - result = resolveVirtualMethodHelper(methodHnd, derivedClass, ownerType); + result = resolveVirtualMethodHelper(info); EE_TO_JIT_TRANSITION(); diff --git a/src/coreclr/src/vm/jitinterface.h b/src/coreclr/src/vm/jitinterface.h index 7518004464e7d..86198fee85b59 100644 --- a/src/coreclr/src/vm/jitinterface.h +++ b/src/coreclr/src/vm/jitinterface.h @@ -732,17 +732,8 @@ class CEEInfo : public ICorJitInfo unsigned * pOffsetAfterIndirection, bool * isRelative); - CORINFO_METHOD_HANDLE resolveVirtualMethod( - CORINFO_METHOD_HANDLE virtualMethod, - CORINFO_CLASS_HANDLE implementingClass, - CORINFO_CONTEXT_HANDLE ownerType - ); - - CORINFO_METHOD_HANDLE resolveVirtualMethodHelper( - CORINFO_METHOD_HANDLE virtualMethod, - CORINFO_CLASS_HANDLE implementingClass, - CORINFO_CONTEXT_HANDLE ownerType - ); + bool resolveVirtualMethod(CORINFO_DEVIRTUALIZATION_INFO * info); + bool resolveVirtualMethodHelper(CORINFO_DEVIRTUALIZATION_INFO * info); CORINFO_METHOD_HANDLE getUnboxedEntry( CORINFO_METHOD_HANDLE ftn, diff --git a/src/coreclr/src/zap/zapinfo.cpp b/src/coreclr/src/zap/zapinfo.cpp index 036457ab673d8..bcc96877bf81d 100644 --- a/src/coreclr/src/zap/zapinfo.cpp +++ b/src/coreclr/src/zap/zapinfo.cpp @@ -4010,12 +4010,9 @@ void ZapInfo::getMethodVTableOffset(CORINFO_METHOD_HANDLE method, m_pEEJitInfo->getMethodVTableOffset(method, pOffsetOfIndirection, pOffsetAfterIndirection, isRelative); } -CORINFO_METHOD_HANDLE ZapInfo::resolveVirtualMethod( - CORINFO_METHOD_HANDLE virtualMethod, - CORINFO_CLASS_HANDLE implementingClass, - CORINFO_CONTEXT_HANDLE ownerType) +bool ZapInfo::resolveVirtualMethod(CORINFO_DEVIRTUALIZATION_INFO * info) { - return m_pEEJitInfo->resolveVirtualMethod(virtualMethod, implementingClass, ownerType); + return m_pEEJitInfo->resolveVirtualMethod(info); } CORINFO_METHOD_HANDLE ZapInfo::getUnboxedEntry( diff --git a/src/coreclr/src/zap/zapinfo.h b/src/coreclr/src/zap/zapinfo.h index 74a8c0eebf2c9..e9b812ba497a8 100644 --- a/src/coreclr/src/zap/zapinfo.h +++ b/src/coreclr/src/zap/zapinfo.h @@ -675,10 +675,7 @@ class ZapInfo unsigned * pOffsetAfterIndirection, bool * isRelative); - CORINFO_METHOD_HANDLE resolveVirtualMethod( - CORINFO_METHOD_HANDLE virtualMethod, - CORINFO_CLASS_HANDLE implementingClass, - CORINFO_CONTEXT_HANDLE ownerType); + bool resolveVirtualMethod(CORINFO_DEVIRTUALIZATION_INFO * info); CORINFO_METHOD_HANDLE getUnboxedEntry( CORINFO_METHOD_HANDLE ftn, diff --git a/src/tests/JIT/opt/Devirtualization/exact1.cs b/src/tests/JIT/opt/Devirtualization/exact1.cs new file mode 100644 index 0000000000000..3072df3c64a1a --- /dev/null +++ b/src/tests/JIT/opt/Devirtualization/exact1.cs @@ -0,0 +1,19 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Runtime.CompilerServices; + +// The jit should be able to inline M() if it gets the +// exact context G + +class G +{ + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public virtual bool M() => typeof(T) == typeof(string); +} + +class Program +{ + static int Main() => new G().M() ? 100 : -1; +} diff --git a/src/tests/JIT/opt/Devirtualization/exact1.csproj b/src/tests/JIT/opt/Devirtualization/exact1.csproj new file mode 100644 index 0000000000000..5625db7318199 --- /dev/null +++ b/src/tests/JIT/opt/Devirtualization/exact1.csproj @@ -0,0 +1,13 @@ + + + Exe + 1 + + + None + True + + + + + diff --git a/src/tests/JIT/opt/Devirtualization/exact2.cs b/src/tests/JIT/opt/Devirtualization/exact2.cs new file mode 100644 index 0000000000000..0b18ff7e22634 --- /dev/null +++ b/src/tests/JIT/opt/Devirtualization/exact2.cs @@ -0,0 +1,43 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Runtime.CompilerServices; + +class B +{ + public virtual int F() => 33; +} + +class D : B +{ + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public override int F() => typeof(T) == typeof(string) ? 44 : 55; +} + +class E : D +{ + +} + +class G : E +{ + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public override int F() => typeof(T) == typeof(string) ? 66 : 77; +} + +// All of the calls to F() in Main should devirtualize and inline + +class Program +{ + public static int Main() + { + B b = new B(); + D ds = new D(); + E e = new E(); + G gs = new G(); + + // 33 + 44 + 44 + 66 = 187 + return b.F() + ds.F() + e.F() + gs.F() - 87; + } +} diff --git a/src/tests/JIT/opt/Devirtualization/exact2.csproj b/src/tests/JIT/opt/Devirtualization/exact2.csproj new file mode 100644 index 0000000000000..8cd5842213800 --- /dev/null +++ b/src/tests/JIT/opt/Devirtualization/exact2.csproj @@ -0,0 +1,13 @@ + + + Exe + 1 + + + None + True + + + + + From 6b7ea56cb530c7852d24687e7044bcd51ff84c9f Mon Sep 17 00:00:00 2001 From: xtqqczze <45661989+xtqqczze@users.noreply.github.com> Date: Sun, 6 Dec 2020 16:24:57 +0000 Subject: [PATCH 36/87] Upgrade StyleCopAnalyzers to v1.2.0-beta.304 (#45644) Follow-up to #45562. --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index d2ca0f791943a..ce149fd24d904 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -73,7 +73,7 @@ 5.0.0-preview.8.20359.4 - 1.2.0-beta.261 + 1.2.0-beta.304 4.5.1 4.3.0 4.3.0 From f9a4fbff8693a11aea4af9ac5bb07d9e3fe34be3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Rylek?= Date: Sun, 6 Dec 2020 20:10:56 +0100 Subject: [PATCH 37/87] Add support for diffing GC ref map info to R2RDump; small bugfix (#45619) --- src/coreclr/src/tools/r2rdump/Extensions.cs | 2 +- src/coreclr/src/tools/r2rdump/R2RDiff.cs | 46 +++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/src/coreclr/src/tools/r2rdump/Extensions.cs b/src/coreclr/src/tools/r2rdump/Extensions.cs index 3d297963a85b8..5240a70fc586a 100644 --- a/src/coreclr/src/tools/r2rdump/Extensions.cs +++ b/src/coreclr/src/tools/r2rdump/Extensions.cs @@ -250,7 +250,7 @@ public static void WriteTo(this GCRefMap theThis, TextWriter writer) { if (theThis.StackPop != GCRefMap.InvalidStackPop) { - writer.Write(@"POP(0x{StackPop:X}) "); + writer.Write($@"POP(0x{theThis.StackPop:X}) "); } for (int entryIndex = 0; entryIndex < theThis.Entries.Length; entryIndex++) { diff --git a/src/coreclr/src/tools/r2rdump/R2RDiff.cs b/src/coreclr/src/tools/r2rdump/R2RDiff.cs index 1e0c639139957..91962d3ee929a 100644 --- a/src/coreclr/src/tools/r2rdump/R2RDiff.cs +++ b/src/coreclr/src/tools/r2rdump/R2RDiff.cs @@ -57,6 +57,7 @@ public void Run() DiffTitle(); DiffPESections(); DiffR2RSections(); + DiffImportSections(); DiffR2RMethods(); DiffMethodsForModule(AllModules, AllModules); @@ -144,6 +145,37 @@ private void DiffR2RSections() ShowDiff(GetR2RSectionMap(_leftDumper.Reader), GetR2RSectionMap(_rightDumper.Reader), "R2R sections"); } + private void DiffImportSections() + { + Dictionary leftImports = GetImports(_leftDumper.Reader); + Dictionary rightImports = GetImports(_rightDumper.Reader); + HashSet commonKeys = new HashSet(leftImports.Keys); + commonKeys.IntersectWith(rightImports.Keys); + + _writer.WriteLine("Import entries"); + _writer.WriteLine("--------------"); + + foreach (string key in commonKeys.OrderBy(k => k)) + { + ReadyToRunImportSection.ImportSectionEntry leftEntry = leftImports[key]; + ReadyToRunImportSection.ImportSectionEntry rightEntry = rightImports[key]; + StringWriter leftInfo = new StringWriter(); + StringWriter rightInfo = new StringWriter(); + leftEntry.GCRefMap?.WriteTo(leftInfo); + rightEntry.GCRefMap?.WriteTo(rightInfo); + string leftGCRefMap = leftInfo.ToString(); + string rightGCRefMap = rightInfo.ToString(); + if (leftGCRefMap != rightGCRefMap) + { + _writer.WriteLine($@"Method: {key}"); + _writer.WriteLine($@"Left GC ref map: {leftGCRefMap}"); + _writer.WriteLine($@"Right GC ref map: {rightGCRefMap}"); + } + } + + _writer.WriteLine(); + } + /// /// Diff the R2R method maps. /// @@ -349,6 +381,20 @@ private void DumpCommonMethods(Dumper dumper, int moduleIndex, Dictionary GetImports(ReadyToRunReader reader) + { + var result = new Dictionary(); + var signatureOptions = new SignatureFormattingOptions() { Naked = true }; + foreach (ReadyToRunImportSection section in reader.ImportSections) + { + foreach (ReadyToRunImportSection.ImportSectionEntry entry in section.Entries) + { + result[entry.Signature.ToString(signatureOptions)] = entry; + } + } + return result; + } + /// /// Filter out methods that have identical left / right disassembly. /// From 4e16e2f68d89798b7145a28101b83a5282be12fa Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Sun, 6 Dec 2020 11:33:18 -0800 Subject: [PATCH 38/87] Delete IsIntrinsicWorkaround (#45656) --- .../IL/ReadyToRunILProvider.cs | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IL/ReadyToRunILProvider.cs b/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IL/ReadyToRunILProvider.cs index 77d5987771ef8..46ec240cba14e 100644 --- a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IL/ReadyToRunILProvider.cs +++ b/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IL/ReadyToRunILProvider.cs @@ -10,8 +10,6 @@ namespace Internal.IL { - using Workarounds; - public sealed class ReadyToRunILProvider : ILProvider { private MethodIL TryGetIntrinsicMethodILForActivator(MethodDesc method) @@ -99,7 +97,7 @@ public override MethodIL GetMethodIL(MethodDesc method) { if (method is EcmaMethod ecmaMethod) { - if (method.IsIntrinsicWorkaround()) + if (method.IsIntrinsic) { MethodIL result = TryGetIntrinsicMethodIL(method); if (result != null) @@ -115,7 +113,7 @@ public override MethodIL GetMethodIL(MethodDesc method) else if (method is MethodForInstantiatedType || method is InstantiatedMethod) { // Intrinsics specialized per instantiation - if (method.IsIntrinsicWorkaround()) + if (method.IsIntrinsic) { MethodIL methodIL = TryGetPerInstantiationIntrinsicMethodIL(method); if (methodIL != null) @@ -134,16 +132,3 @@ public override MethodIL GetMethodIL(MethodDesc method) } } } - -namespace Internal.IL.Workarounds -{ - static class IntrinsicExtensions - { - // We should ideally mark interesting methods a [Intrinsic] to avoid having to - // name match everything in CoreLib. - public static bool IsIntrinsicWorkaround(this MethodDesc method) - { - return method.OwningType is MetadataType mdType && mdType.Module == method.Context.SystemModule; - } - } -} From a5d0bcf19f778ac3cc579320c64adc4cf2e5f1d7 Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Sun, 6 Dec 2020 12:42:39 -0800 Subject: [PATCH 39/87] Delete redundant DivMod implementation (#45652) --- .../Text/Utf8Formatter/FormattingHelpers.cs | 26 ------------------- .../Utf8Formatter/Utf8Formatter.TimeSpan.cs | 9 ++++--- .../Text/Json/Writer/JsonWriterHelper.Date.cs | 11 ++++---- 3 files changed, 10 insertions(+), 36 deletions(-) diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/FormattingHelpers.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/FormattingHelpers.cs index 2a6019da191db..6316a19b33559 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/FormattingHelpers.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/FormattingHelpers.cs @@ -149,32 +149,6 @@ public static void WriteTwoDecimalDigits(uint value, Span buffer, int star #endregion UTF-8 Helper methods - #region Math Helper methods - - /// - /// We don't have access to Math.DivRem, so this is a copy of the implementation. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static ulong DivMod(ulong numerator, ulong denominator, out ulong modulo) - { - ulong div = numerator / denominator; - modulo = numerator - (div * denominator); - return div; - } - - /// - /// We don't have access to Math.DivRem, so this is a copy of the implementation. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static uint DivMod(uint numerator, uint denominator, out uint modulo) - { - uint div = numerator / denominator; - modulo = numerator - (div * denominator); - return div; - } - - #endregion Math Helper methods - // // Enable use of ThrowHelper from TryFormat() routines without introducing dozens of non-code-coveraged "bytesWritten = 0; return false" boilerplate. // diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.TimeSpan.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.TimeSpan.cs index 6e4fc4f89c9f6..3fa8e67c02c5d 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.TimeSpan.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.TimeSpan.cs @@ -70,7 +70,8 @@ public static bool TryFormat(TimeSpan value, Span destination, out int byt } } - totalSecondsRemaining = FormattingHelpers.DivMod((ulong)Math.Abs(value.Ticks), TimeSpan.TicksPerSecond, out ulong fraction64); + ulong fraction64; + (totalSecondsRemaining, fraction64) = Math.DivRem((ulong)Math.Abs(value.Ticks), TimeSpan.TicksPerSecond); fraction = (uint)fraction64; } @@ -114,7 +115,7 @@ public static bool TryFormat(TimeSpan value, Span destination, out int byt if (totalSecondsRemaining > 0) { // Only compute minutes if the TimeSpan has an absolute value of >= 1 minute. - totalMinutesRemaining = FormattingHelpers.DivMod(totalSecondsRemaining, 60 /* seconds per minute */, out seconds); + (totalMinutesRemaining, seconds) = Math.DivRem(totalSecondsRemaining, 60 /* seconds per minute */); } Debug.Assert(seconds < 60); @@ -124,7 +125,7 @@ public static bool TryFormat(TimeSpan value, Span destination, out int byt if (totalMinutesRemaining > 0) { // Only compute hours if the TimeSpan has an absolute value of >= 1 hour. - totalHoursRemaining = FormattingHelpers.DivMod(totalMinutesRemaining, 60 /* minutes per hour */, out minutes); + (totalHoursRemaining, minutes) = Math.DivRem(totalMinutesRemaining, 60 /* minutes per hour */); } Debug.Assert(minutes < 60); @@ -137,7 +138,7 @@ public static bool TryFormat(TimeSpan value, Span destination, out int byt if (totalHoursRemaining > 0) { // Only compute days if the TimeSpan has an absolute value of >= 1 day. - days = FormattingHelpers.DivMod((uint)totalHoursRemaining, 24 /* hours per day */, out hours); + (days, hours) = Math.DivRem((uint)totalHoursRemaining, 24 /* hours per day */); } Debug.Assert(hours < 24); diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Writer/JsonWriterHelper.Date.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Writer/JsonWriterHelper.Date.cs index d153241c753c7..6cf35610d0b50 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Writer/JsonWriterHelper.Date.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Writer/JsonWriterHelper.Date.cs @@ -69,7 +69,7 @@ public static void TrimDateTimeOffset(Span buffer, out int bytesWritten) // Remove trailing zeros while (true) { - uint quotient = DivMod(fraction, 10, out uint remainder); + (uint quotient, uint remainder) = DivRem(fraction, 10); if (remainder != 0) { break; @@ -132,14 +132,13 @@ public static void TrimDateTimeOffset(Span buffer, out int bytesWritten) } } - // We don't have access to System.Buffers.Text.FormattingHelpers.DivMod, + // We don't always have access to System.Math.DivRem, // so this is a copy of the implementation. [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static uint DivMod(uint numerator, uint denominator, out uint modulo) + public static (uint Quotient, uint Remainder) DivRem(uint left, uint right) { - uint div = numerator / denominator; - modulo = numerator - (div * denominator); - return div; + uint quotient = left / right; + return (quotient, left - (quotient * right)); } } } From 08ad8346087e1caac04d1ca61bfe0ce7fd5977ad Mon Sep 17 00:00:00 2001 From: Vladimir Sadov Date: Sun, 6 Dec 2020 20:08:41 -0800 Subject: [PATCH 40/87] Static linking of native libs (#44505) * from prototype * fix OSX * fix for Android * treat "libSystem.Globalization.Native" as QCall in mono too (for now). * fix for wasm * fix pedantic errors on GCC * delete gPalGlobalizationNative * pass overrider from the host * default override * default PInvoke override runs after optional host-provided overrider. * Some PR feedback (mostly related to code, not the CMake stuff). * more coding PR feedback * Deleted "libraries-native" folder. * unifying tryrun.cmake into 1 common file * factor out adding lib-specific dependencies into one place (per native library) * cleanup: entirely remove tryrun.cmake propagation in eng, gen-buildsys, build-commons, and build scripts * remove "clrcompression.dll" and "libSystem.IO.Compression.Native.dylib" from single-file host packaging * mono: refactor Globalization lookup into `default_resolve_dllimport`. * set FEATURE_DISTRO_AGNOSTIC_SSL according to __PortableBuild * CORECLR_CALLING_CONVENTION for the host callback types * refactor common parts of entrypoints.c into entrypoints.h * rename OverrideEntry --> DllImportEntry * extra libs as CMake functions * use macros instead of functions in extra_libs.cmake * mono formatting style in src/mono/mono/metadata/native-library.c Co-authored-by: Ryan Lucia * mono: Remaining stylistic nits. Co-authored-by: Ryan Lucia * do not set DFEATURE_DISTRO_AGNOSTIC_SSL on iOS, Android, tvOS Co-authored-by: Ryan Lucia --- eng/native/build-commons.sh | 25 ++++- eng/native/configurecompiler.cmake | 1 - eng/native/gen-buildsys.sh | 20 ++-- {src/coreclr => eng/native}/tryrun.cmake | 8 ++ src/coreclr/CMakeLists.txt | 8 +- src/coreclr/build-runtime.sh | 4 +- src/coreclr/src/CMakeLists.txt | 1 + .../src/dlls/mscoree/unixinterface.cpp | 21 +++- src/coreclr/src/hosts/inc/coreclrhost.h | 9 ++ src/coreclr/src/inc/bundle.h | 10 +- src/coreclr/src/inc/cor.h | 1 - src/coreclr/src/inc/corpriv.h | 1 - src/coreclr/src/inc/pinvokeoverride.h | 22 +++++ .../src/libraries-native/CMakeLists.txt | 11 --- src/coreclr/src/vm/CMakeLists.txt | 1 + src/coreclr/src/vm/bundle.cpp | 2 +- src/coreclr/src/vm/corelib.cpp | 3 - src/coreclr/src/vm/dllimport.cpp | 13 ++- src/coreclr/src/vm/ecalllist.h | 3 - src/coreclr/src/vm/pinvokeoverride.cpp | 46 +++++++++ src/installer/corehost/build.sh | 2 +- .../cli/apphost/static/CMakeLists.txt | 96 +++++-------------- .../corehost/cli/hostpolicy/coreclr.cpp | 3 +- .../corehost/cli/hostpolicy/coreclr.h | 1 + .../cli/hostpolicy/hostpolicy_context.cpp | 38 ++++++++ src/installer/corehost/tryrun.cmake | 28 ------ .../Directory.Build.props | 2 - .../Common/src/Interop/Interop.Libraries.cs | 2 +- .../src/Interop/Windows/Interop.Libraries.cs | 2 +- .../entrypoints.c | 42 ++++++++ src/libraries/Native/AnyOS/entrypoints.h | 34 +++++++ src/libraries/Native/Unix/CMakeLists.txt | 18 +++- .../System.Globalization.Native/entrypoints.c | 84 ++++++++-------- .../CMakeLists.txt | 19 ++-- .../extra_libs.cmake | 14 +++ .../System.IO.Ports.Native/CMakeLists.txt | 21 ++-- .../Native/Unix/System.Native/CMakeLists.txt | 27 +++--- .../Unix/System.Native/extra_libs.cmake | 18 ++++ .../System.Net.Security.Native/CMakeLists.txt | 47 ++++----- .../extra_libs.cmake | 23 +++++ .../System.Net.Security.Native/pal_gssapi.h | 1 + .../CMakeLists.txt | 29 +++--- .../CMakeLists.txt | 85 ++++++---------- .../extra_libs.cmake | 39 ++++++++ src/libraries/Native/Unix/tryrun.cmake | 42 -------- src/libraries/Native/Windows/CMakeLists.txt | 16 ++++ .../Windows/clrcompression/CMakeLists.txt | 51 ++++++---- src/libraries/Native/build-native.sh | 2 +- src/mono/mono/metadata/native-library-qcall.c | 6 -- src/mono/mono/metadata/native-library.c | 24 +++++ src/mono/mono/metadata/qcall-def.h | 2 +- src/mono/wasm/wasm.proj | 2 +- src/tests/build.sh | 3 +- 53 files changed, 632 insertions(+), 401 deletions(-) rename {src/coreclr => eng/native}/tryrun.cmake (93%) create mode 100644 src/coreclr/src/inc/pinvokeoverride.h delete mode 100644 src/coreclr/src/libraries-native/CMakeLists.txt create mode 100644 src/coreclr/src/vm/pinvokeoverride.cpp delete mode 100644 src/installer/corehost/tryrun.cmake create mode 100644 src/libraries/Native/AnyOS/System.IO.Compression.Native/entrypoints.c create mode 100644 src/libraries/Native/AnyOS/entrypoints.h create mode 100644 src/libraries/Native/Unix/System.IO.Compression.Native/extra_libs.cmake create mode 100644 src/libraries/Native/Unix/System.Native/extra_libs.cmake create mode 100644 src/libraries/Native/Unix/System.Net.Security.Native/extra_libs.cmake create mode 100644 src/libraries/Native/Unix/System.Security.Cryptography.Native/extra_libs.cmake delete mode 100644 src/libraries/Native/Unix/tryrun.cmake diff --git a/eng/native/build-commons.sh b/eng/native/build-commons.sh index 0b2caf94c663f..e77d219ce0caf 100755 --- a/eng/native/build-commons.sh +++ b/eng/native/build-commons.sh @@ -71,10 +71,9 @@ build_native() targetOS="$1" platformArch="$2" cmakeDir="$3" - tryrunDir="$4" - intermediatesDir="$5" - cmakeArgs="$6" - message="$7" + intermediatesDir="$4" + cmakeArgs="$5" + message="$6" # All set to commence the build echo "Commencing build of \"$message\" for $__TargetOS.$__BuildArch.$__BuildType in $intermediatesDir" @@ -146,7 +145,7 @@ EOF scan_build=scan-build fi - nextCommand="\"$__RepoRootDir/eng/native/gen-buildsys.sh\" \"$cmakeDir\" \"$tryrunDir\" \"$intermediatesDir\" $platformArch $__Compiler \"$__CompilerMajorVersion\" \"$__CompilerMinorVersion\" $__BuildType \"$generator\" $scan_build $cmakeArgs" + nextCommand="\"$__RepoRootDir/eng/native/gen-buildsys.sh\" \"$cmakeDir\" \"$intermediatesDir\" $platformArch $__Compiler \"$__CompilerMajorVersion\" \"$__CompilerMinorVersion\" $__BuildType \"$generator\" $scan_build $cmakeArgs" echo "Invoking $nextCommand" eval $nextCommand @@ -455,6 +454,22 @@ if [[ "$__PortableBuild" == 0 ]]; then __CommonMSBuildArgs="$__CommonMSBuildArgs /p:PortableBuild=false" fi +if [[ "$__BuildArch" == wasm ]]; then + # nothing to do here + true +elif [[ "$__TargetOS" == iOS ]]; then + # nothing to do here + true +elif [[ "$__TargetOS" == tvOS ]]; then + # nothing to do here + true +elif [[ "$__TargetOS" == Android ]]; then + # nothing to do here + true +else + __CMakeArgs="-DFEATURE_DISTRO_AGNOSTIC_SSL=$__PortableBuild $__CMakeArgs" +fi + # Configure environment if we are doing a cross compile. if [[ "$__CrossBuild" == 1 ]]; then CROSSCOMPILE=1 diff --git a/eng/native/configurecompiler.cmake b/eng/native/configurecompiler.cmake index 7adc24d6acb62..4daa6feaf531a 100644 --- a/eng/native/configurecompiler.cmake +++ b/eng/native/configurecompiler.cmake @@ -451,7 +451,6 @@ endif(CLR_CMAKE_HOST_UNIX) if (MSVC) # Compile options for targeting windows - add_compile_options($<$:/TP>) # compile all files as C++ add_compile_options($<$:/nologo>) # Suppress Startup Banner add_compile_options($<$:/W3>) # set warning level to 3 add_compile_options($<$:/WX>) # treat warnings as errors diff --git a/eng/native/gen-buildsys.sh b/eng/native/gen-buildsys.sh index 6ecc2d8954cde..5588b509e4334 100755 --- a/eng/native/gen-buildsys.sh +++ b/eng/native/gen-buildsys.sh @@ -7,10 +7,9 @@ scriptroot="$( cd -P "$( dirname "$0" )" && pwd )" if [[ "$#" -lt 4 ]]; then echo "Usage..." - echo "gen-buildsys.sh [build flavor] [ninja] [scan-build] [cmakeargs]" + echo "gen-buildsys.sh [build flavor] [ninja] [scan-build] [cmakeargs]" echo "Specify the path to the top level CMake file." echo "Specify the path that the build system files are generated in." - echo "Specify the path to the directory with tryrun.cmake file." echo "Specify the target architecture." echo "Specify the name of compiler (clang or gcc)." echo "Specify the major version of compiler." @@ -22,11 +21,10 @@ if [[ "$#" -lt 4 ]]; then exit 1 fi -tryrun_dir="$2" -build_arch="$4" -compiler="$5" -majorVersion="$6" -minorVersion="$7" +build_arch="$3" +compiler="$4" +majorVersion="$5" +minorVersion="$6" source "$scriptroot/init-compiler.sh" "$build_arch" "$compiler" "$majorVersion" "$minorVersion" @@ -42,7 +40,7 @@ scan_build=OFF generator="Unix Makefiles" __UnprocessedCMakeArgs="" -for i in "${@:8}"; do +for i in "${@:7}"; do upperI="$(echo "$i" | awk '{print toupper($0)}')" case "$upperI" in # Possible build types are DEBUG, CHECKED, RELEASE, RELWITHDEBINFO. @@ -73,9 +71,7 @@ if [[ "$CROSSCOMPILE" == "1" ]]; then TARGET_BUILD_ARCH="$build_arch" export TARGET_BUILD_ARCH - if [[ -n "$tryrun_dir" ]]; then - cmake_extra_defines="$cmake_extra_defines -C $tryrun_dir/tryrun.cmake" - fi + cmake_extra_defines="$cmake_extra_defines -C $scriptroot/tryrun.cmake" if [[ "$platform" == "Darwin" ]]; then cmake_extra_defines="$cmake_extra_defines -DCMAKE_SYSTEM_NAME=Darwin" @@ -99,7 +95,7 @@ if [[ "$build_arch" == "wasm" ]]; then fi # We have to be able to build with CMake 3.6.2, so we can't use the -S or -B options -pushd "$3" +pushd "$2" # Include CMAKE_USER_MAKE_RULES_OVERRIDE as uninitialized since it will hold its value in the CMake cache otherwise can cause issues when branch switching $cmake_command \ diff --git a/src/coreclr/tryrun.cmake b/eng/native/tryrun.cmake similarity index 93% rename from src/coreclr/tryrun.cmake rename to eng/native/tryrun.cmake index 4b23122b91c2b..2cfd798c5d7c1 100644 --- a/src/coreclr/tryrun.cmake +++ b/eng/native/tryrun.cmake @@ -31,6 +31,7 @@ if(DARWIN) set_cache_value(HAVE_BROKEN_FIFO_SELECT_EXITCODE 1) set_cache_value(HAVE_CLOCK_MONOTONIC_COARSE_EXITCODE 1) set_cache_value(HAVE_CLOCK_MONOTONIC_EXITCODE 0) + set_cache_value(HAVE_CLOCK_REALTIME_EXITCODE 0) set_cache_value(HAVE_CLOCK_THREAD_CPUTIME_EXITCODE 0) set_cache_value(HAVE_CLOCK_GETTIME_NSEC_NP_EXITCODE 0) set_cache_value(HAVE_COMPATIBLE_ACOS_EXITCODE 0) @@ -63,6 +64,7 @@ if(DARWIN) set_cache_value(SSCANF_CANNOT_HANDLE_MISSING_EXPONENT_EXITCODE 1) set_cache_value(SSCANF_SUPPORT_ll_EXITCODE 0) set_cache_value(UNGETC_NOT_RETURN_EOF_EXITCODE 1) + set_cache_value(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP_EXITCODE 0) else() message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only arm64 or x64 is supported for OSX cross build!") endif() @@ -72,6 +74,7 @@ elseif(TARGET_ARCH_NAME MATCHES "^(armel|arm|arm64|x86)$" OR FREEBSD OR ILLUMOS) set_cache_value(HAS_POSIX_SEMAPHORES_EXITCODE 0) set_cache_value(HAVE_CLOCK_MONOTONIC_COARSE_EXITCODE 0) set_cache_value(HAVE_CLOCK_MONOTONIC_EXITCODE 0) + set_cache_value(HAVE_CLOCK_REALTIME_EXITCODE 0) set_cache_value(HAVE_CLOCK_THREAD_CPUTIME_EXITCODE 0) set_cache_value(HAVE_COMPATIBLE_ACOS_EXITCODE 0) set_cache_value(HAVE_COMPATIBLE_ASIN_EXITCODE 0) @@ -100,16 +103,21 @@ elseif(TARGET_ARCH_NAME MATCHES "^(armel|arm|arm64|x86)$" OR FREEBSD OR ILLUMOS) if(ALPINE_LINUX) + set_cache_value(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP_EXITCODE 1) set_cache_value(SSCANF_CANNOT_HANDLE_MISSING_EXPONENT_EXITCODE 0) set_cache_value(SSCANF_SUPPORT_ll_EXITCODE 1) set_cache_value(UNGETC_NOT_RETURN_EOF_EXITCODE 1) else() + set_cache_value(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP_EXITCODE 0) set_cache_value(SSCANF_CANNOT_HANDLE_MISSING_EXPONENT_EXITCODE 1) set_cache_value(SSCANF_SUPPORT_ll_EXITCODE 0) set_cache_value(UNGETC_NOT_RETURN_EOF_EXITCODE 0) endif() if (FREEBSD) + set_cache_value(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP 1) + set_cache_value(HAVE_CLOCK_MONOTONIC 1) + set_cache_value(HAVE_CLOCK_REALTIME 1) set_cache_value(HAVE_BROKEN_FIFO_KEVENT_EXITCODE 1) set_cache_value(HAVE_PROCFS_MAPS 0) set_cache_value(HAVE_PROCFS_STAT 0) diff --git a/src/coreclr/CMakeLists.txt b/src/coreclr/CMakeLists.txt index ddd5734ce92ed..b7cb9e93e69c1 100644 --- a/src/coreclr/CMakeLists.txt +++ b/src/coreclr/CMakeLists.txt @@ -52,7 +52,13 @@ include(pgosupport.cmake) # Include libraries native shims #------------------------------- if(NOT CLR_CROSS_COMPONENTS_BUILD AND CLR_CMAKE_BUILD_SUBSET_RUNTIME) - add_subdirectory(src/libraries-native) + set(STATIC_LIBS_ONLY 1) + + if(CLR_CMAKE_TARGET_WIN32) + add_subdirectory(${CLR_REPO_ROOT_DIR}/src/libraries/Native/Windows Native.Windows) + else() + add_subdirectory(${CLR_REPO_ROOT_DIR}/src/libraries/Native/Unix Native.Unix) + endif() endif(NOT CLR_CROSS_COMPONENTS_BUILD AND CLR_CMAKE_BUILD_SUBSET_RUNTIME) #----------------------------------------- diff --git a/src/coreclr/build-runtime.sh b/src/coreclr/build-runtime.sh index 91c0b445c7565..f8129a719a306 100755 --- a/src/coreclr/build-runtime.sh +++ b/src/coreclr/build-runtime.sh @@ -99,7 +99,7 @@ build_cross_architecture_components() export __CMakeBinDir CROSSCOMPILE __CMakeArgs="-DCLR_CMAKE_TARGET_ARCH=$__BuildArch -DCLR_CROSS_COMPONENTS_BUILD=1 $__CMakeArgs" - build_native "$__TargetOS" "$__CrossArch" "$__ProjectRoot" "$__ProjectRoot" "$intermediatesForBuild" "$__CMakeArgs" "cross-architecture components" + build_native "$__TargetOS" "$__CrossArch" "$__ProjectRoot" "$intermediatesForBuild" "$__CMakeArgs" "cross-architecture components" CROSSCOMPILE=1 export CROSSCOMPILE @@ -257,7 +257,7 @@ fi if [[ "$__SkipNative" == 1 ]]; then echo "Skipping CoreCLR component build." else - build_native "$__TargetOS" "$__BuildArch" "$__ProjectRoot" "$__ProjectRoot" "$__IntermediatesDir" "$__CMakeArgs" "CoreCLR component" + build_native "$__TargetOS" "$__BuildArch" "$__ProjectRoot" "$__IntermediatesDir" "$__CMakeArgs" "CoreCLR component" # Build cross-architecture components if [[ "$__SkipCrossArchNative" != 1 ]]; then diff --git a/src/coreclr/src/CMakeLists.txt b/src/coreclr/src/CMakeLists.txt index 5f74a587d8496..9285c57a3bbe0 100644 --- a/src/coreclr/src/CMakeLists.txt +++ b/src/coreclr/src/CMakeLists.txt @@ -7,6 +7,7 @@ include_directories("classlibnative/bcltype") include_directories("classlibnative/cryptography") include_directories("classlibnative/inc") include_directories("${GENERATED_INCLUDE_DIR}") +include_directories("hosts/inc") if(CLR_CMAKE_TARGET_WIN32 AND FEATURE_EVENT_TRACE) include_directories("${GENERATED_INCLUDE_DIR}/etw") diff --git a/src/coreclr/src/dlls/mscoree/unixinterface.cpp b/src/coreclr/src/dlls/mscoree/unixinterface.cpp index fd8cf506b2344..73ed20afeb93b 100644 --- a/src/coreclr/src/dlls/mscoree/unixinterface.cpp +++ b/src/coreclr/src/dlls/mscoree/unixinterface.cpp @@ -18,6 +18,7 @@ #include "../../vm/gdbjithelpers.h" #endif // FEATURE_GDBJIT #include "bundle.h" +#include "pinvokeoverride.h" #define ASSERTE_ALL_BUILDS(expr) _ASSERTE_ALL_BUILDS(__FILE__, (expr)) @@ -119,7 +120,8 @@ static void ConvertConfigPropertiesToUnicode( int propertyCount, LPCWSTR** propertyKeysWRef, LPCWSTR** propertyValuesWRef, - BundleProbe** bundleProbe, + BundleProbeFn** bundleProbe, + PInvokeOverrideFn** pinvokeOverride, bool* hostPolicyEmbedded) { LPCWSTR* propertyKeysW = new (nothrow) LPCWSTR[propertyCount]; @@ -137,7 +139,13 @@ static void ConvertConfigPropertiesToUnicode( { // If this application is a single-file bundle, the bundle-probe callback // is passed in as the value of "BUNDLE_PROBE" property (encoded as a string). - *bundleProbe = (BundleProbe*)_wcstoui64(propertyValuesW[propertyIndex], nullptr, 0); + *bundleProbe = (BundleProbeFn*)_wcstoui64(propertyValuesW[propertyIndex], nullptr, 0); + } + else if (strcmp(propertyKeys[propertyIndex], "PINVOKE_OVERRIDE") == 0) + { + // If host provides a PInvoke override (typically in a single-file bundle), + // the override callback is passed in as the value of "PINVOKE_OVERRIDE" property (encoded as a string). + *pinvokeOverride = (PInvokeOverrideFn*)_wcstoui64(propertyValuesW[propertyIndex], nullptr, 0); } else if (strcmp(propertyKeys[propertyIndex], "HOSTPOLICY_EMBEDDED") == 0) { @@ -185,8 +193,9 @@ int coreclr_initialize( LPCWSTR* propertyKeysW; LPCWSTR* propertyValuesW; - BundleProbe* bundleProbe = nullptr; + BundleProbeFn* bundleProbe = nullptr; bool hostPolicyEmbedded = false; + PInvokeOverrideFn* pinvokeOverride = nullptr; ConvertConfigPropertiesToUnicode( propertyKeys, @@ -195,6 +204,7 @@ int coreclr_initialize( &propertyKeysW, &propertyValuesW, &bundleProbe, + &pinvokeOverride, &hostPolicyEmbedded); #ifdef TARGET_UNIX @@ -211,6 +221,11 @@ int coreclr_initialize( g_hostpolicy_embedded = hostPolicyEmbedded; + if (pinvokeOverride != nullptr) + { + PInvokeOverride::SetPInvokeOverride(pinvokeOverride); + } + ReleaseHolder host; hr = CorHost2::CreateObject(IID_ICLRRuntimeHost4, (void**)&host); diff --git a/src/coreclr/src/hosts/inc/coreclrhost.h b/src/coreclr/src/hosts/inc/coreclrhost.h index 4cb04b95693d7..f1d6c005a32f6 100644 --- a/src/coreclr/src/hosts/inc/coreclrhost.h +++ b/src/coreclr/src/hosts/inc/coreclrhost.h @@ -14,6 +14,8 @@ #define CORECLR_CALLING_CONVENTION #endif +#include + // For each hosting API, we define a function prototype and a function pointer // The prototype is useful for implicit linking against the dynamic coreclr // library and the pointer for explicit dynamic loading (dlopen, LoadLibrary) @@ -121,4 +123,11 @@ CORECLR_HOSTING_API(coreclr_execute_assembly, #undef CORECLR_HOSTING_API +// +// Callback types used by the hosts +// +typedef bool(CORECLR_CALLING_CONVENTION BundleProbeFn)(const char* path, int64_t* offset, int64_t* size); +typedef const void* (CORECLR_CALLING_CONVENTION PInvokeOverrideFn)(const char* libraryName, const char* entrypointName); + + #endif // __CORECLR_HOST_H__ diff --git a/src/coreclr/src/inc/bundle.h b/src/coreclr/src/inc/bundle.h index e6c7a0a1dd18f..ab3ece2d7f5cc 100644 --- a/src/coreclr/src/inc/bundle.h +++ b/src/coreclr/src/inc/bundle.h @@ -3,7 +3,7 @@ /***************************************************************************** ** ** - ** bundle.h - Information about applications bundled as a single-file ** + ** bundle.h - Information about applications bundled as a single-file ** ** ** *****************************************************************************/ @@ -11,6 +11,7 @@ #define _BUNDLE_H_ #include +#include "coreclrhost.h" class Bundle; @@ -34,12 +35,10 @@ struct BundleFileLocation bool IsValid() const { LIMITED_METHOD_CONTRACT; return Offset != 0; } }; -typedef bool(__stdcall BundleProbe)(LPCSTR, INT64*, INT64*); - class Bundle { public: - Bundle(LPCSTR bundlePath, BundleProbe *probe); + Bundle(LPCSTR bundlePath, BundleProbeFn *probe); BundleFileLocation Probe(const SString& path, bool pathIsBundleRelative = false) const; const SString &Path() const { LIMITED_METHOD_CONTRACT; return m_path; } @@ -52,11 +51,10 @@ class Bundle private: SString m_path; // The path to single-file executable - BundleProbe *m_probe; + BundleProbeFn *m_probe; SString m_basePath; // The prefix to denote a path within the bundle COUNT_T m_basePathLength; }; #endif // _BUNDLE_H_ -// EOF ======================================================================= diff --git a/src/coreclr/src/inc/cor.h b/src/coreclr/src/inc/cor.h index 7b9bf9c4ff172..9101bcdbd4505 100644 --- a/src/coreclr/src/inc/cor.h +++ b/src/coreclr/src/inc/cor.h @@ -2388,4 +2388,3 @@ inline ULONG CorSigUncompressPointer( // return number of bytes of that compre #endif // __cplusplus #endif // _COR_H_ -// EOF ======================================================================= diff --git a/src/coreclr/src/inc/corpriv.h b/src/coreclr/src/inc/corpriv.h index 003386c4d1775..49056335cc763 100644 --- a/src/coreclr/src/inc/corpriv.h +++ b/src/coreclr/src/inc/corpriv.h @@ -383,5 +383,4 @@ struct CORCOMPILE_DEPENDENCY; typedef GUID CORCOMPILE_NGEN_SIGNATURE; #endif // _CORPRIV_H_ -// EOF ======================================================================= diff --git a/src/coreclr/src/inc/pinvokeoverride.h b/src/coreclr/src/inc/pinvokeoverride.h new file mode 100644 index 0000000000000..525f976b3deae --- /dev/null +++ b/src/coreclr/src/inc/pinvokeoverride.h @@ -0,0 +1,22 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +/***************************************************************************** + ** ** + ** pinvokeoverride.h - PInvoke binding override ** + ** ** + *****************************************************************************/ + +#ifndef _PINVOKEOVERRIDE_H_ +#define _PINVOKEOVERRIDE_H_ + +#include "coreclrhost.h" + +class PInvokeOverride +{ +public: + static void SetPInvokeOverride(PInvokeOverrideFn* overrideImpl); + static const void* GetMethodImpl(const char* libraryName, const char* entrypointName); +}; + +#endif // _PINVOKEOVERRIDE_H_ diff --git a/src/coreclr/src/libraries-native/CMakeLists.txt b/src/coreclr/src/libraries-native/CMakeLists.txt deleted file mode 100644 index 65b0d06c29ca8..0000000000000 --- a/src/coreclr/src/libraries-native/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(GLOBALIZATION_NATIVE_DIR ${CLR_REPO_ROOT_DIR}/src/libraries/Native/Unix/System.Globalization.Native) - -# Suppress exporting of the PAL APIs -add_definitions(-DPALEXPORT=EXTERN_C) - -include_directories("${GLOBALIZATION_NATIVE_DIR}") -include_directories("${CLR_REPO_ROOT_DIR}/src/libraries/Native/Unix/Common") - -add_subdirectory(${GLOBALIZATION_NATIVE_DIR} System.Globalization.Native) - diff --git a/src/coreclr/src/vm/CMakeLists.txt b/src/coreclr/src/vm/CMakeLists.txt index 42da88eb4088e..3f2600a40689f 100644 --- a/src/coreclr/src/vm/CMakeLists.txt +++ b/src/coreclr/src/vm/CMakeLists.txt @@ -102,6 +102,7 @@ set(VM_SOURCES_DAC_AND_WKS_COMMON perfmap.cpp perfinfo.cpp pgo.cpp + pinvokeoverride.cpp precode.cpp prestub.cpp profilerdiagnosticprotocolhelper.cpp diff --git a/src/coreclr/src/vm/bundle.cpp b/src/coreclr/src/vm/bundle.cpp index 373ab591b432d..64994aae222b7 100644 --- a/src/coreclr/src/vm/bundle.cpp +++ b/src/coreclr/src/vm/bundle.cpp @@ -30,7 +30,7 @@ const SString &BundleFileLocation::Path() const return Bundle::AppBundle->Path(); } -Bundle::Bundle(LPCSTR bundlePath, BundleProbe *probe) +Bundle::Bundle(LPCSTR bundlePath, BundleProbeFn *probe) { STANDARD_VM_CONTRACT; diff --git a/src/coreclr/src/vm/corelib.cpp b/src/coreclr/src/vm/corelib.cpp index 4562e2e12ed28..aaf9bc9d10dca 100644 --- a/src/coreclr/src/vm/corelib.cpp +++ b/src/coreclr/src/vm/corelib.cpp @@ -371,9 +371,6 @@ const USHORT c_nCoreLibFieldDescriptions = NumItems(c_rgCoreLibFieldDescriptions // ECalls // -// ECalls defined by libraries-native shims -EXTERN_C const LPVOID gPalGlobalizationNative[]; - // When compiling crossgen, we only need the target version of the ecall tables #if !defined(CROSSGEN_COMPILE) || defined(CROSSGEN_CORELIB) diff --git a/src/coreclr/src/vm/dllimport.cpp b/src/coreclr/src/vm/dllimport.cpp index d9a003f9ee712..4cae3832604f3 100644 --- a/src/coreclr/src/vm/dllimport.cpp +++ b/src/coreclr/src/vm/dllimport.cpp @@ -34,6 +34,7 @@ #include "strongnameholders.h" #include "ecall.h" #include "fieldmarshaler.h" +#include "pinvokeoverride.h" #include #include "../md/compiler/custattr.h" @@ -4230,7 +4231,7 @@ void NDirect::PopulateNDirectMethodDesc(NDirectMethodDesc* pNMD, PInvokeStaticSi if (callConv == pmCallConvThiscall) ndirectflags |= NDirectMethodDesc::kThisCall; - if (pNMD->GetLoaderModule()->IsSystem() && strcmp(szLibName, "QCall") == 0) + if (pNMD->GetLoaderModule()->IsSystem() && (strcmp(szLibName, "QCall") == 0)) { ndirectflags |= NDirectMethodDesc::kIsQCall; } @@ -6224,7 +6225,6 @@ namespace // this matches exactly the names in Interop.Libraries.cs static const LPCWSTR toRedirect[] = { W("libSystem.Native"), - W("libSystem.IO.Compression.Native"), W("libSystem.Net.Security.Native"), W("libSystem.Security.Cryptography.Native.OpenSsl") }; @@ -6509,6 +6509,15 @@ VOID NDirect::NDirectLink(NDirectMethodDesc *pMD) // Loading unmanaged dlls can trigger dllmains which certainly count as code execution! pMD->EnsureActive(); + { + LPVOID pvTarget = (LPVOID)PInvokeOverride::GetMethodImpl(pMD->GetLibNameRaw(), pMD->GetEntrypointName()); + if (pvTarget != NULL) + { + pMD->SetNDirectTarget(pvTarget); + return; + } + } + LoadLibErrorTracker errorTracker; BOOL fSuccess = FALSE; diff --git a/src/coreclr/src/vm/ecalllist.h b/src/coreclr/src/vm/ecalllist.h index 15468724e0fb9..3602c0297b02c 100644 --- a/src/coreclr/src/vm/ecalllist.h +++ b/src/coreclr/src/vm/ecalllist.h @@ -1139,9 +1139,6 @@ FCClassElement("FileLoadException", "System.IO", gFileLoadExceptionFuncs) FCClassElement("GC", "System", gGCInterfaceFuncs) FCClassElement("GCHandle", "System.Runtime.InteropServices", gGCHandleFuncs) FCClassElement("GCSettings", "System.Runtime", gGCSettingsFuncs) -#ifndef CROSSGEN_COMPILE -FCClassElement("Globalization", "", gPalGlobalizationNative) -#endif #ifdef FEATURE_COMINTEROP FCClassElement("IEnumerable", "System.Collections", gStdMngIEnumerableFuncs) FCClassElement("IEnumerator", "System.Collections", gStdMngIEnumeratorFuncs) diff --git a/src/coreclr/src/vm/pinvokeoverride.cpp b/src/coreclr/src/vm/pinvokeoverride.cpp new file mode 100644 index 0000000000000..07af650e3aa92 --- /dev/null +++ b/src/coreclr/src/vm/pinvokeoverride.cpp @@ -0,0 +1,46 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +//***************************************************************************** +// pinvokeoverride.cpp +// +// Helpers to implement PInvoke overriding +// +//***************************************************************************** + +#include "common.h" +#include "pinvokeoverride.h" + +extern "C" const void* GlobalizationResolveDllImport(const char* name); + +static PInvokeOverrideFn* s_overrideImpl = nullptr; + +// here we handle PInvokes whose implementation is always statically linked (even in .so/.dll case) +static const void* DefaultResolveDllImport(const char* libraryName, const char* entrypointName) +{ + if (strcmp(libraryName, "libSystem.Globalization.Native") == 0) + { + return GlobalizationResolveDllImport(entrypointName); + } + + return nullptr; +} + +void PInvokeOverride::SetPInvokeOverride(PInvokeOverrideFn* overrideImpl) +{ + s_overrideImpl = overrideImpl; +} + +const void* PInvokeOverride::GetMethodImpl(const char* libraryName, const char* entrypointName) +{ + if (s_overrideImpl != nullptr) + { + const void* result = s_overrideImpl(libraryName, entrypointName); + if (result != nullptr) + { + LOG((LF_INTEROP, LL_INFO1000, "PInvoke overriden for: lib: %s, entry: %s \n", libraryName, entrypointName)); + return result; + } + } + + return DefaultResolveDllImport(libraryName, entrypointName); +} diff --git a/src/installer/corehost/build.sh b/src/installer/corehost/build.sh index 976675398e874..d807a9cde0a72 100755 --- a/src/installer/corehost/build.sh +++ b/src/installer/corehost/build.sh @@ -116,4 +116,4 @@ setup_dirs check_prereqs # Build the installer native components. -build_native "$__TargetOS" "$__BuildArch" "$__scriptpath" "$__scriptpath" "$__IntermediatesDir" "$__CMakeArgs" "installer component" +build_native "$__TargetOS" "$__BuildArch" "$__scriptpath" "$__IntermediatesDir" "$__CMakeArgs" "installer component" diff --git a/src/installer/corehost/cli/apphost/static/CMakeLists.txt b/src/installer/corehost/cli/apphost/static/CMakeLists.txt index bc91c6fffa0d4..cf100a715d1a3 100644 --- a/src/installer/corehost/cli/apphost/static/CMakeLists.txt +++ b/src/installer/corehost/cli/apphost/static/CMakeLists.txt @@ -35,6 +35,7 @@ add_definitions(-D_NO_ASYNCRTIMP) add_definitions(-D_NO_PPLXIMP) add_definitions(-DEXPORT_SHARED_API=1) add_definitions(-DHOSTPOLICY_EMBEDDED) +add_definitions(-DNATIVE_LIBS_EMBEDDED) include(../../fxr/files.cmake) @@ -106,6 +107,8 @@ if (CLR_CMAKE_TARGET_WIN32 AND (CLR_CMAKE_TARGET_ARCH_ARM OR CLR_CMAKE_TARGET_AR target_link_libraries(singlefilehost Advapi32.lib shell32.lib) endif() +set(NATIVE_LIBS_EXTRA) + # Path like: artifacts/bin/coreclr/windows.x64.Release/lib or # /root/runtime/artifacts/transport/coreclr/lib set(CORECLR_STATIC_LIB_LOCATION "${CORECLR_ARTIFACTS}/lib") @@ -116,6 +119,7 @@ if(CLR_CMAKE_TARGET_WIN32) set(CORECLR_LIBRARIES ${CORECLR_STATIC_LIB_LOCATION}/coreclr_static.lib ${CORECLR_STATIC_LIB_LOCATION}/System.Globalization.Native.lib + ${CORECLR_STATIC_LIB_LOCATION}/libclrcompression.lib kernel32.lib advapi32.lib ole32.lib @@ -131,11 +135,16 @@ else() set(CORECLR_LIBRARIES ${CORECLR_STATIC_LIB_LOCATION}/libcoreclr_static.a ${CORECLR_STATIC_LIB_LOCATION}/libSystem.Globalization.Native.a + ${CORECLR_STATIC_LIB_LOCATION}/libSystem.IO.Compression.Native.a ${CORECLR_STATIC_LIB_LOCATION}/libpalrt.a ${CORECLR_STATIC_LIB_LOCATION}/libcoreclrpal.a ${CORECLR_STATIC_LIB_LOCATION}/libeventprovider.a ${CORECLR_STATIC_LIB_LOCATION}/libnativeresourcestring.a ) + + # additional requirements for System.IO.Compression.Native + include(${CLR_REPO_ROOT_DIR}/src/libraries/Native/Unix/System.IO.Compression.Native/extra_libs.cmake) + append_extra_compression_libs(NATIVE_LIBS_EXTRA) endif() if(CLR_CMAKE_TARGET_OSX) @@ -179,79 +188,32 @@ endif() set(NATIVE_LIBS_LOCATION "${NATIVE_LIBS_ARTIFACTS}") message ("Looking for native libs at location: '${NATIVE_LIBS_LOCATION}'.") -if(NOT CLR_CMAKE_TARGET_LINUX) - set(NATIVE_LIBS - # Native libs linked into singlefilehost is supported only on Linux for now. - # if/when BSD and OSX are supported too, consider the commented code sections below. - ) -else() +# These native libs are linked into singlefilehost only on Linux (for now). +if(CLR_CMAKE_TARGET_LINUX) set(NATIVE_LIBS - ${NATIVE_LIBS_LOCATION}/libSystem.IO.Compression.Native.a ${NATIVE_LIBS_LOCATION}/libSystem.Native.a ${NATIVE_LIBS_LOCATION}/libSystem.Net.Security.Native.a ${NATIVE_LIBS_LOCATION}/libSystem.Security.Cryptography.Native.OpenSsl.a ) - find_package(ZLIB REQUIRED) - - # Additional requirements for System.System.IO.Compression.Native - # - # if (CLR_CMAKE_TARGET_SUNOS) - # set(ZLIB_LIBRARIES z m) - # elseif (CLR_CMAKE_TARGET_UNIX) - # find_package(ZLIB REQUIRED) - # endif () + # Additional requirements for System.Native + include(${CLR_REPO_ROOT_DIR}/src/libraries/Native/Unix/System.Native/extra_libs.cmake) + append_extra_system_libs(NATIVE_LIBS_EXTRA) # Additional requirements for System.Net.Security.Native - if (HAVE_GSSFW_HEADERS) - find_library(LIBGSS NAMES GSS) - if(LIBGSS STREQUAL LIBGSS-NOTFOUND) - message(FATAL_ERROR "Cannot find GSS.Framework and System.Net.Security.Native cannot build without it. Try installing GSS.Framework (or the appropriate package for your platform)") - endif() - elseif(HAVE_HEIMDAL_HEADERS) - find_library(LIBGSS NAMES gssapi) - if(LIBGSS STREQUAL LIBGSS-NOTFOUND) - message(FATAL_ERROR "Cannot find libgssapi and System.Net.Security.Native cannot build without it. Try installing heimdal (or the appropriate package for your platform)") - endif() - else() - find_library(LIBGSS NAMES gssapi_krb5) - if(LIBGSS STREQUAL LIBGSS-NOTFOUND) - message(FATAL_ERROR "Cannot find libgssapi_krb5 and System.Net.Security.Native cannot build without it. Try installing libkrb5-dev (or the appropriate package for your platform)") - endif() - endif() - - # Additional requirements for System.Native - if (CLR_CMAKE_TARGET_LINUX AND NOT CLR_CMAKE_TARGET_ANDROID) - set(NATIVE_LIBS_EXTRA - rt - ) - # elseif (CLR_CMAKE_TARGET_FREEBSD) - # set(NATIVE_LIBS_EXTRA - # pthread - # ) - # find_library(INOTIFY_LIBRARY inotify HINTS /usr/local/lib) - # if(NOT (INOTIFY_LIBRARY STREQUAL INOTIFY_LIBRARY-NOTFOUND)) - # LIST(APPEND NATIVE_LIBS_EXTRA - # ${INOTIFY_LIBRARY} - # ) - # endif () - # elseif (CLR_CMAKE_TARGET_SUNOS) - # set(NATIVE_LIBS_EXTRA - # socket - # ) - endif () + include(${CLR_REPO_ROOT_DIR}/src/libraries/Native/Unix/System.Net.Security.Native/extra_libs.cmake) + append_extra_security_libs(NATIVE_LIBS_EXTRA) # Additional requirements for System.Security.Cryptography.Native.OpenSsl - if(NOT FEATURE_DISTRO_AGNOSTIC_SSL) - find_package(OpenSSL) - endif() + include(${CLR_REPO_ROOT_DIR}/src/libraries/Native/Unix/System.Security.Cryptography.Native/extra_libs.cmake) + append_extra_cryptography_libs(NATIVE_LIBS_EXTRA) +endif() - if(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD OR CLR_CMAKE_TARGET_SUNOS) - # These options are used to force every object to be included even if it's unused. - set(START_WHOLE_ARCHIVE -Wl,--whole-archive) - set(END_WHOLE_ARCHIVE -Wl,--no-whole-archive) - endif(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD OR CLR_CMAKE_TARGET_SUNOS) -endif(NOT CLR_CMAKE_TARGET_LINUX) +if(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD OR CLR_CMAKE_TARGET_SUNOS) + # These options are used to force every object to be included even if it's unused. + set(START_WHOLE_ARCHIVE -Wl,--whole-archive) + set(END_WHOLE_ARCHIVE -Wl,--no-whole-archive) +endif(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD OR CLR_CMAKE_TARGET_SUNOS) set_property(TARGET singlefilehost PROPERTY ENABLE_EXPORTS 1) @@ -262,15 +224,5 @@ target_link_libraries(singlefilehost ${NATIVE_LIBS} ${END_WHOLE_ARCHIVE} - ${ZLIB_LIBRARIES} - ${LIBGSS} ${NATIVE_LIBS_EXTRA} - ) - -if(NOT FEATURE_DISTRO_AGNOSTIC_SSL) - target_link_libraries(singlefilehost - ${OPENSSL_CRYPTO_LIBRARY} - ${OPENSSL_SSL_LIBRARY} - ) -endif() diff --git a/src/installer/corehost/cli/hostpolicy/coreclr.cpp b/src/installer/corehost/cli/hostpolicy/coreclr.cpp index d9564ac8fa676..0046d66d474f7 100644 --- a/src/installer/corehost/cli/hostpolicy/coreclr.cpp +++ b/src/installer/corehost/cli/hostpolicy/coreclr.cpp @@ -148,7 +148,8 @@ namespace _X("APP_NI_PATHS"), _X("RUNTIME_IDENTIFIER"), _X("BUNDLE_PROBE"), - _X("HOSTPOLICY_EMBEDDED") + _X("HOSTPOLICY_EMBEDDED"), + _X("PINVOKE_OVERRIDE") }; static_assert((sizeof(PropertyNameMapping) / sizeof(*PropertyNameMapping)) == static_cast(common_property::Last), "Invalid property count"); diff --git a/src/installer/corehost/cli/hostpolicy/coreclr.h b/src/installer/corehost/cli/hostpolicy/coreclr.h index c086ba56e10b2..72b6742956a40 100644 --- a/src/installer/corehost/cli/hostpolicy/coreclr.h +++ b/src/installer/corehost/cli/hostpolicy/coreclr.h @@ -67,6 +67,7 @@ enum class common_property RuntimeIdentifier, BundleProbe, HostPolicyEmbedded, + PInvokeOverride, // Sentinel value - new values should be defined above Last }; diff --git a/src/installer/corehost/cli/hostpolicy/hostpolicy_context.cpp b/src/installer/corehost/cli/hostpolicy/hostpolicy_context.cpp index 48d7cd335dd91..aba62722a0da5 100644 --- a/src/installer/corehost/cli/hostpolicy/hostpolicy_context.cpp +++ b/src/installer/corehost/cli/hostpolicy/hostpolicy_context.cpp @@ -42,6 +42,28 @@ namespace return bundle::runner_t::app()->probe(file_path, offset, size); } + +#if defined(NATIVE_LIBS_EMBEDDED) + extern "C" const void* CompressionResolveDllImport(const char* name); + +#if defined(_WIN32) +#define COMPRESSION_DLL_NAME "clrcompression" +#else +#define COMPRESSION_DLL_NAME "libSystem.IO.Compression.Native" +#endif + + // pinvoke_override: + // Check if given function belongs to one of statically linked libraries and return a pointer if found. + const void* STDMETHODCALLTYPE pinvoke_override(const char* libraryName, const char* entrypointName) + { + if (strcmp(libraryName, COMPRESSION_DLL_NAME) == 0) + { + return CompressionResolveDllImport(entrypointName); + } + + return nullptr; + } +#endif } int hostpolicy_context_t::initialize(hostpolicy_init_t &hostpolicy_init, const arguments_t &args, bool enable_breadcrumbs) @@ -241,6 +263,22 @@ int hostpolicy_context_t::initialize(hostpolicy_init_t &hostpolicy_init, const a } } +#if defined(NATIVE_LIBS_EMBEDDED) + // PInvoke Override + if (bundle::info_t::is_single_file_bundle()) + { + // Encode the pinvoke_override function pointer as a string, and pass it to the runtime. + pal::stringstream_t ptr_stream; + ptr_stream << "0x" << std::hex << (size_t)(&pinvoke_override); + + if (!coreclr_properties.add(common_property::PInvokeOverride, ptr_stream.str().c_str())) + { + log_duplicate_property_error(coreclr_property_bag_t::common_property_to_string(common_property::StartUpHooks)); + return StatusCode::LibHostDuplicateProperty; + } + } +#endif + #if defined(HOSTPOLICY_EMBEDDED) if (!coreclr_properties.add(common_property::HostPolicyEmbedded, _X("true"))) { diff --git a/src/installer/corehost/tryrun.cmake b/src/installer/corehost/tryrun.cmake deleted file mode 100644 index eba94aea7cb74..0000000000000 --- a/src/installer/corehost/tryrun.cmake +++ /dev/null @@ -1,28 +0,0 @@ -set(CROSS_ROOTFS $ENV{ROOTFS_DIR}) -set(TARGET_ARCH_NAME $ENV{TARGET_BUILD_ARCH}) - -macro(set_cache_value) - set(${ARGV0} ${ARGV1} CACHE STRING "Result from TRY_RUN" FORCE) - set(${ARGV0}__TRYRUN_OUTPUT "dummy output" CACHE STRING "Output from TRY_RUN" FORCE) -endmacro() - -if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv7-alpine-linux-musleabihf OR - EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv6-alpine-linux-musleabihf OR - EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/aarch64-alpine-linux-musl) - - set(ALPINE_LINUX 1) -elseif(EXISTS ${CROSS_ROOTFS}/bin/freebsd-version) - set(FREEBSD 1) - set(CMAKE_SYSTEM_NAME FreeBSD) - set(CLR_CMAKE_TARGET_OS FreeBSD) -elseif(EXISTS ${CROSS_ROOTFS}/usr/platform/i86pc) - set(ILLUMOS 1) -endif() - -if(TARGET_ARCH_NAME MATCHES "^(armel|arm|arm64|x86)$" OR FREEBSD OR ILLUMOS) - if(ILLUMOS) - set_cache_value(COMPILER_SUPPORTS_W_CLASS_MEMACCESS 0) - endif() -else() - message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only armel, arm, arm64 and x86 are supported!") -endif() diff --git a/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props b/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props index 7d742fd131116..036716cf0a7f9 100644 --- a/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props +++ b/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props @@ -15,14 +15,12 @@ - - diff --git a/src/libraries/Common/src/Interop/Interop.Libraries.cs b/src/libraries/Common/src/Interop/Interop.Libraries.cs index 217852751c32a..e57d5918ba350 100644 --- a/src/libraries/Common/src/Interop/Interop.Libraries.cs +++ b/src/libraries/Common/src/Interop/Interop.Libraries.cs @@ -5,6 +5,6 @@ internal static partial class Interop { internal static partial class Libraries { - internal const string GlobalizationNative = "QCall"; + internal const string GlobalizationNative = "libSystem.Globalization.Native"; } } diff --git a/src/libraries/Common/src/Interop/Windows/Interop.Libraries.cs b/src/libraries/Common/src/Interop/Windows/Interop.Libraries.cs index 6b1006caf3932..4893a2894682d 100644 --- a/src/libraries/Common/src/Interop/Windows/Interop.Libraries.cs +++ b/src/libraries/Common/src/Interop/Windows/Interop.Libraries.cs @@ -31,7 +31,7 @@ internal static partial class Libraries internal const string Wldap32 = "wldap32.dll"; internal const string Ws2_32 = "ws2_32.dll"; internal const string Wtsapi32 = "wtsapi32.dll"; - internal const string CompressionNative = "clrcompression.dll"; + internal const string CompressionNative = "clrcompression"; internal const string MsQuic = "msquic.dll"; internal const string HostPolicy = "hostpolicy.dll"; } diff --git a/src/libraries/Native/AnyOS/System.IO.Compression.Native/entrypoints.c b/src/libraries/Native/AnyOS/System.IO.Compression.Native/entrypoints.c new file mode 100644 index 0000000000000..b194b978debe2 --- /dev/null +++ b/src/libraries/Native/AnyOS/System.IO.Compression.Native/entrypoints.c @@ -0,0 +1,42 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#include "../../AnyOS/entrypoints.h" + +// Include System.IO.Compression.Native headers +#include "../zlib/pal_zlib.h" +#include "../brotli/include/brotli/decode.h" +#include "../brotli/include/brotli/encode.h" +#include "../brotli/include/brotli/port.h" +#include "../brotli/include/brotli/types.h" + +#include "../../AnyOS/entrypoints.h" + +static const Entry s_compressionNative[] = +{ + DllImportEntry(BrotliDecoderCreateInstance) + DllImportEntry(BrotliDecoderDecompress) + DllImportEntry(BrotliDecoderDecompressStream) + DllImportEntry(BrotliDecoderDestroyInstance) + DllImportEntry(BrotliDecoderIsFinished) + DllImportEntry(BrotliEncoderCompress) + DllImportEntry(BrotliEncoderCompressStream) + DllImportEntry(BrotliEncoderCreateInstance) + DllImportEntry(BrotliEncoderDestroyInstance) + DllImportEntry(BrotliEncoderHasMoreOutput) + DllImportEntry(BrotliEncoderSetParameter) + DllImportEntry(CompressionNative_Crc32) + DllImportEntry(CompressionNative_Deflate) + DllImportEntry(CompressionNative_DeflateEnd) + DllImportEntry(CompressionNative_DeflateInit2_) + DllImportEntry(CompressionNative_Inflate) + DllImportEntry(CompressionNative_InflateEnd) + DllImportEntry(CompressionNative_InflateInit2_) +}; + +EXTERN_C const void* CompressionResolveDllImport(const char* name); + +EXTERN_C const void* CompressionResolveDllImport(const char* name) +{ + return ResolveDllImport(s_compressionNative, lengthof(s_compressionNative), name); +} diff --git a/src/libraries/Native/AnyOS/entrypoints.h b/src/libraries/Native/AnyOS/entrypoints.h new file mode 100644 index 0000000000000..ce7a7e2c5a2bf --- /dev/null +++ b/src/libraries/Native/AnyOS/entrypoints.h @@ -0,0 +1,34 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#pragma once + +#include +#include + +#ifndef lengthof +#define lengthof(rg) (sizeof(rg)/sizeof(rg[0])) +#endif + +typedef struct +{ + const char* name; + const void* method; +} Entry; + +// expands to: {"impl", (void*)impl}, +#define DllImportEntry(impl) \ + {#impl, (void*)impl}, + +static const void* ResolveDllImport(const Entry* resolutionTable, size_t tableLength, const char* name) +{ + for (size_t i = 0; i < tableLength; i++) + { + if (strcmp(name, resolutionTable[i].name) == 0) + { + return resolutionTable[i].method; + } + } + + return NULL; +} diff --git a/src/libraries/Native/Unix/CMakeLists.txt b/src/libraries/Native/Unix/CMakeLists.txt index 3bc41e406561a..ebc9ff30e9ea8 100644 --- a/src/libraries/Native/Unix/CMakeLists.txt +++ b/src/libraries/Native/Unix/CMakeLists.txt @@ -54,15 +54,27 @@ if (PRERELEASE) add_compile_options(-Werror) endif() +if(STATIC_LIBS_ONLY) + # Suppress exporting of the PAL APIs + add_definitions(-DPALEXPORT=EXTERN_C) + + set(STATIC_LIB_DESTINATION lib) + set(GEN_SHARED_LIB 0) +else() + set(STATIC_LIB_DESTINATION .) + set(GEN_SHARED_LIB 1) +endif() + if(CLR_CMAKE_TARGET_BROWSER) # The emscripten build has additional warnings so -Werror breaks add_compile_options(-Wno-unused-parameter) add_compile_options(-Wno-unused-function) add_compile_options(-Wno-alloca) add_compile_options(-Wno-implicit-int-float-conversion) -else() - set(GEN_SHARED_LIB 1) -endif(CLR_CMAKE_TARGET_BROWSER) + + set(GEN_SHARED_LIB 0) + set(STATIC_LIB_DESTINATION .) +endif() if (CLR_CMAKE_TARGET_ARCH_AMD64) add_definitions(-DTARGET_64BIT=1) diff --git a/src/libraries/Native/Unix/System.Globalization.Native/entrypoints.c b/src/libraries/Native/Unix/System.Globalization.Native/entrypoints.c index 7a7f5ea037d7e..85a39085270b4 100644 --- a/src/libraries/Native/Unix/System.Globalization.Native/entrypoints.c +++ b/src/libraries/Native/Unix/System.Globalization.Native/entrypoints.c @@ -1,7 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -#include +#include "../../AnyOS/entrypoints.h" typedef uint16_t UChar; @@ -17,45 +17,47 @@ typedef uint16_t UChar; #include "pal_normalization.h" #include "pal_timeZoneInfo.h" -#define FCFuncStart(name) EXTERN_C const void* name[]; const void* name[] = { -#define FCFuncEnd() (void*)0x01 /* FCFuncFlag_EndOfArray */ }; +static const Entry s_globalizationNative[] = +{ + DllImportEntry(GlobalizationNative_ChangeCase) + DllImportEntry(GlobalizationNative_ChangeCaseInvariant) + DllImportEntry(GlobalizationNative_ChangeCaseTurkish) + DllImportEntry(GlobalizationNative_CloseSortHandle) + DllImportEntry(GlobalizationNative_CompareString) + DllImportEntry(GlobalizationNative_EndsWith) + DllImportEntry(GlobalizationNative_EnumCalendarInfo) + DllImportEntry(GlobalizationNative_GetCalendarInfo) + DllImportEntry(GlobalizationNative_GetCalendars) + DllImportEntry(GlobalizationNative_GetDefaultLocaleName) + DllImportEntry(GlobalizationNative_GetICUVersion) + DllImportEntry(GlobalizationNative_GetJapaneseEraStartDate) + DllImportEntry(GlobalizationNative_GetLatestJapaneseEra) + DllImportEntry(GlobalizationNative_GetLocaleInfoGroupingSizes) + DllImportEntry(GlobalizationNative_GetLocaleInfoInt) + DllImportEntry(GlobalizationNative_GetLocaleInfoString) + DllImportEntry(GlobalizationNative_GetLocaleName) + DllImportEntry(GlobalizationNative_GetLocales) + DllImportEntry(GlobalizationNative_GetLocaleTimeFormat) + DllImportEntry(GlobalizationNative_GetSortHandle) + DllImportEntry(GlobalizationNative_GetSortKey) + DllImportEntry(GlobalizationNative_GetSortVersion) + DllImportEntry(GlobalizationNative_GetTimeZoneDisplayName) + DllImportEntry(GlobalizationNative_IndexOf) + DllImportEntry(GlobalizationNative_InitICUFunctions) + DllImportEntry(GlobalizationNative_InitOrdinalCasingPage) + DllImportEntry(GlobalizationNative_IsNormalized) + DllImportEntry(GlobalizationNative_IsPredefinedLocale) + DllImportEntry(GlobalizationNative_LastIndexOf) + DllImportEntry(GlobalizationNative_LoadICU) + DllImportEntry(GlobalizationNative_NormalizeString) + DllImportEntry(GlobalizationNative_StartsWith) + DllImportEntry(GlobalizationNative_ToAscii) + DllImportEntry(GlobalizationNative_ToUnicode) +}; -#define QCFuncElement(name,impl) \ - (void*)0x8 /* FCFuncFlag_QCall */, (void*)(impl), (void*)name, +EXTERN_C const void* GlobalizationResolveDllImport(const char* name); -FCFuncStart(gPalGlobalizationNative) - QCFuncElement("ChangeCase", GlobalizationNative_ChangeCase) - QCFuncElement("ChangeCaseInvariant", GlobalizationNative_ChangeCaseInvariant) - QCFuncElement("ChangeCaseTurkish", GlobalizationNative_ChangeCaseTurkish) - QCFuncElement("CloseSortHandle", GlobalizationNative_CloseSortHandle) - QCFuncElement("CompareString", GlobalizationNative_CompareString) - QCFuncElement("EndsWith", GlobalizationNative_EndsWith) - QCFuncElement("EnumCalendarInfo", GlobalizationNative_EnumCalendarInfo) - QCFuncElement("GetCalendarInfo", GlobalizationNative_GetCalendarInfo) - QCFuncElement("GetCalendars", GlobalizationNative_GetCalendars) - QCFuncElement("GetDefaultLocaleName", GlobalizationNative_GetDefaultLocaleName) - QCFuncElement("GetICUVersion", GlobalizationNative_GetICUVersion) - QCFuncElement("GetJapaneseEraStartDate", GlobalizationNative_GetJapaneseEraStartDate) - QCFuncElement("GetLatestJapaneseEra", GlobalizationNative_GetLatestJapaneseEra) - QCFuncElement("GetLocaleInfoGroupingSizes", GlobalizationNative_GetLocaleInfoGroupingSizes) - QCFuncElement("GetLocaleInfoInt", GlobalizationNative_GetLocaleInfoInt) - QCFuncElement("GetLocaleInfoString", GlobalizationNative_GetLocaleInfoString) - QCFuncElement("GetLocaleName", GlobalizationNative_GetLocaleName) - QCFuncElement("GetLocales", GlobalizationNative_GetLocales) - QCFuncElement("GetLocaleTimeFormat", GlobalizationNative_GetLocaleTimeFormat) - QCFuncElement("GetSortHandle", GlobalizationNative_GetSortHandle) - QCFuncElement("GetSortKey", GlobalizationNative_GetSortKey) - QCFuncElement("GetSortVersion", GlobalizationNative_GetSortVersion) - QCFuncElement("GetTimeZoneDisplayName", GlobalizationNative_GetTimeZoneDisplayName) - QCFuncElement("IndexOf", GlobalizationNative_IndexOf) - QCFuncElement("InitICUFunctions", GlobalizationNative_InitICUFunctions) - QCFuncElement("InitOrdinalCasingPage", GlobalizationNative_InitOrdinalCasingPage) - QCFuncElement("IsNormalized", GlobalizationNative_IsNormalized) - QCFuncElement("IsPredefinedLocale", GlobalizationNative_IsPredefinedLocale) - QCFuncElement("LastIndexOf", GlobalizationNative_LastIndexOf) - QCFuncElement("LoadICU", GlobalizationNative_LoadICU) - QCFuncElement("NormalizeString", GlobalizationNative_NormalizeString) - QCFuncElement("StartsWith", GlobalizationNative_StartsWith) - QCFuncElement("ToAscii", GlobalizationNative_ToAscii) - QCFuncElement("ToUnicode", GlobalizationNative_ToUnicode) -FCFuncEnd() +EXTERN_C const void* GlobalizationResolveDllImport(const char* name) +{ + return ResolveDllImport(s_globalizationNative, lengthof(s_globalizationNative), name); +} diff --git a/src/libraries/Native/Unix/System.IO.Compression.Native/CMakeLists.txt b/src/libraries/Native/Unix/System.IO.Compression.Native/CMakeLists.txt index dcd1d87963b70..28f57b4f5593e 100644 --- a/src/libraries/Native/Unix/System.IO.Compression.Native/CMakeLists.txt +++ b/src/libraries/Native/Unix/System.IO.Compression.Native/CMakeLists.txt @@ -2,14 +2,12 @@ project(System.IO.Compression.Native C) if (CLR_CMAKE_TARGET_BROWSER) add_definitions(-s USE_ZLIB) -elseif (CLR_CMAKE_TARGET_ANDROID) - # need special case here since we want to link against libz.so but find_package() would resolve libz.a - set(ZLIB_LIBRARIES z) -elseif (CLR_CMAKE_TARGET_SUNOS) - set(ZLIB_LIBRARIES z m) -else () - find_package(ZLIB REQUIRED) -endif () +endif() + +include(${CMAKE_CURRENT_LIST_DIR}/extra_libs.cmake) + +set(NATIVE_LIBS_EXTRA) +append_extra_compression_libs(NATIVE_LIBS_EXTRA) set(NATIVECOMPRESSION_SOURCES ../../AnyOS/zlib/pal_zlib.c @@ -52,6 +50,7 @@ if (NOT CLR_CMAKE_TARGET_BROWSER) ../../AnyOS/brotli/enc/metablock.c ../../AnyOS/brotli/enc/static_dict.c ../../AnyOS/brotli/enc/utf8_util.c + ../../AnyOS/System.IO.Compression.Native/entrypoints.c ) # Disable implicit fallthrough warning for Brotli @@ -66,7 +65,7 @@ if (GEN_SHARED_LIB) ) target_link_libraries(System.IO.Compression.Native - ${ZLIB_LIBRARIES} + ${NATIVE_LIBS_EXTRA} ) install_with_stripped_symbols (System.IO.Compression.Native PROGRAMS .) endif () @@ -78,4 +77,4 @@ add_library(System.IO.Compression.Native-Static set_target_properties(System.IO.Compression.Native-Static PROPERTIES OUTPUT_NAME System.IO.Compression.Native CLEAN_DIRECT_OUTPUT 1) -install (TARGETS System.IO.Compression.Native-Static DESTINATION .) +install (TARGETS System.IO.Compression.Native-Static DESTINATION ${STATIC_LIB_DESTINATION}) diff --git a/src/libraries/Native/Unix/System.IO.Compression.Native/extra_libs.cmake b/src/libraries/Native/Unix/System.IO.Compression.Native/extra_libs.cmake new file mode 100644 index 0000000000000..f4c7dcd390d30 --- /dev/null +++ b/src/libraries/Native/Unix/System.IO.Compression.Native/extra_libs.cmake @@ -0,0 +1,14 @@ + +macro(append_extra_compression_libs NativeLibsExtra) + if (CLR_CMAKE_TARGET_BROWSER) + # nothing special to link + elseif (CLR_CMAKE_TARGET_ANDROID) + # need special case here since we want to link against libz.so but find_package() would resolve libz.a + set(ZLIB_LIBRARIES z) + elseif (CLR_CMAKE_TARGET_SUNOS) + set(ZLIB_LIBRARIES z m) + else () + find_package(ZLIB REQUIRED) + endif () + list(APPEND ${NativeLibsExtra} ${ZLIB_LIBRARIES}) +endmacro() diff --git a/src/libraries/Native/Unix/System.IO.Ports.Native/CMakeLists.txt b/src/libraries/Native/Unix/System.IO.Ports.Native/CMakeLists.txt index 1750a07d73c82..ede448009f2e9 100644 --- a/src/libraries/Native/Unix/System.IO.Ports.Native/CMakeLists.txt +++ b/src/libraries/Native/Unix/System.IO.Ports.Native/CMakeLists.txt @@ -1,11 +1,13 @@ project(System.IO.Ports.Native C) -add_library(System.IO.Ports.Native - SHARED - pal_termios.c - pal_serial.c - ${VERSION_FILE_PATH} -) +if (GEN_SHARED_LIB) + add_library(System.IO.Ports.Native + SHARED + pal_termios.c + pal_serial.c + ${VERSION_FILE_PATH} + ) +endif() add_library(System.IO.Ports.Native-Static STATIC @@ -15,5 +17,8 @@ add_library(System.IO.Ports.Native-Static set_target_properties(System.IO.Ports.Native-Static PROPERTIES OUTPUT_NAME System.IO.Ports.Native CLEAN_DIRECT_OUTPUT 1) -install_with_stripped_symbols (System.IO.Ports.Native PROGRAMS .) -install (TARGETS System.IO.Ports.Native-Static DESTINATION .) +if (GEN_SHARED_LIB) + install_with_stripped_symbols (System.IO.Ports.Native PROGRAMS .) +endif() + +install (TARGETS System.IO.Ports.Native-Static DESTINATION ${STATIC_LIB_DESTINATION}) diff --git a/src/libraries/Native/Unix/System.Native/CMakeLists.txt b/src/libraries/Native/Unix/System.Native/CMakeLists.txt index 517628d8fc332..d41bb807b0cba 100644 --- a/src/libraries/Native/Unix/System.Native/CMakeLists.txt +++ b/src/libraries/Native/Unix/System.Native/CMakeLists.txt @@ -53,23 +53,22 @@ elseif (CLR_CMAKE_TARGET_FREEBSD) endif () endif () +include(${CMAKE_CURRENT_LIST_DIR}/extra_libs.cmake) + +set(NATIVE_LIBS_EXTRA) +append_extra_system_libs(NATIVE_LIBS_EXTRA) + if (GEN_SHARED_LIB) add_library(System.Native SHARED ${NATIVE_SOURCES} ${VERSION_FILE_PATH} ) - if (CLR_CMAKE_TARGET_LINUX AND NOT CLR_CMAKE_TARGET_ANDROID) - target_link_libraries(System.Native rt) - elseif (CLR_CMAKE_TARGET_FREEBSD) - target_link_libraries(System.Native pthread) - if (HAVE_INOTIFY) - find_library(INOTIFY_LIBRARY inotify HINTS /usr/local/lib) - target_link_libraries(System.Native ${INOTIFY_LIBRARY}) - endif () - elseif (CLR_CMAKE_TARGET_SUNOS) - target_link_libraries(System.Native socket) - endif () + + target_link_libraries(System.Native + ${NATIVE_LIBS_EXTRA} + ) + install_with_stripped_symbols (System.Native PROGRAMS .) endif () @@ -78,10 +77,6 @@ add_library(System.Native-Static ${NATIVE_SOURCES} ) -if (CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS) - target_link_libraries(System.Native "-framework Foundation") -endif () - set_target_properties(System.Native-Static PROPERTIES OUTPUT_NAME System.Native CLEAN_DIRECT_OUTPUT 1) -install (TARGETS System.Native-Static DESTINATION .) +install (TARGETS System.Native-Static DESTINATION ${STATIC_LIB_DESTINATION}) diff --git a/src/libraries/Native/Unix/System.Native/extra_libs.cmake b/src/libraries/Native/Unix/System.Native/extra_libs.cmake new file mode 100644 index 0000000000000..b0cb4c1aa58f2 --- /dev/null +++ b/src/libraries/Native/Unix/System.Native/extra_libs.cmake @@ -0,0 +1,18 @@ + +macro(append_extra_system_libs NativeLibsExtra) + if (CLR_CMAKE_TARGET_LINUX AND NOT CLR_CMAKE_TARGET_ANDROID) + list(APPEND ${NativeLibsExtra} rt) + elseif (CLR_CMAKE_TARGET_FREEBSD) + list(APPEND ${NativeLibsExtra} pthread) + if (HAVE_INOTIFY) + find_library(INOTIFY_LIBRARY inotify HINTS /usr/local/lib) + list(APPEND ${NativeLibsExtra} ${INOTIFY_LIBRARY}) + endif () + elseif (CLR_CMAKE_TARGET_SUNOS) + list(APPEND ${NativeLibsExtra} socket) + endif () + + if (CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS) + list(APPEND ${NativeLibsExtra} "-framework Foundation") + endif () +endmacro() diff --git a/src/libraries/Native/Unix/System.Net.Security.Native/CMakeLists.txt b/src/libraries/Native/Unix/System.Net.Security.Native/CMakeLists.txt index 6514f0eac52e7..bdc1678d765fd 100644 --- a/src/libraries/Native/Unix/System.Net.Security.Native/CMakeLists.txt +++ b/src/libraries/Native/Unix/System.Net.Security.Native/CMakeLists.txt @@ -2,34 +2,22 @@ project(System.Net.Security.Native C) add_compile_options(-Wno-incompatible-pointer-types-discards-qualifiers) -if (HAVE_GSSFW_HEADERS) - find_library(LIBGSS NAMES GSS) - if(LIBGSS STREQUAL LIBGSS-NOTFOUND) - message(FATAL_ERROR "Cannot find GSS.Framework and System.Net.Security.Native cannot build without it. Try installing GSS.Framework (or the appropriate package for your platform)") - endif() -elseif(HAVE_HEIMDAL_HEADERS) - find_library(LIBGSS NAMES gssapi) - if(LIBGSS STREQUAL LIBGSS-NOTFOUND) - message(FATAL_ERROR "Cannot find libgssapi and System.Net.Security.Native cannot build without it. Try installing heimdal (or the appropriate package for your platform)") - endif() -elseif(HeimdalGssApi) - message(FATAL_ERROR "HeimdalGssApi option was set but gssapi headers could not be found and System.Net.Security.Native cannot build without the headers. Try installing heimdal (or the appropriate package for your platform)") -else() - find_library(LIBGSS NAMES gssapi_krb5) - if(LIBGSS STREQUAL LIBGSS-NOTFOUND) - message(FATAL_ERROR "Cannot find libgssapi_krb5 and System.Net.Security.Native cannot build without it. Try installing libkrb5-dev (or the appropriate package for your platform)") - endif() -endif() +include(${CMAKE_CURRENT_LIST_DIR}/extra_libs.cmake) + +set(NATIVE_LIBS_EXTRA) +append_extra_security_libs(NATIVE_LIBS_EXTRA) set(NATIVEGSS_SOURCES pal_gssapi.c ) -add_library(System.Net.Security.Native - SHARED - ${NATIVEGSS_SOURCES} - ${VERSION_FILE_PATH} -) +if (GEN_SHARED_LIB) + add_library(System.Net.Security.Native + SHARED + ${NATIVEGSS_SOURCES} + ${VERSION_FILE_PATH} + ) +endif() add_library(System.Net.Security.Native-Static STATIC @@ -38,9 +26,12 @@ add_library(System.Net.Security.Native-Static set_target_properties(System.Net.Security.Native-Static PROPERTIES OUTPUT_NAME System.Net.Security.Native CLEAN_DIRECT_OUTPUT 1) -target_link_libraries(System.Net.Security.Native - ${LIBGSS} -) +if (GEN_SHARED_LIB) + target_link_libraries(System.Net.Security.Native + ${NATIVE_LIBS_EXTRA} + ) + + install_with_stripped_symbols (System.Net.Security.Native PROGRAMS .) +endif() -install_with_stripped_symbols (System.Net.Security.Native PROGRAMS .) -install (TARGETS System.Net.Security.Native-Static DESTINATION .) +install (TARGETS System.Net.Security.Native-Static DESTINATION ${STATIC_LIB_DESTINATION}) diff --git a/src/libraries/Native/Unix/System.Net.Security.Native/extra_libs.cmake b/src/libraries/Native/Unix/System.Net.Security.Native/extra_libs.cmake new file mode 100644 index 0000000000000..49c6ff4961004 --- /dev/null +++ b/src/libraries/Native/Unix/System.Net.Security.Native/extra_libs.cmake @@ -0,0 +1,23 @@ + +macro(append_extra_security_libs NativeLibsExtra) + if (HAVE_GSSFW_HEADERS) + find_library(LIBGSS NAMES GSS) + if(LIBGSS STREQUAL LIBGSS-NOTFOUND) + message(FATAL_ERROR "Cannot find GSS.Framework and System.Net.Security.Native cannot build without it. Try installing GSS.Framework (or the appropriate package for your platform)") + endif() + elseif(HAVE_HEIMDAL_HEADERS) + find_library(LIBGSS NAMES gssapi) + if(LIBGSS STREQUAL LIBGSS-NOTFOUND) + message(FATAL_ERROR "Cannot find libgssapi and System.Net.Security.Native cannot build without it. Try installing heimdal (or the appropriate package for your platform)") + endif() + elseif(HeimdalGssApi) + message(FATAL_ERROR "HeimdalGssApi option was set but gssapi headers could not be found and System.Net.Security.Native cannot build without the headers. Try installing heimdal (or the appropriate package for your platform)") + else() + find_library(LIBGSS NAMES gssapi_krb5) + if(LIBGSS STREQUAL LIBGSS-NOTFOUND) + message(FATAL_ERROR "Cannot find libgssapi_krb5 and System.Net.Security.Native cannot build without it. Try installing libkrb5-dev (or the appropriate package for your platform)") + endif() + endif() + + list(APPEND ${NativeLibsExtra} ${LIBGSS}) +endmacro() diff --git a/src/libraries/Native/Unix/System.Net.Security.Native/pal_gssapi.h b/src/libraries/Native/Unix/System.Net.Security.Native/pal_gssapi.h index cd7ff85cecad9..5c1fe55163ec6 100644 --- a/src/libraries/Native/Unix/System.Net.Security.Native/pal_gssapi.h +++ b/src/libraries/Native/Unix/System.Net.Security.Native/pal_gssapi.h @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. #pragma once +#include "pal_config.h" #include "pal_compiler.h" #if HAVE_GSSFW_HEADERS || HAVE_HEIMDAL_HEADERS diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/CMakeLists.txt b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/CMakeLists.txt index 5a424ab6eaf70..d8e985dcc0fb9 100644 --- a/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/CMakeLists.txt +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native.Apple/CMakeLists.txt @@ -29,11 +29,13 @@ if (CLR_CMAKE_TARGET_TVOS) add_definitions(-DTARGET_TVOS) endif() -add_library(System.Security.Cryptography.Native.Apple - SHARED - ${NATIVECRYPTO_SOURCES} - ${VERSION_FILE_PATH} -) +if (GEN_SHARED_LIB) + add_library(System.Security.Cryptography.Native.Apple + SHARED + ${NATIVECRYPTO_SOURCES} + ${VERSION_FILE_PATH} + ) +endif() add_library(System.Security.Cryptography.Native.Apple-Static STATIC @@ -42,10 +44,15 @@ add_library(System.Security.Cryptography.Native.Apple-Static set_target_properties(System.Security.Cryptography.Native.Apple-Static PROPERTIES OUTPUT_NAME System.Security.Cryptography.Native.Apple CLEAN_DIRECT_OUTPUT 1) -target_link_libraries(System.Security.Cryptography.Native.Apple - ${COREFOUNDATION_LIBRARY} - ${SECURITY_LIBRARY} -) +if (GEN_SHARED_LIB) + target_link_libraries(System.Security.Cryptography.Native.Apple + ${COREFOUNDATION_LIBRARY} + ${SECURITY_LIBRARY} + ) +endif() + +if (GEN_SHARED_LIB) + install_with_stripped_symbols (System.Security.Cryptography.Native.Apple PROGRAMS .) +endif() -install_with_stripped_symbols (System.Security.Cryptography.Native.Apple PROGRAMS .) -install (TARGETS System.Security.Cryptography.Native.Apple-Static DESTINATION .) +install (TARGETS System.Security.Cryptography.Native.Apple-Static DESTINATION ${STATIC_LIB_DESTINATION}) diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native/CMakeLists.txt b/src/libraries/Native/Unix/System.Security.Cryptography.Native/CMakeLists.txt index e59120b57223c..2ca4f23546155 100644 --- a/src/libraries/Native/Unix/System.Security.Cryptography.Native/CMakeLists.txt +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native/CMakeLists.txt @@ -8,34 +8,10 @@ add_compile_options(-Wno-used-but-marked-unused) add_definitions(-DOPENSSL_API_COMPAT=0x10100000L) -if(CMAKE_STATIC_LIB_LINK) - set(CMAKE_FIND_LIBRARY_SUFFIXES .a) -endif(CMAKE_STATIC_LIB_LINK) - -if(CLR_CMAKE_TARGET_ANDROID AND NOT CROSS_ROOTFS) - # TEMP: consume OpenSSL dependencies from external sources via env. variables - set(OPENSSL_FOUND 1) - set(OPENSSL_INCLUDE_DIR $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/ssl/include) - if(CLR_CMAKE_TARGET_ARCH_ARM64) - set(OPENSSL_CRYPTO_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/crypto/libs/android.arm64-v8a/libcrypto.so) - set(OPENSSL_SSL_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/ssl/libs/android.arm64-v8a/libssl.so) - elseif(CLR_CMAKE_TARGET_ARCH_ARM) - set(OPENSSL_CRYPTO_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/crypto/libs/android.armeabi-v7a/libcrypto.so) - set(OPENSSL_SSL_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/ssl/libs/android.armeabi-v7a/libssl.so) - elseif(CLR_CMAKE_TARGET_ARCH_I386) - set(OPENSSL_CRYPTO_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/crypto/libs/android.x86/libcrypto.so) - set(OPENSSL_SSL_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/ssl/libs/android.x86/libssl.so) - else() - set(OPENSSL_CRYPTO_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/crypto/libs/android.x86_64/libcrypto.so) - set(OPENSSL_SSL_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/ssl/libs/android.x86_64/libssl.so) - endif() -else() - find_package(OpenSSL) -endif() +include(${CMAKE_CURRENT_LIST_DIR}/extra_libs.cmake) -if(NOT OPENSSL_FOUND) - message(FATAL_ERROR "!!! Cannot find libssl and System.Security.Cryptography.Native cannot build without it. Try installing libssl-dev (on Linux, but this may vary by distro) or openssl (on macOS) !!!. See the requirements document for your specific operating system: https://github.com/dotnet/runtime/tree/master/docs/workflow/requirements.") -endif(NOT OPENSSL_FOUND) +set(NATIVE_LIBS_EXTRA) +append_extra_cryptography_libs(NATIVE_LIBS_EXTRA) include_directories(${OPENSSL_INCLUDE_DIR}) @@ -84,10 +60,12 @@ endif() add_library(objlib OBJECT ${NATIVECRYPTO_SOURCES} ${VERSION_FILE_PATH}) -add_library(System.Security.Cryptography.Native.OpenSsl - SHARED - $ -) +if (GEN_SHARED_LIB) + add_library(System.Security.Cryptography.Native.OpenSsl + SHARED + $ + ) +endif() add_library(System.Security.Cryptography.Native.OpenSsl-Static STATIC @@ -96,34 +74,33 @@ add_library(System.Security.Cryptography.Native.OpenSsl-Static set_target_properties(System.Security.Cryptography.Native.OpenSsl-Static PROPERTIES OUTPUT_NAME System.Security.Cryptography.Native.OpenSsl CLEAN_DIRECT_OUTPUT 1) -if (FEATURE_DISTRO_AGNOSTIC_SSL) - # on macOS the link step fails with undefined symbols, and the script doesn't run. - # if the build succeeds, the script would succeed, except it uses a Linux-only command. - # - # on Linux, the build will succeed with undefined symbols, then the script reports them - # and fails the build for us. - if (NOT APPLE) - add_custom_command(TARGET System.Security.Cryptography.Native.OpenSsl POST_BUILD - COMMENT "Verifying System.Security.Cryptography.Native.OpenSsl.so dependencies" - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../verify-so.sh - $ - "Verification failed. System.Security.Cryptography.Native.OpenSsl.so has undefined dependencies. These are likely OpenSSL APIs that need to be added to opensslshim.h" - VERBATIM - ) +if (GEN_SHARED_LIB) + if (FEATURE_DISTRO_AGNOSTIC_SSL) + # on macOS the link step fails with undefined symbols, and the script doesn't run. + # if the build succeeds, the script would succeed, except it uses a Linux-only command. + # + # on Linux, the build will succeed with undefined symbols, then the script reports them + # and fails the build for us. + if (NOT APPLE) + add_custom_command(TARGET System.Security.Cryptography.Native.OpenSsl POST_BUILD + COMMENT "Verifying System.Security.Cryptography.Native.OpenSsl.so dependencies" + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../verify-so.sh + $ + "Verification failed. System.Security.Cryptography.Native.OpenSsl.so has undefined dependencies. These are likely OpenSSL APIs that need to be added to opensslshim.h" + VERBATIM + ) + endif() endif() - # Link with libdl.so to get the dlopen / dlsym / dlclose - target_link_libraries(System.Security.Cryptography.Native.OpenSsl - dl - ) -else() target_link_libraries(System.Security.Cryptography.Native.OpenSsl - ${OPENSSL_CRYPTO_LIBRARY} - ${OPENSSL_SSL_LIBRARY} + ${NATIVE_LIBS_EXTRA} ) endif() include(configure.cmake) -install_with_stripped_symbols (System.Security.Cryptography.Native.OpenSsl PROGRAMS .) -install (TARGETS System.Security.Cryptography.Native.OpenSsl-Static DESTINATION .) +if (GEN_SHARED_LIB) + install_with_stripped_symbols (System.Security.Cryptography.Native.OpenSsl PROGRAMS .) +endif() + +install (TARGETS System.Security.Cryptography.Native.OpenSsl-Static DESTINATION ${STATIC_LIB_DESTINATION}) diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native/extra_libs.cmake b/src/libraries/Native/Unix/System.Security.Cryptography.Native/extra_libs.cmake new file mode 100644 index 0000000000000..9d7521f51d509 --- /dev/null +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native/extra_libs.cmake @@ -0,0 +1,39 @@ + +macro(append_extra_cryptography_libs NativeLibsExtra) + if(CMAKE_STATIC_LIB_LINK) + set(CMAKE_FIND_LIBRARY_SUFFIXES .a) + endif(CMAKE_STATIC_LIB_LINK) + + if(CLR_CMAKE_TARGET_ANDROID AND NOT CROSS_ROOTFS) + # TEMP: consume OpenSSL dependencies from external sources via env. variables + set(OPENSSL_FOUND 1) + set(OPENSSL_INCLUDE_DIR $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/ssl/include) + if(CLR_CMAKE_TARGET_ARCH_ARM64) + set(OPENSSL_CRYPTO_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/crypto/libs/android.arm64-v8a/libcrypto.so) + set(OPENSSL_SSL_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/ssl/libs/android.arm64-v8a/libssl.so) + elseif(CLR_CMAKE_TARGET_ARCH_ARM) + set(OPENSSL_CRYPTO_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/crypto/libs/android.armeabi-v7a/libcrypto.so) + set(OPENSSL_SSL_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/ssl/libs/android.armeabi-v7a/libssl.so) + elseif(CLR_CMAKE_TARGET_ARCH_I386) + set(OPENSSL_CRYPTO_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/crypto/libs/android.x86/libcrypto.so) + set(OPENSSL_SSL_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/ssl/libs/android.x86/libssl.so) + else() + set(OPENSSL_CRYPTO_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/crypto/libs/android.x86_64/libcrypto.so) + set(OPENSSL_SSL_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/ssl/libs/android.x86_64/libssl.so) + endif() + else() + find_package(OpenSSL) + endif() + + if(NOT OPENSSL_FOUND) + message(FATAL_ERROR "!!! Cannot find libssl and System.Security.Cryptography.Native cannot build without it. Try installing libssl-dev (on Linux, but this may vary by distro) or openssl (on macOS) !!!. See the requirements document for your specific operating system: https://github.com/dotnet/runtime/tree/master/docs/workflow/requirements.") + endif(NOT OPENSSL_FOUND) + + + if (FEATURE_DISTRO_AGNOSTIC_SSL) + # Link with libdl.so to get the dlopen / dlsym / dlclose + list(APPEND ${NativeLibsExtra} dl) + else() + list(APPEND ${NativeLibsExtra} ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_SSL_LIBRARY}) + endif() +endmacro() diff --git a/src/libraries/Native/Unix/tryrun.cmake b/src/libraries/Native/Unix/tryrun.cmake deleted file mode 100644 index adb186203324b..0000000000000 --- a/src/libraries/Native/Unix/tryrun.cmake +++ /dev/null @@ -1,42 +0,0 @@ -set(TARGET_ARCH_NAME $ENV{TARGET_BUILD_ARCH}) -set(CROSS_ROOTFS $ENV{ROOTFS_DIR}) - -macro(set_cache_value) - set(${ARGV0} ${ARGV1} CACHE STRING "Result from TRY_RUN" FORCE) - set(${ARGV0}__TRYRUN_OUTPUT "dummy output" CACHE STRING "Output from TRY_RUN" FORCE) -endmacro() - -if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv7-alpine-linux-musleabihf OR - EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv6-alpine-linux-musleabihf OR - EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/aarch64-alpine-linux-musl) - - set(ALPINE_LINUX 1) -elseif(EXISTS ${CROSS_ROOTFS}/bin/freebsd-version) - set(FREEBSD 1) - set(CMAKE_SYSTEM_NAME FreeBSD) - set(CLR_CMAKE_TARGET_OS FreeBSD) -elseif(EXISTS ${CROSS_ROOTFS}/usr/platform/i86pc) - set(ILLUMOS 1) - set(CLR_CMAKE_TARGET_OS SunOS) -endif() - -if(TARGET_ARCH_NAME MATCHES "^(armel|arm|arm64|x86)$" OR FREEBSD OR ILLUMOS) - set_cache_value(HAVE_CLOCK_MONOTONIC_EXITCODE 0) - set_cache_value(HAVE_CLOCK_REALTIME_EXITCODE 0) - - if(ALPINE_LINUX) - set_cache_value(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP_EXITCODE 1) - else() - set_cache_value(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP_EXITCODE 0) - endif() - - if(FREEBSD) - set_cache_value(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP 1) - set_cache_value(HAVE_CLOCK_MONOTONIC 1) - set_cache_value(HAVE_CLOCK_REALTIME 1) - elseif(ILLUMOS) - set_cache_value(HAVE_SET_MAX_VARIABLE 1) - endif() -else() - message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only armel, arm, arm64 and x86 are supported!") -endif() diff --git a/src/libraries/Native/Windows/CMakeLists.txt b/src/libraries/Native/Windows/CMakeLists.txt index 6343b3f5f20bf..1f3ac2bd8eccc 100644 --- a/src/libraries/Native/Windows/CMakeLists.txt +++ b/src/libraries/Native/Windows/CMakeLists.txt @@ -23,6 +23,17 @@ if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") message(FATAL_ERROR "Binary directory isn't being correctly set before calling Cmake. Tree must be built in separate directory from source.") endif() +if(STATIC_LIBS_ONLY) + # Suppress exporting of the PAL APIs + add_definitions(-DPALEXPORT=EXTERN_C) + + set(GEN_SHARED_LIB 0) + set(STATIC_LIB_DESTINATION lib) +else() + set(GEN_SHARED_LIB 1) + set(STATIC_LIB_DESTINATION .) +endif() + project(CoreFX) # The following options are set by the razzle build @@ -113,4 +124,9 @@ endif () # as other asserts should still be included. add_compile_definitions($<$:NDEBUG>) +# we only need to build System.Globalization.Native when building static libs. +if(STATIC_LIBS_ONLY) + add_subdirectory(../Unix/System.Globalization.Native System.Globalization.Native) +endif() + add_subdirectory(clrcompression) diff --git a/src/libraries/Native/Windows/clrcompression/CMakeLists.txt b/src/libraries/Native/Windows/clrcompression/CMakeLists.txt index 5ac67d5edbe57..9566e381d88ec 100644 --- a/src/libraries/Native/Windows/clrcompression/CMakeLists.txt +++ b/src/libraries/Native/Windows/clrcompression/CMakeLists.txt @@ -5,7 +5,10 @@ if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") endif() set(CMAKE_INCLUDE_CURRENT_DIR ON) -include (GenerateExportHeader) + +if (GEN_SHARED_LIB) + include (GenerateExportHeader) +endif() if($ENV{__BuildArch} STREQUAL x86 OR $ENV{__BuildArch} STREQUAL x64) set(NATIVECOMPRESSION_SOURCES @@ -71,18 +74,21 @@ set (NATIVECOMPRESSION_SOURCES ../../AnyOS/brotli/enc/metablock.c ../../AnyOS/brotli/enc/static_dict.c ../../AnyOS/brotli/enc/utf8_util.c - clrcompression.def + ../../AnyOS/System.IO.Compression.Native/entrypoints.c ) #Include Brotli include files include_directories("../../AnyOS/brotli/include") -add_library(clrcompression - SHARED - ${NATIVECOMPRESSION_SOURCES} - # This will add versioning to the library - ${CMAKE_REPO_ROOT}/artifacts/obj/NativeVersion.rc -) +if (GEN_SHARED_LIB) + add_library(clrcompression + SHARED + ${NATIVECOMPRESSION_SOURCES} + clrcompression.def + # This will add versioning to the library + ${CMAKE_REPO_ROOT}/artifacts/obj/NativeVersion.rc + ) +endif() add_library(clrcompression-static STATIC @@ -93,21 +99,28 @@ SET_TARGET_PROPERTIES(clrcompression-static PROPERTIES PREFIX "") SET_TARGET_PROPERTIES(clrcompression-static PROPERTIES OUTPUT_NAME libclrcompression) # Allow specification of arguments that should be passed to the linker -SET_TARGET_PROPERTIES(clrcompression PROPERTIES LINK_OPTIONS "${__LinkArgs};${__SharedLinkArgs}") +if (GEN_SHARED_LIB) + SET_TARGET_PROPERTIES(clrcompression PROPERTIES LINK_OPTIONS "${__LinkArgs};${__SharedLinkArgs}") +endif() SET_TARGET_PROPERTIES(clrcompression-static PROPERTIES STATIC_LIBRARY_OPTIONS "${__LinkArgs}") # Allow specification of libraries that should be linked against -target_link_libraries(clrcompression ${__LinkLibraries}) +if (GEN_SHARED_LIB) + target_link_libraries(clrcompression ${__LinkLibraries}) +endif() target_link_libraries(clrcompression-static ${__LinkLibraries}) -GENERATE_EXPORT_HEADER( clrcompression - BASE_NAME clrcompression - EXPORT_MACRO_NAME clrcompression_EXPORT - EXPORT_FILE_NAME clrcompression_Export.h - STATIC_DEFINE clrcompression_BUILT_AS_STATIC -) +if (GEN_SHARED_LIB) + GENERATE_EXPORT_HEADER( clrcompression + BASE_NAME clrcompression + EXPORT_MACRO_NAME clrcompression_EXPORT + EXPORT_FILE_NAME clrcompression_Export.h + STATIC_DEFINE clrcompression_BUILT_AS_STATIC + ) + + install (TARGETS clrcompression DESTINATION .) + install (FILES $ DESTINATION .) +endif() -install (TARGETS clrcompression DESTINATION .) -install (TARGETS clrcompression-static DESTINATION .) -install (FILES $ DESTINATION .) +install (TARGETS clrcompression-static DESTINATION ${STATIC_LIB_DESTINATION}) diff --git a/src/libraries/Native/build-native.sh b/src/libraries/Native/build-native.sh index 2aaa9fe4831f9..0dc7c80d674fa 100755 --- a/src/libraries/Native/build-native.sh +++ b/src/libraries/Native/build-native.sh @@ -157,4 +157,4 @@ setup_dirs check_prereqs # Build the corefx native components. -build_native "$__TargetOS" "$__BuildArch" "$__nativeroot" "$__nativeroot" "$__IntermediatesDir" "$__CMakeArgs" "native libraries component" +build_native "$__TargetOS" "$__BuildArch" "$__nativeroot" "$__IntermediatesDir" "$__CMakeArgs" "native libraries component" diff --git a/src/mono/mono/metadata/native-library-qcall.c b/src/mono/mono/metadata/native-library-qcall.c index c4e1defc01dbc..232b2df120b79 100644 --- a/src/mono/mono/metadata/native-library-qcall.c +++ b/src/mono/mono/metadata/native-library-qcall.c @@ -12,8 +12,6 @@ #include "mono/utils/mono-path.h" #include "mono/metadata/native-library.h" -extern const void* gPalGlobalizationNative[]; - enum { func_flag_end_of_array = 0x01, func_flag_has_signature = 0x02, @@ -21,10 +19,6 @@ enum { func_flag_qcall = 0x08, // QCall - mscorlib.dll to mscorwks.dll transition implemented as PInvoke }; -#if defined(NO_GLOBALIZATION_SHIM) || !defined(ENABLE_NETCORE) -const void* gPalGlobalizationNative[] = { (void*)func_flag_end_of_array }; -#endif - static const MonoQCallDef c_qcalls[] = { #ifndef DISABLE_QCALLS diff --git a/src/mono/mono/metadata/native-library.c b/src/mono/mono/metadata/native-library.c index 2176315c66769..0003bcfdae620 100644 --- a/src/mono/mono/metadata/native-library.c +++ b/src/mono/mono/metadata/native-library.c @@ -49,6 +49,10 @@ static GHashTable *native_library_module_map; static GHashTable *native_library_module_blocklist; #endif +#if defined(ENABLE_NETCORE) && !defined(NO_GLOBALIZATION_SHIM) +extern const void *GlobalizationResolveDllImport (const char *name); +#endif + #ifndef DISABLE_DLLMAP static MonoDllMap *global_dll_map; #endif @@ -1256,6 +1260,20 @@ legacy_lookup_native_library (MonoImage *image, const char *scope) #endif // ENABLE_NETCORE +#if defined(ENABLE_NETCORE) && !defined(NO_GLOBALIZATION_SHIM) +static gpointer +default_resolve_dllimport (const char *dll, const char *func) +{ + if (strcmp (dll, "libSystem.Globalization.Native") == 0) { + const void *method_impl = GlobalizationResolveDllImport (func); + if (method_impl) + return (gpointer)method_impl; + } + + return NULL; +} +#endif + gpointer lookup_pinvoke_call_impl (MonoMethod *method, MonoLookupPInvokeStatus *status_out) { @@ -1336,6 +1354,12 @@ lookup_pinvoke_call_impl (MonoMethod *method, MonoLookupPInvokeStatus *status_ou } #endif +#if defined(ENABLE_NETCORE) && !defined(NO_GLOBALIZATION_SHIM) + gpointer default_override = default_resolve_dllimport (new_scope, new_import); + if (default_override) + return default_override; +#endif + #ifdef ENABLE_NETCORE #ifndef HOST_WIN32 retry_with_libcoreclr: diff --git a/src/mono/mono/metadata/qcall-def.h b/src/mono/mono/metadata/qcall-def.h index 1e83108fa7b1b..7341edddef292 100644 --- a/src/mono/mono/metadata/qcall-def.h +++ b/src/mono/mono/metadata/qcall-def.h @@ -12,4 +12,4 @@ * have to end with a func_flag_end_of_array (0x01) entry. **/ -FCClassElement("Globalization", "", gPalGlobalizationNative) +FCClassElement("", "", NULL) diff --git a/src/mono/wasm/wasm.proj b/src/mono/wasm/wasm.proj index 035c141f75b94..896fefde24d7e 100644 --- a/src/mono/wasm/wasm.proj +++ b/src/mono/wasm/wasm.proj @@ -35,7 +35,7 @@ - + diff --git a/src/tests/build.sh b/src/tests/build.sh index a1efe50cc009e..0955a4adbe407 100755 --- a/src/tests/build.sh +++ b/src/tests/build.sh @@ -279,7 +279,7 @@ build_Tests() fi if [[ "$__SkipNative" != 1 && "$__TargetOS" != "Browser" && "$__TargetOS" != "Android" ]]; then - build_native "$__TargetOS" "$__BuildArch" "$__TestDir" "$__TryRunDir" "$__NativeTestIntermediatesDir" "CoreCLR test component" + build_native "$__TargetOS" "$__BuildArch" "$__TestDir" "$__NativeTestIntermediatesDir" "CoreCLR test component" if [[ "$?" -ne 0 ]]; then echo "${__ErrMsgPrefix}${__MsgPrefix}Error: native test build failed. Refer to the build log files for details (above)" @@ -605,7 +605,6 @@ __OSPlatformConfig="$__TargetOS.$__BuildArch.$__BuildType" __BinDir="$__RootBinDir/bin/coreclr/$__OSPlatformConfig" __PackagesBinDir="$__BinDir/.nuget" __TestDir="$__RepoRootDir/src/tests" -__TryRunDir="$__RepoRootDir/src/coreclr" __TestWorkingDir="$__RootBinDir/tests/coreclr/$__OSPlatformConfig" __IntermediatesDir="$__RootBinDir/obj/coreclr/$__OSPlatformConfig" __TestIntermediatesDir="$__RootBinDir/tests/coreclr/obj/$__OSPlatformConfig" From 83d19de66a596ff5e0ad0519e48dff62945cc636 Mon Sep 17 00:00:00 2001 From: Sung Yoon Whang Date: Sun, 6 Dec 2020 20:24:15 -0800 Subject: [PATCH 41/87] Make PortableThreadPool to check events correctly before firing them (#45666) --- .../System/Threading/PortableThreadPool.HillClimbing.cs | 7 ++++--- .../src/System/Threading/PortableThreadPool.WaitThread.cs | 5 +++-- .../System/Threading/PortableThreadPool.WorkerThread.cs | 8 +++++--- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.HillClimbing.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.HillClimbing.cs index c7ed0ee800c93..0275e617f1542 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.HillClimbing.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.HillClimbing.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Diagnostics; +using System.Diagnostics.Tracing; namespace System.Threading { @@ -169,7 +170,7 @@ public HillClimbing() // Add the current thread count and throughput sample to our history // double throughput = numCompletions / sampleDurationSeconds; - if (PortableThreadPoolEventSource.Log.IsEnabled()) + if (PortableThreadPoolEventSource.Log.IsEnabled(EventLevel.Informational, PortableThreadPoolEventSource.Keywords.ThreadingKeyword)) { PortableThreadPoolEventSource.Log.ThreadPoolWorkerThreadAdjustmentSample(throughput); } @@ -343,7 +344,7 @@ public HillClimbing() // Record these numbers for posterity // - if (PortableThreadPoolEventSource.Log.IsEnabled()) + if (PortableThreadPoolEventSource.Log.IsEnabled(EventLevel.Verbose, PortableThreadPoolEventSource.Keywords.ThreadingKeyword)) { PortableThreadPoolEventSource.Log.ThreadPoolWorkerThreadAdjustmentStats(sampleDurationSeconds, throughput, threadWaveComponent.Real, throughputWaveComponent.Real, throughputErrorEstimate, _averageThroughputNoise, ratio.Real, confidence, _currentControlSetting, (ushort)newThreadWaveMagnitude); @@ -404,7 +405,7 @@ private void LogTransition(int newThreadCount, double throughput, StateOrTransit _logSize++; - if (PortableThreadPoolEventSource.Log.IsEnabled()) + if (PortableThreadPoolEventSource.Log.IsEnabled(EventLevel.Informational, PortableThreadPoolEventSource.Keywords.ThreadingKeyword)) { PortableThreadPoolEventSource.Log.ThreadPoolWorkerThreadAdjustmentAdjustment( throughput, diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WaitThread.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WaitThread.cs index ed091b9d8fa92..2eb692706419d 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WaitThread.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WaitThread.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Diagnostics; +using System.Diagnostics.Tracing; using Microsoft.Win32.SafeHandles; namespace System.Threading @@ -36,7 +37,7 @@ internal partial class PortableThreadPool /// A description of the requested registration. internal void RegisterWaitHandle(RegisteredWaitHandle handle) { - if (PortableThreadPoolEventSource.Log.IsEnabled()) + if (PortableThreadPoolEventSource.Log.IsEnabled(EventLevel.Verbose, PortableThreadPoolEventSource.Keywords.ThreadingKeyword)) { PortableThreadPoolEventSource.Log.ThreadPoolIOEnqueue(handle); } @@ -75,7 +76,7 @@ internal void RegisterWaitHandle(RegisteredWaitHandle handle) internal static void CompleteWait(RegisteredWaitHandle handle, bool timedOut) { - if (PortableThreadPoolEventSource.Log.IsEnabled()) + if (PortableThreadPoolEventSource.Log.IsEnabled(EventLevel.Verbose, PortableThreadPoolEventSource.Keywords.ThreadingKeyword)) { PortableThreadPoolEventSource.Log.ThreadPoolIODequeue(handle); } diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WorkerThread.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WorkerThread.cs index 4b7e3694c43dc..ef1b905cf3bd9 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WorkerThread.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WorkerThread.cs @@ -1,6 +1,8 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Diagnostics.Tracing; + namespace System.Threading { internal partial class PortableThreadPool @@ -20,7 +22,7 @@ private static class WorkerThread AppContextConfigHelper.GetInt32Config("System.Threading.ThreadPool.UnfairSemaphoreSpinLimit", 70, false), onWait: () => { - if (PortableThreadPoolEventSource.Log.IsEnabled()) + if (PortableThreadPoolEventSource.Log.IsEnabled(EventLevel.Informational, PortableThreadPoolEventSource.Keywords.ThreadingKeyword)) { PortableThreadPoolEventSource.Log.ThreadPoolWorkerThreadWait( (uint)ThreadPoolInstance._separated.counts.VolatileRead().NumExistingThreads); @@ -33,7 +35,7 @@ private static void WorkerThreadStart() PortableThreadPool threadPoolInstance = ThreadPoolInstance; - if (PortableThreadPoolEventSource.Log.IsEnabled()) + if (PortableThreadPoolEventSource.Log.IsEnabled(EventLevel.Informational, PortableThreadPoolEventSource.Keywords.ThreadingKeyword)) { PortableThreadPoolEventSource.Log.ThreadPoolWorkerThreadStart( (uint)threadPoolInstance._separated.counts.VolatileRead().NumExistingThreads); @@ -105,7 +107,7 @@ private static void WorkerThreadStart() { HillClimbing.ThreadPoolHillClimber.ForceChange(newNumThreadsGoal, HillClimbing.StateOrTransition.ThreadTimedOut); - if (PortableThreadPoolEventSource.Log.IsEnabled()) + if (PortableThreadPoolEventSource.Log.IsEnabled(EventLevel.Informational, PortableThreadPoolEventSource.Keywords.ThreadingKeyword)) { PortableThreadPoolEventSource.Log.ThreadPoolWorkerThreadStop((uint)newNumExistingThreads); } From 738dcf7994167ab5e4c792f2163b72f79dc9c3a2 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 7 Dec 2020 11:45:38 +0000 Subject: [PATCH 42/87] Update dependencies from https://github.com/dotnet/xharness build 20201204.1 (#45626) [master] Update dependencies from dotnet/xharness --- .config/dotnet-tools.json | 2 +- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index aad9f5f0f171d..65a7340f6c10f 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -15,7 +15,7 @@ ] }, "microsoft.dotnet.xharness.cli": { - "version": "1.0.0-prerelease.20602.1", + "version": "1.0.0-prerelease.20604.1", "commands": [ "xharness" ] diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6136f198bf057..2cdaf38673985 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -198,13 +198,13 @@ https://github.com/mono/linker 4ddaa381cb8b374ce07598250197dcfc728455c2 - + https://github.com/dotnet/xharness - 322e7021377d57258e742c2641f77244a09627b1 + e3e6618579abf76772422fb0cbe0c98b57f63506 - + https://github.com/dotnet/xharness - 322e7021377d57258e742c2641f77244a09627b1 + e3e6618579abf76772422fb0cbe0c98b57f63506 diff --git a/eng/Versions.props b/eng/Versions.props index ce149fd24d904..3ecf0b13b8520 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -139,8 +139,8 @@ 1.0.1-prerelease-00006 16.8.0-release-20201022-02 - 1.0.0-prerelease.20602.1 - 1.0.0-prerelease.20602.1 + 1.0.0-prerelease.20604.1 + 1.0.0-prerelease.20604.1 2.4.1 2.4.2 1.3.0 From 0b8408f974c7762075a07e3bc1f7bab62fafc14a Mon Sep 17 00:00:00 2001 From: Eric Erhardt Date: Mon, 7 Dec 2020 10:37:35 -0600 Subject: [PATCH 43/87] Suppress ILLink warnings in Reflection (#45603) * Suppress RunClassConstructor ILLinker warning in RuntimeConstructorInfo This instance is the static constructor, so the static constructor will be present. * Suppress ILLink warning in CustomAttributeData.Init. Update ILLink.Suppressions file. --- .../src/System/Reflection/CustomAttribute.cs | 32 +++++++++++------ .../Reflection/RuntimeConstructorInfo.cs | 2 ++ .../src/ILLink/ILLink.Suppressions.Shared.xml | 36 ------------------- 3 files changed, 24 insertions(+), 46 deletions(-) diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/CustomAttribute.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/CustomAttribute.cs index e493349566f4f..e7b6f2e147dd6 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/CustomAttribute.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/CustomAttribute.cs @@ -291,9 +291,9 @@ protected CustomAttributeData() } [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2075:UnrecognizedReflectionPattern", - Justification = "property setters and fiels which are accessed by any attribute instantiation which is present in the code linker has analyzed." + - "As such enumerating all fields and properties may return different results fater trimming" + - "but all those which are needed to actually have data should be there.")] + Justification = "Property setters and fields which are accessed by any attribute instantiation which is present in the code linker has analyzed." + + "As such enumerating all fields and properties may return different results after trimming" + + "but all those which are needed to actually have data will be there.")] private CustomAttributeData(RuntimeModule scope, MetadataToken caCtorToken, in ConstArray blob) { m_scope = scope; @@ -416,9 +416,21 @@ private void Init(TypeForwardedToAttribute forwardedTo) CustomAttributeNamedArgument[] namedArgs = Array.Empty(); m_namedArgs = Array.AsReadOnly(namedArgs); } + + [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2075:UnrecognizedReflectionPattern", + Justification = "The pca object had to be created by the single ctor on the Type. So the ctor couldn't have been trimmed.")] private void Init(object pca) { - m_ctor = pca.GetType().GetConstructors(BindingFlags.Public | BindingFlags.Instance)[0]; + Type type = pca.GetType(); + +#if DEBUG + // Ensure there is only a single constructor for 'pca', so it is safe to suppress IL2075 + ConstructorInfo[] allCtors = type.GetConstructors(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); + Debug.Assert(allCtors.Length == 1); + Debug.Assert(allCtors[0].GetParameters().Length == 0); +#endif + + m_ctor = type.GetConstructors(BindingFlags.Public | BindingFlags.Instance)[0]; m_typedCtorArgs = Array.AsReadOnly(Array.Empty()); m_namedArgs = Array.AsReadOnly(Array.Empty()); } @@ -1183,9 +1195,9 @@ private static object[] GetCustomAttributes( } [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2065:UnrecognizedReflectionPattern", - Justification = "Linker guarantees presence of all the constructor parameters, property setters and fiels which are accessed by any " + + Justification = "Linker guarantees presence of all the constructor parameters, property setters and fields which are accessed by any " + "attribute instantiation which is present in the code linker has analyzed." + - "As such the reflection usage in this method should never fail as those methods/fields should always be present.")] + "As such the reflection usage in this method will never fail as those methods/fields will be present.")] private static void AddCustomAttributes( ref RuntimeType.ListBuilder attributes, RuntimeModule decoratedModule, int decoratedMetadataToken, @@ -1322,8 +1334,8 @@ private static void AddCustomAttributes( [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026:RequiresUnreferencedCode", Justification = "Module.ResolveMethod and Module.ResolveType are marked as RequiresUnreferencedCode because they rely on tokens" + - "which are not guaranteed to be stable across trimming. So if somebody harcodes a token it could break." + - "The usage here is not like that as all these tokes come from existing metadata loaded from some IL" + + "which are not guaranteed to be stable across trimming. So if somebody hardcodes a token it could break." + + "The usage here is not like that as all these tokens come from existing metadata loaded from some IL" + "and so trimming has no effect (the tokens are read AFTER trimming occured).")] private static bool FilterCustomAttributeRecord( MetadataToken caCtorToken, @@ -1459,8 +1471,8 @@ private static bool AttributeUsageCheck( [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026:RequiresUnreferencedCode", Justification = "Module.ResolveType is marked as RequiresUnreferencedCode because it relies on tokens" + - "which are not guaranteed to be stable across trimming. So if somebody harcodes a token it could break." + - "The usage here is not like that as all these tokes come from existing metadata loaded from some IL" + + "which are not guaranteed to be stable across trimming. So if somebody hardcodes a token it could break." + + "The usage here is not like that as all these tokens come from existing metadata loaded from some IL" + "and so trimming has no effect (the tokens are read AFTER trimming occured).")] internal static AttributeUsageAttribute GetAttributeUsage(RuntimeType decoratedAttribute) { diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeConstructorInfo.cs b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeConstructorInfo.cs index 20162964af46f..8a02eea275ab4 100644 --- a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeConstructorInfo.cs +++ b/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeConstructorInfo.cs @@ -275,6 +275,8 @@ internal void ThrowNoInvokeException() [DebuggerStepThroughAttribute] [Diagnostics.DebuggerHidden] + [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2059:RunClassConstructor", + Justification = "This ConstructorInfo instance represents the static constructor itself, so if this object was created, the static constructor exists.")] public override object? Invoke( object? obj, BindingFlags invokeAttr, Binder? binder, object?[]? parameters, CultureInfo? culture) { diff --git a/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Suppressions.Shared.xml b/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Suppressions.Shared.xml index 6573b087943bc..8ff2cca73c53b 100644 --- a/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Suppressions.Shared.xml +++ b/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Suppressions.Shared.xml @@ -37,18 +37,6 @@ member M:System.Reflection.Associates.AssignAssociates(System.Int32,System.RuntimeType,System.RuntimeType) - - ILLink - IL2026 - member - M:System.Reflection.CustomAttribute.FilterCustomAttributeRecord(System.Reflection.MetadataToken,System.Reflection.MetadataImport@,System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.RuntimeType,System.Boolean,System.RuntimeType.ListBuilder{System.Object}@,System.RuntimeType@,System.IRuntimeMethodInfo@,System.Boolean@) - - - ILLink - IL2026 - member - M:System.Reflection.CustomAttribute.GetAttributeUsage(System.RuntimeType) - ILLink IL2026 @@ -175,12 +163,6 @@ member M:System.Resources.ResourceReader.FindType(System.Int32) - - ILLink - IL2059 - member - M:System.Reflection.RuntimeConstructorInfo.Invoke(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo) - ILLink IL2060 @@ -193,12 +175,6 @@ member M:System.Reflection.Emit.EnumBuilder.#ctor(System.String,System.Type,System.Reflection.TypeAttributes,System.Reflection.Emit.ModuleBuilder) - - ILLink - IL2065 - member - M:System.Reflection.CustomAttribute.AddCustomAttributes(System.RuntimeType.ListBuilder{System.Object}@,System.Reflection.RuntimeModule,System.Int32,System.RuntimeType,System.Boolean,System.RuntimeType.ListBuilder{System.Object}) - ILLink IL2067 @@ -295,18 +271,6 @@ member M:System.Diagnostics.Tracing.ManifestBuilder.CreateManifestString - - ILLink - IL2075 - member - M:System.Reflection.CustomAttributeData.#ctor(System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.Reflection.ConstArray@) - - - ILLink - IL2075 - member - M:System.Reflection.CustomAttributeData.Init(System.Object) - ILLink IL2075 From 8de3e286f991e343344199552d91f104cab62471 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 7 Dec 2020 18:00:56 +0100 Subject: [PATCH 44/87] [master] Update dependencies from mono/linker (#45565) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2cdaf38673985..9d5980c05804e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -194,9 +194,9 @@ https://github.com/dotnet/runtime 38017c3935de95d0335bac04f4901ddfc2718656 - + https://github.com/mono/linker - 4ddaa381cb8b374ce07598250197dcfc728455c2 + c68434193ec938e1f7f2360107c95007d7c831ee https://github.com/dotnet/xharness diff --git a/eng/Versions.props b/eng/Versions.props index 3ecf0b13b8520..1580ce49b4011 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -151,7 +151,7 @@ 5.0.0-preview-20201009.2 - 6.0.0-alpha.1.20601.1 + 6.0.0-alpha.1.20607.2 6.0.0-alpha.1.20580.2 From 216f96b8e810e322e2c6c0cfc2b114d589624cc2 Mon Sep 17 00:00:00 2001 From: Adeel Mujahid <3840695+am11@users.noreply.github.com> Date: Mon, 7 Dec 2020 19:54:54 +0200 Subject: [PATCH 45/87] Fix GNU linker detection on FreeBSD (#45664) --- eng/native/configurecompiler.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/native/configurecompiler.cmake b/eng/native/configurecompiler.cmake index 4daa6feaf531a..e3a026fc5a81b 100644 --- a/eng/native/configurecompiler.cmake +++ b/eng/native/configurecompiler.cmake @@ -653,7 +653,7 @@ else (CLR_CMAKE_HOST_WIN32) ERROR_QUIET OUTPUT_VARIABLE ldVersionOutput) - if("${ldVersionOutput}" MATCHES "GNU ld" OR "${ldVersionOutput}" MATCHES "GNU gold") + if("${ldVersionOutput}" MATCHES "GNU ld" OR "${ldVersionOutput}" MATCHES "GNU gold" OR "${ldVersionOutput}" MATCHES "GNU linkers") set(LD_GNU 1) elseif("${ldVersionOutput}" MATCHES "Solaris Link") set(LD_SOLARIS 1) From 86bdbf7e3f2d464635117b2092b8b5fab0f38bef Mon Sep 17 00:00:00 2001 From: Carol Eidt Date: Mon, 7 Dec 2020 09:56:50 -0800 Subject: [PATCH 46/87] Combine free and busy register allocation (#45135) * Combine free and busy allocation Perform register allocation for a given RefPosition with a single traversal of the registers, whether free or busy. * More refactoring * More refactoring to separate evaluation of heursitics. * More refactoring to simplify configuration. Fix one source of arm32 double diffs. * Delete unused `registerIsAvailable` method Fix `nextPhysRefLocation` computation for Arm32 * Use `UNIT_MAX` not `MAXUINT` * clear constantReg when interval is moved * Fix merge issues * Fix weight * Fix spill cost update for UpperVectors * Fix a bug in reload of multireg call on Arm64 * FixedReg fixes * Review feedback and other cleanup * Call clearConstanReg before nulling out the interval, so that we can correctly handling doubles on ARM * Minor cleanup * Formatting changes * Other minor pending fixes Co-authored-by: Kunal Pathak --- src/coreclr/src/jit/codegenarmarch.cpp | 2 +- src/coreclr/src/jit/lsra.cpp | 2430 +++++++++-------- src/coreclr/src/jit/lsra.h | 258 +- src/coreclr/src/jit/lsraarm64.cpp | 4 +- src/coreclr/src/jit/lsrabuild.cpp | 86 +- src/coreclr/src/jit/lsraxarch.cpp | 26 +- src/coreclr/src/jit/target.h | 2 +- .../JitBlue/GitHub_13735/GitHub_13735.cs | 60 + .../JitBlue/GitHub_13735/GitHub_13735.csproj | 12 + 9 files changed, 1631 insertions(+), 1249 deletions(-) create mode 100644 src/coreclr/tests/src/JIT/Regression/JitBlue/GitHub_13735/GitHub_13735.cs create mode 100644 src/coreclr/tests/src/JIT/Regression/JitBlue/GitHub_13735/GitHub_13735.csproj diff --git a/src/coreclr/src/jit/codegenarmarch.cpp b/src/coreclr/src/jit/codegenarmarch.cpp index d51353f48aa30..6fef0bbea88bb 100644 --- a/src/coreclr/src/jit/codegenarmarch.cpp +++ b/src/coreclr/src/jit/codegenarmarch.cpp @@ -1405,7 +1405,7 @@ void CodeGen::genMultiRegStoreToSIMDLocal(GenTreeLclVar* lclNode) for (int i = regCount - 1; i >= 0; --i) { var_types type = op1->gtSkipReloadOrCopy()->GetRegTypeByIndex(i); - regNumber reg = op1->GetRegByIndex(i); + regNumber reg = actualOp1->GetRegByIndex(i); if (op1->IsCopyOrReload()) { // GT_COPY/GT_RELOAD will have valid reg for those positions diff --git a/src/coreclr/src/jit/lsra.cpp b/src/coreclr/src/jit/lsra.cpp index bd94968c20376..83f010226e3d3 100644 --- a/src/coreclr/src/jit/lsra.cpp +++ b/src/coreclr/src/jit/lsra.cpp @@ -273,6 +273,96 @@ regMaskTP LinearScan::allSIMDRegs() return availableFloatRegs; } +void LinearScan::updateNextFixedRef(RegRecord* regRecord, RefPosition* nextRefPosition) +{ + LsraLocation nextLocation; + + if (nextRefPosition == nullptr) + { + nextLocation = MaxLocation; + fixedRegs &= ~genRegMask(regRecord->regNum); + } + else + { + nextLocation = nextRefPosition->nodeLocation; + fixedRegs |= genRegMask(regRecord->regNum); + } + nextFixedRef[regRecord->regNum] = nextLocation; +} + +regMaskTP LinearScan::getMatchingConstants(regMaskTP mask, Interval* currentInterval, RefPosition* refPosition) +{ + assert(currentInterval->isConstant && RefTypeIsDef(refPosition->refType)); + regMaskTP candidates = (mask & m_RegistersWithConstants); + regMaskTP result = RBM_NONE; + while (candidates != RBM_NONE) + { + regMaskTP candidateBit = genFindLowestBit(candidates); + candidates &= ~candidateBit; + regNumber regNum = genRegNumFromMask(candidateBit); + RegRecord* physRegRecord = getRegisterRecord(regNum); + if (isMatchingConstant(physRegRecord, refPosition)) + { + result |= candidateBit; + } + } + return result; +} + +void LinearScan::clearNextIntervalRef(regNumber reg, var_types regType) +{ + nextIntervalRef[reg] = MaxLocation; +#ifdef TARGET_ARM + if (regType == TYP_DOUBLE) + { + assert(genIsValidDoubleReg(reg)); + regNumber otherReg = REG_NEXT(reg); + nextIntervalRef[otherReg] = MaxLocation; + } +#endif +} + +void LinearScan::clearSpillCost(regNumber reg, var_types regType) +{ + spillCost[reg] = 0; +#ifdef TARGET_ARM + if (regType == TYP_DOUBLE) + { + assert(genIsValidDoubleReg(reg)); + regNumber otherReg = REG_NEXT(reg); + spillCost[otherReg] = 0; + } +#endif +} + +void LinearScan::updateNextIntervalRef(regNumber reg, Interval* interval) +{ + LsraLocation nextRefLocation = interval->getNextRefLocation(); + nextIntervalRef[reg] = nextRefLocation; +#ifdef TARGET_ARM + if (interval->registerType == TYP_DOUBLE) + { + regNumber otherReg = REG_NEXT(reg); + nextIntervalRef[otherReg] = nextRefLocation; + } +#endif +} + +void LinearScan::updateSpillCost(regNumber reg, Interval* interval) +{ + // An interval can have no recentRefPosition if this is the initial assignment + // of a parameter to its home register. + float cost = (interval->recentRefPosition != nullptr) ? getWeight(interval->recentRefPosition) : 0; + spillCost[reg] = cost; +#ifdef TARGET_ARM + if (interval->registerType == TYP_DOUBLE) + { + regNumber otherReg = REG_NEXT(reg); + spillCost[otherReg] = cost; + } +#endif +} + //------------------------------------------------------------------------ // internalFloatRegCandidates: Return the set of registers that are appropriate // for use as internal float registers. @@ -299,18 +389,12 @@ regMaskTP LinearScan::internalFloatRegCandidates() } } -/***************************************************************************** - * Inline functions for RegRecord - *****************************************************************************/ - -bool RegRecord::isFree() +bool LinearScan::isFree(RegRecord* regRecord) { - return ((assignedInterval == nullptr || !assignedInterval->isActive) && !isBusyUntilNextKill); + return ((regRecord->assignedInterval == nullptr || !regRecord->assignedInterval->isActive) && + !isRegBusy(regRecord->regNum, regRecord->registerType)); } -/***************************************************************************** - * Inline functions for LinearScan - *****************************************************************************/ RegRecord* LinearScan::getRegisterRecord(regNumber regNum) { assert((unsigned)regNum < ArrLen(physRegs)); @@ -408,10 +492,11 @@ regMaskTP LinearScan::stressLimitRegs(RefPosition* refPosition, regMaskTP mask) #endif // DEBUG //------------------------------------------------------------------------ -// conflictingFixedRegReference: Determine whether the current RegRecord has a +// conflictingFixedRegReference: Determine whether the 'reg' has a // fixed register use that conflicts with 'refPosition' // // Arguments: +// regNum - The register of interest // refPosition - The RefPosition of interest // // Return Value: @@ -424,28 +509,29 @@ regMaskTP LinearScan::stressLimitRegs(RefPosition* refPosition, regMaskTP mask) // Assumptions: // 'refPosition is non-null. -bool RegRecord::conflictingFixedRegReference(RefPosition* refPosition) +bool LinearScan::conflictingFixedRegReference(regNumber regNum, RefPosition* refPosition) { // Is this a fixed reference of this register? If so, there is no conflict. if (refPosition->isFixedRefOfRegMask(genRegMask(regNum))) { return false; } + // Otherwise, check for conflicts. // There is a conflict if: - // 1. There is a recent RefPosition on this RegRecord that is at this location, - // except in the case where it is a special "putarg" that is associated with this interval, OR + // 1. There is a recent RefPosition on this RegRecord that is at this location, OR // 2. There is an upcoming RefPosition at this location, or at the next location // if refPosition is a delayed use (i.e. must be kept live through the next/def location). LsraLocation refLocation = refPosition->nodeLocation; - if (recentRefPosition != nullptr && recentRefPosition->refType != RefTypeKill && - recentRefPosition->nodeLocation == refLocation && - (!isBusyUntilNextKill || assignedInterval != refPosition->getInterval())) + RegRecord* regRecord = getRegisterRecord(regNum); + if (isRegInUse(regNum, refPosition->getInterval()->registerType) && + (regRecord->assignedInterval != refPosition->getInterval())) { return true; } - LsraLocation nextPhysRefLocation = getNextRefLocation(); + + LsraLocation nextPhysRefLocation = nextFixedRef[regNum]; if (nextPhysRefLocation == refLocation || (refPosition->delayRegFree && nextPhysRefLocation == (refLocation + 1))) { return true; @@ -637,6 +723,7 @@ LinearScan::LinearScan(Compiler* theCompiler) // Get the value of the environment variable that controls stress for register allocation lsraStressMask = JitConfig.JitStressRegs(); + #if 0 if (lsraStressMask != 0) { @@ -705,7 +792,7 @@ LinearScan::LinearScan(Compiler* theCompiler) #ifdef TARGET_ARM64 availableIntRegs = (RBM_ALLINT & ~(RBM_PR | RBM_FP | RBM_LR) & ~compiler->codeGen->regSet.rsMaskResvd); #else - availableIntRegs = (RBM_ALLINT & ~compiler->codeGen->regSet.rsMaskResvd); + availableIntRegs = (RBM_ALLINT & ~compiler->codeGen->regSet.rsMaskResvd); #endif #if ETW_EBP_FRAMED @@ -2571,112 +2658,6 @@ bool copyOrMoveRegInUse(RefPosition* ref, LsraLocation loc) return false; } -// Determine whether the register represented by "physRegRecord" is available at least -// at the "currentLoc", and if so, return the next location at which it is in use in -// "nextRefLocationPtr" -// -bool LinearScan::registerIsAvailable(RegRecord* physRegRecord, - LsraLocation currentLoc, - LsraLocation* nextRefLocationPtr, - RegisterType regType) -{ - LsraLocation nextRefLocation = MaxLocation; - if (physRegRecord->isBusyUntilNextKill) - { - return false; - } - - RefPosition* nextPhysReference = physRegRecord->getNextRefPosition(); - if (nextPhysReference != nullptr) - { - nextRefLocation = nextPhysReference->nodeLocation; - } - else if (!physRegRecord->isCalleeSave) - { - nextRefLocation = MaxLocation - 1; - } - *nextRefLocationPtr = nextRefLocation; - - Interval* assignedInterval = physRegRecord->assignedInterval; - - if (assignedInterval != nullptr) - { - RefPosition* recentReference = assignedInterval->recentRefPosition; - - // The only case where we have an assignedInterval, but recentReference is null - // is where this interval is live at procedure entry (i.e. an arg register), in which - // case it's still live and its assigned register is not available - // (Note that the ParamDef will be recorded as a recentReference when we encounter - // it, but we will be allocating registers, potentially to other incoming parameters, - // as we process the ParamDefs.) - - if (recentReference == nullptr) - { - return false; - } - - // Is this a copyReg/moveReg? It is if the register assignment doesn't match. - // (the recentReference may not be a copyReg/moveReg, because we could have seen another - // reference since the copyReg/moveReg) - - if (!assignedInterval->isAssignedTo(physRegRecord->regNum)) - { - // If the recentReference is for a different register, it can be reassigned, but - // otherwise don't reassign it if it's still in use. - // (Note that it is unlikely that we have a recent copy or move to a different register, - // where this physRegRecord is still pointing at an earlier copy or move, but it is possible, - // especially in stress modes.) - if ((recentReference->registerAssignment == genRegMask(physRegRecord->regNum)) && - copyOrMoveRegInUse(recentReference, currentLoc)) - { - return false; - } - } - else if (!assignedInterval->isActive && assignedInterval->isConstant) - { - // Treat this as unassigned, i.e. do nothing. - // TODO-CQ: Consider adjusting the heuristics (probably in the caller of this method) - // to avoid reusing these registers. - } - // If this interval isn't active, it's available if it isn't referenced - // at this location (or the previous location, if the recent RefPosition - // is a delayRegFree). - else if (!assignedInterval->isActive && - (recentReference->refType == RefTypeExpUse || recentReference->getRefEndLocation() < currentLoc)) - { - // This interval must have a next reference (otherwise it wouldn't be assigned to this register) - RefPosition* nextReference = recentReference->nextRefPosition; - if (nextReference != nullptr) - { - if (nextReference->nodeLocation < nextRefLocation) - { - *nextRefLocationPtr = nextReference->nodeLocation; - } - } - else - { - assert(recentReference->copyReg && - (recentReference->registerAssignment != genRegMask(physRegRecord->regNum))); - } - } - else - { - return false; - } - } - -#ifdef TARGET_ARM - if (regType == TYP_DOUBLE) - { - // Recurse, but check the other half this time (TYP_FLOAT) - if (!registerIsAvailable(findAnotherHalfRegRec(physRegRecord), currentLoc, nextRefLocationPtr, TYP_FLOAT)) - return false; - } -#endif // TARGET_ARM - - return true; -} - //------------------------------------------------------------------------ // getRegisterType: Get the RegisterType to use for the given RefPosition // @@ -2719,7 +2700,13 @@ RegisterType LinearScan::getRegisterType(Interval* currentInterval, RefPosition* // bool LinearScan::isMatchingConstant(RegRecord* physRegRecord, RefPosition* refPosition) { - if ((physRegRecord->assignedInterval == nullptr) || !physRegRecord->assignedInterval->isConstant) + if ((physRegRecord->assignedInterval == nullptr) || !physRegRecord->assignedInterval->isConstant || + (refPosition->refType != RefTypeDef)) + { + return false; + } + Interval* interval = refPosition->getInterval(); + if (!interval->isConstant || !isRegConstant(physRegRecord->regNum, interval->registerType)) { return false; } @@ -2727,90 +2714,94 @@ bool LinearScan::isMatchingConstant(RegRecord* physRegRecord, RefPosition* refPo GenTree* otherTreeNode = physRegRecord->assignedInterval->firstRefPosition->treeNode; noway_assert(otherTreeNode != nullptr); - if (refPosition->treeNode->OperGet() == otherTreeNode->OperGet()) + if (refPosition->treeNode->OperGet() != otherTreeNode->OperGet()) + { + return false; + } + + switch (otherTreeNode->OperGet()) { - switch (otherTreeNode->OperGet()) + case GT_CNS_INT: { - case GT_CNS_INT: + ssize_t v1 = refPosition->treeNode->AsIntCon()->IconValue(); + ssize_t v2 = otherTreeNode->AsIntCon()->IconValue(); + if ((v1 == v2) && (varTypeGCtype(refPosition->treeNode) == varTypeGCtype(otherTreeNode) || v1 == 0)) { - ssize_t v1 = refPosition->treeNode->AsIntCon()->IconValue(); - ssize_t v2 = otherTreeNode->AsIntCon()->IconValue(); - if ((v1 == v2) && (varTypeGCtype(refPosition->treeNode) == varTypeGCtype(otherTreeNode) || v1 == 0)) - { #ifdef TARGET_64BIT - // If the constant is negative, only reuse registers of the same type. - // This is because, on a 64-bit system, we do not sign-extend immediates in registers to - // 64-bits unless they are actually longs, as this requires a longer instruction. - // This doesn't apply to a 32-bit system, on which long values occupy multiple registers. - // (We could sign-extend, but we would have to always sign-extend, because if we reuse more - // than once, we won't have access to the instruction that originally defines the constant). - if ((refPosition->treeNode->TypeGet() == otherTreeNode->TypeGet()) || (v1 >= 0)) + // If the constant is negative, only reuse registers of the same type. + // This is because, on a 64-bit system, we do not sign-extend immediates in registers to + // 64-bits unless they are actually longs, as this requires a longer instruction. + // This doesn't apply to a 32-bit system, on which long values occupy multiple registers. + // (We could sign-extend, but we would have to always sign-extend, because if we reuse more + // than once, we won't have access to the instruction that originally defines the constant). + if ((refPosition->treeNode->TypeGet() == otherTreeNode->TypeGet()) || (v1 >= 0)) #endif // TARGET_64BIT - { - return true; - } - } - break; - } - case GT_CNS_DBL: - { - // For floating point constants, the values must be identical, not simply compare - // equal. So we compare the bits. - if (refPosition->treeNode->AsDblCon()->isBitwiseEqual(otherTreeNode->AsDblCon()) && - (refPosition->treeNode->TypeGet() == otherTreeNode->TypeGet())) { return true; } - break; } - default: - break; + break; } + case GT_CNS_DBL: + { + // For floating point constants, the values must be identical, not simply compare + // equal. So we compare the bits. + if (refPosition->treeNode->AsDblCon()->isBitwiseEqual(otherTreeNode->AsDblCon()) && + (refPosition->treeNode->TypeGet() == otherTreeNode->TypeGet())) + { + return true; + } + break; + } + default: + break; } + return false; } //------------------------------------------------------------------------ -// tryAllocateFreeReg: Find a free register that satisfies the requirements for refPosition, -// and takes into account the preferences for the given Interval +// allocateReg: Find a register that satisfies the requirements for refPosition, +// taking into account the preferences for the given Interval, +// and possibly spilling a lower weight Interval. // // Arguments: // currentInterval: The interval for the current allocation // refPosition: The RefPosition of the current Interval for which a register is being allocated -// // Return Value: -// The regNumber, if any, allocated to the RefPositon. Returns REG_NA if no free register is found. +// The regNumber, if any, allocated to the RefPosition. +// Returns REG_NA only if 'refPosition->RegOptional()' is true, and there are +// no free registers and no registers containing lower-weight Intervals that can be spilled. // // Notes: -// TODO-CQ: Consider whether we need to use a different order for tree temps than for vars, as -// reg predict does - -static const regNumber lsraRegOrder[] = {REG_VAR_ORDER}; -const unsigned lsraRegOrderSize = ArrLen(lsraRegOrder); -static const regNumber lsraRegOrderFlt[] = {REG_VAR_ORDER_FLT}; -const unsigned lsraRegOrderFltSize = ArrLen(lsraRegOrderFlt); +// This method will prefer to allocate a free register, but if none are available, +// it will look for a lower-weight Interval to spill. +// Weight and farthest distance of next reference are used to determine whether an Interval +// currently occupying a register should be spilled. It will be spilled either: +// - At its most recent RefPosition, if that is within the current block, OR +// - At the boundary between the previous block and this one +// +// To select a ref position for spilling. +// - If refPosition->RegOptional() == false +// The RefPosition chosen for spilling will be the lowest weight +// of all and if there is is more than one ref position with the +// same lowest weight, among them choses the one with farthest +// distance to its next reference. +// +// - If refPosition->RegOptional() == true +// The ref position chosen for spilling will not only be lowest weight +// of all but also has a weight lower than 'refPosition'. If there is +// no such ref position, no register will be allocated. +// -regNumber LinearScan::tryAllocateFreeReg(Interval* currentInterval, RefPosition* refPosition) +regNumber LinearScan::allocateReg(Interval* currentInterval, RefPosition* refPosition) { regNumber foundReg = REG_NA; - RegisterType regType = getRegisterType(currentInterval, refPosition); - const regNumber* regOrder; - unsigned regOrderSize; - if (useFloatReg(regType)) - { - regOrder = lsraRegOrderFlt; - regOrderSize = lsraRegOrderFltSize; - } - else - { - regOrder = lsraRegOrder; - regOrderSize = lsraRegOrderSize; - } + RegisterType regType = getRegisterType(currentInterval, refPosition); LsraLocation currentLocation = refPosition->nodeLocation; RefPosition* nextRefPos = refPosition->nextRefPosition; - LsraLocation nextLocation = (nextRefPos == nullptr) ? currentLocation : nextRefPos->nodeLocation; regMaskTP candidates = refPosition->registerAssignment; regMaskTP preferences = currentInterval->registerPreferences; @@ -2838,8 +2829,9 @@ regNumber LinearScan::tryAllocateFreeReg(Interval* currentInterval, RefPosition* // If there is another fixed reference to this register before the use, change the candidates // on this RefPosition to include that of nextRefPos. - if (currFixedRegRefPosition->nextRefPosition != nullptr && - currFixedRegRefPosition->nextRefPosition->nodeLocation <= nextRefPos->getRefEndLocation()) + RefPosition* nextFixedRegRefPosition = defRegRecord->getNextRefPosition(); + if (nextFixedRegRefPosition != nullptr && + nextFixedRegRefPosition->nodeLocation <= nextRefPos->getRefEndLocation()) { candidates |= nextRefPos->registerAssignment; if (preferences == refPosition->registerAssignment) @@ -2909,9 +2901,15 @@ regNumber LinearScan::tryAllocateFreeReg(Interval* currentInterval, RefPosition* regMaskTP newRelatedPreferences = thisRelatedPreferences & relatedPreferences; if (newRelatedPreferences != RBM_NONE && (!avoidByteRegs || thisRelatedPreferences != RBM_BYTE_REGS)) { + // TODO-CQ: The following isFree() check doesn't account for the possibility that there's an + // assignedInterval whose recentRefPosition was delayFree. It also fails to account for + // the TYP_DOUBLE case on ARM. It would be better to replace the call to isFree with + // isRegAvailable(genRegNumFromMask(newRelatedPreferences), regType)), but this is retained + // to achieve zero diffs. + // bool thisIsSingleReg = isSingleRegister(newRelatedPreferences); if (!thisIsSingleReg || (finalRelatedInterval->isLocalVar && - getRegisterRecord(genRegNumFromMask(newRelatedPreferences))->isFree())) + isFree(getRegisterRecord(genRegNumFromMask(newRelatedPreferences))))) { relatedPreferences = newRelatedPreferences; // If this Interval has a downstream def without a single-register preference, continue to iterate. @@ -2994,291 +2992,579 @@ regNumber LinearScan::tryAllocateFreeReg(Interval* currentInterval, RefPosition* // position, which is one location past the use (getRefEndLocation() takes care of this). rangeEndLocation = rangeEndRefPosition->getRefEndLocation(); LsraLocation lastLocation = lastRefPosition->getRefEndLocation(); - regNumber prevReg = REG_NA; - - if (currentInterval->assignedReg) - { - bool useAssignedReg = false; - // This was an interval that was previously allocated to the given - // physical register, and we should try to allocate it to that register - // again, if possible and reasonable. - // Use it preemptively (i.e. before checking other available regs) - // only if it is preferred and available. - - RegRecord* regRec = currentInterval->assignedReg; - prevReg = regRec->regNum; - regMaskTP prevRegBit = genRegMask(prevReg); - - // Is it in the preferred set of regs? - if ((prevRegBit & preferences) != RBM_NONE) - { - // Is it currently available? - LsraLocation nextPhysRefLoc; - if (registerIsAvailable(regRec, currentLocation, &nextPhysRefLoc, currentInterval->registerType)) - { - // If the register is next referenced at this location, only use it if - // this has a fixed reg requirement (i.e. this is the reference that caused - // the FixedReg ref to be created) - - if (!regRec->conflictingFixedRegReference(refPosition)) - { - useAssignedReg = true; - } - } - } - if (useAssignedReg) - { - regNumber foundReg = prevReg; - assignPhysReg(regRec, currentInterval); - refPosition->registerAssignment = genRegMask(foundReg); - return foundReg; - } - else - { - // Don't keep trying to allocate to this register - currentInterval->assignedReg = nullptr; - } - } + RegRecord* prevRegRec = currentInterval->assignedReg; //------------------------------------------------------------------------- // Register Selection - RegRecord* availablePhysRegInterval = nullptr; - bool unassignInterval = false; + RegRecord* availablePhysRegRecord = nullptr; - // Each register will receive a score which is the sum of the scoring criteria below. + // Each register will receive a score which takes into account the scoring criteria below. // These were selected on the assumption that they will have an impact on the "goodness" // of a register selection, and have been tuned to a certain extent by observing the impact - // of the ordering on asmDiffs. However, there is probably much more room for tuning, + // of the ordering on asmDiffs. However, there is much more room for tuning, // and perhaps additional criteria. // - // These are FLAGS (bits) so that we can easily order them and add them together. - // If the scores are equal, but one covers more of the current interval's range, - // then it wins. Otherwise, the one encountered earlier in the regOrder wins. - enum RegisterScore { - VALUE_AVAILABLE = 0x40, // It is a constant value that is already in an acceptable register. - COVERS = 0x20, // It is in the interval's preference set and it covers the entire lifetime. - OWN_PREFERENCE = 0x10, // It is in the preference set of this interval. - COVERS_RELATED = 0x08, // It is in the preference set of the related interval and covers the entire lifetime. - RELATED_PREFERENCE = 0x04, // It is in the preference set of the related interval. - CALLER_CALLEE = 0x02, // It is in the right "set" for the interval (caller or callee-save). - UNASSIGNED = 0x01, // It is not currently assigned to an inactive interval. + FREE = 0x10000, // It is not currently assigned to an *active* interval + + // These are the original criteria for comparing registers that are free. + CONST_AVAILABLE = 0x8000, // It is a constant value that is already in an acceptable register. + THIS_ASSIGNED = 0x4000, // It is in the interval's preference set and it is already assigned to this interval. + COVERS = 0x2000, // It is in the interval's preference set and it covers the current range. + OWN_PREFERENCE = 0x1000, // It is in the preference set of this interval. + COVERS_RELATED = 0x0800, // It is in the preference set of the related interval and covers its entire lifetime. + RELATED_PREFERENCE = 0x0400, // It is in the preference set of the related interval. + CALLER_CALLEE = 0x0200, // It is in the right "set" for the interval (caller or callee-save). + UNASSIGNED = 0x0100, // It is not currently assigned to any (active or inactive) interval + COVERS_FULL = 0x0080, // It covers the full range of the interval from current position to the end. + BEST_FIT = 0x0040, // The available range is the closest match to the full range of the interval. + IS_PREV_REG = 0x0020, // This register was previously assigned to the interval. + REG_ORDER = 0x0010, // Tie-breaker + + // These are the original criteria for comparing registers that are in use. + SPILL_COST = 0x0008, // It has the lowest cost of all the candidates. + FAR_NEXT_REF = 0x0004, // It has a farther next reference than the best candidate thus far. + PREV_REG_OPT = 0x0002, // The previous RefPosition of its current assigned interval is RegOptional. + + // TODO-CQ: Consider using REG_ORDER as a tie-breaker even for busy registers. + REG_NUM = 0x0001, // It has a lower register number. }; - int bestScore = 0; - - // Compute the best possible score so we can stop looping early if we find it. - // TODO-Throughput: At some point we may want to short-circuit the computation of each score, but - // probably not until we've tuned the order of these criteria. At that point, - // we'll need to avoid the short-circuit if we've got a stress option to reverse - // the selection. - int bestPossibleScore = COVERS + UNASSIGNED + OWN_PREFERENCE + CALLER_CALLEE; - if (relatedPreferences != RBM_NONE) - { - bestPossibleScore |= RELATED_PREFERENCE + COVERS_RELATED; - } - - LsraLocation bestLocation = MinLocation; + LsraLocation bestLocation = MinLocation; + LsraLocation farRefLocation = MinLocation; - // In non-debug builds, this will simply get optimized away - bool reverseSelect = false; -#ifdef DEBUG - reverseSelect = doReverseSelect(); -#endif // DEBUG + // These are used in the post-selection updates, and must be set for any selection. + regMaskTP freeCandidates = RBM_NONE; + regMaskTP matchingConstants = RBM_NONE; + regMaskTP unassignedSet = RBM_NONE; - // An optimization for the common case where there is only one candidate - - // avoid looping over all the other registers + // These must be set prior to their use in the associated heuristics. + unsigned int thisSpillWeight = 0; - regNumber singleReg = REG_NA; + // We'll set this to short-circuit remaining heuristics when we have a single candidate. + bool found = false; - if (genMaxOneBit(candidates)) + // Is this a fixedReg? + regMaskTP fixedRegMask = RBM_NONE; + if (refPosition->isFixedRegRef) { - regOrderSize = 1; - singleReg = genRegNumFromMask(candidates); - regOrder = &singleReg; + assert(genMaxOneBit(refPosition->registerAssignment)); + fixedRegMask = refPosition->registerAssignment; + if (candidates == refPosition->registerAssignment) + { + found = true; + if (nextIntervalRef[genRegNumFromMask(candidates)] > lastLocation) + { + unassignedSet = candidates; + } + } } - for (unsigned i = 0; i < regOrderSize && (candidates != RBM_NONE); i++) + // Eliminate candidates that are in-use or busy. + if (!found) { - regNumber regNum = regOrder[i]; - regMaskTP candidateBit = genRegMask(regNum); + regMaskTP busyRegs = regsBusyUntilKill | regsInUseThisLocation; + candidates &= ~busyRegs; - if (!(candidates & candidateBit)) + // Also eliminate as busy any register with a conflicting fixed reference at this or + // the next location. + // Note that this will eliminate the fixedReg, if any, but we'll add it back below. + regMaskTP checkConflictMask = candidates & fixedRegs; + while (checkConflictMask != RBM_NONE) { - continue; - } - - candidates &= ~candidateBit; + regMaskTP checkConflictBit = genFindLowestBit(checkConflictMask); + checkConflictMask &= ~checkConflictBit; + regNumber checkConflictReg = genRegNumFromMask(checkConflictBit); + LsraLocation checkConflictLocation = nextFixedRef[checkConflictReg]; - RegRecord* physRegRecord = getRegisterRecord(regNum); - - int score = 0; - LsraLocation nextPhysRefLocation = MaxLocation; - - // By chance, is this register already holding this interval, as a copyReg or having - // been restored as inactive after a kill? - if (physRegRecord->assignedInterval == currentInterval) - { - availablePhysRegInterval = physRegRecord; - unassignInterval = false; - break; + if ((checkConflictLocation == currentLocation) || + (refPosition->delayRegFree && (checkConflictLocation == (currentLocation + 1)))) + { + candidates &= ~checkConflictBit; + } } + candidates |= fixedRegMask; + found = isSingleRegister(candidates); + } - // Find the next RefPosition of the physical register - if (!registerIsAvailable(physRegRecord, currentLocation, &nextPhysRefLocation, regType)) + // By chance, is prevRegRec already holding this interval, as a copyReg or having + // been restored as inactive after a kill? + // NOTE: this is not currently considered one of the selection criteria - it always wins + // if it is the assignedInterval of 'prevRegRec'. + regMaskTP prevRegBit = RBM_NONE; + if (!found && (prevRegRec != nullptr)) + { + prevRegBit = genRegMask(prevRegRec->regNum); + if ((prevRegRec->assignedInterval == currentInterval) && ((candidates & prevRegBit) != RBM_NONE)) { - continue; + candidates = prevRegBit; + found = true; } + } - // If the register is next referenced at this location, only use it if - // this has a fixed reg requirement (i.e. this is the reference that caused - // the FixedReg ref to be created) + if (!found && (candidates == RBM_NONE)) + { + assert(refPosition->RegOptional()); + currentInterval->assignedReg = nullptr; + return REG_NA; + } - if (physRegRecord->conflictingFixedRegReference(refPosition)) - { - continue; - } + // TODO-Cleanup: Previously, the "reverseSelect" stress mode reversed the order of the heuristics. + // It needs to be re-engineered with this refactoring. + // In non-debug builds, this will simply get optimized away + bool reverseSelect = false; +#ifdef DEBUG + reverseSelect = doReverseSelect(); +#endif // DEBUG - // If this is a definition of a constant interval, check to see if its value is already in this register. - if (currentInterval->isConstant && RefTypeIsDef(refPosition->refType) && - isMatchingConstant(physRegRecord, refPosition)) - { - score |= VALUE_AVAILABLE; - } + // At this point we have determined all the candidates that CAN be considered, + // and we'll begin to apply the heuristics in order. + registerSelector selector; + selector.candidates = candidates; + selector.score = 0; +#ifdef TARGET_ARM + selector.regType = regType; +#endif // TARGET_ARM - // If the nextPhysRefLocation is a fixedRef for the rangeEndRefPosition, increment it so that - // we don't think it isn't covering the live range. - // This doesn't handle the case where earlier RefPositions for this Interval are also - // FixedRefs of this regNum, but at least those are only interesting in the case where those - // are "local last uses" of the Interval - otherwise the liveRange would interfere with the reg. - if (nextPhysRefLocation == rangeEndLocation && rangeEndRefPosition->isFixedRefOfReg(regNum)) - { - INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_INCREMENT_RANGE_END, currentInterval)); - nextPhysRefLocation++; - } + freeCandidates = getFreeCandidates(candidates, regType); - if ((candidateBit & preferences) != RBM_NONE) - { - score |= OWN_PREFERENCE; - if (nextPhysRefLocation > rangeEndLocation) - { - score |= COVERS; - } - } - if ((candidateBit & relatedPreferences) != RBM_NONE) + // Apply the FREE heuristic. + if (freeCandidates == RBM_NONE) + { + // We won't spill if this refPosition is not an actual ref. + if (!refPosition->IsActualRef()) { - score |= RELATED_PREFERENCE; - if (nextPhysRefLocation > relatedLastLocation) - { - score |= COVERS_RELATED; - } + currentInterval->assignedReg = nullptr; + return REG_NA; } + } + else if (!found) + { + found = selector.applySelection(FREE, freeCandidates); + } - // If we had a fixed-reg def of a reg that will be killed before the use, prefer it to any other registers - // with the same score. (Note that we haven't changed the original registerAssignment on the RefPosition). - // Overload the RELATED_PREFERENCE value. - else if (candidateBit == refPosition->registerAssignment) + // Apply the CONST_AVAILABLE (matching constant) heuristic. Only applies if we have freeCandidates. + // Note that we always need to define the 'matchingConstants' set. + if (freeCandidates != RBM_NONE) + { + if (currentInterval->isConstant && RefTypeIsDef(refPosition->refType)) { - score |= RELATED_PREFERENCE; + matchingConstants = getMatchingConstants(selector.candidates, currentInterval, refPosition); + found = selector.applySelection(CONST_AVAILABLE, matchingConstants); } + } - if ((candidateBit & callerCalleePrefs) != RBM_NONE) - { - score |= CALLER_CALLEE; - } + // Apply the THIS_ASSIGNED heuristic. Only applies if we have freeCandidates. + if (!found && (prevRegRec != nullptr) && (freeCandidates != RBM_NONE)) + { + found = selector.applySelection(THIS_ASSIGNED, freeCandidates & preferences & prevRegBit); + } - // The register is considered unassigned if it has no assignedInterval, OR - // if its next reference is beyond the range of this interval. - if (!isAssigned(physRegRecord, lastLocation ARM_ARG(currentInterval->registerType))) + // Compute the sets for COVERS, OWN_PREFERENCE, COVERS_RELATED, COVERS_FULL and UNASSIGNED together, + // as they all require similar computation. + regMaskTP coversSet = RBM_NONE; + regMaskTP preferenceSet = RBM_NONE; + regMaskTP coversRelatedSet = RBM_NONE; + regMaskTP coversFullSet = RBM_NONE; + if (freeCandidates != RBM_NONE) + { + preferenceSet = (selector.candidates & preferences); + regMaskTP coversCandidates = (preferenceSet == RBM_NONE) ? selector.candidates : preferenceSet; + for (; coversCandidates != RBM_NONE;) { - score |= UNASSIGNED; - } - - bool foundBetterCandidate = false; + regMaskTP coversCandidateBit = genFindLowestBit(coversCandidates); + coversCandidates &= ~coversCandidateBit; + regNumber coversCandidateRegNum = genRegNumFromMask(coversCandidateBit); - if (score > bestScore) - { - foundBetterCandidate = true; - } - else if (score == bestScore) - { - // Prefer a register that covers the range. - if (bestLocation <= lastLocation) + // If we have a single candidate we don't need to compute the preference-related sets, but we + // do need to compute the unassignedSet. + if (!found) { - if (nextPhysRefLocation > bestLocation) + // Find the next RefPosition of the register. + LsraLocation nextIntervalLocation = getNextIntervalRef(coversCandidateRegNum, regType); + LsraLocation nextPhysRefLocation = getNextFixedRef(coversCandidateRegNum, regType); + LsraLocation coversCandidateLocation = Min(nextPhysRefLocation, nextIntervalLocation); + + // If the nextPhysRefLocation is a fixedRef for the rangeEndRefPosition, increment it so that + // we don't think it isn't covering the live range. + // This doesn't handle the case where earlier RefPositions for this Interval are also + // FixedRefs of this regNum, but at least those are only interesting in the case where those + // are "local last uses" of the Interval - otherwise the liveRange would interfere with the reg. + if (coversCandidateLocation == rangeEndLocation && + rangeEndRefPosition->isFixedRefOfReg(coversCandidateRegNum)) { - foundBetterCandidate = true; + INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_INCREMENT_RANGE_END, currentInterval)); + coversCandidateLocation++; } - } - // If both cover the range, prefer a register that is killed sooner (leaving the longer range register - // available). If both cover the range and also getting killed at the same location, prefer the one which - // is same as previous assignment. - else if (nextPhysRefLocation > lastLocation) - { - if (nextPhysRefLocation < bestLocation) + if (coversCandidateLocation > rangeEndLocation) + { + coversSet |= coversCandidateBit; + } + if ((coversCandidateBit & relatedPreferences) != RBM_NONE) + { + if (coversCandidateLocation > relatedInterval->lastRefPosition->nodeLocation) + { + coversRelatedSet |= coversCandidateBit; + } + } + else if (coversCandidateBit == refPosition->registerAssignment) { - foundBetterCandidate = true; + // If we had a fixed-reg def of a reg that will be killed before the use, prefer it to any other + // registers with the same score. (Note that we haven't changed the original registerAssignment + // on the RefPosition). + // Overload the RELATED_PREFERENCE value. + // TODO-CQ: Consider if this should be split out. + coversRelatedSet |= coversCandidateBit; } - else if (nextPhysRefLocation == bestLocation && prevReg == regNum) + // Does this cover the full range of the interval? + if (coversCandidateLocation > lastLocation) { - foundBetterCandidate = true; + coversFullSet |= coversCandidateBit; } } + // The register is considered unassigned if it has no assignedInterval, OR + // if its next reference is beyond the range of this interval. + if (nextIntervalRef[coversCandidateRegNum] > lastLocation) + { + unassignedSet |= coversCandidateBit; + } } + } -#ifdef DEBUG - if (doReverseSelect() && bestScore != 0) - { - foundBetterCandidate = !foundBetterCandidate; - } -#endif // DEBUG - - if (foundBetterCandidate) + // Apply the COVERS heuristic. + if (!found) + { + found = selector.applySelection(COVERS, coversSet & preferenceSet); + } + + // Apply the OWN_PREFERENCE heuristic. + // Note that 'preferenceSet' already includes only freeCandidates. + if (!found) + { + assert((preferenceSet & freeCandidates) == preferenceSet); + found = selector.applySelection(OWN_PREFERENCE, preferenceSet); + } + + // Apply the COVERS_RELATED heuristic. + if (!found) + { + assert((coversRelatedSet & freeCandidates) == coversRelatedSet); + found = selector.applySelection(COVERS_RELATED, coversRelatedSet); + } + + // Apply the RELATED_PREFERENCE heuristic. + if (!found) + { + found = selector.applySelection(RELATED_PREFERENCE, relatedPreferences & freeCandidates); + } + + // Apply the CALLER_CALLEE heuristic. + if (!found) + { + found = selector.applySelection(CALLER_CALLEE, callerCalleePrefs & freeCandidates); + } + + // Apply the UNASSIGNED heuristic. + if (!found) + { + found = selector.applySelection(UNASSIGNED, unassignedSet); + } + + // Apply the COVERS_FULL heuristic. + if (!found) + { + assert((coversFullSet & freeCandidates) == coversFullSet); + found = selector.applySelection(COVERS_FULL, coversFullSet); + } + + // Apply the BEST_FIT heuristic. Only applies if we have freeCandidates. + if (!found && (freeCandidates != RBM_NONE)) + { + regMaskTP bestFitSet = RBM_NONE; + // If the best score includes COVERS_FULL, pick the one that's killed soonest. + // If none cover the full range, the BEST_FIT is the one that's killed later. + bool earliestIsBest = ((selector.score & COVERS_FULL) != 0); + LsraLocation bestFitLocation = earliestIsBest ? MaxLocation : MinLocation; + for (regMaskTP bestFitCandidates = selector.candidates; bestFitCandidates != RBM_NONE;) { - bestLocation = nextPhysRefLocation; - availablePhysRegInterval = physRegRecord; - unassignInterval = true; - bestScore = score; + regMaskTP bestFitCandidateBit = genFindLowestBit(bestFitCandidates); + bestFitCandidates &= ~bestFitCandidateBit; + regNumber bestFitCandidateRegNum = genRegNumFromMask(bestFitCandidateBit); + + // Find the next RefPosition of the register. + LsraLocation nextIntervalLocation = getNextIntervalRef(bestFitCandidateRegNum, regType); + LsraLocation nextPhysRefLocation = getNextFixedRef(bestFitCandidateRegNum, regType); + nextPhysRefLocation = Min(nextPhysRefLocation, nextIntervalLocation); + // If the nextPhysRefLocation is a fixedRef for the rangeEndRefPosition, increment it so that + // we don't think it isn't covering the live range. + // This doesn't handle the case where earlier RefPositions for this Interval are also + // FixedRefs of this regNum, but at least those are only interesting in the case where those + // are "local last uses" of the Interval - otherwise the liveRange would interfere with the reg. + // TODO: This duplicates code in an earlier loop, and is basically here to duplicate previous + // behavior; see if we can avoid this. + if (nextPhysRefLocation == rangeEndLocation && rangeEndRefPosition->isFixedRefOfReg(bestFitCandidateRegNum)) + { + INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_INCREMENT_RANGE_END, currentInterval)); + nextPhysRefLocation++; + } + + if (nextPhysRefLocation == bestFitLocation) + { + bestFitSet |= bestFitCandidateBit; + } + else + { + bool isBetter = false; + if (nextPhysRefLocation > lastLocation) + { + // This covers the full range; favor it if the other doesn't, or if it's a closer match. + if ((bestFitLocation <= lastLocation) || (nextPhysRefLocation < bestFitLocation)) + { + isBetter = true; + } + } + else + { + // This doesn't cover the full range; favor it if the other doesn't either, but this ends later. + if ((bestFitLocation <= lastLocation) && (nextPhysRefLocation > bestFitLocation)) + { + isBetter = true; + } + } + if (isBetter) + { + bestFitSet = bestFitCandidateBit; + bestFitLocation = nextPhysRefLocation; + } + } } + assert(bestFitSet != RBM_NONE); + found = selector.applySelection(BEST_FIT, bestFitSet); + } - // there is no way we can get a better score so break out - if (!reverseSelect && score == bestPossibleScore && bestLocation == rangeEndLocation + 1) + // Apply the IS_PREV_REG heuristic. TODO: Check if Only applies if we have freeCandidates. + // Oddly, the previous heuristics only considered this if it covered the range. + if ((prevRegRec != nullptr) && ((selector.score & COVERS_FULL) != 0)) + { + found = selector.applySingleRegSelection(IS_PREV_REG, prevRegBit); + } + + // Apply the REG_ORDER heuristic. Only applies if we have freeCandidates. + if (!found && (freeCandidates != RBM_NONE)) + { + // This will always result in a single candidate. That is, it is the tie-breaker + // for free candidates, and doesn't make sense as anything other than the last + // heuristic for free registers. + unsigned lowestRegOrder = UINT_MAX; + regMaskTP lowestRegOrderBit = RBM_NONE; + for (regMaskTP regOrderCandidates = selector.candidates; regOrderCandidates != RBM_NONE;) { - break; + regMaskTP regOrderCandidateBit = genFindLowestBit(regOrderCandidates); + regOrderCandidates &= ~regOrderCandidateBit; + regNumber regOrderCandidateRegNum = genRegNumFromMask(regOrderCandidateBit); + unsigned thisRegOrder = getRegisterRecord(regOrderCandidateRegNum)->regOrder; + if (thisRegOrder < lowestRegOrder) + { + lowestRegOrder = thisRegOrder; + lowestRegOrderBit = regOrderCandidateBit; + } } + assert(lowestRegOrderBit != RBM_NONE); + found = selector.applySingleRegSelection(REG_ORDER, lowestRegOrderBit); } - if (availablePhysRegInterval != nullptr) + // The set of registers with the lowest spill weight. + regMaskTP lowestCostSpillSet = RBM_NONE; + // Apply the SPILL_COST heuristic and eliminate regs that can't be spilled. + if (!found) { - if (unassignInterval && isAssigned(availablePhysRegInterval ARM_ARG(currentInterval->registerType))) + // The spill weight for 'refPosition' (the one we're allocating now). + float thisSpillWeight = getWeight(refPosition); + // The spill weight for the best candidate we've found so far. + float bestSpillWeight = FloatingPointUtils::infinite_float(); + // True if we found registers with lower spill weight than this refPosition. + bool foundLowerSpillWeight = false; + + for (regMaskTP spillCandidates = selector.candidates; spillCandidates != RBM_NONE;) { - Interval* const intervalToUnassign = availablePhysRegInterval->assignedInterval; - unassignPhysReg(availablePhysRegInterval ARM_ARG(currentInterval->registerType)); + regMaskTP spillCandidateBit = genFindLowestBit(spillCandidates); + spillCandidates &= ~spillCandidateBit; + regNumber spillCandidateRegNum = genRegNumFromMask(spillCandidateBit); + RegRecord* spillCandidateRegRecord = &physRegs[spillCandidateRegNum]; - if ((bestScore & VALUE_AVAILABLE) != 0 && intervalToUnassign != nullptr) + // Can and should the interval in this register be spilled for this one, + // if we don't find a better alternative? + if ((getNextIntervalRef(spillCandidateRegNum, regType) == currentLocation) && + !spillCandidateRegRecord->assignedInterval->getNextRefPosition()->RegOptional()) { - assert(intervalToUnassign->isConstant); - refPosition->treeNode->SetReuseRegVal(); + continue; } - // If we considered this "unassigned" because this interval's lifetime ends before - // the next ref, remember it. - else if ((bestScore & UNASSIGNED) != 0 && intervalToUnassign != nullptr) + if (!isSpillCandidate(currentInterval, refPosition, spillCandidateRegRecord)) + { + continue; + } + + float currentSpillWeight = spillCost[spillCandidateRegNum]; +#ifdef TARGET_ARM + if (currentInterval->registerType == TYP_DOUBLE) { - updatePreviousInterval(availablePhysRegInterval, intervalToUnassign, intervalToUnassign->registerType); + currentSpillWeight = max(currentSpillWeight, spillCost[REG_NEXT(spillCandidateRegNum)]); + } +#endif + if (currentSpillWeight < bestSpillWeight) + { + bestSpillWeight = currentSpillWeight; + lowestCostSpillSet = spillCandidateBit; + } + else if (currentSpillWeight == bestSpillWeight) + { + lowestCostSpillSet |= spillCandidateBit; } } - else + + // We won't spill if this refPosition is RegOptional() and we have no candidates + // with a lower spill cost. + if ((bestSpillWeight >= thisSpillWeight) && refPosition->RegOptional()) + { + currentInterval->assignedReg = nullptr; + return REG_NA; + } + } + + if (!found) + { + // We must have at least one with the lowest spill cost. + assert(lowestCostSpillSet != RBM_NONE); + found = selector.applySelection(SPILL_COST, lowestCostSpillSet); + } + + // Apply the FAR_NEXT_REF heuristic. + if (!found) + { + LsraLocation farthestLocation = MinLocation; + regMaskTP farthestSet = RBM_NONE; + for (regMaskTP farthestCandidates = selector.candidates; farthestCandidates != RBM_NONE;) + { + regMaskTP farthestCandidateBit = genFindLowestBit(farthestCandidates); + farthestCandidates &= ~farthestCandidateBit; + regNumber farthestCandidateRegNum = genRegNumFromMask(farthestCandidateBit); + + // Find the next RefPosition of the register. + LsraLocation nextIntervalLocation = nextIntervalRef[farthestCandidateRegNum]; + LsraLocation nextPhysRefLocation = Min(nextFixedRef[farthestCandidateRegNum], nextIntervalLocation); + if (nextPhysRefLocation == farthestLocation) + { + farthestSet |= farthestCandidateBit; + } + else if (nextPhysRefLocation > farthestLocation) + { + farthestSet = farthestCandidateBit; + farthestLocation = nextPhysRefLocation; + } + } + // We must have at least one with the lowest spill cost. + assert(farthestSet != RBM_NONE); + found = selector.applySelection(FAR_NEXT_REF, farthestSet); + } + + // Apply the PREV_REG_OPT heuristic. + if (!found) + { + regMaskTP prevRegOptSet = RBM_NONE; + for (regMaskTP prevRegOptCandidates = selector.candidates; prevRegOptCandidates != RBM_NONE;) { - assert((bestScore & VALUE_AVAILABLE) == 0); + regMaskTP prevRegOptCandidateBit = genFindLowestBit(prevRegOptCandidates); + prevRegOptCandidates &= ~prevRegOptCandidateBit; + regNumber prevRegOptCandidateRegNum = genRegNumFromMask(prevRegOptCandidateBit); + Interval* assignedInterval = physRegs[prevRegOptCandidateRegNum].assignedInterval; + // The assigned should be non-null, and should have a recentRefPosition, however since + // this is a heuristic, we don't want a fatal error, so we just assert (not noway_assert). + if ((assignedInterval != nullptr) && (assignedInterval->recentRefPosition != nullptr)) + { + if (assignedInterval->recentRefPosition->reload && assignedInterval->recentRefPosition->RegOptional()) + { + // TODO-Cleanup: Previously, we always used the highest regNum with a previous regOptional + // RefPosition, which is not really consistent with the way other selection criteria are applied. + // should probably be: prevRegOptSet |= prevRegOptCandidateBit; + prevRegOptSet = prevRegOptCandidateBit; + } + } + else + { + assert(!"Spill candidate has no assignedInterval recentRefPosition"); + } } - assignPhysReg(availablePhysRegInterval, currentInterval); - foundReg = availablePhysRegInterval->regNum; - regMaskTP foundRegMask = genRegMask(foundReg); - refPosition->registerAssignment = foundRegMask; + found = selector.applySelection(PREV_REG_OPT, prevRegOptSet); + } + + // Apply the REG_NUM heuristic. + if (!found) + { + found = selector.applySingleRegSelection(REG_NUM, genFindLowestBit(selector.candidates)); } + assert(found && isSingleRegister(selector.candidates)); + regMaskTP foundRegBit = selector.candidates; + foundReg = genRegNumFromMask(foundRegBit); + availablePhysRegRecord = getRegisterRecord(foundReg); + Interval* assignedInterval = availablePhysRegRecord->assignedInterval; + if ((assignedInterval != currentInterval) && isAssigned(availablePhysRegRecord ARM_ARG(regType))) + { + if ((foundRegBit & freeCandidates) == RBM_NONE) + { + // We're spilling. + CLANG_FORMAT_COMMENT_ANCHOR; + +#ifdef TARGET_ARM + if (currentInterval->registerType == TYP_DOUBLE) + { + assert(genIsValidDoubleReg(availablePhysRegRecord->regNum)); + unassignDoublePhysReg(availablePhysRegRecord); + } + else if (assignedInterval->registerType == TYP_DOUBLE) + { + // Make sure we spill both halves of the double register. + assert(genIsValidDoubleReg(assignedInterval->assignedReg->regNum)); + unassignPhysReg(assignedInterval->assignedReg, assignedInterval->recentRefPosition); + } + else +#endif + { + unassignPhysReg(availablePhysRegRecord, assignedInterval->recentRefPosition); + } + } + else + { + // If we considered this "unassigned" because this interval's lifetime ends before + // the next ref, remember it. + // For historical reasons (due to former short-circuiting of this case), if we're reassigning + // the current interval to a previous assignment, we don't remember the previous interval. + // Note that we need to compute this condition before calling unassignPhysReg, which wil reset + // assignedInterval->physReg. + regMaskTP freePrefCandidates = (selector.candidates & preferences & freeCandidates); + bool wasThisAssigned = ((prevRegBit & preferences) == foundRegBit); + bool wasAssigned = (((foundRegBit & unassignedSet) != RBM_NONE) && !wasThisAssigned && + (assignedInterval != nullptr) && (assignedInterval->physReg == foundReg)); + unassignPhysReg(availablePhysRegRecord ARM_ARG(currentInterval->registerType)); + if ((matchingConstants & foundRegBit) != RBM_NONE) + { + assert(assignedInterval->isConstant); + refPosition->treeNode->SetReuseRegVal(); + } + else if (wasAssigned) + { + updatePreviousInterval(availablePhysRegRecord, assignedInterval, assignedInterval->registerType); + } + else + { + assert((selector.score & CONST_AVAILABLE) == 0); + } + } + } + assignPhysReg(availablePhysRegRecord, currentInterval); + refPosition->registerAssignment = foundRegBit; return foundReg; } @@ -3288,36 +3574,52 @@ regNumber LinearScan::tryAllocateFreeReg(Interval* currentInterval, RefPosition* // Arguments: // physRegRecord - reg to spill // refLocation - Location of RefPosition where this register will be spilled -// recentAssignedRefWeight - Weight of recent assigned RefPosition which will be determined in this function -// farthestRefPosWeight - Current farthestRefPosWeight at allocateBusyReg() // // Return Value: // True - if we can spill physRegRecord // False - otherwise // -// Note: This helper is designed to be used only from allocateBusyReg() and canSpillDoubleReg() -// -bool LinearScan::canSpillReg(RegRecord* physRegRecord, - LsraLocation refLocation, - BasicBlock::weight_t* recentAssignedRefWeight) +bool LinearScan::canSpillReg(RegRecord* physRegRecord, LsraLocation refLocation) { assert(physRegRecord->assignedInterval != nullptr); RefPosition* recentAssignedRef = physRegRecord->assignedInterval->recentRefPosition; if (recentAssignedRef != nullptr) { - if (isRefPositionActive(recentAssignedRef, refLocation)) - { - // We can't spill a register that's active at the current location - return false; - } - - // We don't prefer to spill a register if the weight of recentAssignedRef > weight - // of the spill candidate found so far. We would consider spilling a greater weight - // ref position only if the refPosition being allocated must need a reg. - *recentAssignedRefWeight = getWeight(recentAssignedRef); + // We can't spill a register that's active at the current location. + // We should already have determined this with isRegBusy before calling this method. + assert(!isRefPositionActive(recentAssignedRef, refLocation)); + return true; } - return true; + // recentAssignedRef can only be null if this is a parameter that has not yet been + // moved to a register (or stack), in which case we can't spill it yet. + assert(physRegRecord->assignedInterval->getLocalVar(compiler)->lvIsParam); + return false; +} + +//------------------------------------------------------------------------ +// getSpillWeight: Get the weight associated with spilling the given register +// +// Arguments: +// physRegRecord - reg to spill +// +// Return Value: +// The weight associated with the location at which we will spill. +// +// Note: This helper is designed to be used only from allocateReg() and getDoubleSpillWeight() +// +float LinearScan::getSpillWeight(RegRecord* physRegRecord) +{ + assert(physRegRecord->assignedInterval != nullptr); + RefPosition* recentAssignedRef = physRegRecord->assignedInterval->recentRefPosition; + float weight = BB_ZERO_WEIGHT; + + // We shouldn't call this method if there is no recentAssignedRef. + assert(recentAssignedRef != nullptr); + // We shouldn't call this method if the register is active at this location. + assert(!isRefPositionActive(recentAssignedRef, currentLoc)); + weight = getWeight(recentAssignedRef); + return weight; } #ifdef TARGET_ARM @@ -3327,48 +3629,27 @@ bool LinearScan::canSpillReg(RegRecord* physRegRecord, // Arguments: // physRegRecord - reg to spill (must be a valid double register) // refLocation - Location of RefPosition where this register will be spilled -// recentAssignedRefWeight - Weight of recent assigned RefPosition which will be determined in this function // // Return Value: // True - if we can spill physRegRecord // False - otherwise // -// Notes: -// This helper is designed to be used only from allocateBusyReg() and canSpillDoubleReg(). -// The recentAssignedRefWeight is not updated if either register cannot be spilled. -// -bool LinearScan::canSpillDoubleReg(RegRecord* physRegRecord, - LsraLocation refLocation, - BasicBlock::weight_t* recentAssignedRefWeight) +bool LinearScan::canSpillDoubleReg(RegRecord* physRegRecord, LsraLocation refLocation) { assert(genIsValidDoubleReg(physRegRecord->regNum)); - bool retVal = true; - BasicBlock::weight_t weight = BB_ZERO_WEIGHT; - BasicBlock::weight_t weight2 = BB_ZERO_WEIGHT; - - RegRecord* physRegRecord2 = findAnotherHalfRegRec(physRegRecord); + RegRecord* physRegRecord2 = getSecondHalfRegRec(physRegRecord); - if ((physRegRecord->assignedInterval != nullptr) && !canSpillReg(physRegRecord, refLocation, &weight)) + if ((physRegRecord->assignedInterval != nullptr) && !canSpillReg(physRegRecord, refLocation)) { return false; } - if (physRegRecord2->assignedInterval != nullptr) + if ((physRegRecord2->assignedInterval != nullptr) && !canSpillReg(physRegRecord2, refLocation)) { - if (!canSpillReg(physRegRecord2, refLocation, &weight2)) - { - return false; - } - if (weight2 > weight) - { - weight = weight2; - } + return false; } - *recentAssignedRefWeight = weight; return true; } -#endif -#ifdef TARGET_ARM //------------------------------------------------------------------------ // unassignDoublePhysReg: unassign a double register (pair) // @@ -3383,7 +3664,7 @@ void LinearScan::unassignDoublePhysReg(RegRecord* doubleRegRecord) assert(genIsValidDoubleReg(doubleRegRecord->regNum)); RegRecord* doubleRegRecordLo = doubleRegRecord; - RegRecord* doubleRegRecordHi = findAnotherHalfRegRec(doubleRegRecordLo); + RegRecord* doubleRegRecordHi = getSecondHalfRegRec(doubleRegRecordLo); // For a double register, we has following four cases. // Case 1: doubleRegRecLo is assigned to TYP_DOUBLE interval // Case 2: doubleRegRecLo and doubleRegRecHi are assigned to different TYP_FLOAT intervals @@ -3442,86 +3723,6 @@ bool LinearScan::isRefPositionActive(RefPosition* refPosition, LsraLocation refL ((refPosition->nodeLocation + 1 == refLocation) && refPosition->delayRegFree)); } -//---------------------------------------------------------------------------------------- -// isRegInUse: Test whether regRec is being used at the refPosition -// -// Arguments: -// regRec - A register to be tested -// refPosition - RefPosition where regRec is tested -// -// Return Value: -// True - if regRec is being used -// False - otherwise -// -// Notes: -// This helper is designed to be used only from allocateBusyReg(), where: -// - This register was *not* found when looking for a free register, and -// - The caller must have already checked for the case where 'refPosition' is a fixed ref -// (asserted at the beginning of this method). -// -bool LinearScan::isRegInUse(RegRecord* regRec, RefPosition* refPosition) -{ - // We shouldn't reach this check if 'refPosition' is a FixedReg of this register. - assert(!refPosition->isFixedRefOfReg(regRec->regNum)); - Interval* assignedInterval = regRec->assignedInterval; - if (assignedInterval != nullptr) - { - if (!assignedInterval->isActive) - { - // This can only happen if we have a recentRefPosition active at this location that hasn't yet been freed. - CLANG_FORMAT_COMMENT_ANCHOR; - - if (isRefPositionActive(assignedInterval->recentRefPosition, refPosition->nodeLocation)) - { - return true; - } - else - { -#ifdef TARGET_ARM - // In the case of TYP_DOUBLE, we may have the case where 'assignedInterval' is inactive, - // but the other half register is active. If so, it must be have an active recentRefPosition, - // as above. - if (refPosition->getInterval()->registerType == TYP_DOUBLE) - { - RegRecord* otherHalfRegRec = findAnotherHalfRegRec(regRec); - if (!otherHalfRegRec->assignedInterval->isActive) - { - if (isRefPositionActive(otherHalfRegRec->assignedInterval->recentRefPosition, - refPosition->nodeLocation)) - { - return true; - } - else - { - assert(!"Unexpected inactive assigned interval in isRegInUse"); - return true; - } - } - } - else -#endif - { - assert(!"Unexpected inactive assigned interval in isRegInUse"); - return true; - } - } - } - RefPosition* nextAssignedRef = assignedInterval->getNextRefPosition(); - - // We should never spill a register that's occupied by an Interval with its next use at the current - // location. - // Normally this won't occur (unless we actually had more uses in a single node than there are registers), - // because we'll always find something with a later nextLocation, but it can happen in stress when - // we have LSRA_SELECT_NEAREST. - if ((nextAssignedRef != nullptr) && isRefPositionActive(nextAssignedRef, refPosition->nodeLocation) && - !nextAssignedRef->RegOptional()) - { - return true; - } - } - return false; -} - //------------------------------------------------------------------------ // isSpillCandidate: Determine if a register is a spill candidate for a given RefPosition. // @@ -3529,406 +3730,43 @@ bool LinearScan::isRegInUse(RegRecord* regRec, RefPosition* refPosition) // current The interval for the current allocation // refPosition The RefPosition of the current Interval for which a register is being allocated // physRegRecord The RegRecord for the register we're considering for spill -// nextLocation An out (reference) parameter in which the next use location of the -// given RegRecord will be returned. // // Return Value: // True iff the given register can be spilled to accommodate the given RefPosition. // -bool LinearScan::isSpillCandidate(Interval* current, - RefPosition* refPosition, - RegRecord* physRegRecord, - LsraLocation& nextLocation) +bool LinearScan::isSpillCandidate(Interval* current, RefPosition* refPosition, RegRecord* physRegRecord) { regMaskTP candidateBit = genRegMask(physRegRecord->regNum); LsraLocation refLocation = refPosition->nodeLocation; - if (physRegRecord->isBusyUntilNextKill) - { - return false; - } - Interval* assignedInterval = physRegRecord->assignedInterval; - if (assignedInterval != nullptr) - { - nextLocation = assignedInterval->getNextRefLocation(); - } + // We shouldn't be calling this if we haven't already determined that the register is not + // busy until the next kill. + assert(!isRegBusy(physRegRecord->regNum, current->registerType)); + // We should already have determined that the register isn't actively in use. + assert(!isRegInUse(physRegRecord->regNum, current->registerType)); + // We shouldn't be calling this if 'refPosition' is a fixed reference to this register. + assert(!refPosition->isFixedRefOfRegMask(candidateBit)); + // We shouldn't be calling this if there is a fixed reference at the same location + // (and it's not due to this reference), as checked above. + assert(!conflictingFixedRegReference(physRegRecord->regNum, refPosition)); + + bool canSpill; #ifdef TARGET_ARM - RegRecord* physRegRecord2 = nullptr; - Interval* assignedInterval2 = nullptr; - - // For ARM32, a double occupies a consecutive even/odd pair of float registers. if (current->registerType == TYP_DOUBLE) { - assert(genIsValidDoubleReg(physRegRecord->regNum)); - physRegRecord2 = findAnotherHalfRegRec(physRegRecord); - if (physRegRecord2->isBusyUntilNextKill) - { - return false; - } - assignedInterval2 = physRegRecord2->assignedInterval; - if ((assignedInterval2 != nullptr) && (assignedInterval2->getNextRefLocation() > nextLocation)) - { - nextLocation = assignedInterval2->getNextRefLocation(); - } - } -#endif - - // If there is a fixed reference at the same location (and it's not due to this reference), - // don't use it. - if (physRegRecord->conflictingFixedRegReference(refPosition)) - { - return false; - } - - if (refPosition->isFixedRefOfRegMask(candidateBit)) - { - // Either: - // - there is a fixed reference due to this node, OR - // - or there is a fixed use fed by a def at this node, OR - // - or we have restricted the set of registers for stress. - // In any case, we must use this register as it's the only candidate - // TODO-CQ: At the time we allocate a register to a fixed-reg def, if it's not going - // to remain live until the use, we should set the candidates to allRegs(regType) - // to avoid a spill - codegen can then insert the copy. - // If this is marked as allocateIfProfitable, the caller will compare the weights - // of this RefPosition and the RefPosition to which it is currently assigned. - assert(refPosition->isFixedRegRef || - (refPosition->nextRefPosition != nullptr && refPosition->nextRefPosition->isFixedRegRef) || - candidatesAreStressLimited()); - return true; + canSpill = canSpillDoubleReg(physRegRecord, refLocation); } - - // If this register is not assigned to an interval, either - // - it has a FixedReg reference at the current location that is not this reference, OR - // - this is the special case of a fixed loReg, where this interval has a use at the same location - // In either case, we cannot use it - CLANG_FORMAT_COMMENT_ANCHOR; - -#ifdef TARGET_ARM - if (assignedInterval == nullptr && assignedInterval2 == nullptr) -#else - if (assignedInterval == nullptr) -#endif + else +#endif // TARGET_ARM { - RefPosition* nextPhysRegPosition = physRegRecord->getNextRefPosition(); - assert((nextPhysRegPosition != nullptr) && (nextPhysRegPosition->nodeLocation == refLocation) && - (candidateBit != refPosition->registerAssignment)); - return false; + canSpill = canSpillReg(physRegRecord, refLocation); } - - if (isRegInUse(physRegRecord, refPosition)) + if (!canSpill) { return false; } - -#ifdef TARGET_ARM - if (current->registerType == TYP_DOUBLE) - { - if (isRegInUse(physRegRecord2, refPosition)) - { - return false; - } - } -#endif return true; } -//------------------------------------------------------------------------ -// allocateBusyReg: Find a busy register that satisfies the requirements for refPosition, -// and that can be spilled. -// -// Arguments: -// current The interval for the current allocation -// refPosition The RefPosition of the current Interval for which a register is being allocated -// allocateIfProfitable If true, a reg may not be allocated if all other ref positions currently -// occupying registers are more important than the 'refPosition'. -// -// Return Value: -// The regNumber allocated to the RefPositon. Returns REG_NA if no free register is found. -// -// Note: Currently this routine uses weight and farthest distance of next reference -// to select a ref position for spilling. -// a) if allocateIfProfitable = false -// The ref position chosen for spilling will be the lowest weight -// of all and if there is is more than one ref position with the -// same lowest weight, among them choses the one with farthest -// distance to its next reference. -// -// b) if allocateIfProfitable = true -// The ref position chosen for spilling will not only be lowest weight -// of all but also has a weight lower than 'refPosition'. If there is -// no such ref position, reg will not be allocated. -// -regNumber LinearScan::allocateBusyReg(Interval* current, RefPosition* refPosition, bool allocateIfProfitable) -{ - regNumber foundReg = REG_NA; - - RegisterType regType = getRegisterType(current, refPosition); - regMaskTP candidates = refPosition->registerAssignment; - regMaskTP preferences = (current->registerPreferences & candidates); - if (preferences == RBM_NONE) - { - preferences = candidates; - } - if (candidates == RBM_NONE) - { - // This assumes only integer and floating point register types - // if we target a processor with additional register types, - // this would have to change - candidates = allRegs(regType); - } - -#ifdef DEBUG - candidates = stressLimitRegs(refPosition, candidates); -#endif // DEBUG - - // TODO-CQ: Determine whether/how to take preferences into account in addition to - // prefering the one with the furthest ref position when considering - // a candidate to spill - RegRecord* farthestRefPhysRegRecord = nullptr; -#ifdef TARGET_ARM - RegRecord* farthestRefPhysRegRecord2 = nullptr; -#endif - LsraLocation farthestLocation = MinLocation; - LsraLocation refLocation = refPosition->nodeLocation; - BasicBlock::weight_t farthestRefPosWeight; - if (allocateIfProfitable) - { - // If allocating a reg is optional, we will consider those ref positions - // whose weight is less than 'refPosition' for spilling. - farthestRefPosWeight = getWeight(refPosition); - } - else - { - // If allocating a reg is a must, we start off with max weight so - // that the first spill candidate will be selected based on - // farthest distance alone. Since we start off with farthestLocation - // initialized to MinLocation, the first available ref position - // will be selected as spill candidate and its weight as the - // fathestRefPosWeight. - farthestRefPosWeight = FloatingPointUtils::infinite_float(); - } - - for (regNumber regNum : Registers(regType)) - { - regMaskTP candidateBit = genRegMask(regNum); - if (!(candidates & candidateBit)) - { - continue; - } - RegRecord* physRegRecord = getRegisterRecord(regNum); - RegRecord* physRegRecord2 = nullptr; // only used for TARGET_ARM - LsraLocation nextLocation = MinLocation; - LsraLocation physRegNextLocation; - if (!isSpillCandidate(current, refPosition, physRegRecord, nextLocation)) - { - assert(candidates != candidateBit); - continue; - } - - // We've passed the preliminary checks for a spill candidate. - // Now, if we have a recentAssignedRef, check that it is going to be OK to spill it. - Interval* assignedInterval = physRegRecord->assignedInterval; - BasicBlock::weight_t recentAssignedRefWeight = BB_ZERO_WEIGHT; - RefPosition* recentAssignedRef = nullptr; - RefPosition* recentAssignedRef2 = nullptr; -#ifdef TARGET_ARM - if (current->registerType == TYP_DOUBLE) - { - recentAssignedRef = (assignedInterval == nullptr) ? nullptr : assignedInterval->recentRefPosition; - physRegRecord2 = findAnotherHalfRegRec(physRegRecord); - Interval* assignedInterval2 = physRegRecord2->assignedInterval; - recentAssignedRef2 = (assignedInterval2 == nullptr) ? nullptr : assignedInterval2->recentRefPosition; - if (!canSpillDoubleReg(physRegRecord, refLocation, &recentAssignedRefWeight)) - { - continue; - } - } - else -#endif - { - recentAssignedRef = assignedInterval->recentRefPosition; - if (!canSpillReg(physRegRecord, refLocation, &recentAssignedRefWeight)) - { - continue; - } - } - if (recentAssignedRefWeight > farthestRefPosWeight) - { - continue; - } - - physRegNextLocation = physRegRecord->getNextRefLocation(); - if (nextLocation > physRegNextLocation) - { - nextLocation = physRegNextLocation; - } - - bool isBetterLocation; - -#ifdef DEBUG - if (doSelectNearest() && farthestRefPhysRegRecord != nullptr) - { - isBetterLocation = (nextLocation <= farthestLocation); - } - else -#endif - // This if-stmt is associated with the above else - if (recentAssignedRefWeight < farthestRefPosWeight) - { - isBetterLocation = true; - } - else - { - // This would mean the weight of spill ref position we found so far is equal - // to the weight of the ref position that is being evaluated. In this case - // we prefer to spill ref position whose distance to its next reference is - // the farthest. - assert(recentAssignedRefWeight == farthestRefPosWeight); - - // If allocateIfProfitable=true, the first spill candidate selected - // will be based on weight alone. After we have found a spill - // candidate whose weight is less than the 'refPosition', we will - // consider farthest distance when there is a tie in weights. - // This is to ensure that we don't spill a ref position whose - // weight is equal to weight of 'refPosition'. - if (allocateIfProfitable && farthestRefPhysRegRecord == nullptr) - { - isBetterLocation = false; - } - else - { - isBetterLocation = (nextLocation > farthestLocation); - - if (nextLocation > farthestLocation) - { - isBetterLocation = true; - } - else if (nextLocation == farthestLocation) - { - // Both weight and distance are equal. - // Prefer that ref position which is marked both reload and - // allocate if profitable. These ref positions don't need - // need to be spilled as they are already in memory and - // codegen considers them as contained memory operands. - CLANG_FORMAT_COMMENT_ANCHOR; -#ifdef TARGET_ARM - // TODO-CQ-ARM: Just conservatively "and" two conditions. We may implement a better condition later. - isBetterLocation = true; - if (recentAssignedRef != nullptr) - isBetterLocation &= (recentAssignedRef->reload && recentAssignedRef->RegOptional()); - - if (recentAssignedRef2 != nullptr) - isBetterLocation &= (recentAssignedRef2->reload && recentAssignedRef2->RegOptional()); -#else - isBetterLocation = - (recentAssignedRef != nullptr) && recentAssignedRef->reload && recentAssignedRef->RegOptional(); -#endif - } - else - { - isBetterLocation = false; - } - } - } - - if (isBetterLocation) - { - farthestLocation = nextLocation; - farthestRefPhysRegRecord = physRegRecord; -#ifdef TARGET_ARM - farthestRefPhysRegRecord2 = physRegRecord2; -#endif - farthestRefPosWeight = recentAssignedRefWeight; - } - } - -#if DEBUG - if (allocateIfProfitable) - { - // There may not be a spill candidate or if one is found - // its weight must be less than the weight of 'refPosition' - assert((farthestRefPhysRegRecord == nullptr) || (farthestRefPosWeight < getWeight(refPosition))); - } - else - { - // Must have found a spill candidate. - assert(farthestRefPhysRegRecord != nullptr); - - if (farthestLocation == refLocation) - { - // This must be a RefPosition that is constrained to use a single register, either directly, - // or at the use, or by stress. - bool isConstrained = (refPosition->isFixedRegRef || (refPosition->nextRefPosition != nullptr && - refPosition->nextRefPosition->isFixedRegRef) || - candidatesAreStressLimited()); - if (!isConstrained) - { -#ifdef TARGET_ARM - Interval* assignedInterval = - (farthestRefPhysRegRecord == nullptr) ? nullptr : farthestRefPhysRegRecord->assignedInterval; - Interval* assignedInterval2 = - (farthestRefPhysRegRecord2 == nullptr) ? nullptr : farthestRefPhysRegRecord2->assignedInterval; - RefPosition* nextRefPosition = - (assignedInterval == nullptr) ? nullptr : assignedInterval->getNextRefPosition(); - RefPosition* nextRefPosition2 = - (assignedInterval2 == nullptr) ? nullptr : assignedInterval2->getNextRefPosition(); - if (nextRefPosition != nullptr) - { - if (nextRefPosition2 != nullptr) - { - assert(nextRefPosition->RegOptional() || nextRefPosition2->RegOptional()); - } - else - { - assert(nextRefPosition->RegOptional()); - } - } - else - { - assert(nextRefPosition2 != nullptr && nextRefPosition2->RegOptional()); - } -#else // !TARGET_ARM - Interval* assignedInterval = farthestRefPhysRegRecord->assignedInterval; - RefPosition* nextRefPosition = assignedInterval->getNextRefPosition(); - assert(nextRefPosition->RegOptional()); -#endif // !TARGET_ARM - } - } - else - { - assert(farthestLocation > refLocation); - } - } -#endif // DEBUG - - if (farthestRefPhysRegRecord != nullptr) - { - foundReg = farthestRefPhysRegRecord->regNum; - -#ifdef TARGET_ARM - if (current->registerType == TYP_DOUBLE) - { - assert(genIsValidDoubleReg(foundReg)); - unassignDoublePhysReg(farthestRefPhysRegRecord); - } - else -#endif - { - unassignPhysReg(farthestRefPhysRegRecord, farthestRefPhysRegRecord->assignedInterval->recentRefPosition); - } - - assignPhysReg(farthestRefPhysRegRecord, current); - refPosition->registerAssignment = genRegMask(foundReg); - } - else - { - foundReg = REG_NA; - refPosition->registerAssignment = RBM_NONE; - } - - return foundReg; -} - // Grab a register to use to copy and then immediately use. // This is called only for localVar intervals that already have a register // assignment that is not compatible with the current RefPosition. @@ -3959,11 +3797,11 @@ regNumber LinearScan::assignCopyReg(RefPosition* refPosition) assert(oldRegRecord->regNum == oldPhysReg); currentInterval->isActive = false; - regNumber allocatedReg = tryAllocateFreeReg(currentInterval, refPosition); - if (allocatedReg == REG_NA) - { - allocatedReg = allocateBusyReg(currentInterval, refPosition, false); - } + // We *must* allocate a register, and it will be a copyReg. Set that field now, so that + // refPosition->RegOptional() will return false. + refPosition->copyReg = true; + + regNumber allocatedReg = allocateReg(currentInterval, refPosition); // Now restore the old info currentInterval->relatedInterval = savedRelatedInterval; @@ -3971,14 +3809,11 @@ regNumber LinearScan::assignCopyReg(RefPosition* refPosition) currentInterval->assignedReg = oldRegRecord; currentInterval->isActive = true; - refPosition->copyReg = true; return allocatedReg; } //------------------------------------------------------------------------ -// isAssigned: This is the function to check if the given RegRecord has an assignedInterval -// regardless of lastLocation. -// So it would be call isAssigned() with Maxlocation value. +// isAssigned: This is the function to check if the given RegRecord has an assignedInterval. // // Arguments: // regRec - The RegRecord to check that it is assigned. @@ -3987,63 +3822,34 @@ regNumber LinearScan::assignCopyReg(RefPosition* refPosition) // Return Value: // Returns true if the given RegRecord has an assignedInterval. // -// Notes: -// There is the case to check if the RegRecord has an assignedInterval regardless of Lastlocation. -// bool LinearScan::isAssigned(RegRecord* regRec ARM_ARG(RegisterType newRegType)) { - return isAssigned(regRec, MaxLocation ARM_ARG(newRegType)); -} - -//------------------------------------------------------------------------ -// isAssigned: Check whether the given RegRecord has an assignedInterval -// that has a reference prior to the given location. -// -// Arguments: -// regRec - The RegRecord of interest -// lastLocation - The LsraLocation up to which we want to check -// newRegType - The `RegisterType` of interval we want to check -// (this is for the purposes of checking the other half of a TYP_DOUBLE RegRecord) -// -// Return value: -// Returns true if the given RegRecord (and its other half, if TYP_DOUBLE) has an assignedInterval -// that is referenced prior to the given location -// -// Notes: -// The register is not considered to be assigned if it has no assignedInterval, or that Interval's -// next reference is beyond lastLocation -// -bool LinearScan::isAssigned(RegRecord* regRec, LsraLocation lastLocation ARM_ARG(RegisterType newRegType)) -{ - Interval* assignedInterval = regRec->assignedInterval; - - if ((assignedInterval == nullptr) || assignedInterval->getNextRefLocation() > lastLocation) + if (regRec->assignedInterval != nullptr) { + return true; + } #ifdef TARGET_ARM - if (newRegType == TYP_DOUBLE) - { - RegRecord* anotherRegRec = findAnotherHalfRegRec(regRec); + if (newRegType == TYP_DOUBLE) + { + RegRecord* otherRegRecord = getSecondHalfRegRec(regRec); - if ((anotherRegRec->assignedInterval == nullptr) || - (anotherRegRec->assignedInterval->getNextRefLocation() > lastLocation)) - { - // In case the newRegType is a double register, - // the score would be set UNASSIGNED if another register is also not set. - return false; - } - } - else -#endif + if (otherRegRecord->assignedInterval != nullptr) { - return false; + return true; } } - - return true; +#endif + return false; } -// Check if the interval is already assigned and if it is then unassign the physical record -// then set the assignedInterval to 'interval' +//------------------------------------------------------------------------ +// checkAndAssignInterval: Check if the interval is already assigned and +// if it is then unassign the physical record +// and set the assignedInterval to 'interval' +// +// Arguments: +// regRec - The RegRecord of interest +// interval - The Interval that we're going to assign to 'regRec' // void LinearScan::checkAndAssignInterval(RegRecord* regRec, Interval* interval) { @@ -4094,8 +3900,8 @@ void LinearScan::assignPhysReg(RegRecord* regRec, Interval* interval) regMaskTP assignedRegMask = genRegMask(regRec->regNum); compiler->codeGen->regSet.rsSetRegsModified(assignedRegMask DEBUGARG(true)); - checkAndAssignInterval(regRec, interval); interval->assignedReg = regRec; + checkAndAssignInterval(regRec, interval); interval->physReg = regRec->regNum; interval->isActive = true; @@ -4163,6 +3969,15 @@ void LinearScan::setIntervalAsSpilled(Interval* interval) // Now we need to mark the local as spilled also, even if the lower half is never spilled, // as this will use the upper part of its home location. interval = interval->relatedInterval; + // We'll now mark this as spilled, so it changes the spillCost. + RefPosition* recentRefPos = interval->recentRefPosition; + if (!interval->isSpilled && interval->isActive && (recentRefPos != nullptr)) + { + VarSetOps::AddElemD(compiler, splitOrSpilledVars, interval->getVarIndex(compiler)); + interval->isSpilled = true; + regNumber reg = interval->physReg; + spillCost[reg] = getSpillWeight(getRegisterRecord(reg)); + } } #endif if (interval->isLocalVar) @@ -4337,7 +4152,7 @@ void LinearScan::unassignPhysReg(RegRecord* regRec ARM_ARG(RegisterType newRegTy { if (newRegType == TYP_DOUBLE) { - anotherRegRec = findAnotherHalfRegRec(regRecToUnassign); + anotherRegRec = getSecondHalfRegRec(regRecToUnassign); } } #endif @@ -4379,7 +4194,8 @@ void LinearScan::unassignPhysReg(RegRecord* regRec, RefPosition* spillRefPositio regNumber thisRegNum = regRec->regNum; // Is assignedInterval actually still assigned to this register? - bool intervalIsAssigned = (assignedInterval->physReg == thisRegNum); + bool intervalIsAssigned = (assignedInterval->physReg == thisRegNum); + regNumber regToUnassign = thisRegNum; #ifdef TARGET_ARM RegRecord* anotherRegRec = nullptr; @@ -4388,28 +4204,42 @@ void LinearScan::unassignPhysReg(RegRecord* regRec, RefPosition* spillRefPositio if (assignedInterval->registerType == TYP_DOUBLE) { assert(isFloatRegType(regRec->registerType)); + RegRecord* doubleRegRec; + if (genIsValidDoubleReg(thisRegNum)) + { + anotherRegRec = getSecondHalfRegRec(regRec); + doubleRegRec = regRec; + } + else + { + regToUnassign = REG_PREV(thisRegNum); + anotherRegRec = getRegisterRecord(regToUnassign); + doubleRegRec = anotherRegRec; + } - anotherRegRec = findAnotherHalfRegRec(regRec); - - // Both two RegRecords should have been assigned to the same interval. + // Both RegRecords should have been assigned to the same interval. assert(assignedInterval == anotherRegRec->assignedInterval); if (!intervalIsAssigned && (assignedInterval->physReg == anotherRegRec->regNum)) { intervalIsAssigned = true; } - } -#endif // TARGET_ARM - checkAndClearInterval(regRec, spillRefPosition); + clearNextIntervalRef(regToUnassign, TYP_DOUBLE); + clearSpillCost(regToUnassign, TYP_DOUBLE); + checkAndClearInterval(doubleRegRec, spillRefPosition); -#ifdef TARGET_ARM - if (assignedInterval->registerType == TYP_DOUBLE) - { - // Both two RegRecords should have been unassigned together. + // Both RegRecords should have been unassigned together. assert(regRec->assignedInterval == nullptr); assert(anotherRegRec->assignedInterval == nullptr); } + else #endif // TARGET_ARM + { + clearNextIntervalRef(thisRegNum, assignedInterval->registerType); + clearSpillCost(thisRegNum, assignedInterval->registerType); + checkAndClearInterval(regRec, spillRefPosition); + } + makeRegAvailable(regToUnassign, assignedInterval->registerType); RefPosition* nextRefPosition = nullptr; if (spillRefPosition != nullptr) @@ -4505,6 +4335,14 @@ void LinearScan::unassignPhysReg(RegRecord* regRec, RefPosition* spillRefPositio { regRec->assignedInterval = regRec->previousInterval; regRec->previousInterval = nullptr; + if (regRec->assignedInterval->physReg != thisRegNum) + { + clearNextIntervalRef(thisRegNum, regRec->assignedInterval->registerType); + } + else + { + updateNextIntervalRef(thisRegNum, regRec->assignedInterval); + } #ifdef TARGET_ARM // Note: @@ -4588,6 +4426,7 @@ void LinearScan::spillGCRefs(RefPosition* killRefPosition) { INDEBUG(killedRegs = true); unassignPhysReg(regRecord, assignedInterval->recentRefPosition); + makeRegAvailable(nextReg, assignedInterval->registerType); } } INDEBUG(dumpLsraAllocationEvent(killedRegs ? LSRA_EVENT_DONE_KILL_GC_REFS : LSRA_EVENT_NO_GC_KILLS, nullptr, REG_NA, @@ -4876,11 +4715,13 @@ void LinearScan::processBlockStartLocations(BasicBlock* currentBlock) if (!enregisterLocalVars) { // Just clear any constant registers and return. + resetAvailableRegs(); for (regNumber reg = REG_FIRST; reg < ACTUAL_REG_COUNT; reg = REG_NEXT(reg)) { RegRecord* physRegRecord = getRegisterRecord(reg); Interval* assignedInterval = physRegRecord->assignedInterval; - + clearNextIntervalRef(reg, physRegRecord->registerType); + clearSpillCost(reg, physRegRecord->registerType); if (assignedInterval != nullptr) { assert(assignedInterval->isConstant); @@ -5024,7 +4865,7 @@ void LinearScan::processBlockStartLocations(BasicBlock* currentBlock) assert(targetReg != REG_STK); assert(interval->assignedReg != nullptr && interval->assignedReg->regNum == targetReg && interval->assignedReg->assignedInterval == interval); - liveRegs |= genRegMask(targetReg); + liveRegs |= getRegMask(targetReg, interval->registerType); continue; } } @@ -5052,10 +4893,11 @@ void LinearScan::processBlockStartLocations(BasicBlock* currentBlock) // Keep the register assignment - if another var has it, it will get unassigned. // Otherwise, resolution will fix it up later, and it will be more // likely to match other assignments this way. + targetReg = interval->physReg; interval->isActive = true; - liveRegs |= genRegMask(interval->physReg); - INDEBUG(inactiveRegs |= genRegMask(interval->physReg)); - setVarReg(inVarToRegMap, varIndex, interval->physReg); + liveRegs |= getRegMask(targetReg, interval->registerType); + INDEBUG(inactiveRegs |= genRegMask(targetReg)); + setVarReg(inVarToRegMap, varIndex, targetReg); } else { @@ -5065,7 +4907,12 @@ void LinearScan::processBlockStartLocations(BasicBlock* currentBlock) if (targetReg != REG_STK) { RegRecord* targetRegRecord = getRegisterRecord(targetReg); - liveRegs |= genRegMask(targetReg); + liveRegs |= getRegMask(targetReg, interval->registerType); + if (!allocationPassComplete) + { + updateNextIntervalRef(targetReg, interval); + updateSpillCost(targetReg, interval); + } if (!interval->isActive) { interval->isActive = true; @@ -5083,7 +4930,7 @@ void LinearScan::processBlockStartLocations(BasicBlock* currentBlock) (targetRegRecord->assignedInterval->registerType == TYP_FLOAT))) { assert(genIsValidDoubleReg(targetReg)); - unassignIntervalBlockStart(findAnotherHalfRegRec(targetRegRecord), + unassignIntervalBlockStart(getSecondHalfRegRec(targetRegRecord), allocationPassComplete ? nullptr : inVarToRegMap); } #endif // TARGET_ARM @@ -5098,13 +4945,19 @@ void LinearScan::processBlockStartLocations(BasicBlock* currentBlock) } } - // Unassign any registers that are no longer live. + // Unassign any registers that are no longer live, and set register state, if allocating. + if (!allocationPassComplete) + { + resetRegState(); + setRegsInUse(liveRegs); + } for (regNumber reg = REG_FIRST; reg < ACTUAL_REG_COUNT; reg = REG_NEXT(reg)) { + RegRecord* physRegRecord = getRegisterRecord(reg); if ((liveRegs & genRegMask(reg)) == 0) { - RegRecord* physRegRecord = getRegisterRecord(reg); - Interval* assignedInterval = physRegRecord->assignedInterval; + makeRegAvailable(reg, physRegRecord->registerType); + Interval* assignedInterval = physRegRecord->assignedInterval; if (assignedInterval != nullptr) { @@ -5142,6 +4995,7 @@ void LinearScan::processBlockStartLocations(BasicBlock* currentBlock) // Skip next float register, because we already addressed a double register assert(genIsValidDoubleReg(reg)); reg = REG_NEXT(reg); + makeRegAvailable(reg, physRegRecord->registerType); } #endif // TARGET_ARM } @@ -5149,8 +5003,7 @@ void LinearScan::processBlockStartLocations(BasicBlock* currentBlock) #ifdef TARGET_ARM else { - RegRecord* physRegRecord = getRegisterRecord(reg); - Interval* assignedInterval = physRegRecord->assignedInterval; + Interval* assignedInterval = physRegRecord->assignedInterval; if (assignedInterval != nullptr && assignedInterval->registerType == TYP_DOUBLE) { @@ -5227,20 +5080,33 @@ void LinearScan::dumpRefPositions(const char* str) } #endif // DEBUG -bool LinearScan::registerIsFree(regNumber regNum, RegisterType regType) +//------------------------------------------------------------------------ +// LinearScan::makeRegisterInactive: Make the interval currently assigned to +// a register inactive. +// +// Arguments: +// physRegRecord - the RegRecord for the register +// +// Return Value: +// None. +// +// Notes: +// It may be that the RegRecord has already been freed, e.g. due to a kill, +// or it may be that the register was a copyReg, so is not the assigned register +// of the Interval currently occupying the register, in which case this method has no effect. +// +void LinearScan::makeRegisterInactive(RegRecord* physRegRecord) { - RegRecord* physRegRecord = getRegisterRecord(regNum); - - bool isFree = physRegRecord->isFree(); - -#ifdef TARGET_ARM - if (isFree && regType == TYP_DOUBLE) + Interval* assignedInterval = physRegRecord->assignedInterval; + // It may have already been freed by a "Kill" + if ((assignedInterval != nullptr) && (assignedInterval->physReg == physRegRecord->regNum)) { - isFree = getSecondHalfRegRec(physRegRecord)->isFree(); + assignedInterval->isActive = false; + if (assignedInterval->isConstant) + { + clearNextIntervalRef(physRegRecord->regNum, assignedInterval->registerType); + } } -#endif // TARGET_ARM - - return isFree; } //------------------------------------------------------------------------ @@ -5263,31 +5129,36 @@ bool LinearScan::registerIsFree(regNumber regNum, RegisterType regType) // defs remain), it will remain assigned to the physRegRecord. However, since // it is marked inactive, the register will be available, albeit less desirable // to allocate. +// void LinearScan::freeRegister(RegRecord* physRegRecord) { Interval* assignedInterval = physRegRecord->assignedInterval; - // It may have already been freed by a "Kill" + makeRegAvailable(physRegRecord->regNum, physRegRecord->registerType); + clearSpillCost(physRegRecord->regNum, physRegRecord->registerType); + makeRegisterInactive(physRegRecord); + if (assignedInterval != nullptr) { - assignedInterval->isActive = false; - // If this is a constant node, that we may encounter again (e.g. constant), - // don't unassign it until we need the register. - if (!assignedInterval->isConstant) - { - RefPosition* nextRefPosition = assignedInterval->getNextRefPosition(); - // Unassign the register only if there are no more RefPositions, or the next - // one is a def. Note that the latter condition doesn't actually ensure that - // there aren't subsequent uses that could be reached by a def in the assigned - // register, but is merely a heuristic to avoid tying up the register (or using - // it when it's non-optimal). A better alternative would be to use SSA, so that - // we wouldn't unnecessarily link separate live ranges to the same register. - if (nextRefPosition == nullptr || RefTypeIsDef(nextRefPosition->refType)) - { + // TODO: Under the following conditions we should be just putting it in regsToMakeInactive + // not regsToFree. + // + // We don't unassign in the following conditions: + // - If this is a constant node, that we may encounter again, OR + // - If its recent RefPosition is not a last-use and its next RefPosition is non-null. + // - If there are no more RefPositions, or the next + // one is a def. Note that the latter condition doesn't actually ensure that + // there aren't subsequent uses that could be reached by a value in the assigned + // register, but is merely a heuristic to avoid tying up the register (or using + // it when it's non-optimal). A better alternative would be to use SSA, so that + // we wouldn't unnecessarily link separate live ranges to the same register. + // + RefPosition* nextRefPosition = assignedInterval->getNextRefPosition(); + if (!assignedInterval->isConstant && (nextRefPosition == nullptr || RefTypeIsDef(nextRefPosition->refType))) + { #ifdef TARGET_ARM - assert((assignedInterval->registerType != TYP_DOUBLE) || genIsValidDoubleReg(physRegRecord->regNum)); + assert((assignedInterval->registerType != TYP_DOUBLE) || genIsValidDoubleReg(physRegRecord->regNum)); #endif // TARGET_ARM - unassignPhysReg(physRegRecord, nullptr); - } + unassignPhysReg(physRegRecord, nullptr); } } } @@ -5306,11 +5177,20 @@ void LinearScan::freeRegisters(regMaskTP regsToFree) } INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_FREE_REGS)); + makeRegsAvailable(regsToFree); while (regsToFree != RBM_NONE) { regMaskTP nextRegBit = genFindLowestBit(regsToFree); regsToFree &= ~nextRegBit; - regNumber nextReg = genRegNumFromMask(nextRegBit); + regNumber nextReg = genRegNumFromMask(nextRegBit); + RegRecord* regRecord = getRegisterRecord(nextReg); +#ifdef TARGET_ARM + if (regRecord->assignedInterval != nullptr && (regRecord->assignedInterval->registerType == TYP_DOUBLE)) + { + assert(genIsValidDoubleReg(nextReg)); + regsToFree &= ~(nextRegBit << 1); + } +#endif freeRegister(getRegisterRecord(nextReg)); } } @@ -5353,9 +5233,33 @@ void LinearScan::allocateRegisters() #endif // FEATURE_PARTIAL_SIMD_CALLEE_SAVE } + resetRegState(); for (regNumber reg = REG_FIRST; reg < ACTUAL_REG_COUNT; reg = REG_NEXT(reg)) { - getRegisterRecord(reg)->recentRefPosition = nullptr; + RegRecord* physRegRecord = getRegisterRecord(reg); + physRegRecord->recentRefPosition = nullptr; + updateNextFixedRef(physRegRecord, physRegRecord->firstRefPosition); + + // Is this an incoming arg register? (Note that we don't, currently, consider reassigning + // an incoming arg register as having spill cost.) + Interval* interval = physRegRecord->assignedInterval; + if (interval != nullptr) + { +#ifdef TARGET_ARM + if ((interval->registerType != TYP_DOUBLE) || genIsValidDoubleReg(reg)) +#endif // TARGET_ARM + { + updateNextIntervalRef(reg, interval); + updateSpillCost(reg, interval); + setRegInUse(reg, interval->registerType); + INDEBUG(registersToDump |= getRegMask(reg, interval->registerType)); + } + } + else + { + clearNextIntervalRef(reg, physRegRecord->registerType); + clearSpillCost(reg, physRegRecord->registerType); + } } #ifdef DEBUG @@ -5378,9 +5282,14 @@ void LinearScan::allocateRegisters() BasicBlock* currentBlock = nullptr; - LsraLocation prevLocation = MinLocation; - regMaskTP regsToFree = RBM_NONE; - regMaskTP delayRegsToFree = RBM_NONE; + LsraLocation prevLocation = MinLocation; + regMaskTP regsToFree = RBM_NONE; + regMaskTP delayRegsToFree = RBM_NONE; + regMaskTP regsToMakeInactive = RBM_NONE; + regMaskTP delayRegsToMakeInactive = RBM_NONE; + regMaskTP copyRegsToFree = RBM_NONE; + regsInUseThisLocation = RBM_NONE; + regsInUseNextLocation = RBM_NONE; // This is the most recent RefPosition for which a register was allocated // - currently only used for DEBUG but maintained in non-debug, for clarity of code @@ -5394,6 +5303,29 @@ void LinearScan::allocateRegisters() RefPosition* currentRefPosition = &refPositionIterator; RefPosition* nextRefPosition = currentRefPosition->nextRefPosition; + // TODO: Can we combine this with the freeing of registers below? It might + // mess with the dump, since this was previously being done before the call below + // to dumpRegRecords. + regMaskTP tempRegsToMakeInactive = (regsToMakeInactive | delayRegsToMakeInactive); + while (tempRegsToMakeInactive != RBM_NONE) + { + regMaskTP nextRegBit = genFindLowestBit(tempRegsToMakeInactive); + tempRegsToMakeInactive &= ~nextRegBit; + regNumber nextReg = genRegNumFromMask(nextRegBit); + RegRecord* regRecord = getRegisterRecord(nextReg); + clearSpillCost(regRecord->regNum, regRecord->registerType); + makeRegisterInactive(regRecord); + } + if (currentRefPosition->nodeLocation > prevLocation) + { + makeRegsAvailable(regsToMakeInactive); + // TODO: Clean this up. We need to make the delayRegs inactive as well, but don't want + // to mark them as free yet. + regsToMakeInactive |= delayRegsToMakeInactive; + regsToMakeInactive = delayRegsToMakeInactive; + delayRegsToMakeInactive = RBM_NONE; + } + #ifdef DEBUG // Set the activeRefPosition to null until we're done with any boundary handling. activeRefPosition = nullptr; @@ -5437,14 +5369,15 @@ void LinearScan::allocateRegisters() LsraLocation currentLocation = currentRefPosition->nodeLocation; - if ((regsToFree | delayRegsToFree) != RBM_NONE) + // Free at a new location. + if (currentLocation > prevLocation) { - // Free at a new location, or at a basic block boundary - if (refType == RefTypeBB) - { - assert(currentLocation > prevLocation); - } - if (currentLocation > prevLocation) + // CopyRegs are simply made available - we don't want to make the associated interval inactive. + makeRegsAvailable(copyRegsToFree); + copyRegsToFree = RBM_NONE; + regsInUseThisLocation = regsInUseNextLocation; + regsInUseNextLocation = RBM_NONE; + if ((regsToFree | delayRegsToFree) != RBM_NONE) { freeRegisters(regsToFree); if ((currentLocation > (prevLocation + 1)) && (delayRegsToFree != RBM_NONE)) @@ -5454,10 +5387,105 @@ void LinearScan::allocateRegisters() assert(!"Found a delayRegFree associated with Location with no reference"); // However, to be cautious for the Release build case, we will free them. freeRegisters(delayRegsToFree); - delayRegsToFree = RBM_NONE; + delayRegsToFree = RBM_NONE; + regsInUseThisLocation = RBM_NONE; } regsToFree = delayRegsToFree; delayRegsToFree = RBM_NONE; + +#ifdef DEBUG + // Validate the current state just after we've freed the registers. This ensures that any pending + // freed registers will have had their state updated to reflect the intervals they were holding. + for (regNumber reg = REG_FIRST; reg < ACTUAL_REG_COUNT; reg = REG_NEXT(reg)) + { + regMaskTP regMask = genRegMask(reg); + // If this isn't available or if it's still waiting to be freed (i.e. it was in + // delayRegsToFree and so now it's in regsToFree), then skip it. + if ((regMask & (availableIntRegs | availableFloatRegs) & ~regsToFree) == RBM_NONE) + { + continue; + } + RegRecord* physRegRecord = getRegisterRecord(reg); + Interval* assignedInterval = physRegRecord->assignedInterval; + if (assignedInterval != nullptr) + { + bool isAssignedReg = (assignedInterval->physReg == reg); + RefPosition* recentRefPosition = assignedInterval->recentRefPosition; + // If we have a copyReg or a moveReg, we might have assigned this register to an Interval, + // but that isn't considered its assignedReg. + if (recentRefPosition != nullptr) + { + if (recentRefPosition->refType == RefTypeExpUse) + { + // We don't update anything on these, as they're just placeholders to extend the + // lifetime. + continue; + } + // For copyReg or moveReg, we don't have anything further to assert. + if (recentRefPosition->copyReg || recentRefPosition->moveReg) + { + continue; + } + assert(assignedInterval->isConstant == isRegConstant(reg, assignedInterval->registerType)); + if (assignedInterval->isActive) + { + // If this is not the register most recently allocated, it must be from a copyReg, + // or it was placed there by the inVarToRegMap. In either case it must be a lclVar. + + if (!isAssignedToInterval(assignedInterval, physRegRecord)) + { + assert(assignedInterval->isLocalVar); + // We'd like to assert that this was either set by the inVarToRegMap, or by + // a copyReg, but we can't traverse backward to check for a copyReg, because + // we only have recentRefPosition, and there may be a previous RefPosition + // at the same Location with a copyReg. + } + if (isAssignedReg) + { + assert(nextIntervalRef[reg] == assignedInterval->getNextRefLocation()); + assert(!isRegAvailable(reg, assignedInterval->registerType)); + assert((recentRefPosition == nullptr) || + (spillCost[reg] == getSpillWeight(physRegRecord))); + } + else + { + assert((nextIntervalRef[reg] == MaxLocation) || + isRegBusy(reg, assignedInterval->registerType)); + } + } + else + { + if ((assignedInterval->physReg == reg) && !assignedInterval->isConstant) + { + assert(nextIntervalRef[reg] == assignedInterval->getNextRefLocation()); + } + else + { + assert(nextIntervalRef[reg] == MaxLocation); + assert(isRegAvailable(reg, assignedInterval->registerType)); + assert(spillCost[reg] == 0); + } + } + } + } + else + { + assert(isRegAvailable(reg, physRegRecord->registerType)); + assert(!isRegConstant(reg, physRegRecord->registerType)); + assert(nextIntervalRef[reg] == MaxLocation); + assert(spillCost[reg] == 0); + } + LsraLocation thisNextFixedRef = physRegRecord->getNextRefLocation(); + assert(nextFixedRef[reg] == thisNextFixedRef); +#ifdef TARGET_ARM + // If this is occupied by a double interval, skip the corresponding float reg. + if ((assignedInterval != nullptr) && (assignedInterval->registerType == TYP_DOUBLE)) + { + reg = REG_NEXT(reg); + } +#endif + } +#endif // DEBUG } } prevLocation = currentLocation; @@ -5495,9 +5523,11 @@ void LinearScan::allocateRegisters() { // Free any delayed regs (now in regsToFree) before processing the block boundary freeRegisters(regsToFree); - regsToFree = RBM_NONE; - handledBlockEnd = true; - curBBStartLocation = currentRefPosition->nodeLocation; + regsToFree = RBM_NONE; + regsInUseThisLocation = RBM_NONE; + regsInUseNextLocation = RBM_NONE; + handledBlockEnd = true; + curBBStartLocation = currentRefPosition->nodeLocation; if (currentBlock == nullptr) { currentBlock = startBlockSequence(); @@ -5523,42 +5553,50 @@ void LinearScan::allocateRegisters() continue; } - // If this is a FixedReg, disassociate any inactive constant interval from this register. - // Otherwise, do nothing. - if (refType == RefTypeFixedReg) + if (currentRefPosition->isPhysRegRef) { RegRecord* regRecord = currentRefPosition->getReg(); Interval* assignedInterval = regRecord->assignedInterval; - if (assignedInterval != nullptr && !assignedInterval->isActive && assignedInterval->isConstant) + updateNextFixedRef(regRecord, currentRefPosition->nextRefPosition); + + // If this is a FixedReg, disassociate any inactive constant interval from this register. + // Otherwise, do nothing. + if (refType == RefTypeFixedReg) { - regRecord->assignedInterval = nullptr; + if (assignedInterval != nullptr && !assignedInterval->isActive && assignedInterval->isConstant) + { + clearConstantReg(regRecord->regNum, assignedInterval->registerType); + regRecord->assignedInterval = nullptr; + spillCost[regRecord->regNum] = 0; #ifdef TARGET_ARM - // Update overlapping floating point register for TYP_DOUBLE - if (assignedInterval->registerType == TYP_DOUBLE) - { - regRecord = findAnotherHalfRegRec(regRecord); - assert(regRecord->assignedInterval == assignedInterval); - regRecord->assignedInterval = nullptr; + // Update overlapping floating point register for TYP_DOUBLE + if (assignedInterval->registerType == TYP_DOUBLE) + { + RegRecord* otherRegRecord = findAnotherHalfRegRec(regRecord); + assert(otherRegRecord->assignedInterval == assignedInterval); + otherRegRecord->assignedInterval = nullptr; + spillCost[otherRegRecord->regNum] = 0; + } +#endif // TARGET_ARM } -#endif + regsInUseThisLocation |= currentRefPosition->registerAssignment; + INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_FIXED_REG, nullptr, currentRefPosition->assignedReg())); + continue; } - INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_FIXED_REG, nullptr, currentRefPosition->assignedReg())); - continue; - } - if (refType == RefTypeKill) - { - RegRecord* currentReg = currentRefPosition->getReg(); - Interval* assignedInterval = currentReg->assignedInterval; - - if (assignedInterval != nullptr) + if (refType == RefTypeKill) { - unassignPhysReg(currentReg, assignedInterval->recentRefPosition); + if (assignedInterval != nullptr) + { + unassignPhysReg(regRecord, assignedInterval->recentRefPosition); + clearConstantReg(regRecord->regNum, assignedInterval->registerType); + makeRegAvailable(regRecord->regNum, assignedInterval->registerType); + } + clearRegBusyUntilKill(regRecord->regNum); + INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_KEPT_ALLOCATION, nullptr, regRecord->regNum)); + continue; } - currentReg->isBusyUntilNextKill = false; - INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_KEPT_ALLOCATION, nullptr, currentReg->regNum)); - continue; } // If this is an exposed use, do nothing - this is merely a placeholder to attempt to @@ -5568,6 +5606,11 @@ void LinearScan::allocateRegisters() if (refType == RefTypeExpUse) { INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_EXP_USE)); + currentInterval = currentRefPosition->getInterval(); + if (currentInterval->physReg != REG_NA) + { + updateNextIntervalRef(currentInterval->physReg, currentInterval); + } continue; } @@ -5620,6 +5663,12 @@ void LinearScan::allocateRegisters() INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_NO_ENTRY_REG_ALLOCATED, currentInterval)); didDump = true; setIntervalAsSpilled(currentInterval); + if (assignedRegister != REG_NA) + { + clearNextIntervalRef(assignedRegister, currentInterval->registerType); + clearSpillCost(assignedRegister, currentInterval->registerType); + makeRegAvailable(assignedRegister, currentInterval->registerType); + } } } #ifdef FEATURE_SIMD @@ -5704,7 +5753,7 @@ void LinearScan::allocateRegisters() // as special. if (srcInterval->isActive && genRegMask(srcInterval->physReg) == currentRefPosition->registerAssignment && - currentInterval->getNextRefLocation() == physRegRecord->getNextRefLocation()) + currentInterval->getNextRefLocation() == nextFixedRef[srcInterval->physReg]) { assert(physRegRecord->regNum == srcInterval->physReg); @@ -5720,7 +5769,7 @@ void LinearScan::allocateRegisters() // special putarg_reg doesn't get spilled and re-allocated prior to // its use at the call node. This is ensured by marking physical reg // record as busy until next kill. - physRegRecord->isBusyUntilNextKill = true; + setRegBusyUntilKill(srcInterval->physReg, srcInterval->registerType); } else { @@ -5762,7 +5811,10 @@ void LinearScan::allocateRegisters() else { currentInterval->isActive = true; + setRegInUse(assignedRegister, currentInterval->registerType); + updateSpillCost(assignedRegister, currentInterval); } + updateNextIntervalRef(assignedRegister, currentInterval); } assert(currentInterval->assignedReg != nullptr && currentInterval->assignedReg->regNum == assignedRegister && @@ -5792,18 +5844,20 @@ void LinearScan::allocateRegisters() // Will the assigned register cover the lifetime? If not, does it at least // meet the preferences for the next RefPosition? - RegRecord* physRegRecord = getRegisterRecord(currentInterval->physReg); - RefPosition* nextPhysRegRefPos = physRegRecord->getNextRefPosition(); - if (nextPhysRegRefPos != nullptr && - nextPhysRegRefPos->nodeLocation <= currentInterval->lastRefPosition->nodeLocation) + LsraLocation nextPhysRegLocation = nextFixedRef[assignedRegister]; + if (nextPhysRegLocation <= currentInterval->lastRefPosition->nodeLocation) { // Check to see if the existing assignment matches the preferences (e.g. callee save registers) // and ensure that the next use of this localVar does not occur after the nextPhysRegRefPos // There must be a next RefPosition, because we know that the Interval extends beyond the // nextPhysRegRefPos. assert(nextRefPosition != nullptr); - if (!matchesPreferences || nextPhysRegRefPos->nodeLocation < nextRefPosition->nodeLocation || - physRegRecord->conflictingFixedRegReference(nextRefPosition)) + if (!matchesPreferences || nextPhysRegLocation < nextRefPosition->nodeLocation) + { + keepAssignment = false; + } + else if ((nextRefPosition->registerAssignment != assignedRegBit) && + (nextPhysRegLocation <= nextRefPosition->getRefEndLocation())) { keepAssignment = false; } @@ -5821,7 +5875,9 @@ void LinearScan::allocateRegisters() if (keepAssignment == false) { + RegRecord* physRegRecord = getRegisterRecord(currentInterval->physReg); currentRefPosition->registerAssignment = allRegs(currentInterval->registerType); + currentRefPosition->isFixedRegRef = false; unassignPhysRegNoSpill(physRegRecord); // If the preferences are currently set to just this register, reset them to allRegs @@ -5847,18 +5903,22 @@ void LinearScan::allocateRegisters() if (assignedRegister != REG_NA) { RegRecord* physRegRecord = getRegisterRecord(assignedRegister); - - // If there is a conflicting fixed reference, insert a copy. - if (physRegRecord->conflictingFixedRegReference(currentRefPosition)) + assert((assignedRegBit == currentRefPosition->registerAssignment) || + (physRegRecord->assignedInterval == currentInterval) || + !isRegInUse(assignedRegister, currentInterval->registerType)); + if (conflictingFixedRegReference(assignedRegister, currentRefPosition)) { // We may have already reassigned the register to the conflicting reference. // If not, we need to unassign this interval. if (physRegRecord->assignedInterval == currentInterval) { unassignPhysRegNoSpill(physRegRecord); + physRegRecord->assignedInterval = nullptr; + clearConstantReg(assignedRegister, currentInterval->registerType); } currentRefPosition->moveReg = true; assignedRegister = REG_NA; + currentRefPosition->registerAssignment &= ~assignedRegBit; setIntervalAsSplit(currentInterval); INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_MOVE_REG, currentInterval, assignedRegister)); } @@ -5907,37 +5967,52 @@ void LinearScan::allocateRegisters() } } } + regMaskTP copyRegMask = getRegMask(copyReg, currentInterval->registerType); + regMaskTP assignedRegMask = getRegMask(assignedRegister, currentInterval->registerType); + regsInUseThisLocation |= copyRegMask | assignedRegMask; if (currentRefPosition->lastUse) - { - assert(currentRefPosition->isIntervalRef()); - unassign = true; - } - if (unassign) { if (currentRefPosition->delayRegFree) { INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_LAST_USE_DELAYED, currentInterval, assignedRegister)); - delayRegsToFree |= (genRegMask(assignedRegister) | currentRefPosition->registerAssignment); + delayRegsToFree |= copyRegMask | assignedRegMask; + regsInUseNextLocation |= copyRegMask | assignedRegMask; } else { INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_LAST_USE, currentInterval, assignedRegister)); - regsToFree |= (genRegMask(assignedRegister) | currentRefPosition->registerAssignment); + regsToFree |= copyRegMask | assignedRegMask; + } + } + else + { + copyRegsToFree |= copyRegMask; + if (currentRefPosition->delayRegFree) + { + regsInUseNextLocation |= copyRegMask | assignedRegMask; } } + // If this is a tree temp (non-localVar) interval, we will need an explicit move. + // Note: In theory a moveReg should cause the Interval to now have the new reg as its + // assigned register. However, that's not currently how this works. + // If we ever actually move lclVar intervals instead of copying, this will need to change. if (!currentInterval->isLocalVar) { currentRefPosition->moveReg = true; currentRefPosition->copyReg = false; } + clearNextIntervalRef(copyReg, currentInterval->registerType); + clearSpillCost(copyReg, currentInterval->registerType); + updateNextIntervalRef(assignedRegister, currentInterval); + updateSpillCost(assignedRegister, currentInterval); continue; } else { INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_NEEDS_NEW_REG, nullptr, assignedRegister)); - regsToFree |= genRegMask(assignedRegister); + regsToFree |= getRegMask(assignedRegister, currentInterval->registerType); // We want a new register, but we don't want this to be considered a spill. assignedRegister = REG_NA; if (physRegRecord->assignedInterval == currentInterval) @@ -5950,21 +6025,19 @@ void LinearScan::allocateRegisters() if (assignedRegister == REG_NA) { - bool allocateReg = true; - if (currentRefPosition->RegOptional()) { - // We can avoid allocating a register if it is a the last use requiring a reload. + // We can avoid allocating a register if it is a last use requiring a reload. if (currentRefPosition->lastUse && currentRefPosition->reload) { - allocateReg = false; + allocate = false; } else if (currentInterval->isWriteThru) { // Don't allocate if the next reference is in a cold block. if (nextRefPosition == nullptr || (nextRefPosition->nodeLocation >= firstColdLoc)) { - allocateReg = false; + allocate = false; } } @@ -5974,71 +6047,43 @@ void LinearScan::allocateRegisters() if ((currentRefPosition->refType == RefTypeUpperVectorRestore) && (currentInterval->physReg == REG_NA)) { assert(currentRefPosition->regOptional); - allocateReg = false; + allocate = false; } #endif #ifdef DEBUG // Under stress mode, don't allocate registers to RegOptional RefPositions. - if (allocateReg && regOptionalNoAlloc()) + if (allocate && regOptionalNoAlloc()) { - allocateReg = false; + allocate = false; } #endif } - if (allocateReg) + if (allocate) { - // Try to allocate a register - assignedRegister = tryAllocateFreeReg(currentInterval, currentRefPosition); + // Allocate a register, if we must, or if it is profitable to do so. + // If we have a fixed reg requirement, and the interval is inactive in another register, + // unassign that register. + if (currentRefPosition->isFixedRegRef && !currentInterval->isActive && + (currentInterval->assignedReg != nullptr) && + (currentInterval->assignedReg->assignedInterval == currentInterval) && + (genRegMask(currentInterval->assignedReg->regNum) != currentRefPosition->registerAssignment)) + { + unassignPhysReg(currentInterval->assignedReg, nullptr); + } + assignedRegister = allocateReg(currentInterval, currentRefPosition); } - // If no register was found, and if the currentRefPosition must have a register, - // then find a register to spill + // If no register was found, this RefPosition must not require a register. if (assignedRegister == REG_NA) { - bool isAllocatable = currentRefPosition->IsActualRef(); -#if FEATURE_PARTIAL_SIMD_CALLEE_SAVE && defined(TARGET_ARM64) - if (currentInterval->isUpperVector) - { - // On Arm64, we can't save the upper half to memory without a register. - isAllocatable = true; - assert(!currentRefPosition->RegOptional()); - } -#endif // FEATURE_PARTIAL_SIMD_CALLEE_SAVE && TARGET_ARM64 - if (isAllocatable) - { - if (allocateReg) - { - assignedRegister = - allocateBusyReg(currentInterval, currentRefPosition, currentRefPosition->RegOptional()); - } - - if (assignedRegister != REG_NA) - { - INDEBUG( - dumpLsraAllocationEvent(LSRA_EVENT_ALLOC_SPILLED_REG, currentInterval, assignedRegister)); - } - else - { - // This can happen only for those ref positions that are to be allocated - // only if profitable. - noway_assert(currentRefPosition->RegOptional()); - - currentRefPosition->registerAssignment = RBM_NONE; - currentRefPosition->reload = false; - setIntervalAsSpilled(currentInterval); - - INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_NO_REG_ALLOCATED, currentInterval)); - } - } - else - { - INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_NO_REG_ALLOCATED, currentInterval)); - currentRefPosition->registerAssignment = RBM_NONE; - currentInterval->isActive = false; - setIntervalAsSpilled(currentInterval); - } + assert(currentRefPosition->RegOptional()); + INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_NO_REG_ALLOCATED, currentInterval)); + currentRefPosition->registerAssignment = RBM_NONE; + currentRefPosition->reload = false; + currentInterval->isActive = false; + setIntervalAsSpilled(currentInterval); } #ifdef DEBUG else @@ -6072,12 +6117,19 @@ void LinearScan::allocateRegisters() } // If we allocated a register, record it - if (currentInterval != nullptr && assignedRegister != REG_NA) + if (assignedRegister != REG_NA) { - assignedRegBit = genRegMask(assignedRegister); + assignedRegBit = genRegMask(assignedRegister); + regMaskTP regMask = getRegMask(assignedRegister, currentInterval->registerType); + regsInUseThisLocation |= regMask; + if (currentRefPosition->delayRegFree) + { + regsInUseNextLocation |= regMask; + } currentRefPosition->registerAssignment = assignedRegBit; - currentInterval->physReg = assignedRegister; - regsToFree &= ~assignedRegBit; // we'll set it again later if it's dead + + currentInterval->physReg = assignedRegister; + regsToFree &= ~regMask; // we'll set it again later if it's dead // If this interval is dead, free the register. // The interval could be dead if this is a user variable, or if the @@ -6085,9 +6137,10 @@ void LinearScan::allocateRegisters() // is not used, etc. // If this is an UpperVector we'll neither free it nor preference it // (it will be freed when it is used). + bool stillInReg = true; + bool unassign = false; if (!currentInterval->IsUpperVector()) { - bool unassign = false; if (currentInterval->isWriteThru) { if (currentRefPosition->refType == RefTypeDef) @@ -6105,44 +6158,57 @@ void LinearScan::allocateRegisters() if (currentRefPosition->lastUse || currentRefPosition->nextRefPosition == nullptr) { assert(currentRefPosition->isIntervalRef()); - - if (refType != RefTypeExpUse && currentRefPosition->nextRefPosition == nullptr) + // If this isn't a final use, we'll mark the register as available, but keep the association. + if ((refType != RefTypeExpUse) && (currentRefPosition->nextRefPosition == nullptr)) { unassign = true; } else { + if (currentRefPosition->delayRegFree) + { + delayRegsToMakeInactive |= regMask; + } + else + { + regsToMakeInactive |= regMask; + } + // TODO-Cleanup: this makes things consistent with previous, and will enable preferences + // to be propagated, but it seems less than ideal. currentInterval->isActive = false; } + // Update the register preferences for the relatedInterval, if this is 'preferencedToDef'. + // Don't propagate to subsequent relatedIntervals; that will happen as they are allocated, and we + // don't know yet whether the register will be retained. + if (currentInterval->relatedInterval != nullptr) + { + currentInterval->relatedInterval->updateRegisterPreferences(assignedRegBit); + } } + if (unassign) { if (currentRefPosition->delayRegFree) { - delayRegsToFree |= assignedRegBit; + delayRegsToFree |= regMask; INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_LAST_USE_DELAYED)); } else { - regsToFree |= assignedRegBit; + regsToFree |= regMask; INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_LAST_USE)); } } - - // Update the register preferences for the relatedInterval, if this is 'preferencedToDef'. - // Don't propagate to subsequent relatedIntervals; that will happen as they are allocated, and we - // don't know yet whether the register will be retained. - if ((currentRefPosition->lastUse || nextRefPosition == nullptr) && - (currentInterval->relatedInterval != nullptr)) - { - currentInterval->relatedInterval->updateRegisterPreferences(assignedRegBit); - } } - - lastAllocatedRefPosition = currentRefPosition; + if (!unassign) + { + updateNextIntervalRef(assignedRegister, currentInterval); + updateSpillCost(assignedRegister, currentInterval); + } } + lastAllocatedRefPosition = currentRefPosition; } #ifdef JIT32_GCENCODER @@ -6284,20 +6350,46 @@ void LinearScan::updateAssignedInterval(RegRecord* reg, Interval* interval, Regi #ifdef TARGET_ARM // Update overlapping floating point register for TYP_DOUBLE. Interval* oldAssignedInterval = reg->assignedInterval; + regNumber doubleReg = REG_NA; if (regType == TYP_DOUBLE) { - RegRecord* anotherHalfReg = findAnotherHalfRegRec(reg); - + doubleReg = reg->regNum; + RegRecord* anotherHalfReg = getSecondHalfRegRec(reg); anotherHalfReg->assignedInterval = interval; } else if ((oldAssignedInterval != nullptr) && (oldAssignedInterval->registerType == TYP_DOUBLE)) { - RegRecord* anotherHalfReg = findAnotherHalfRegRec(reg); - + RegRecord* anotherHalfReg = findAnotherHalfRegRec(reg); + doubleReg = genIsValidDoubleReg(reg->regNum) ? reg->regNum : anotherHalfReg->regNum; anotherHalfReg->assignedInterval = nullptr; } + if (doubleReg != REG_NA) + { + clearNextIntervalRef(doubleReg, TYP_DOUBLE); + clearSpillCost(doubleReg, TYP_DOUBLE); + clearConstantReg(doubleReg, TYP_DOUBLE); + } #endif reg->assignedInterval = interval; + if (interval != nullptr) + { + setRegInUse(reg->regNum, interval->registerType); + if (interval->isConstant) + { + setConstantReg(reg->regNum, interval->registerType); + } + else + { + clearConstantReg(reg->regNum, interval->registerType); + } + updateNextIntervalRef(reg->regNum, interval); + updateSpillCost(reg->regNum, interval); + } + else + { + clearNextIntervalRef(reg->regNum, reg->registerType); + clearSpillCost(reg->regNum, reg->registerType); + } } //----------------------------------------------------------------------------- @@ -10018,7 +10110,7 @@ void LinearScan::dumpLsraAllocationEvent(LsraDumpEvent event, } if ((interval != nullptr) && (reg != REG_NA) && (reg != REG_STK)) { - registersToDump |= genRegMask(reg); + registersToDump |= getRegMask(reg, interval->registerType); dumpRegRecordTitleIfNeeded(); } @@ -10074,16 +10166,10 @@ void LinearScan::dumpLsraAllocationEvent(LsraDumpEvent event, break; // Restoring the previous register - case LSRA_EVENT_RESTORE_PREVIOUS_INTERVAL_AFTER_SPILL: - assert(interval != nullptr); - dumpRefPositionShort(activeRefPosition, currentBlock); - printf("SRstr %-4s ", getRegName(reg)); - dumpRegRecords(); - break; - case LSRA_EVENT_RESTORE_PREVIOUS_INTERVAL: + case LSRA_EVENT_RESTORE_PREVIOUS_INTERVAL_AFTER_SPILL: assert(interval != nullptr); - if (activeRefPosition == nullptr) + if ((activeRefPosition == nullptr) || (activeRefPosition->refType == RefTypeBB)) { printf(emptyRefPositionFormat, ""); } @@ -10091,7 +10177,7 @@ void LinearScan::dumpLsraAllocationEvent(LsraDumpEvent event, { dumpRefPositionShort(activeRefPosition, currentBlock); } - printf("Restr %-4s ", getRegName(reg)); + printf((event == LSRA_EVENT_RESTORE_PREVIOUS_INTERVAL) ? "Restr %-4s " : "SRstr %-4s ", getRegName(reg)); dumpRegRecords(); break; @@ -10166,11 +10252,6 @@ void LinearScan::dumpLsraAllocationEvent(LsraDumpEvent event, printf("Reuse %-4s ", getRegName(reg)); break; - case LSRA_EVENT_ALLOC_SPILLED_REG: - dumpRefPositionShort(activeRefPosition, currentBlock); - printf("Steal %-4s ", getRegName(reg)); - break; - case LSRA_EVENT_NO_ENTRY_REG_ALLOCATED: assert(interval != nullptr && interval->isLocalVar); dumpRefPositionShort(activeRefPosition, currentBlock); @@ -10412,12 +10493,12 @@ void LinearScan::dumpRegRecords() { static char columnFormatArray[18]; - for (int regNumIndex = 0; regNumIndex <= lastUsedRegNumIndex; regNumIndex++) + for (regNumber regNum = REG_FIRST; regNum <= (regNumber)lastUsedRegNumIndex; regNum = REG_NEXT(regNum)) { - if (shouldDumpReg((regNumber)regNumIndex)) + if (shouldDumpReg(regNum)) { printf("%s", columnSeparator); - RegRecord& regRecord = physRegs[regNumIndex]; + RegRecord& regRecord = physRegs[regNum]; Interval* interval = regRecord.assignedInterval; if (interval != nullptr) { @@ -10431,7 +10512,7 @@ void LinearScan::dumpRegRecords() #endif // FEATURE_PARTIAL_SIMD_CALLEE_SAVE printf("%c", activeChar); } - else if (regRecord.isBusyUntilNextKill) + else if ((genRegMask(regNum) & regsBusyUntilKill) != RBM_NONE) { printf(columnFormatArray, "Busy"); } @@ -10957,8 +11038,11 @@ void LinearScan::verifyFinalAllocation() } else { - interval->physReg = regNum; - interval->assignedReg = regRecord; + if (!currentRefPosition->copyReg) + { + interval->physReg = regNum; + interval->assignedReg = regRecord; + } regRecord->assignedInterval = interval; } } diff --git a/src/coreclr/src/jit/lsra.h b/src/coreclr/src/jit/lsra.h index 0d443f900c6cd..a89a008dd6026 100644 --- a/src/coreclr/src/jit/lsra.h +++ b/src/coreclr/src/jit/lsra.h @@ -471,12 +471,11 @@ class RegRecord : public Referenceable public: RegRecord() { - assignedInterval = nullptr; - previousInterval = nullptr; - regNum = REG_NA; - isCalleeSave = false; - registerType = IntRegisterType; - isBusyUntilNextKill = false; + assignedInterval = nullptr; + previousInterval = nullptr; + regNum = REG_NA; + isCalleeSave = false; + registerType = IntRegisterType; } void init(regNumber reg) @@ -511,8 +510,6 @@ class RegRecord : public Referenceable void tinyDump(); #endif // DEBUG - bool isFree(); - // RefPosition * getNextRefPosition(); // LsraLocation getNextRefLocation(); @@ -528,15 +525,10 @@ class RegRecord : public Referenceable // assignedInterval becomes inactive. Interval* previousInterval; - regNumber regNum; - bool isCalleeSave; - RegisterType registerType; - // This register must be considered busy until the next time it is explicitly killed. - // This is used so that putarg_reg can avoid killing its lclVar source, while avoiding - // the problem with the reg becoming free if the last-use is encountered before the call. - bool isBusyUntilNextKill; - - bool conflictingFixedRegReference(RefPosition* refPosition); + regNumber regNum; + bool isCalleeSave; + RegisterType registerType; + unsigned char regOrder; }; inline bool leafInRange(GenTree* leaf, int lower, int upper) @@ -976,9 +968,7 @@ class LinearScan : public LinearScanInterface bool isSecondHalfReg(RegRecord* regRec, Interval* interval); RegRecord* getSecondHalfRegRec(RegRecord* regRec); RegRecord* findAnotherHalfRegRec(RegRecord* regRec); - bool canSpillDoubleReg(RegRecord* physRegRecord, - LsraLocation refLocation, - BasicBlock::weight_t* recentAssignedRefWeight); + bool canSpillDoubleReg(RegRecord* physRegRecord, LsraLocation refLocation); void unassignDoublePhysReg(RegRecord* doubleRegRecord); #endif void updateAssignedInterval(RegRecord* reg, Interval* interval, RegisterType regType); @@ -986,8 +976,8 @@ class LinearScan : public LinearScanInterface bool canRestorePreviousInterval(RegRecord* regRec, Interval* assignedInterval); bool isAssignedToInterval(Interval* interval, RegRecord* regRec); bool isRefPositionActive(RefPosition* refPosition, LsraLocation refLocation); - bool canSpillReg(RegRecord* physRegRecord, LsraLocation refLocation, BasicBlock::weight_t* recentAssignedRefWeight); - bool isRegInUse(RegRecord* regRec, RefPosition* refPosition); + bool canSpillReg(RegRecord* physRegRecord, LsraLocation refLocation); + float getSpillWeight(RegRecord* physRegRecord); // insert refpositions representing prolog zero-inits which will be added later void insertZeroInitRefPositions(); @@ -1056,11 +1046,7 @@ class LinearScan : public LinearScanInterface regMaskTP allSIMDRegs(); regMaskTP internalFloatRegCandidates(); - bool registerIsFree(regNumber regNum, RegisterType regType); - bool registerIsAvailable(RegRecord* physRegRecord, - LsraLocation currentLoc, - LsraLocation* nextRefLocationPtr, - RegisterType regType); + void makeRegisterInactive(RegRecord* physRegRecord); void freeRegister(RegRecord* physRegRecord); void freeRegisters(regMaskTP regsToFree); @@ -1143,15 +1129,12 @@ class LinearScan : public LinearScanInterface * Register management ****************************************************************************/ RegisterType getRegisterType(Interval* currentInterval, RefPosition* refPosition); - regNumber tryAllocateFreeReg(Interval* current, RefPosition* refPosition); - regNumber allocateBusyReg(Interval* current, RefPosition* refPosition, bool allocateIfProfitable); + + regNumber allocateReg(Interval* current, RefPosition* refPosition); regNumber assignCopyReg(RefPosition* refPosition); bool isMatchingConstant(RegRecord* physRegRecord, RefPosition* refPosition); - bool isSpillCandidate(Interval* current, - RefPosition* refPosition, - RegRecord* physRegRecord, - LsraLocation& nextLocation); + bool isSpillCandidate(Interval* current, RefPosition* refPosition, RegRecord* physRegRecord); void checkAndAssignInterval(RegRecord* regRec, Interval* interval); void assignPhysReg(RegRecord* regRec, Interval* interval); void assignPhysReg(regNumber reg, Interval* interval) @@ -1160,7 +1143,6 @@ class LinearScan : public LinearScanInterface } bool isAssigned(RegRecord* regRec ARM_ARG(RegisterType newRegType)); - bool isAssigned(RegRecord* regRec, LsraLocation lastLocation ARM_ARG(RegisterType newRegType)); void checkAndClearInterval(RegRecord* regRec, RefPosition* spillRefPosition); void unassignPhysReg(RegRecord* regRec ARM_ARG(RegisterType newRegType)); void unassignPhysReg(RegRecord* regRec, RefPosition* spillRefPosition); @@ -1176,6 +1158,59 @@ class LinearScan : public LinearScanInterface void spillGCRefs(RefPosition* killRefPosition); + /***************************************************************************** + * Register selection + ****************************************************************************/ + regMaskTP getFreeCandidates(regMaskTP candidates, var_types regType) + { + regMaskTP result = candidates & m_AvailableRegs; +#ifdef TARGET_ARM + // For TYP_DOUBLE on ARM, we can only use register for which the odd half is + // also available. + if (regType == TYP_DOUBLE) + { + result &= (m_AvailableRegs >> 1); + } +#endif // TARGET_ARM + return result; + } + + struct registerSelector + { + regMaskTP candidates; + int score; +#ifdef TARGET_ARM + var_types regType; +#endif // TARGET_ARM + + // Apply a simple mask-based selection heuristic, and return 'true' if we now have a single candidate. + bool applySelection(int selectionScore, regMaskTP selectionCandidates) + { + regMaskTP newCandidates = candidates & selectionCandidates; + if (newCandidates != RBM_NONE) + { + score += selectionScore; + candidates = newCandidates; + return isSingleRegister(candidates); + } + return false; + } + + // Select a single register, if it is in the candidate set. + // Return true if so. + bool applySingleRegSelection(int selectionScore, regMaskTP selectionCandidate) + { + assert(isSingleRegister(selectionCandidate)); + regMaskTP newCandidates = candidates & selectionCandidate; + if (newCandidates != RBM_NONE) + { + candidates = newCandidates; + return true; + } + return false; + } + }; + /***************************************************************************** * For Resolution phase ****************************************************************************/ @@ -1316,8 +1351,7 @@ class LinearScan : public LinearScanInterface // Allocation decisions LSRA_EVENT_FIXED_REG, LSRA_EVENT_EXP_USE, LSRA_EVENT_ZERO_REF, LSRA_EVENT_NO_ENTRY_REG_ALLOCATED, LSRA_EVENT_KEPT_ALLOCATION, LSRA_EVENT_COPY_REG, LSRA_EVENT_MOVE_REG, LSRA_EVENT_ALLOC_REG, - LSRA_EVENT_ALLOC_SPILLED_REG, LSRA_EVENT_NO_REG_ALLOCATED, LSRA_EVENT_RELOAD, LSRA_EVENT_SPECIAL_PUTARG, - LSRA_EVENT_REUSE_REG, + LSRA_EVENT_NO_REG_ALLOCATED, LSRA_EVENT_RELOAD, LSRA_EVENT_SPECIAL_PUTARG, LSRA_EVENT_REUSE_REG, }; void dumpLsraAllocationEvent(LsraDumpEvent event, Interval* interval = nullptr, @@ -1488,6 +1522,154 @@ class LinearScan : public LinearScanInterface VARSET_TP largeVectorCalleeSaveCandidateVars; #endif // FEATURE_PARTIAL_SIMD_CALLEE_SAVE + //----------------------------------------------------------------------- + // Register status + //----------------------------------------------------------------------- + + regMaskTP m_AvailableRegs; + regNumber getRegForType(regNumber reg, var_types regType) + { +#ifdef TARGET_ARM + if ((regType == TYP_DOUBLE) && !genIsValidDoubleReg(reg)) + { + reg = REG_PREV(reg); + } +#endif // TARGET_ARM + return reg; + } + + regMaskTP getRegMask(regNumber reg, var_types regType) + { + reg = getRegForType(reg, regType); + regMaskTP regMask = genRegMask(reg); +#ifdef TARGET_ARM + if (regType == TYP_DOUBLE) + { + assert(genIsValidDoubleReg(reg)); + regMask |= (regMask << 1); + } +#endif // TARGET_ARM + return regMask; + } + + void resetAvailableRegs() + { + m_AvailableRegs = (availableIntRegs | availableFloatRegs); + m_RegistersWithConstants = RBM_NONE; + } + + bool isRegAvailable(regNumber reg, var_types regType) + { + regMaskTP regMask = getRegMask(reg, regType); + return (m_AvailableRegs & regMask) == regMask; + } + void setRegsInUse(regMaskTP regMask) + { + m_AvailableRegs &= ~regMask; + } + void setRegInUse(regNumber reg, var_types regType) + { + regMaskTP regMask = getRegMask(reg, regType); + setRegsInUse(regMask); + } + void makeRegsAvailable(regMaskTP regMask) + { + m_AvailableRegs |= regMask; + } + void makeRegAvailable(regNumber reg, var_types regType) + { + regMaskTP regMask = getRegMask(reg, regType); + makeRegsAvailable(regMask); + } + + void clearNextIntervalRef(regNumber reg, var_types regType); + void updateNextIntervalRef(regNumber reg, Interval* interval); + + void clearSpillCost(regNumber reg, var_types regType); + void updateSpillCost(regNumber reg, Interval* interval); + + regMaskTP m_RegistersWithConstants; + void clearConstantReg(regNumber reg, var_types regType) + { + m_RegistersWithConstants &= ~getRegMask(reg, regType); + } + void setConstantReg(regNumber reg, var_types regType) + { + m_RegistersWithConstants |= getRegMask(reg, regType); + } + bool isRegConstant(regNumber reg, var_types regType) + { + reg = getRegForType(reg, regType); + regMaskTP regMask = getRegMask(reg, regType); + return (m_RegistersWithConstants & regMask) == regMask; + } + regMaskTP getMatchingConstants(regMaskTP mask, Interval* currentInterval, RefPosition* refPosition); + + regMaskTP fixedRegs; + LsraLocation nextFixedRef[REG_COUNT]; + void updateNextFixedRef(RegRecord* regRecord, RefPosition* nextRefPosition); + LsraLocation getNextFixedRef(regNumber regNum, var_types regType) + { + LsraLocation loc = nextFixedRef[regNum]; +#ifdef TARGET_ARM + if (regType == TYP_DOUBLE) + { + loc = Min(loc, nextFixedRef[regNum + 1]); + } +#endif + return loc; + } + + LsraLocation nextIntervalRef[REG_COUNT]; + LsraLocation getNextIntervalRef(regNumber regNum, var_types regType) + { + LsraLocation loc = nextIntervalRef[regNum]; +#ifdef TARGET_ARM + if (regType == TYP_DOUBLE) + { + loc = Min(loc, nextIntervalRef[regNum + 1]); + } +#endif + return loc; + } + float spillCost[REG_COUNT]; + + regMaskTP regsBusyUntilKill; + regMaskTP regsInUseThisLocation; + regMaskTP regsInUseNextLocation; + bool isRegBusy(regNumber reg, var_types regType) + { + regMaskTP regMask = getRegMask(reg, regType); + return (regsBusyUntilKill & regMask) != RBM_NONE; + } + void setRegBusyUntilKill(regNumber reg, var_types regType) + { + regsBusyUntilKill |= getRegMask(reg, regType); + } + void clearRegBusyUntilKill(regNumber reg) + { + regsBusyUntilKill &= ~genRegMask(reg); + } + + bool isRegInUse(regNumber reg, var_types regType) + { + regMaskTP regMask = getRegMask(reg, regType); + return (regsInUseThisLocation & regMask) != RBM_NONE; + } + + void resetRegState() + { + resetAvailableRegs(); + regsBusyUntilKill = RBM_NONE; + } + + bool conflictingFixedRegReference(regNumber regNum, RefPosition* refPosition); + + // This method should not be used and is here to retain old behavior. + // It should be replaced by isRegAvailable(). + // See comment in allocateReg(); + bool isFree(RegRecord* regRecord); + //----------------------------------------------------------------------- // Build methods //----------------------------------------------------------------------- @@ -1551,7 +1733,7 @@ class LinearScan : public LinearScanInterface int BuildSimple(GenTree* tree); int BuildOperandUses(GenTree* node, regMaskTP candidates = RBM_NONE); - int BuildDelayFreeUses(GenTree* node, regMaskTP candidates = RBM_NONE); + int BuildDelayFreeUses(GenTree* node, GenTree* rmwNode = nullptr, regMaskTP candidates = RBM_NONE); int BuildIndirUses(GenTreeIndir* indirTree, regMaskTP candidates = RBM_NONE); int BuildAddrUses(GenTree* addr, regMaskTP candidates = RBM_NONE); void HandleFloatVarArgs(GenTreeCall* call, GenTree* argNode, bool* callHasFloatRegArgs); @@ -1728,7 +1910,7 @@ class Interval : public Referenceable // True if this interval is defined by a putArg, whose source is a non-last-use lclVar. // During allocation, this flag will be cleared if the source is not already in the required register. // Othewise, we will leave the register allocated to the lclVar, but mark the RegRecord as - // isBusyUntilNextKill, so that it won't be reused if the lclVar goes dead before the call. + // isBusyUntilKill, so that it won't be reused if the lclVar goes dead before the call. bool isSpecialPutArg : 1; // True if this interval interferes with a call. diff --git a/src/coreclr/src/jit/lsraarm64.cpp b/src/coreclr/src/jit/lsraarm64.cpp index 9c67a05cc5565..9463b1f482087 100644 --- a/src/coreclr/src/jit/lsraarm64.cpp +++ b/src/coreclr/src/jit/lsraarm64.cpp @@ -1098,8 +1098,8 @@ int LinearScan::BuildHWIntrinsic(GenTreeHWIntrinsic* intrinsicTree) { if (isRMW) { - srcCount += BuildDelayFreeUses(intrin.op2); - srcCount += BuildDelayFreeUses(intrin.op3, RBM_ASIMD_INDEXED_H_ELEMENT_ALLOWED_REGS); + srcCount += BuildDelayFreeUses(intrin.op2, nullptr); + srcCount += BuildDelayFreeUses(intrin.op3, nullptr, RBM_ASIMD_INDEXED_H_ELEMENT_ALLOWED_REGS); } else { diff --git a/src/coreclr/src/jit/lsrabuild.cpp b/src/coreclr/src/jit/lsrabuild.cpp index bdcd8dcd3999c..a0cbf2d5f24a9 100644 --- a/src/coreclr/src/jit/lsrabuild.cpp +++ b/src/coreclr/src/jit/lsrabuild.cpp @@ -345,6 +345,7 @@ void LinearScan::resolveConflictingDefAndUse(Interval* interval, RefPosition* de (getRegisterType(interval, useRefPosition) == regType)); regMaskTP candidates = allRegs(regType); defRefPosition->registerAssignment = candidates; + defRefPosition->isFixedRegRef = false; return; } INDEBUG(dumpLsraAllocationEvent(LSRA_EVENT_DEFUSE_CASE6, interval)); @@ -1791,17 +1792,33 @@ void LinearScan::buildRefPositionsForNode(GenTree* tree, BasicBlock* block, Lsra JITDUMP("\n"); } +static const regNumber lsraRegOrder[] = {REG_VAR_ORDER}; +const unsigned lsraRegOrderSize = ArrLen(lsraRegOrder); +static const regNumber lsraRegOrderFlt[] = {REG_VAR_ORDER_FLT}; +const unsigned lsraRegOrderFltSize = ArrLen(lsraRegOrderFlt); + //------------------------------------------------------------------------ // buildPhysRegRecords: Make an interval for each physical register // void LinearScan::buildPhysRegRecords() { - RegisterType regType = IntRegisterType; for (regNumber reg = REG_FIRST; reg < ACTUAL_REG_COUNT; reg = REG_NEXT(reg)) { RegRecord* curr = &physRegs[reg]; curr->init(reg); } + for (unsigned int i = 0; i < lsraRegOrderSize; i++) + { + regNumber reg = lsraRegOrder[i]; + RegRecord* curr = &physRegs[reg]; + curr->regOrder = (unsigned char)i; + } + for (unsigned int i = 0; i < lsraRegOrderFltSize; i++) + { + regNumber reg = lsraRegOrderFlt[i]; + RegRecord* curr = &physRegs[reg]; + curr->regOrder = (unsigned char)i; + } } //------------------------------------------------------------------------ @@ -2139,6 +2156,7 @@ void LinearScan::buildIntervals() assert(inArgReg < REG_COUNT); mask = genRegMask(inArgReg); assignPhysReg(inArgReg, interval); + INDEBUG(registersToDump |= getRegMask(inArgReg, interval->registerType)); } RefPosition* pos = newRefPosition(interval, MinLocation, RefTypeParamDef, nullptr, mask); pos->setRegOptional(true); @@ -3029,59 +3047,85 @@ void LinearScan::setDelayFree(RefPosition* use) //------------------------------------------------------------------------ // BuildDelayFreeUses: Build Use RefPositions for an operand that might be contained, -// and which need to be marked delayRegFree +// and which may need to be marked delayRegFree // // Arguments: -// node - The node of interest +// node - The node of interest +// rmwNode - The node that has RMW semantics (if applicable) +// candidates - The set of candidates for the uses // // Return Value: // The number of source registers used by the *parent* of this node. // -int LinearScan::BuildDelayFreeUses(GenTree* node, regMaskTP candidates) +int LinearScan::BuildDelayFreeUses(GenTree* node, GenTree* rmwNode, regMaskTP candidates) { - RefPosition* use; + RefPosition* use = nullptr; + Interval* rmwInterval = nullptr; + bool rmwIsLastUse = false; + GenTree* addr = nullptr; + if ((rmwNode != nullptr) && isCandidateLocalRef(rmwNode)) + { + rmwInterval = getIntervalForLocalVarNode(rmwNode->AsLclVar()); + // Note: we don't handle multi-reg vars here. It's not clear that there are any cases + // where we'd encounter a multi-reg var in an RMW context. + assert(!rmwNode->AsLclVar()->IsMultiReg()); + rmwIsLastUse = rmwNode->AsLclVar()->IsLastUse(0); + } if (!node->isContained()) { use = BuildUse(node, candidates); - setDelayFree(use); - return 1; } - if (node->OperIsHWIntrinsic()) + else if (node->OperIsHWIntrinsic()) { use = BuildUse(node->gtGetOp1(), candidates); - setDelayFree(use); - return 1; } - if (!node->OperIsIndir()) + else if (!node->OperIsIndir()) { return 0; } - GenTreeIndir* indirTree = node->AsIndir(); - GenTree* addr = indirTree->gtOp1; - if (!addr->isContained()) + else { - use = BuildUse(addr, candidates); - setDelayFree(use); - return 1; + GenTreeIndir* indirTree = node->AsIndir(); + addr = indirTree->gtOp1; + if (!addr->isContained()) + { + use = BuildUse(addr, candidates); + } + else if (!addr->OperIs(GT_LEA)) + { + return 0; + } } - if (!addr->OperIs(GT_LEA)) + if (use != nullptr) { - return 0; + if ((use->getInterval() != rmwInterval) || (!rmwIsLastUse && !use->lastUse)) + { + setDelayFree(use); + } + return 1; } + // If we reach here we have a contained LEA in 'addr'. + GenTreeAddrMode* const addrMode = addr->AsAddrMode(); unsigned srcCount = 0; if ((addrMode->Base() != nullptr) && !addrMode->Base()->isContained()) { use = BuildUse(addrMode->Base(), candidates); - setDelayFree(use); + if ((use->getInterval() != rmwInterval) || (!rmwIsLastUse && !use->lastUse)) + { + setDelayFree(use); + } srcCount++; } if ((addrMode->Index() != nullptr) && !addrMode->Index()->isContained()) { use = BuildUse(addrMode->Index(), candidates); - setDelayFree(use); + if ((use->getInterval() != rmwInterval) || (!rmwIsLastUse && !use->lastUse)) + { + setDelayFree(use); + } srcCount++; } return srcCount; diff --git a/src/coreclr/src/jit/lsraxarch.cpp b/src/coreclr/src/jit/lsraxarch.cpp index db787c55fdf28..133bcf28acf5a 100644 --- a/src/coreclr/src/jit/lsraxarch.cpp +++ b/src/coreclr/src/jit/lsraxarch.cpp @@ -876,7 +876,7 @@ int LinearScan::BuildRMWUses(GenTreeOp* node, regMaskTP candidates) } else if (delayUseOperand == op1) { - srcCount += BuildDelayFreeUses(op1, op1Candidates); + srcCount += BuildDelayFreeUses(op1, op2, op1Candidates); } else { @@ -893,7 +893,7 @@ int LinearScan::BuildRMWUses(GenTreeOp* node, regMaskTP candidates) } else if (delayUseOperand == op2) { - srcCount += BuildDelayFreeUses(op2, op2Candidates); + srcCount += BuildDelayFreeUses(op2, op1, op2Candidates); } else { @@ -987,7 +987,7 @@ int LinearScan::BuildShiftRotate(GenTree* tree) { if (!shiftBy->isContained()) { - srcCount += BuildDelayFreeUses(shiftBy, RBM_RCX); + srcCount += BuildDelayFreeUses(shiftBy, source, RBM_RCX); buildKillPositionsForNode(tree, currentLoc + 1, RBM_RCX); } BuildDef(tree, dstCandidates); @@ -1778,7 +1778,7 @@ int LinearScan::BuildModDiv(GenTree* tree) srcCount = 1; } - srcCount += BuildDelayFreeUses(op2, allRegs(TYP_INT) & ~(RBM_RAX | RBM_RDX)); + srcCount += BuildDelayFreeUses(op2, op1, allRegs(TYP_INT) & ~(RBM_RAX | RBM_RDX)); buildInternalRegisterUses(); @@ -2341,8 +2341,8 @@ int LinearScan::BuildHWIntrinsic(GenTreeHWIntrinsic* intrinsicTree) tgtPrefUse = BuildUse(op1); srcCount += 1; - srcCount += op2->isContained() ? BuildOperandUses(op2) : BuildDelayFreeUses(op2); - srcCount += BuildDelayFreeUses(op3, RBM_XMM0); + srcCount += op2->isContained() ? BuildOperandUses(op2) : BuildDelayFreeUses(op2, op1); + srcCount += BuildDelayFreeUses(op3, op1, RBM_XMM0); buildUses = false; } @@ -2378,7 +2378,7 @@ int LinearScan::BuildHWIntrinsic(GenTreeHWIntrinsic* intrinsicTree) tgtPrefUse = BuildUse(op1); srcCount += 1; - srcCount += BuildDelayFreeUses(op2, varTypeIsByte(baseType) ? allByteRegs() : RBM_NONE); + srcCount += BuildDelayFreeUses(op2, op1, varTypeIsByte(baseType) ? allByteRegs() : RBM_NONE); buildUses = false; break; @@ -2395,7 +2395,7 @@ int LinearScan::BuildHWIntrinsic(GenTreeHWIntrinsic* intrinsicTree) { // op3 reg should be different from target reg to // store the lower half result after executing the instruction - srcCount += BuildDelayFreeUses(op3); + srcCount += BuildDelayFreeUses(op3, op1); // Need a internal register different from the dst to take the lower half result buildInternalIntRegisterDefForNode(intrinsicTree); setInternalRegsDelayFree = true; @@ -2431,7 +2431,7 @@ int LinearScan::BuildHWIntrinsic(GenTreeHWIntrinsic* intrinsicTree) srcCount += 1; srcCount += BuildOperandUses(op2); - srcCount += BuildDelayFreeUses(op3); + srcCount += BuildDelayFreeUses(op3, op1); } else if (op1->isContained()) { @@ -2440,7 +2440,7 @@ int LinearScan::BuildHWIntrinsic(GenTreeHWIntrinsic* intrinsicTree) tgtPrefUse = BuildUse(op3); srcCount += BuildOperandUses(op1); - srcCount += BuildDelayFreeUses(op2); + srcCount += BuildDelayFreeUses(op2, op1); srcCount += 1; } else @@ -2452,7 +2452,7 @@ int LinearScan::BuildHWIntrinsic(GenTreeHWIntrinsic* intrinsicTree) if (copiesUpperBits) { - srcCount += BuildDelayFreeUses(op2); + srcCount += BuildDelayFreeUses(op2, op1); } else { @@ -2460,7 +2460,7 @@ int LinearScan::BuildHWIntrinsic(GenTreeHWIntrinsic* intrinsicTree) srcCount += 1; } - srcCount += op3->isContained() ? BuildOperandUses(op3) : BuildDelayFreeUses(op3); + srcCount += op3->isContained() ? BuildOperandUses(op3) : BuildDelayFreeUses(op3, op1); } buildUses = false; @@ -2475,7 +2475,7 @@ int LinearScan::BuildHWIntrinsic(GenTreeHWIntrinsic* intrinsicTree) // Any pair of the index, mask, or destination registers should be different srcCount += BuildOperandUses(op1); - srcCount += BuildDelayFreeUses(op2); + srcCount += BuildDelayFreeUses(op2, op1); // op3 should always be contained assert(op3->isContained()); diff --git a/src/coreclr/src/jit/target.h b/src/coreclr/src/jit/target.h index a2b5f93387662..5d3e7ad96d14c 100644 --- a/src/coreclr/src/jit/target.h +++ b/src/coreclr/src/jit/target.h @@ -1288,7 +1288,7 @@ typedef unsigned char regNumberSmall; REG_R6, REG_R7, REG_R8, REG_R9, REG_R10, \ REG_R11, REG_R13, REG_R14, \ REG_R12, REG_R15, REG_IP0, REG_IP1, \ - REG_CALLEE_SAVED_ORDER + REG_CALLEE_SAVED_ORDER, REG_LR #define REG_VAR_ORDER_FLT REG_V16, REG_V17, REG_V18, REG_V19, \ REG_V20, REG_V21, REG_V22, REG_V23, \ diff --git a/src/coreclr/tests/src/JIT/Regression/JitBlue/GitHub_13735/GitHub_13735.cs b/src/coreclr/tests/src/JIT/Regression/JitBlue/GitHub_13735/GitHub_13735.cs new file mode 100644 index 0000000000000..53081061bb077 --- /dev/null +++ b/src/coreclr/tests/src/JIT/Regression/JitBlue/GitHub_13735/GitHub_13735.cs @@ -0,0 +1,60 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + + +using System; +using System.Runtime.CompilerServices; + + +class GitHub_13735 +{ + [MethodImpl(MethodImplOptions.NoInlining)] + static int GetRandom() { + return 0; + } + + [MethodImpl(MethodImplOptions.NoInlining)] + static void Print(int x) { } + + static void SampleA() + { + var a = GetRandom(); + var b = GetRandom(); + var c = GetRandom(); + var d = GetRandom(); + var e = GetRandom(); + var f = GetRandom(); + var g = GetRandom(); + var h = GetRandom(); + for (var x = 0; x < 100; ++x) + { + var xa = GetRandom(); + var xb = GetRandom(); + var xc = GetRandom(); + var xd = GetRandom(); + var xe = GetRandom(); + var xf = GetRandom(); + Print(xa); + Print(xb); + Print(xc); + Print(xd); + Print(xe); + Print(xf); + } + Print(a); + Print(b); + Print(c); + Print(d); + Print(e); + Print(f); + Print(g); + Print(h); + } + + public static int Main() + { + SampleA(); + return 100; + } +} diff --git a/src/coreclr/tests/src/JIT/Regression/JitBlue/GitHub_13735/GitHub_13735.csproj b/src/coreclr/tests/src/JIT/Regression/JitBlue/GitHub_13735/GitHub_13735.csproj new file mode 100644 index 0000000000000..986494e092b5a --- /dev/null +++ b/src/coreclr/tests/src/JIT/Regression/JitBlue/GitHub_13735/GitHub_13735.csproj @@ -0,0 +1,12 @@ + + + Exe + + + + True + + + + + From 51fc11f21ab3c8ee0e691788eee2d8eb784313ea Mon Sep 17 00:00:00 2001 From: monojenkins Date: Mon, 7 Dec 2020 13:11:16 -0500 Subject: [PATCH 47/87] [aot] Store the addresses of aot constants in an array instead of using a switch statement on wasm to save space. (#45669) Co-authored-by: vargaz --- src/mono/mono/mini/mini-llvm.c | 58 +++++++++++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 4 deletions(-) diff --git a/src/mono/mono/mini/mini-llvm.c b/src/mono/mono/mini/mini-llvm.c index 9664923a0d8d4..3012b1bb933c3 100644 --- a/src/mono/mono/mini/mini-llvm.c +++ b/src/mono/mono/mini/mini-llvm.c @@ -2945,11 +2945,9 @@ static void emit_init_aotconst (MonoLLVMModule *module) { LLVMModuleRef lmodule = module->lmodule; - LLVMValueRef func, switch_ins; - LLVMBasicBlockRef entry_bb, fail_bb, bb; - LLVMBasicBlockRef *bbs = NULL; + LLVMValueRef func; + LLVMBasicBlockRef entry_bb; LLVMBuilderRef builder = LLVMCreateBuilder (); - char *name; func = LLVMAddFunction (lmodule, module->init_aotconst_symbol, LLVMFunctionType2 (LLVMVoidType (), LLVMInt32Type (), IntPtrType (), FALSE)); LLVMSetLinkage (func, LLVMExternalLinkage); @@ -2959,6 +2957,57 @@ emit_init_aotconst (MonoLLVMModule *module) entry_bb = LLVMAppendBasicBlock (func, "ENTRY"); + LLVMPositionBuilderAtEnd (builder, entry_bb); + +#ifdef TARGET_WASM + /* Emit a table of aotconst addresses instead of a switch statement to save space */ + + LLVMValueRef aotconsts; + LLVMTypeRef aotconst_addr_type = LLVMPointerType (module->ptr_type, 0); + int table_size = module->max_got_offset + 1; + LLVMTypeRef aotconst_arr_type = LLVMArrayType (aotconst_addr_type, table_size); + + LLVMValueRef aotconst_dummy = LLVMAddGlobal (module->lmodule, module->ptr_type, "aotconst_dummy"); + LLVMSetInitializer (aotconst_dummy, LLVMConstNull (module->ptr_type)); + LLVMSetVisibility (aotconst_dummy, LLVMHiddenVisibility); + LLVMSetLinkage (aotconst_dummy, LLVMInternalLinkage); + + aotconsts = LLVMAddGlobal (module->lmodule, aotconst_arr_type, "aotconsts"); + LLVMValueRef *aotconst_init = g_new0 (LLVMValueRef, table_size); + for (int i = 0; i < table_size; ++i) { + LLVMValueRef aotconst = (LLVMValueRef)g_hash_table_lookup (module->aotconst_vars, GINT_TO_POINTER (i)); + if (aotconst) + aotconst_init [i] = LLVMConstBitCast (aotconst, aotconst_addr_type); + else + aotconst_init [i] = LLVMConstBitCast (aotconst_dummy, aotconst_addr_type); + } + LLVMSetInitializer (aotconsts, LLVMConstArray (aotconst_addr_type, aotconst_init, table_size)); + LLVMSetVisibility (aotconsts, LLVMHiddenVisibility); + LLVMSetLinkage (aotconsts, LLVMInternalLinkage); + + LLVMBasicBlockRef exit_bb = LLVMAppendBasicBlock (func, "EXIT_BB"); + LLVMBasicBlockRef main_bb = LLVMAppendBasicBlock (func, "BB"); + + LLVMValueRef cmp = LLVMBuildICmp (builder, LLVMIntSGE, LLVMGetParam (func, 0), LLVMConstInt (LLVMInt32Type (), table_size, FALSE), ""); + LLVMBuildCondBr (builder, cmp, exit_bb, main_bb); + + LLVMPositionBuilderAtEnd (builder, main_bb); + + LLVMValueRef indexes [2]; + indexes [0] = LLVMConstInt (LLVMInt32Type (), 0, FALSE); + indexes [1] = LLVMGetParam (func, 0); + LLVMValueRef aotconst_addr = LLVMBuildLoad (builder, LLVMBuildGEP (builder, aotconsts, indexes, 2, ""), ""); + LLVMBuildStore (builder, LLVMBuildIntToPtr (builder, LLVMGetParam (func, 1), module->ptr_type, ""), aotconst_addr); + LLVMBuildBr (builder, exit_bb); + + LLVMPositionBuilderAtEnd (builder, exit_bb); + LLVMBuildRetVoid (builder); +#else + LLVMValueRef switch_ins; + LLVMBasicBlockRef fail_bb, bb; + LLVMBasicBlockRef *bbs = NULL; + char *name; + bbs = g_new0 (LLVMBasicBlockRef, module->max_got_offset + 1); for (int i = 0; i < module->max_got_offset + 1; ++i) { name = g_strdup_printf ("BB_%d", i); @@ -2985,6 +3034,7 @@ emit_init_aotconst (MonoLLVMModule *module) switch_ins = LLVMBuildSwitch (builder, LLVMGetParam (func, 0), fail_bb, 0); for (int i = 0; i < module->max_got_offset + 1; ++i) LLVMAddCase (switch_ins, LLVMConstInt (LLVMInt32Type (), i, FALSE), bbs [i]); +#endif LLVMDisposeBuilder (builder); } From e33692218b1e9a25602c2be951346b299d8bd3fd Mon Sep 17 00:00:00 2001 From: Koundinya Veluri Date: Mon, 7 Dec 2020 11:20:33 -0800 Subject: [PATCH 48/87] Update portable thread pool event enablement checks (#45681) * Revert "Make PortableThreadPool to check events correctly before firing them (#45666)" This reverts commit 83d19de66a596ff5e0ad0519e48dff62945cc636. * Add keyword and verbosity checks for events Reverted the part of https://github.com/dotnet/runtime/pull/38225/commits/e8043ffa05450b1983a1e751d0a1af80e43e1f31 regarding `IsEnabled` checks --- .../PortableThreadPool.GateThread.cs | 6 +-- .../PortableThreadPool.HillClimbing.cs | 7 ++- .../PortableThreadPool.WaitThread.cs | 5 +- .../PortableThreadPool.WorkerThread.cs | 8 ++- .../PortableThreadPoolEventSource.cs | 54 ++++++++++++++++--- 5 files changed, 56 insertions(+), 24 deletions(-) diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.GateThread.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.GateThread.cs index c509fdfa008c9..6b6897f1b287f 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.GateThread.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.GateThread.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Diagnostics; -using System.Diagnostics.Tracing; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -44,10 +43,7 @@ private static void GateThreadStart() { Thread.Sleep(GateThreadDelayMs); - if (ThreadPool.EnableWorkerTracking && - PortableThreadPoolEventSource.Log.IsEnabled( - EventLevel.Verbose, - PortableThreadPoolEventSource.Keywords.ThreadingKeyword)) + if (ThreadPool.EnableWorkerTracking && PortableThreadPoolEventSource.Log.IsEnabled()) { PortableThreadPoolEventSource.Log.ThreadPoolWorkingThreadCount( (uint)threadPoolInstance.GetAndResetHighWatermarkCountOfThreadsProcessingUserCallbacks()); diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.HillClimbing.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.HillClimbing.cs index 0275e617f1542..c7ed0ee800c93 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.HillClimbing.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.HillClimbing.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Diagnostics; -using System.Diagnostics.Tracing; namespace System.Threading { @@ -170,7 +169,7 @@ public HillClimbing() // Add the current thread count and throughput sample to our history // double throughput = numCompletions / sampleDurationSeconds; - if (PortableThreadPoolEventSource.Log.IsEnabled(EventLevel.Informational, PortableThreadPoolEventSource.Keywords.ThreadingKeyword)) + if (PortableThreadPoolEventSource.Log.IsEnabled()) { PortableThreadPoolEventSource.Log.ThreadPoolWorkerThreadAdjustmentSample(throughput); } @@ -344,7 +343,7 @@ public HillClimbing() // Record these numbers for posterity // - if (PortableThreadPoolEventSource.Log.IsEnabled(EventLevel.Verbose, PortableThreadPoolEventSource.Keywords.ThreadingKeyword)) + if (PortableThreadPoolEventSource.Log.IsEnabled()) { PortableThreadPoolEventSource.Log.ThreadPoolWorkerThreadAdjustmentStats(sampleDurationSeconds, throughput, threadWaveComponent.Real, throughputWaveComponent.Real, throughputErrorEstimate, _averageThroughputNoise, ratio.Real, confidence, _currentControlSetting, (ushort)newThreadWaveMagnitude); @@ -405,7 +404,7 @@ private void LogTransition(int newThreadCount, double throughput, StateOrTransit _logSize++; - if (PortableThreadPoolEventSource.Log.IsEnabled(EventLevel.Informational, PortableThreadPoolEventSource.Keywords.ThreadingKeyword)) + if (PortableThreadPoolEventSource.Log.IsEnabled()) { PortableThreadPoolEventSource.Log.ThreadPoolWorkerThreadAdjustmentAdjustment( throughput, diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WaitThread.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WaitThread.cs index 2eb692706419d..ed091b9d8fa92 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WaitThread.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WaitThread.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Diagnostics; -using System.Diagnostics.Tracing; using Microsoft.Win32.SafeHandles; namespace System.Threading @@ -37,7 +36,7 @@ internal partial class PortableThreadPool /// A description of the requested registration. internal void RegisterWaitHandle(RegisteredWaitHandle handle) { - if (PortableThreadPoolEventSource.Log.IsEnabled(EventLevel.Verbose, PortableThreadPoolEventSource.Keywords.ThreadingKeyword)) + if (PortableThreadPoolEventSource.Log.IsEnabled()) { PortableThreadPoolEventSource.Log.ThreadPoolIOEnqueue(handle); } @@ -76,7 +75,7 @@ internal void RegisterWaitHandle(RegisteredWaitHandle handle) internal static void CompleteWait(RegisteredWaitHandle handle, bool timedOut) { - if (PortableThreadPoolEventSource.Log.IsEnabled(EventLevel.Verbose, PortableThreadPoolEventSource.Keywords.ThreadingKeyword)) + if (PortableThreadPoolEventSource.Log.IsEnabled()) { PortableThreadPoolEventSource.Log.ThreadPoolIODequeue(handle); } diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WorkerThread.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WorkerThread.cs index ef1b905cf3bd9..4b7e3694c43dc 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WorkerThread.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPool.WorkerThread.cs @@ -1,8 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System.Diagnostics.Tracing; - namespace System.Threading { internal partial class PortableThreadPool @@ -22,7 +20,7 @@ private static class WorkerThread AppContextConfigHelper.GetInt32Config("System.Threading.ThreadPool.UnfairSemaphoreSpinLimit", 70, false), onWait: () => { - if (PortableThreadPoolEventSource.Log.IsEnabled(EventLevel.Informational, PortableThreadPoolEventSource.Keywords.ThreadingKeyword)) + if (PortableThreadPoolEventSource.Log.IsEnabled()) { PortableThreadPoolEventSource.Log.ThreadPoolWorkerThreadWait( (uint)ThreadPoolInstance._separated.counts.VolatileRead().NumExistingThreads); @@ -35,7 +33,7 @@ private static void WorkerThreadStart() PortableThreadPool threadPoolInstance = ThreadPoolInstance; - if (PortableThreadPoolEventSource.Log.IsEnabled(EventLevel.Informational, PortableThreadPoolEventSource.Keywords.ThreadingKeyword)) + if (PortableThreadPoolEventSource.Log.IsEnabled()) { PortableThreadPoolEventSource.Log.ThreadPoolWorkerThreadStart( (uint)threadPoolInstance._separated.counts.VolatileRead().NumExistingThreads); @@ -107,7 +105,7 @@ private static void WorkerThreadStart() { HillClimbing.ThreadPoolHillClimber.ForceChange(newNumThreadsGoal, HillClimbing.StateOrTransition.ThreadTimedOut); - if (PortableThreadPoolEventSource.Log.IsEnabled(EventLevel.Informational, PortableThreadPoolEventSource.Keywords.ThreadingKeyword)) + if (PortableThreadPoolEventSource.Log.IsEnabled()) { PortableThreadPoolEventSource.Log.ThreadPoolWorkerThreadStop((uint)newNumExistingThreads); } diff --git a/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPoolEventSource.cs b/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPoolEventSource.cs index 711893fd8b480..65061781083b0 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPoolEventSource.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Threading/PortableThreadPoolEventSource.cs @@ -108,7 +108,10 @@ public unsafe void ThreadPoolWorkerThreadStart( uint RetiredWorkerThreadCount = 0, ushort ClrInstanceID = DefaultClrInstanceId) { - WriteThreadEvent(50, ActiveWorkerThreadCount); + if (IsEnabled(EventLevel.Informational, Keywords.ThreadingKeyword)) + { + WriteThreadEvent(50, ActiveWorkerThreadCount); + } } [Event(51, Level = EventLevel.Informational, Message = Messages.WorkerThread, Task = Tasks.ThreadPoolWorkerThread, Opcode = EventOpcode.Stop, Version = 0, Keywords = Keywords.ThreadingKeyword)] @@ -117,16 +120,23 @@ public void ThreadPoolWorkerThreadStop( uint RetiredWorkerThreadCount = 0, ushort ClrInstanceID = DefaultClrInstanceId) { - WriteThreadEvent(51, ActiveWorkerThreadCount); + if (IsEnabled(EventLevel.Informational, Keywords.ThreadingKeyword)) + { + WriteThreadEvent(51, ActiveWorkerThreadCount); + } } [Event(57, Level = EventLevel.Informational, Message = Messages.WorkerThread, Task = Tasks.ThreadPoolWorkerThread, Opcode = Opcodes.Wait, Version = 0, Keywords = Keywords.ThreadingKeyword)] + [MethodImpl(MethodImplOptions.NoInlining)] public void ThreadPoolWorkerThreadWait( uint ActiveWorkerThreadCount, uint RetiredWorkerThreadCount = 0, ushort ClrInstanceID = DefaultClrInstanceId) { - WriteThreadEvent(57, ActiveWorkerThreadCount); + if (IsEnabled(EventLevel.Informational, Keywords.ThreadingKeyword)) + { + WriteThreadEvent(57, ActiveWorkerThreadCount); + } } [Event(54, Level = EventLevel.Informational, Message = Messages.WorkerThreadAdjustmentSample, Task = Tasks.ThreadPoolWorkerThreadAdjustment, Opcode = Opcodes.Sample, Version = 0, Keywords = Keywords.ThreadingKeyword)] @@ -134,6 +144,11 @@ public unsafe void ThreadPoolWorkerThreadAdjustmentSample( double Throughput, ushort ClrInstanceID = DefaultClrInstanceId) { + if (!IsEnabled(EventLevel.Informational, Keywords.ThreadingKeyword)) + { + return; + } + EventData* data = stackalloc EventData[2]; data[0].DataPointer = (IntPtr)(&Throughput); data[0].Size = sizeof(double); @@ -151,6 +166,11 @@ public unsafe void ThreadPoolWorkerThreadAdjustmentAdjustment( ThreadAdjustmentReasonMap Reason, ushort ClrInstanceID = DefaultClrInstanceId) { + if (!IsEnabled(EventLevel.Informational, Keywords.ThreadingKeyword)) + { + return; + } + EventData* data = stackalloc EventData[4]; data[0].DataPointer = (IntPtr)(&AverageThroughput); data[0].Size = sizeof(double); @@ -181,6 +201,11 @@ public unsafe void ThreadPoolWorkerThreadAdjustmentStats( ushort NewThreadWaveMagnitude, ushort ClrInstanceID = DefaultClrInstanceId) { + if (!IsEnabled(EventLevel.Verbose, Keywords.ThreadingKeyword)) + { + return; + } + EventData* data = stackalloc EventData[11]; data[0].DataPointer = (IntPtr)(&Duration); data[0].Size = sizeof(double); @@ -247,8 +272,13 @@ private unsafe void ThreadPoolIOEnqueue( // FrameworkEventSource's thread transfer send/receive events instead at callers. [NonEvent] [MethodImpl(MethodImplOptions.NoInlining)] - public void ThreadPoolIOEnqueue(RegisteredWaitHandle registeredWaitHandle) => - ThreadPoolIOEnqueue((IntPtr)registeredWaitHandle.GetHashCode(), IntPtr.Zero, registeredWaitHandle.Repeating); + public void ThreadPoolIOEnqueue(RegisteredWaitHandle registeredWaitHandle) + { + if (IsEnabled(EventLevel.Verbose, Keywords.ThreadingKeyword | Keywords.ThreadTransferKeyword)) + { + ThreadPoolIOEnqueue((IntPtr)registeredWaitHandle.GetHashCode(), IntPtr.Zero, registeredWaitHandle.Repeating); + } + } [Event(64, Level = EventLevel.Verbose, Message = Messages.IO, Task = Tasks.ThreadPool, Opcode = Opcodes.IODequeue, Version = 0, Keywords = Keywords.ThreadingKeyword | Keywords.ThreadTransferKeyword)] private unsafe void ThreadPoolIODequeue( @@ -273,12 +303,22 @@ private unsafe void ThreadPoolIODequeue( // FrameworkEventSource's thread transfer send/receive events instead at callers. [NonEvent] [MethodImpl(MethodImplOptions.NoInlining)] - public void ThreadPoolIODequeue(RegisteredWaitHandle registeredWaitHandle) => - ThreadPoolIODequeue((IntPtr)registeredWaitHandle.GetHashCode(), IntPtr.Zero); + public void ThreadPoolIODequeue(RegisteredWaitHandle registeredWaitHandle) + { + if (IsEnabled(EventLevel.Verbose, Keywords.ThreadingKeyword | Keywords.ThreadTransferKeyword)) + { + ThreadPoolIODequeue((IntPtr)registeredWaitHandle.GetHashCode(), IntPtr.Zero); + } + } [Event(60, Level = EventLevel.Verbose, Message = Messages.WorkingThreadCount, Task = Tasks.ThreadPoolWorkingThreadCount, Opcode = EventOpcode.Start, Version = 0, Keywords = Keywords.ThreadingKeyword)] public unsafe void ThreadPoolWorkingThreadCount(uint Count, ushort ClrInstanceID = DefaultClrInstanceId) { + if (!IsEnabled(EventLevel.Verbose, Keywords.ThreadingKeyword)) + { + return; + } + EventData* data = stackalloc EventData[2]; data[0].DataPointer = (IntPtr)(&Count); data[0].Size = sizeof(uint); From 4634681ec8271a2ff2a4c959a8471fc90702f553 Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Tue, 8 Dec 2020 08:43:03 +1300 Subject: [PATCH 49/87] Enable nullable on HostFactoryResolver (#45513) --- .../src/HostFactoryResolver.cs | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/libraries/Microsoft.Extensions.HostFactoryResolver/src/HostFactoryResolver.cs b/src/libraries/Microsoft.Extensions.HostFactoryResolver/src/HostFactoryResolver.cs index bb095c34ec1ff..440444ef5073f 100644 --- a/src/libraries/Microsoft.Extensions.HostFactoryResolver/src/HostFactoryResolver.cs +++ b/src/libraries/Microsoft.Extensions.HostFactoryResolver/src/HostFactoryResolver.cs @@ -4,6 +4,8 @@ using System; using System.Reflection; +#nullable enable + namespace Microsoft.Extensions.Hosting { internal class HostFactoryResolver @@ -14,22 +16,22 @@ internal class HostFactoryResolver public static readonly string CreateWebHostBuilder = nameof(CreateWebHostBuilder); public static readonly string CreateHostBuilder = nameof(CreateHostBuilder); - public static Func ResolveWebHostFactory(Assembly assembly) + public static Func? ResolveWebHostFactory(Assembly assembly) { return ResolveFactory(assembly, BuildWebHost); } - public static Func ResolveWebHostBuilderFactory(Assembly assembly) + public static Func? ResolveWebHostBuilderFactory(Assembly assembly) { return ResolveFactory(assembly, CreateWebHostBuilder); } - public static Func ResolveHostBuilderFactory(Assembly assembly) + public static Func? ResolveHostBuilderFactory(Assembly assembly) { return ResolveFactory(assembly, CreateHostBuilder); } - private static Func ResolveFactory(Assembly assembly, string name) + private static Func? ResolveFactory(Assembly assembly, string name) { var programType = assembly?.EntryPoint?.DeclaringType; if (programType == null) @@ -43,11 +45,11 @@ private static Func ResolveFactory(Assembly assembly, string nam return null; } - return args => (T)factory.Invoke(null, new object[] { args }); + return args => (T)factory!.Invoke(null, new object[] { args })!; } // TReturn Factory(string[] args); - private static bool IsFactory(MethodInfo factory) + private static bool IsFactory(MethodInfo? factory) { return factory != null && typeof(TReturn).IsAssignableFrom(factory.ReturnType) @@ -56,7 +58,7 @@ private static bool IsFactory(MethodInfo factory) } // Used by EF tooling without any Hosting references. Looses some return type safety checks. - public static Func ResolveServiceProviderFactory(Assembly assembly) + public static Func? ResolveServiceProviderFactory(Assembly assembly) { // Prefer the older patterns by default for back compat. var webHostFactory = ResolveWebHostFactory(assembly); @@ -94,13 +96,13 @@ public static Func ResolveServiceProviderFactory(Ass return null; } - private static object Build(object builder) + private static object? Build(object builder) { var buildMethod = builder.GetType().GetMethod("Build"); return buildMethod?.Invoke(builder, Array.Empty()); } - private static IServiceProvider GetServiceProvider(object host) + private static IServiceProvider? GetServiceProvider(object? host) { if (host == null) { @@ -108,7 +110,7 @@ private static IServiceProvider GetServiceProvider(object host) } var hostType = host.GetType(); var servicesProperty = hostType.GetProperty("Services", DeclaredOnlyLookup); - return (IServiceProvider)servicesProperty.GetValue(host); + return (IServiceProvider?)servicesProperty?.GetValue(host); } } } From eb25a59de3ea4fa1c24544e876554be96afa5280 Mon Sep 17 00:00:00 2001 From: Ryan Lucia Date: Mon, 7 Dec 2020 14:51:31 -0500 Subject: [PATCH 50/87] Add test for exception propagation inside loader events (#43910) --- .../tests/System/AppDomainTests.cs | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/libraries/System.Runtime.Extensions/tests/System/AppDomainTests.cs b/src/libraries/System.Runtime.Extensions/tests/System/AppDomainTests.cs index 0d29fc0f5b893..d7aa3be529338 100644 --- a/src/libraries/System.Runtime.Extensions/tests/System/AppDomainTests.cs +++ b/src/libraries/System.Runtime.Extensions/tests/System/AppDomainTests.cs @@ -641,6 +641,48 @@ public void AssemblyResolve_IsNotCalledForCoreLibResources() }).Dispose(); } + class CorrectlyPropagatesException : Exception + { + public CorrectlyPropagatesException(string message) : base(message) + { } + } + + [Theory] + [ActiveIssue("https://github.com/dotnet/runtime/issues/43909", TestRuntimes.Mono)] + [InlineData(true)] + [InlineData(false)] + public void AssemblyResolve_ExceptionPropagatesCorrectly(bool throwOnError) + { + bool handlerExceptionThrown = false; + + ResolveEventHandler handler = (sender, args) => + { + if (args.Name.StartsWith("Some.Assembly")) + throw new CorrectlyPropagatesException("Failure"); + return null; + }; + + AppDomain.CurrentDomain.AssemblyResolve += handler; + + try + { + Type.GetType("Some.Assembly.Type, Some.Assembly", throwOnError); + } + catch (FileLoadException e) + { + Assert.NotNull(e.InnerException); + Assert.IsAssignableFrom(e.InnerException); + Assert.Equal("Failure", e.InnerException.Message); + handlerExceptionThrown = true; + } + finally + { + AppDomain.CurrentDomain.AssemblyResolve -= handler; + } + + Assert.True(handlerExceptionThrown); + } + [ConditionalFact(typeof(RemoteExecutor), nameof(RemoteExecutor.IsSupported))] public void TypeResolve() { From 8cc4a4f0a837f4befc6a093d4b03cb94373022f6 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 7 Dec 2020 21:20:07 +0000 Subject: [PATCH 51/87] Update dependencies from https://github.com/dotnet/xharness build 20201207.1 (#45684) [master] Update dependencies from dotnet/xharness --- .config/dotnet-tools.json | 2 +- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 65a7340f6c10f..09ecad3d19428 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -15,7 +15,7 @@ ] }, "microsoft.dotnet.xharness.cli": { - "version": "1.0.0-prerelease.20604.1", + "version": "1.0.0-prerelease.20607.1", "commands": [ "xharness" ] diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9d5980c05804e..d99fd0e2f56cb 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -198,13 +198,13 @@ https://github.com/mono/linker c68434193ec938e1f7f2360107c95007d7c831ee - + https://github.com/dotnet/xharness - e3e6618579abf76772422fb0cbe0c98b57f63506 + ccbbdf666b6834881f5a2e4ee1832cbba01c9076 - + https://github.com/dotnet/xharness - e3e6618579abf76772422fb0cbe0c98b57f63506 + ccbbdf666b6834881f5a2e4ee1832cbba01c9076 diff --git a/eng/Versions.props b/eng/Versions.props index 1580ce49b4011..0b54acddd862a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -139,8 +139,8 @@ 1.0.1-prerelease-00006 16.8.0-release-20201022-02 - 1.0.0-prerelease.20604.1 - 1.0.0-prerelease.20604.1 + 1.0.0-prerelease.20607.1 + 1.0.0-prerelease.20607.1 2.4.1 2.4.2 1.3.0 From 4dd75c969b304b74bdcf97dbae8e9980eb2527ea Mon Sep 17 00:00:00 2001 From: Mitchell Hwang Date: Mon, 7 Dec 2020 16:21:01 -0500 Subject: [PATCH 52/87] [wasm] Add WasmAppBuilder pkgproj for wasm sample (#44749) * Add wasm sample pkgproj * Add wasm Sample pkgproj to descriptions * Add wasm sample pkgproj ProjectReference * Add packaging target * Update to use NetCoreAppToolCurrent Co-authored-by: Mitchell Hwang --- ...icrosoft.NET.Runtime.wasm.Sample.Mono.pkgproj | 16 ++++++++++++++++ src/mono/netcore/nuget/descriptions.json | 13 +++++++++---- src/mono/netcore/nuget/mono-packages.proj | 1 + .../WasmAppBuilder/WasmAppBuilder.csproj | 3 +++ 4 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 src/mono/netcore/nuget/Microsoft.NET.Runtime.wasm.Sample.Mono/Microsoft.NET.Runtime.wasm.Sample.Mono.pkgproj diff --git a/src/mono/netcore/nuget/Microsoft.NET.Runtime.wasm.Sample.Mono/Microsoft.NET.Runtime.wasm.Sample.Mono.pkgproj b/src/mono/netcore/nuget/Microsoft.NET.Runtime.wasm.Sample.Mono/Microsoft.NET.Runtime.wasm.Sample.Mono.pkgproj new file mode 100644 index 0000000000000..7b7a58c68a0fe --- /dev/null +++ b/src/mono/netcore/nuget/Microsoft.NET.Runtime.wasm.Sample.Mono/Microsoft.NET.Runtime.wasm.Sample.Mono.pkgproj @@ -0,0 +1,16 @@ + + + + + + + + + + <_wasmSampleFiles Include="$(ArtifactsDir)bin\WasmAppBuilder\$(Configuration)\$(NetCoreAppToolCurrent)\WasmAppBuilder.dll" /> + + + + + + \ No newline at end of file diff --git a/src/mono/netcore/nuget/descriptions.json b/src/mono/netcore/nuget/descriptions.json index 37deb98a0d831..210890df5ccea 100644 --- a/src/mono/netcore/nuget/descriptions.json +++ b/src/mono/netcore/nuget/descriptions.json @@ -10,13 +10,18 @@ "CommonTypes": [ ] }, { - "Name": "Microsoft.NETCore.BrowserDebugHost.Transport", - "Description": "Internal package for sharing BrowserDebugHost.", + "Name": "Microsoft.NET.Runtime.iOS.Sample.Mono", + "Description": "Internal package for sharing embedded Mono runtime and iOS App Builder.", "CommonTypes": [ ] }, { - "Name": "Microsoft.NET.Runtime.iOS.Sample.Mono", - "Description": "Internal package for sharing embedded Mono runtime and iOS App Builder.", + "Name": "Microsoft.NET.Runtime.wasm.Sample.Mono", + "Description": "Internal package for sharing wasm App Builder.", + "CommonTypes": [ ] + }, + { + "Name": "Microsoft.NETCore.BrowserDebugHost.Transport", + "Description": "Internal package for sharing BrowserDebugHost.", "CommonTypes": [ ] } ] diff --git a/src/mono/netcore/nuget/mono-packages.proj b/src/mono/netcore/nuget/mono-packages.proj index fa95b5accfbae..ffb83694dcf1a 100644 --- a/src/mono/netcore/nuget/mono-packages.proj +++ b/src/mono/netcore/nuget/mono-packages.proj @@ -6,6 +6,7 @@ + diff --git a/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.csproj b/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.csproj index ba6f687554dde..7e4c26c055713 100644 --- a/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.csproj +++ b/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.csproj @@ -21,4 +21,7 @@ + + + From 5b0cf331fbb5631e005ab7f65c4c211f0ff67c0e Mon Sep 17 00:00:00 2001 From: Layomi Akinrinade Date: Mon, 7 Dec 2020 14:06:56 -0800 Subject: [PATCH 53/87] Update CODEOWNERS (#45620) --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index e2ae37809a760..f970427a97e89 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -3,7 +3,7 @@ /src/libraries/Common/src/System/Net/Http/aspnetcore/ @dotnet/http /src/libraries/Common/tests/Tests/System/Net/aspnetcore/ @dotnet/http -/src/libraries/System.Text.Json/ @ahsonkhan @steveharter @layomia @Jozkee +/src/libraries/System.Text.Json/ @ahsonkhan @steveharter @layomia @Jozkee @eiriktsarpalis /src/libraries/System.Buffers/ @ahsonkhan /src/libraries/System.Memory/ @ahsonkhan From 7d527c33681d0f844639249012f4e16e22fc1192 Mon Sep 17 00:00:00 2001 From: Huo Yaoyuan Date: Tue, 8 Dec 2020 06:11:04 +0800 Subject: [PATCH 54/87] Add CompressionLevel.SmallestSize (#41960) * Add CompressionLevel.SmallestSize and map to ZLibNative.CompressionLevel.BestCompression. * Update xmldoc for CompressionLevel. * Fix xml doc on ZLibNative.CompressionLevel. * Apply suggestion from review Co-authored-by: Dan Moseley * Add SmallestSize to tests. * Add test for compression level and sizes. * Update src/libraries/Common/tests/System/IO/Compression/CompressionStreamUnitTestBase.cs * Brotli * Re-add size in order test. Co-authored-by: Dan Moseley --- .../CompressionStreamUnitTestBase.cs | 27 ++++++++++++++++++- .../src/System/IO/Compression/BrotliUtils.cs | 1 + .../ref/System.IO.Compression.cs | 1 + .../System/IO/Compression/CompressionLevel.cs | 20 ++++++++++++-- .../IO/Compression/DeflateZLib/Deflater.cs | 5 ++++ .../IO/Compression/DeflateZLib/ZLibNative.cs | 13 ++++++--- 6 files changed, 61 insertions(+), 6 deletions(-) diff --git a/src/libraries/Common/tests/System/IO/Compression/CompressionStreamUnitTestBase.cs b/src/libraries/Common/tests/System/IO/Compression/CompressionStreamUnitTestBase.cs index 7e81c07770931..cca28e2ddc8bf 100644 --- a/src/libraries/Common/tests/System/IO/Compression/CompressionStreamUnitTestBase.cs +++ b/src/libraries/Common/tests/System/IO/Compression/CompressionStreamUnitTestBase.cs @@ -271,7 +271,7 @@ IEnumerable> CtorFunctions() { yield return new Func((stream) => CreateStream(stream, CompressionMode.Compress)); - foreach (CompressionLevel level in new[] { CompressionLevel.Optimal, CompressionLevel.Fastest, CompressionLevel.NoCompression }) + foreach (CompressionLevel level in new[] { CompressionLevel.Optimal, CompressionLevel.Fastest, CompressionLevel.NoCompression, CompressionLevel.SmallestSize }) { yield return new Func((stream) => CreateStream(stream, level)); @@ -441,6 +441,31 @@ public async Task BaseStream_ValidAfterDisposeWithTrueLeaveOpen(CompressionMode else baseStream.Read(bytes, 0, size); } + + [Theory] + [MemberData(nameof(UncompressedTestFiles))] + public async Task CompressionLevel_SizeInOrder(string testFile) + { + using var uncompressedStream = await LocalMemoryStream.readAppFileAsync(testFile); + + async Task GetLengthAsync(CompressionLevel compressionLevel) + { + using var mms = new MemoryStream(); + using var compressor = CreateStream(mms, compressionLevel); + await uncompressedStream.CopyToAsync(compressor); + compressor.Flush(); + return mms.Length; + } + + long noCompressionLength = await GetLengthAsync(CompressionLevel.NoCompression); + long fastestLength = await GetLengthAsync(CompressionLevel.Fastest); + long optimalLength = await GetLengthAsync(CompressionLevel.Optimal); + long smallestLength = await GetLengthAsync(CompressionLevel.SmallestSize); + + Assert.True(noCompressionLength >= fastestLength); + Assert.True(fastestLength >= optimalLength); + Assert.True(optimalLength >= smallestLength); + } } internal sealed class BadWrappedStream : MemoryStream diff --git a/src/libraries/System.IO.Compression.Brotli/src/System/IO/Compression/BrotliUtils.cs b/src/libraries/System.IO.Compression.Brotli/src/System/IO/Compression/BrotliUtils.cs index b706b2d514584..d292a6725cb95 100644 --- a/src/libraries/System.IO.Compression.Brotli/src/System/IO/Compression/BrotliUtils.cs +++ b/src/libraries/System.IO.Compression.Brotli/src/System/IO/Compression/BrotliUtils.cs @@ -19,6 +19,7 @@ internal static int GetQualityFromCompressionLevel(CompressionLevel level) => CompressionLevel.Optimal => Quality_Default, CompressionLevel.NoCompression => Quality_Min, CompressionLevel.Fastest => 1, + CompressionLevel.SmallestSize => Quality_Max, _ => (int)level, }; } diff --git a/src/libraries/System.IO.Compression/ref/System.IO.Compression.cs b/src/libraries/System.IO.Compression/ref/System.IO.Compression.cs index b98fca5db50b9..40175713e69b3 100644 --- a/src/libraries/System.IO.Compression/ref/System.IO.Compression.cs +++ b/src/libraries/System.IO.Compression/ref/System.IO.Compression.cs @@ -11,6 +11,7 @@ public enum CompressionLevel Optimal = 0, Fastest = 1, NoCompression = 2, + SmallestSize = 3, } public enum CompressionMode { diff --git a/src/libraries/System.IO.Compression/src/System/IO/Compression/CompressionLevel.cs b/src/libraries/System.IO.Compression/src/System/IO/Compression/CompressionLevel.cs index f8a0f45dfd10e..558708dedd9af 100644 --- a/src/libraries/System.IO.Compression/src/System/IO/Compression/CompressionLevel.cs +++ b/src/libraries/System.IO.Compression/src/System/IO/Compression/CompressionLevel.cs @@ -4,15 +4,31 @@ namespace System.IO.Compression { /// - /// Defines a tradeoff between fast vs. strong compression. The specific meaning depends of the Deflater implementation. + /// Specifies values that indicate whether a compression operation emphasizes speed or compression size. /// // This is an abstract concept and NOT the ZLib compression level. // There may or may not be any correspondence with the a possible implementation-specific level-parameter of the deflater. public enum CompressionLevel { + /// + /// The compression operation should balance compression speed and output size. + /// Optimal = 0, + + /// + /// The compression operation should complete as quickly as possible, even if the resulting file is not optimally compressed. + /// Fastest = 1, - NoCompression = 2 + + /// + /// No compression should be performed on the file. + /// + NoCompression = 2, + + /// + /// The compression operation should create output as small as possible, even if the operation takes a longer time to complete. + /// + SmallestSize = 3, } } diff --git a/src/libraries/System.IO.Compression/src/System/IO/Compression/DeflateZLib/Deflater.cs b/src/libraries/System.IO.Compression/src/System/IO/Compression/DeflateZLib/Deflater.cs index 78302098aa08d..f2d02cde7296b 100644 --- a/src/libraries/System.IO.Compression/src/System/IO/Compression/DeflateZLib/Deflater.cs +++ b/src/libraries/System.IO.Compression/src/System/IO/Compression/DeflateZLib/Deflater.cs @@ -53,6 +53,11 @@ internal Deflater(CompressionLevel compressionLevel, int windowBits) memLevel = ZLibNative.Deflate_NoCompressionMemLevel; break; + case CompressionLevel.SmallestSize: + zlibCompressionLevel = ZLibNative.CompressionLevel.BestCompression; + memLevel = ZLibNative.Deflate_DefaultMemLevel; + break; + default: throw new ArgumentOutOfRangeException(nameof(compressionLevel)); } diff --git a/src/libraries/System.IO.Compression/src/System/IO/Compression/DeflateZLib/ZLibNative.cs b/src/libraries/System.IO.Compression/src/System/IO/Compression/DeflateZLib/ZLibNative.cs index 92e9e000ca688..8cffa5df290d6 100644 --- a/src/libraries/System.IO.Compression/src/System/IO/Compression/DeflateZLib/ZLibNative.cs +++ b/src/libraries/System.IO.Compression/src/System/IO/Compression/DeflateZLib/ZLibNative.cs @@ -44,8 +44,8 @@ public enum ErrorCode : int /// ///

How to choose a compression level:

/// - ///

The names NoCompression, BestSpeed, DefaultCompression are taken over from the corresponding - /// ZLib definitions, which map to our public NoCompression, Fastest, and Optimal respectively.

+ ///

The names NoCompression, BestSpeed, DefaultCompression, BestCompression are taken over from + /// the corresponding ZLib definitions, which map to our public NoCompression, Fastest, Optimal, and SmallestSize respectively.

///

Optimal Compression:

///

ZLibNative.CompressionLevel compressionLevel = ZLibNative.CompressionLevel.DefaultCompression;
/// int windowBits = 15; // or -15 if no headers required
@@ -63,12 +63,19 @@ public enum ErrorCode : int /// int windowBits = 15; // or -15 if no headers required
/// int memLevel = 7;
/// ZLibNative.CompressionStrategy strategy = ZLibNative.CompressionStrategy.DefaultStrategy;

+ /// + ///

Smallest Size Compression:

+ ///

ZLibNative.CompressionLevel compressionLevel = ZLibNative.CompressionLevel.BestCompression;
+ /// int windowBits = 15; // or -15 if no headers required
+ /// int memLevel = 8;
+ /// ZLibNative.CompressionStrategy strategy = ZLibNative.CompressionStrategy.DefaultStrategy;

/// public enum CompressionLevel : int { NoCompression = 0, BestSpeed = 1, - DefaultCompression = -1 + DefaultCompression = -1, + BestCompression = 9 } /// From 15460311833f161bbe90b61ef94a8f339178840b Mon Sep 17 00:00:00 2001 From: David Wrighton Date: Mon, 7 Dec 2020 14:12:04 -0800 Subject: [PATCH 55/87] There is one true bool and it is bool (#45630) While reviewing a PR by @AndyAyersMS, I saw that @Rattenkrieg had noticed our variable use of the `bool` and `BOOL` types. This change converts all BOOL usage to bool in the jit interface api, - This change should have no impact on anything but the jit interface api surface - I have a goal of converting the jit interface to be loadable in a non-PAL based header environment. As part of that BOOL as well as many other Windowsisms will need to go away and be replaced by standard types - This was just the first type, although its the only type change that I believe will necessitate changes in the managed crossgen2 codebase --- .../superpmi-shared/icorjitinfoimpl.h | 56 +++--- .../superpmi-shared/methodcontext.cpp | 116 ++++++------- .../superpmi/superpmi-shared/methodcontext.h | 88 +++++----- .../superpmi-shim-collector/icorjitinfo.cpp | 82 ++++----- .../superpmi-shim-counter/icorjitinfo.cpp | 56 +++--- .../superpmi-shim-simple/icorjitinfo.cpp | 56 +++--- .../ToolBox/superpmi/superpmi/icorjitinfo.cpp | 54 +++--- src/coreclr/src/inc/corinfo.h | 60 +++---- src/coreclr/src/inc/corjit.h | 6 +- src/coreclr/src/inc/jiteeversionguid.h | 10 +- .../src/jit/ICorJitInfo_API_wrapper.hpp | 90 +++++----- src/coreclr/src/jit/compiler.cpp | 4 +- src/coreclr/src/jit/importer.cpp | 2 +- .../tools/Common/JitInterface/CorInfoBase.cs | 104 +++++------ .../tools/Common/JitInterface/CorInfoImpl.cs | 15 +- .../tools/Common/JitInterface/CorInfoTypes.cs | 6 +- .../JitInterface/ThunkGenerator/Program.cs | 14 +- .../ThunkGenerator/ThunkInput.txt | 50 +++--- .../JitInterface/CorInfoImpl.ReadyToRun.cs | 7 +- .../src/tools/aot/jitinterface/jitinterface.h | 134 +++++++------- src/coreclr/src/vm/comdelegate.cpp | 80 ++++----- src/coreclr/src/vm/comdelegate.h | 6 +- src/coreclr/src/vm/jitinterface.cpp | 164 +++++++++--------- src/coreclr/src/vm/jitinterface.h | 68 ++++---- src/coreclr/src/vm/prestub.cpp | 3 +- src/coreclr/src/vm/reflectioninvocation.cpp | 3 +- src/coreclr/src/zap/zapinfo.cpp | 55 +++--- src/coreclr/src/zap/zapinfo.h | 56 +++--- 28 files changed, 716 insertions(+), 729 deletions(-) diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h index cba48b62723a4..7763f2181b6bb 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h @@ -104,20 +104,20 @@ bool isIntrinsicType( CorInfoUnmanagedCallConv getUnmanagedCallConv( CORINFO_METHOD_HANDLE method); -BOOL pInvokeMarshalingRequired( +bool pInvokeMarshalingRequired( CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig); -BOOL satisfiesMethodConstraints( +bool satisfiesMethodConstraints( CORINFO_CLASS_HANDLE parent, CORINFO_METHOD_HANDLE method); -BOOL isCompatibleDelegate( +bool isCompatibleDelegate( CORINFO_CLASS_HANDLE objCls, CORINFO_CLASS_HANDLE methodParentCls, CORINFO_METHOD_HANDLE method, CORINFO_CLASS_HANDLE delegateCls, - BOOL* pfIsOpenDelegate); + bool* pfIsOpenDelegate); void methodMustBeLoadedBeforeCodeIsRun( CORINFO_METHOD_HANDLE method); @@ -156,11 +156,11 @@ void findCallSiteSig( CORINFO_CLASS_HANDLE getTokenTypeAsHandle( CORINFO_RESOLVED_TOKEN* pResolvedToken); -BOOL isValidToken( +bool isValidToken( CORINFO_MODULE_HANDLE module, unsigned metaTOK); -BOOL isValidStringRef( +bool isValidStringRef( CORINFO_MODULE_HANDLE module, unsigned metaTOK); @@ -187,11 +187,11 @@ int appendClassName( WCHAR** ppBuf, int* pnBufLen, CORINFO_CLASS_HANDLE cls, - BOOL fNamespace, - BOOL fFullInst, - BOOL fAssembly); + bool fNamespace, + bool fFullInst, + bool fAssembly); -BOOL isValueClass( +bool isValueClass( CORINFO_CLASS_HANDLE cls); CorInfoInlineTypeCheck canInlineTypeCheck( @@ -201,7 +201,7 @@ CorInfoInlineTypeCheck canInlineTypeCheck( DWORD getClassAttribs( CORINFO_CLASS_HANDLE cls); -BOOL isStructRequiringStackAllocRetBuf( +bool isStructRequiringStackAllocRetBuf( CORINFO_CLASS_HANDLE cls); CORINFO_MODULE_HANDLE getClassModule( @@ -230,12 +230,12 @@ unsigned getClassSize( unsigned getHeapClassSize( CORINFO_CLASS_HANDLE cls); -BOOL canAllocateOnStack( +bool canAllocateOnStack( CORINFO_CLASS_HANDLE cls); unsigned getClassAlignmentRequirement( CORINFO_CLASS_HANDLE cls, - BOOL fDoubleAlignHint); + bool fDoubleAlignHint); unsigned getClassGClayout( CORINFO_CLASS_HANDLE cls, @@ -248,10 +248,10 @@ CORINFO_FIELD_HANDLE getFieldInClass( CORINFO_CLASS_HANDLE clsHnd, INT num); -BOOL checkMethodModifier( +bool checkMethodModifier( CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, - BOOL fOptional); + bool fOptional); CorInfoHelpFunc getNewHelper( CORINFO_RESOLVED_TOKEN* pResolvedToken, @@ -308,11 +308,11 @@ CorInfoType getTypeForPrimitiveValueClass( CorInfoType getTypeForPrimitiveNumericClass( CORINFO_CLASS_HANDLE cls); -BOOL canCast( +bool canCast( CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent); -BOOL areTypesEquivalent( +bool areTypesEquivalent( CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2); @@ -328,7 +328,7 @@ CORINFO_CLASS_HANDLE mergeClasses( CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2); -BOOL isMoreSpecificType( +bool isMoreSpecificType( CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2); @@ -339,10 +339,10 @@ CorInfoType getChildType( CORINFO_CLASS_HANDLE clsHnd, CORINFO_CLASS_HANDLE* clsRet); -BOOL satisfiesClassConstraints( +bool satisfiesClassConstraints( CORINFO_CLASS_HANDLE cls); -BOOL isSDArray( +bool isSDArray( CORINFO_CLASS_HANDLE cls); unsigned getArrayRank( @@ -525,7 +525,7 @@ CORINFO_FIELD_HANDLE embedFieldHandle( void embedGenericHandle( CORINFO_RESOLVED_TOKEN* pResolvedToken, - BOOL fEmbedParent, + bool fEmbedParent, CORINFO_GENERICHANDLE_RESULT* pResult); void getLocationOfThisType( @@ -548,9 +548,9 @@ CORINFO_JUST_MY_CODE_HANDLE getJustMyCodeHandle( CORINFO_JUST_MY_CODE_HANDLE** ppIndirection); void GetProfilingHandle( - BOOL* pbHookFunction, + bool* pbHookFunction, void** pProfilerHandle, - BOOL* pbIndirectedHandles); + bool* pbIndirectedHandles); void getCallInfo( CORINFO_RESOLVED_TOKEN* pResolvedToken, @@ -559,11 +559,11 @@ void getCallInfo( CORINFO_CALLINFO_FLAGS flags, CORINFO_CALL_INFO* pResult); -BOOL canAccessFamily( +bool canAccessFamily( CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType); -BOOL isRIDClassDomainID( +bool isRIDClassDomainID( CORINFO_CLASS_HANDLE cls); unsigned getClassDomainID( @@ -639,8 +639,8 @@ void allocMem( void** roDataBlock); void reserveUnwindInfo( - BOOL isFunclet, - BOOL isColdCode, + bool isFunclet, + bool isColdCode, ULONG unwindSize); void allocUnwindInfo( @@ -662,7 +662,7 @@ void setEHinfo( unsigned EHnumber, const CORINFO_EH_CLAUSE* clause); -BOOL logMsg( +bool logMsg( unsigned level, const char* fmt, va_list args); diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.cpp b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.cpp index 73de00372b0e4..00d88a6b10a66 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.cpp +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.cpp @@ -1602,7 +1602,7 @@ CorInfoIntrinsics MethodContext::repGetIntrinsicID(CORINFO_METHOD_HANDLE method, return result; } -void MethodContext::recIsIntrinsicType(CORINFO_CLASS_HANDLE cls, BOOL result) +void MethodContext::recIsIntrinsicType(CORINFO_CLASS_HANDLE cls, bool result) { if (IsIntrinsicType == nullptr) IsIntrinsicType = new LightWeightMap(); @@ -1614,12 +1614,12 @@ void MethodContext::dmpIsIntrinsicType(DWORDLONG key, DWORD value) { printf("IsIntrinsicType key mth-%016llX, value intr-%u", key, value); } -BOOL MethodContext::repIsIntrinsicType(CORINFO_CLASS_HANDLE cls) +bool MethodContext::repIsIntrinsicType(CORINFO_CLASS_HANDLE cls) { AssertCodeMsg(IsIntrinsicType != nullptr, EXCEPTIONCODE_MC, "Didn't find anything for %016llX", (DWORDLONG)cls); AssertCodeMsg(IsIntrinsicType->GetIndex((DWORDLONG)cls) != -1, EXCEPTIONCODE_MC, "Didn't find %016llX", (DWORDLONG)cls); - BOOL result = (BOOL)IsIntrinsicType->Get((DWORDLONG)cls); + bool result = (BOOL)IsIntrinsicType->Get((DWORDLONG)cls); DEBUG_REP(dmpIsIntrinsicType((DWORDLONG)cls, (DWORD)result)); return result; } @@ -1674,7 +1674,7 @@ CorInfoType MethodContext::repAsCorInfoType(CORINFO_CLASS_HANDLE cls) return result; } -void MethodContext::recIsValueClass(CORINFO_CLASS_HANDLE cls, BOOL result) +void MethodContext::recIsValueClass(CORINFO_CLASS_HANDLE cls, bool result) { if (IsValueClass == nullptr) IsValueClass = new LightWeightMap(); @@ -1686,17 +1686,17 @@ void MethodContext::dmpIsValueClass(DWORDLONG key, DWORD value) { printf("IsValueClass key cls-%016llX, value res-%u", key, value); } -BOOL MethodContext::repIsValueClass(CORINFO_CLASS_HANDLE cls) +bool MethodContext::repIsValueClass(CORINFO_CLASS_HANDLE cls) { AssertCodeMsg((IsValueClass != nullptr) && (IsValueClass->GetIndex((DWORDLONG)cls) != -1), EXCEPTIONCODE_MC, "Didn't find %016llX", (DWORDLONG)cls); - BOOL result = (BOOL)IsValueClass->Get((DWORDLONG)cls); + bool result = (BOOL)IsValueClass->Get((DWORDLONG)cls); DEBUG_REP(dmpIsValueClass((DWORDLONG)cls, (DWORD)result)); return result; } -void MethodContext::recIsStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls, BOOL result) +void MethodContext::recIsStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls, bool result) { if (IsStructRequiringStackAllocRetBuf == nullptr) IsStructRequiringStackAllocRetBuf = new LightWeightMap(); @@ -1708,14 +1708,14 @@ void MethodContext::dmpIsStructRequiringStackAllocRetBuf(DWORDLONG key, DWORD va { printf("IsStructRequiringStackAllocRetBuf key cls-%016llX, value res-%u", key, value); } -BOOL MethodContext::repIsStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls) +bool MethodContext::repIsStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls) { AssertCodeMsg(IsStructRequiringStackAllocRetBuf != nullptr, EXCEPTIONCODE_MC, "Found a null IsStructRequiringStackAllocRetBuf. Probably missing a fatTrigger for %016llX.", (DWORDLONG)cls); AssertCodeMsg(IsStructRequiringStackAllocRetBuf->GetIndex((DWORDLONG)cls) != -1, EXCEPTIONCODE_MC, "Didn't find %016llX", (DWORDLONG)cls); - BOOL result = (BOOL)IsStructRequiringStackAllocRetBuf->Get((DWORDLONG)cls); + bool result = (BOOL)IsStructRequiringStackAllocRetBuf->Get((DWORDLONG)cls); DEBUG_REP(dmpIsStructRequiringStackAllocRetBuf((DWORDLONG)cls, (DWORD)result)); return result; } @@ -1764,7 +1764,7 @@ unsigned MethodContext::repGetHeapClassSize(CORINFO_CLASS_HANDLE cls) return result; } -void MethodContext::recCanAllocateOnStack(CORINFO_CLASS_HANDLE cls, BOOL result) +void MethodContext::recCanAllocateOnStack(CORINFO_CLASS_HANDLE cls, bool result) { if (CanAllocateOnStack == nullptr) CanAllocateOnStack = new LightWeightMap(); @@ -1776,12 +1776,12 @@ void MethodContext::dmpCanAllocateOnStack(DWORDLONG key, DWORD val) { printf("CanAllocateOnStack key %016llX, value %u", key, val); } -BOOL MethodContext::repCanAllocateOnStack(CORINFO_CLASS_HANDLE cls) +bool MethodContext::repCanAllocateOnStack(CORINFO_CLASS_HANDLE cls) { AssertCodeMsg(CanAllocateOnStack != nullptr, EXCEPTIONCODE_MC, "Didn't find %016llX", (DWORDLONG)cls); AssertCodeMsg(CanAllocateOnStack->GetIndex((DWORDLONG)cls) != -1, EXCEPTIONCODE_MC, "Didn't find %016llX", (DWORDLONG)cls); - BOOL result = (BOOL)CanAllocateOnStack->Get((DWORDLONG)cls); + bool result = (BOOL)CanAllocateOnStack->Get((DWORDLONG)cls); DEBUG_REP(dmpCanAllocateOnStack((DWORDLONG)cls, (DWORD)result)); return result; } @@ -1973,7 +1973,7 @@ CORINFO_CLASS_HANDLE MethodContext::repGetParentType(CORINFO_CLASS_HANDLE cls) return result; } -void MethodContext::recIsSDArray(CORINFO_CLASS_HANDLE cls, BOOL result) +void MethodContext::recIsSDArray(CORINFO_CLASS_HANDLE cls, bool result) { if (IsSDArray == nullptr) IsSDArray = new LightWeightMap(); @@ -1985,11 +1985,11 @@ void MethodContext::dmpIsSDArray(DWORDLONG key, DWORD value) { printf("IsSDArray key cls-%016llX, value res-%u", key, value); } -BOOL MethodContext::repIsSDArray(CORINFO_CLASS_HANDLE cls) +bool MethodContext::repIsSDArray(CORINFO_CLASS_HANDLE cls) { AssertCodeMsg(IsSDArray != nullptr, EXCEPTIONCODE_MC, "Didn't find anything for %016llX", (DWORDLONG)cls); AssertCodeMsg(IsSDArray->GetIndex((DWORDLONG)cls) != -1, EXCEPTIONCODE_MC, "Didn't find %016llX", (DWORDLONG)cls); - BOOL temp = (BOOL)IsSDArray->Get((DWORDLONG)cls); + bool temp = (BOOL)IsSDArray->Get((DWORDLONG)cls); DEBUG_REP(dmpIsSDArray((DWORDLONG)cls, (DWORD)temp)); return temp; } @@ -2934,7 +2934,7 @@ CorInfoHelpFunc MethodContext::repGetNewHelper(CORINFO_RESOLVED_TOKEN* pResolved } void MethodContext::recEmbedGenericHandle(CORINFO_RESOLVED_TOKEN* pResolvedToken, - BOOL fEmbedParent, + bool fEmbedParent, CORINFO_GENERICHANDLE_RESULT* pResult) { if (EmbedGenericHandle == nullptr) @@ -2963,7 +2963,7 @@ void MethodContext::dmpEmbedGenericHandle(const Agnostic_EmbedGenericHandle& printf(" cth-%016llX ht-%u", value.compileTimeHandle, value.handleType); } void MethodContext::repEmbedGenericHandle(CORINFO_RESOLVED_TOKEN* pResolvedToken, - BOOL fEmbedParent, + bool fEmbedParent, CORINFO_GENERICHANDLE_RESULT* pResult) { Agnostic_EmbedGenericHandle key; @@ -3574,7 +3574,7 @@ unsigned MethodContext::repGetClassGClayout(CORINFO_CLASS_HANDLE cls, BYTE* gcPt return (unsigned)value.valCount; } -void MethodContext::recGetClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, BOOL fDoubleAlignHint, unsigned result) +void MethodContext::recGetClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, bool fDoubleAlignHint, unsigned result) { if (GetClassAlignmentRequirement == nullptr) GetClassAlignmentRequirement = new LightWeightMap(); @@ -3592,7 +3592,7 @@ void MethodContext::dmpGetClassAlignmentRequirement(DLD key, DWORD value) { printf("GetClassAlignmentRequirement key %016llX %u, value %u", key.A, key.B, value); } -unsigned MethodContext::repGetClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, BOOL fDoubleAlignHint) +unsigned MethodContext::repGetClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, bool fDoubleAlignHint) { DLD key; ZeroMemory(&key, sizeof(DLD)); // We use the input structs as a key and use memcmp to compare.. so we need to zero @@ -3768,7 +3768,7 @@ CORINFO_CLASS_HANDLE MethodContext::repEmbedClassHandle(CORINFO_CLASS_HANDLE han void MethodContext::recPInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig, - BOOL result) + bool result) { if (PInvokeMarshalingRequired == nullptr) PInvokeMarshalingRequired = new LightWeightMap(); @@ -3791,7 +3791,7 @@ void MethodContext::dmpPInvokeMarshalingRequired(const PInvokeMarshalingRequired key.pSig_Index, value); } // Note the jit interface implementation seems to only care about scope and pSig from callSiteSig -BOOL MethodContext::repPInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig) +bool MethodContext::repPInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig) { if (PInvokeMarshalingRequired == nullptr) // so when we replay checked on free, we throw from lwm return TRUE; // TODO-Cleanup: hackish... @@ -4491,7 +4491,7 @@ CorInfoInlineTypeCheck MethodContext::repCanInlineTypeCheck(CORINFO_CLASS_HANDLE void MethodContext::recSatisfiesMethodConstraints(CORINFO_CLASS_HANDLE parent, CORINFO_METHOD_HANDLE method, - BOOL result) + bool result) { if (SatisfiesMethodConstraints == nullptr) SatisfiesMethodConstraints = new LightWeightMap(); @@ -4509,7 +4509,7 @@ void MethodContext::dmpSatisfiesMethodConstraints(DLDL key, DWORD value) { printf("SatisfiesMethodConstraints key cls-%016llX ftn-%016llX, value res-%u", key.A, key.B, value); } -BOOL MethodContext::repSatisfiesMethodConstraints(CORINFO_CLASS_HANDLE parent, CORINFO_METHOD_HANDLE method) +bool MethodContext::repSatisfiesMethodConstraints(CORINFO_CLASS_HANDLE parent, CORINFO_METHOD_HANDLE method) { DLDL key; ZeroMemory(&key, sizeof(DLDL)); // We use the input structs as a key and use memcmp to compare.. so we need to zero @@ -4518,11 +4518,11 @@ BOOL MethodContext::repSatisfiesMethodConstraints(CORINFO_CLASS_HANDLE parent, C key.A = (DWORDLONG)parent; key.B = (DWORDLONG)method; - BOOL value = (BOOL)SatisfiesMethodConstraints->Get(key); + bool value = (BOOL)SatisfiesMethodConstraints->Get(key); return value; } -void MethodContext::recIsValidStringRef(CORINFO_MODULE_HANDLE module, unsigned metaTOK, BOOL result) +void MethodContext::recIsValidStringRef(CORINFO_MODULE_HANDLE module, unsigned metaTOK, bool result) { if (IsValidStringRef == nullptr) IsValidStringRef = new LightWeightMap(); @@ -4540,7 +4540,7 @@ void MethodContext::dmpIsValidStringRef(DLD key, DWORD value) { printf("IsValidStringRef key mod-%016llX tok-%08X, value res-%u", key.A, key.B, value); } -BOOL MethodContext::repIsValidStringRef(CORINFO_MODULE_HANDLE module, unsigned metaTOK) +bool MethodContext::repIsValidStringRef(CORINFO_MODULE_HANDLE module, unsigned metaTOK) { DLD key; ZeroMemory(&key, sizeof(DLD)); // We use the input structs as a key and use memcmp to compare.. so we need to zero @@ -4549,7 +4549,7 @@ BOOL MethodContext::repIsValidStringRef(CORINFO_MODULE_HANDLE module, unsigned m key.A = (DWORDLONG)module; key.B = (DWORD)metaTOK; - BOOL value = (BOOL)IsValidStringRef->Get(key); + bool value = (BOOL)IsValidStringRef->Get(key); return value; } @@ -4647,7 +4647,7 @@ const char* MethodContext::repGetHelperName(CorInfoHelpFunc funcNum) } } -void MethodContext::recCanCast(CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent, BOOL result) +void MethodContext::recCanCast(CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent, bool result) { if (CanCast == nullptr) CanCast = new LightWeightMap(); @@ -4666,7 +4666,7 @@ void MethodContext::dmpCanCast(DLDL key, DWORD value) { printf("CanCast key chd-%016llX par-%016llX, value res-%u", key.A, key.B, value); } -BOOL MethodContext::repCanCast(CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent) +bool MethodContext::repCanCast(CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent) { DLDL key; ZeroMemory(&key, sizeof(DLDL)); // We use the input structs as a key and use memcmp to compare.. so we need to zero @@ -4679,7 +4679,7 @@ BOOL MethodContext::repCanCast(CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE (DWORDLONG)child, (DWORDLONG)parent); AssertCodeMsg(CanCast->GetIndex(key) != -1, EXCEPTIONCODE_MC, "Didn't find %016llX, %016llX %u in map", (DWORDLONG)child, (DWORDLONG)parent, CanCast->GetCount()); - BOOL value = (BOOL)CanCast->Get(key); + bool value = (BOOL)CanCast->Get(key); DEBUG_REP(dmpCanCast(key, (DWORD)value)); return value; } @@ -4807,7 +4807,7 @@ void MethodContext::repGetAddressOfPInvokeTarget(CORINFO_METHOD_HANDLE method, C pLookup->accessType = (InfoAccessType)value.B; } -void MethodContext::recSatisfiesClassConstraints(CORINFO_CLASS_HANDLE cls, BOOL result) +void MethodContext::recSatisfiesClassConstraints(CORINFO_CLASS_HANDLE cls, bool result) { if (SatisfiesClassConstraints == nullptr) SatisfiesClassConstraints = new LightWeightMap(); @@ -4818,7 +4818,7 @@ void MethodContext::dmpSatisfiesClassConstraints(DWORDLONG key, DWORD value) { printf("SatisfiesClassConstraints key cls-%016llX, value res-%u", key, value); } -BOOL MethodContext::repSatisfiesClassConstraints(CORINFO_CLASS_HANDLE cls) +bool MethodContext::repSatisfiesClassConstraints(CORINFO_CLASS_HANDLE cls) { return (BOOL)SatisfiesClassConstraints->Get((DWORDLONG)cls); } @@ -4897,8 +4897,8 @@ void MethodContext::recIsCompatibleDelegate(CORINFO_CLASS_HANDLE objCls, CORINFO_CLASS_HANDLE methodParentCls, CORINFO_METHOD_HANDLE method, CORINFO_CLASS_HANDLE delegateCls, - BOOL* pfIsOpenDelegate, - BOOL result) + bool* pfIsOpenDelegate, + bool result) { if (IsCompatibleDelegate == nullptr) IsCompatibleDelegate = new LightWeightMap(); @@ -4923,11 +4923,11 @@ void MethodContext::dmpIsCompatibleDelegate(const Agnostic_IsCompatibleDelegate& "pfIsOpenDelegate-%08X result-%08X", key.objCls, key.methodParentCls, key.method, key.delegateCls, value.A, value.B); } -BOOL MethodContext::repIsCompatibleDelegate(CORINFO_CLASS_HANDLE objCls, +bool MethodContext::repIsCompatibleDelegate(CORINFO_CLASS_HANDLE objCls, CORINFO_CLASS_HANDLE methodParentCls, CORINFO_METHOD_HANDLE method, CORINFO_CLASS_HANDLE delegateCls, - BOOL* pfIsOpenDelegate) + bool* pfIsOpenDelegate) { Agnostic_IsCompatibleDelegate key; ZeroMemory(&key, sizeof(Agnostic_IsCompatibleDelegate)); // We use the input structs as a key and use memcmp to @@ -4947,7 +4947,7 @@ BOOL MethodContext::repIsCompatibleDelegate(CORINFO_CLASS_HANDLE objCls, void MethodContext::recIsDelegateCreationAllowed(CORINFO_CLASS_HANDLE delegateHnd, CORINFO_METHOD_HANDLE calleeHnd, - BOOL result) + bool result) { if (IsDelegateCreationAllowed == nullptr) IsDelegateCreationAllowed = new LightWeightMap(); @@ -4967,7 +4967,7 @@ void MethodContext::dmpIsDelegateCreationAllowed(DLDL key, DWORD value) { printf("IsDelegateCreationAllowed key delegateHnd-%016llX calleeHnd-%016llX result-%08X", key.A, key.B, value); } -BOOL MethodContext::repIsDelegateCreationAllowed(CORINFO_CLASS_HANDLE delegateHnd, CORINFO_METHOD_HANDLE calleeHnd) +bool MethodContext::repIsDelegateCreationAllowed(CORINFO_CLASS_HANDLE delegateHnd, CORINFO_METHOD_HANDLE calleeHnd) { DLDL key; ZeroMemory(&key, sizeof(key)); @@ -5343,7 +5343,7 @@ CORINFO_CLASS_HANDLE MethodContext::repMergeClasses(CORINFO_CLASS_HANDLE cls1, C return (CORINFO_CLASS_HANDLE)value; } -void MethodContext::recIsMoreSpecificType(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2, BOOL result) +void MethodContext::recIsMoreSpecificType(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2, bool result) { if (IsMoreSpecificType == nullptr) IsMoreSpecificType = new LightWeightMap(); @@ -5361,7 +5361,7 @@ void MethodContext::dmpIsMoreSpecificType(DLDL key, DWORD value) { printf("IsMoreSpecificType key cls1-%016llX cls2-%016llX, value %u", key.A, key.B, value); } -BOOL MethodContext::repIsMoreSpecificType(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) +bool MethodContext::repIsMoreSpecificType(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) { AssertCodeMsg(IsMoreSpecificType != nullptr, EXCEPTIONCODE_MC, "Didn't find %016llX %016llX", (DWORDLONG)cls1, (DWORDLONG)cls2); @@ -5458,7 +5458,7 @@ bool MethodContext::repCanGetCookieForPInvokeCalliSig(CORINFO_SIG_INFO* szMetaSi return temp != 0; } -void MethodContext::recCanAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType, BOOL result) +void MethodContext::recCanAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType, bool result) { if (CanAccessFamily == nullptr) CanAccessFamily = new LightWeightMap(); @@ -5476,7 +5476,7 @@ void MethodContext::dmpCanAccessFamily(DLDL key, DWORD value) { printf("CanAccessFamily key cal-%016llX inst-%016llX, value %u", key.A, key.B, value); } -BOOL MethodContext::repCanAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType) +bool MethodContext::repCanAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType) { DLDL key; ZeroMemory(&key, sizeof(DLDL)); // We use the input structs as a key and use memcmp to compare.. so we need to zero @@ -5506,7 +5506,7 @@ void MethodContext::dmpErrorList(DWORD key, DWORD value) printf("ErrorList NYI"); } -void MethodContext::recGetProfilingHandle(BOOL* pbHookFunction, void** pProfilerHandle, BOOL* pbIndirectedHandles) +void MethodContext::recGetProfilingHandle(bool* pbHookFunction, void** pProfilerHandle, bool* pbIndirectedHandles) { if (GetProfilingHandle == nullptr) GetProfilingHandle = new LightWeightMap(); @@ -5526,7 +5526,7 @@ void MethodContext::dmpGetProfilingHandle(DWORD key, const Agnostic_GetProfiling printf("GetProfilingHandle key %u, value bHookFtn-%u profHnd-%016llX bIndHnd-%u", key, value.bHookFunction, value.ProfilerHandle, value.bIndirectedHandles); } -void MethodContext::repGetProfilingHandle(BOOL* pbHookFunction, void** pProfilerHandle, BOOL* pbIndirectedHandles) +void MethodContext::repGetProfilingHandle(bool* pbHookFunction, void** pProfilerHandle, bool* pbIndirectedHandles) { Agnostic_GetProfilingHandle value; @@ -5566,7 +5566,7 @@ CORINFO_FIELD_HANDLE MethodContext::repEmbedFieldHandle(CORINFO_FIELD_HANDLE han return (CORINFO_FIELD_HANDLE)value.B; } -void MethodContext::recAreTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2, BOOL result) +void MethodContext::recAreTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2, bool result) { if (AreTypesEquivalent == nullptr) AreTypesEquivalent = new LightWeightMap(); @@ -5584,7 +5584,7 @@ void MethodContext::dmpAreTypesEquivalent(DLDL key, DWORD value) { printf("AreTypesEquivalent NYI"); } -BOOL MethodContext::repAreTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) +bool MethodContext::repAreTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) { DLDL key; ZeroMemory(&key, sizeof(DLDL)); // We use the input structs as a key and use memcmp to compare.. so we need to zero @@ -5595,7 +5595,7 @@ BOOL MethodContext::repAreTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLA AssertCodeMsg(AreTypesEquivalent->GetIndex(key) != -1, EXCEPTIONCODE_MC, "Didn't find %016llX %016llX", (DWORDLONG)cls1, (DWORDLONG)cls2); - BOOL value = (BOOL)AreTypesEquivalent->Get(key); + bool value = (BOOL)AreTypesEquivalent->Get(key); return value; } @@ -5853,7 +5853,7 @@ WORD MethodContext::repGetRelocTypeHint(void* target) return retVal; } -void MethodContext::recIsValidToken(CORINFO_MODULE_HANDLE module, unsigned metaTOK, BOOL result) +void MethodContext::recIsValidToken(CORINFO_MODULE_HANDLE module, unsigned metaTOK, bool result) { if (IsValidToken == nullptr) IsValidToken = new LightWeightMap(); @@ -5869,7 +5869,7 @@ void MethodContext::dmpIsValidToken(DLD key, DWORD value) { printf("IsValidToken key mod-%016llX tok-%08X, value res-%u", key.A, key.B, value); } -BOOL MethodContext::repIsValidToken(CORINFO_MODULE_HANDLE module, unsigned metaTOK) +bool MethodContext::repIsValidToken(CORINFO_MODULE_HANDLE module, unsigned metaTOK) { DLD key; ZeroMemory(&key, sizeof(DLD)); // We use the input structs as a key and use memcmp to compare.. so we need to zero @@ -5877,7 +5877,7 @@ BOOL MethodContext::repIsValidToken(CORINFO_MODULE_HANDLE module, unsigned metaT key.A = (DWORDLONG)module; key.B = (DWORD)metaTOK; - BOOL value = (BOOL)IsValidToken->Get(key); + bool value = (BOOL)IsValidToken->Get(key); return value; } @@ -6017,7 +6017,7 @@ CORINFO_CLASS_HANDLE MethodContext::repGetTypeInstantiationArgument(CORINFO_CLAS } void MethodContext::recAppendClassName( - CORINFO_CLASS_HANDLE cls, BOOL fNamespace, BOOL fFullInst, BOOL fAssembly, const WCHAR* result) + CORINFO_CLASS_HANDLE cls, bool fNamespace, bool fFullInst, bool fAssembly, const WCHAR* result) { if (AppendClassName == nullptr) AppendClassName = new LightWeightMap(); @@ -6046,9 +6046,9 @@ void MethodContext::dmpAppendClassName(const Agnostic_AppendClassName& key, DWOR } const WCHAR* MethodContext::repAppendClassName(CORINFO_CLASS_HANDLE cls, - BOOL fNamespace, - BOOL fFullInst, - BOOL fAssembly) + bool fNamespace, + bool fFullInst, + bool fAssembly) { if (AppendClassName == nullptr) return W("hackishClassName"); @@ -6166,7 +6166,7 @@ mdMethodDef MethodContext::repGetMethodDefFromMethod(CORINFO_METHOD_HANDLE hMeth return (mdMethodDef)GetMethodDefFromMethod->Get((DWORDLONG)hMethod); } -void MethodContext::recCheckMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, BOOL fOptional, BOOL result) +void MethodContext::recCheckMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, bool fOptional, bool result) { if (CheckMethodModifier == nullptr) CheckMethodModifier = new LightWeightMap(); @@ -6194,7 +6194,7 @@ void MethodContext::dmpCheckMethodModifier(const Agnostic_CheckMethodModifier& k (unsigned char*)CheckMethodModifier->GetBuffer(key.modifier), key.fOptional, value); CheckMethodModifier->Unlock(); } -BOOL MethodContext::repCheckMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, BOOL fOptional) +bool MethodContext::repCheckMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, bool fOptional) { Agnostic_CheckMethodModifier key; ZeroMemory(&key, sizeof(Agnostic_CheckMethodModifier)); // We use the input structs as a key and use memcmp to @@ -6209,7 +6209,7 @@ BOOL MethodContext::repCheckMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR key.fOptional = (DWORD)fOptional; - BOOL value = (BOOL)CheckMethodModifier->Get(key); + bool value = (BOOL)CheckMethodModifier->Get(key); return value; } @@ -6246,7 +6246,7 @@ bool MethodContext::repIsFieldStatic(CORINFO_FIELD_HANDLE fhld) AssertCodeMsg(IsFieldStatic != nullptr, EXCEPTIONCODE_MC, "Didn't find anything for %016llX", (DWORDLONG)fhld); AssertCodeMsg(IsFieldStatic->GetIndex((DWORDLONG)fhld) != -1, EXCEPTIONCODE_MC, "Didn't find %016llX", (DWORDLONG)fhld); - bool result = (bool)(IsFieldStatic->Get((DWORDLONG)fhld) != 0); + bool result = (BOOL)(IsFieldStatic->Get((DWORDLONG)fhld) != 0); DEBUG_REP(dmpIsFieldStatic((DWORDLONG)fhld, (DWORD)result)); return result; } diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.h b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.h index 0f66613c66c5a..1678a1069447a 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.h +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.h @@ -738,13 +738,13 @@ class MethodContext void dmpAsCorInfoType(DWORDLONG key, DWORD value); CorInfoType repAsCorInfoType(CORINFO_CLASS_HANDLE cls); - void recIsValueClass(CORINFO_CLASS_HANDLE cls, BOOL result); + void recIsValueClass(CORINFO_CLASS_HANDLE cls, bool result); void dmpIsValueClass(DWORDLONG key, DWORD value); - BOOL repIsValueClass(CORINFO_CLASS_HANDLE cls); + bool repIsValueClass(CORINFO_CLASS_HANDLE cls); - void recIsStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls, BOOL result); + void recIsStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls, bool result); void dmpIsStructRequiringStackAllocRetBuf(DWORDLONG key, DWORD value); - BOOL repIsStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls); + bool repIsStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls); void recGetClassSize(CORINFO_CLASS_HANDLE cls, unsigned result); void dmpGetClassSize(DWORDLONG key, DWORD val); @@ -754,9 +754,9 @@ class MethodContext void dmpGetHeapClassSize(DWORDLONG key, DWORD val); unsigned repGetHeapClassSize(CORINFO_CLASS_HANDLE cls); - void recCanAllocateOnStack(CORINFO_CLASS_HANDLE cls, BOOL result); + void recCanAllocateOnStack(CORINFO_CLASS_HANDLE cls, bool result); void dmpCanAllocateOnStack(DWORDLONG key, DWORD val); - BOOL repCanAllocateOnStack(CORINFO_CLASS_HANDLE cls); + bool repCanAllocateOnStack(CORINFO_CLASS_HANDLE cls); void recGetClassNumInstanceFields(CORINFO_CLASS_HANDLE cls, unsigned result); void dmpGetClassNumInstanceFields(DWORDLONG key, DWORD value); @@ -794,13 +794,13 @@ class MethodContext void dmpGetParentType(DWORDLONG key, DWORDLONG value); CORINFO_CLASS_HANDLE repGetParentType(CORINFO_CLASS_HANDLE cls); - void recIsSDArray(CORINFO_CLASS_HANDLE cls, BOOL result); + void recIsSDArray(CORINFO_CLASS_HANDLE cls, bool result); void dmpIsSDArray(DWORDLONG key, DWORD value); - BOOL repIsSDArray(CORINFO_CLASS_HANDLE cls); + bool repIsSDArray(CORINFO_CLASS_HANDLE cls); - void recIsIntrinsicType(CORINFO_CLASS_HANDLE cls, BOOL result); + void recIsIntrinsicType(CORINFO_CLASS_HANDLE cls, bool result); void dmpIsIntrinsicType(DWORDLONG key, DWORD value); - BOOL repIsIntrinsicType(CORINFO_CLASS_HANDLE cls); + bool repIsIntrinsicType(CORINFO_CLASS_HANDLE cls); void recGetFieldClass(CORINFO_FIELD_HANDLE field, CORINFO_CLASS_HANDLE result); void dmpGetFieldClass(DWORDLONG key, DWORDLONG value); @@ -913,12 +913,12 @@ class MethodContext CorInfoHelpFunc repGetNewHelper(CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, bool * pHasSideEffects); void recEmbedGenericHandle(CORINFO_RESOLVED_TOKEN* pResolvedToken, - BOOL fEmbedParent, + bool fEmbedParent, CORINFO_GENERICHANDLE_RESULT* pResult); void dmpEmbedGenericHandle(const Agnostic_EmbedGenericHandle& key, const Agnostic_CORINFO_GENERICHANDLE_RESULT& value); void repEmbedGenericHandle(CORINFO_RESOLVED_TOKEN* pResolvedToken, - BOOL fEmbedParent, + bool fEmbedParent, CORINFO_GENERICHANDLE_RESULT* pResult); void recGetEHinfo(CORINFO_METHOD_HANDLE ftn, unsigned EHnumber, CORINFO_EH_CLAUSE* clause); @@ -977,9 +977,9 @@ class MethodContext void dmpGetClassGClayout(DWORDLONG key, const Agnostic_GetClassGClayout& value); unsigned repGetClassGClayout(CORINFO_CLASS_HANDLE cls, BYTE* gcPtrs); - void recGetClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, BOOL fDoubleAlignHint, unsigned result); + void recGetClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, bool fDoubleAlignHint, unsigned result); void dmpGetClassAlignmentRequirement(DLD key, DWORD value); - unsigned repGetClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, BOOL fDoubleAlignHint); + unsigned repGetClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, bool fDoubleAlignHint); void recCanAccessClass(CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, @@ -1002,9 +1002,9 @@ class MethodContext void dmpEmbedClassHandle(DWORDLONG key, DLDL value); CORINFO_CLASS_HANDLE repEmbedClassHandle(CORINFO_CLASS_HANDLE handle, void** ppIndirection); - void recPInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig, BOOL result); + void recPInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig, bool result); void dmpPInvokeMarshalingRequired(const PInvokeMarshalingRequiredValue& key, DWORD value); - BOOL repPInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig); + bool repPInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig); void recFindSig(CORINFO_MODULE_HANDLE module, unsigned sigTOK, @@ -1095,13 +1095,13 @@ class MethodContext void dmpCanInlineTypeCheck(DLD key, DWORD value); CorInfoInlineTypeCheck repCanInlineTypeCheck(CORINFO_CLASS_HANDLE cls, CorInfoInlineTypeCheckSource source); - void recSatisfiesMethodConstraints(CORINFO_CLASS_HANDLE parent, CORINFO_METHOD_HANDLE method, BOOL result); + void recSatisfiesMethodConstraints(CORINFO_CLASS_HANDLE parent, CORINFO_METHOD_HANDLE method, bool result); void dmpSatisfiesMethodConstraints(DLDL key, DWORD value); - BOOL repSatisfiesMethodConstraints(CORINFO_CLASS_HANDLE parent, CORINFO_METHOD_HANDLE method); + bool repSatisfiesMethodConstraints(CORINFO_CLASS_HANDLE parent, CORINFO_METHOD_HANDLE method); - void recIsValidStringRef(CORINFO_MODULE_HANDLE module, unsigned metaTOK, BOOL result); + void recIsValidStringRef(CORINFO_MODULE_HANDLE module, unsigned metaTOK, bool result); void dmpIsValidStringRef(DLD key, DWORD value); - BOOL repIsValidStringRef(CORINFO_MODULE_HANDLE module, unsigned metaTOK); + bool repIsValidStringRef(CORINFO_MODULE_HANDLE module, unsigned metaTOK); void recGetStringLiteral(CORINFO_MODULE_HANDLE module, unsigned metaTOK, int length, LPCWSTR result); void dmpGetStringLiteral(DLD key, DD value); @@ -1111,9 +1111,9 @@ class MethodContext void dmpGetHelperName(DWORD key, DWORD value); const char* repGetHelperName(CorInfoHelpFunc funcNum); - void recCanCast(CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent, BOOL result); + void recCanCast(CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent, bool result); void dmpCanCast(DLDL key, DWORD value); - BOOL repCanCast(CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent); + bool repCanCast(CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent); void recGetChildType(CORINFO_CLASS_HANDLE clsHnd, CORINFO_CLASS_HANDLE* clsRet, CorInfoType result); void dmpGetChildType(DWORDLONG key, DLD value); @@ -1134,9 +1134,9 @@ class MethodContext void dmpGetAddressOfPInvokeTarget(DWORDLONG key, DLD value); void repGetAddressOfPInvokeTarget(CORINFO_METHOD_HANDLE method, CORINFO_CONST_LOOKUP* pLookup); - void recSatisfiesClassConstraints(CORINFO_CLASS_HANDLE cls, BOOL result); + void recSatisfiesClassConstraints(CORINFO_CLASS_HANDLE cls, bool result); void dmpSatisfiesClassConstraints(DWORDLONG key, DWORD value); - BOOL repSatisfiesClassConstraints(CORINFO_CLASS_HANDLE cls); + bool repSatisfiesClassConstraints(CORINFO_CLASS_HANDLE cls); void recGetMethodHash(CORINFO_METHOD_HANDLE ftn, unsigned result); void dmpGetMethodHash(DWORDLONG key, DWORD value); @@ -1157,18 +1157,18 @@ class MethodContext CORINFO_CLASS_HANDLE methodParentCls, CORINFO_METHOD_HANDLE method, CORINFO_CLASS_HANDLE delegateCls, - BOOL* pfIsOpenDelegate, - BOOL result); + bool* pfIsOpenDelegate, + bool result); void dmpIsCompatibleDelegate(const Agnostic_IsCompatibleDelegate& key, DD value); - BOOL repIsCompatibleDelegate(CORINFO_CLASS_HANDLE objCls, + bool repIsCompatibleDelegate(CORINFO_CLASS_HANDLE objCls, CORINFO_CLASS_HANDLE methodParentCls, CORINFO_METHOD_HANDLE method, CORINFO_CLASS_HANDLE delegateCls, - BOOL* pfIsOpenDelegate); + bool* pfIsOpenDelegate); - void recIsDelegateCreationAllowed(CORINFO_CLASS_HANDLE delegateHnd, CORINFO_METHOD_HANDLE calleeHnd, BOOL result); + void recIsDelegateCreationAllowed(CORINFO_CLASS_HANDLE delegateHnd, CORINFO_METHOD_HANDLE calleeHnd, bool result); void dmpIsDelegateCreationAllowed(DLDL key, DWORD value); - BOOL repIsDelegateCreationAllowed(CORINFO_CLASS_HANDLE delegateHnd, CORINFO_METHOD_HANDLE calleeHnd); + bool repIsDelegateCreationAllowed(CORINFO_CLASS_HANDLE delegateHnd, CORINFO_METHOD_HANDLE calleeHnd); void recFindCallSiteSig(CORINFO_MODULE_HANDLE module, unsigned methTOK, @@ -1219,9 +1219,9 @@ class MethodContext void dmpMergeClasses(DLDL key, DWORDLONG value); CORINFO_CLASS_HANDLE repMergeClasses(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2); - void recIsMoreSpecificType(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2, BOOL result); + void recIsMoreSpecificType(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2, bool result); void dmpIsMoreSpecificType(DLDL key, DWORD value); - BOOL repIsMoreSpecificType(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2); + bool repIsMoreSpecificType(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2); void recGetCookieForPInvokeCalliSig(CORINFO_SIG_INFO* szMetaSig, void** ppIndirection, LPVOID result); void dmpGetCookieForPInvokeCalliSig(const GetCookieForPInvokeCalliSigValue& key, DLDL value); @@ -1231,24 +1231,24 @@ class MethodContext void dmpCanGetCookieForPInvokeCalliSig(const CanGetCookieForPInvokeCalliSigValue& key, DWORD value); bool repCanGetCookieForPInvokeCalliSig(CORINFO_SIG_INFO* szMetaSig); - void recCanAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType, BOOL result); + void recCanAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType, bool result); void dmpCanAccessFamily(DLDL key, DWORD value); - BOOL repCanAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType); + bool repCanAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType); void recErrorList(const char* error); void dmpErrorList(DWORD key, DWORD value); - void recGetProfilingHandle(BOOL* pbHookFunction, void** pProfilerHandle, BOOL* pbIndirectedHandles); + void recGetProfilingHandle(bool* pbHookFunction, void** pProfilerHandle, bool* pbIndirectedHandles); void dmpGetProfilingHandle(DWORD key, const Agnostic_GetProfilingHandle& value); - void repGetProfilingHandle(BOOL* pbHookFunction, void** pProfilerHandle, BOOL* pbIndirectedHandles); + void repGetProfilingHandle(bool* pbHookFunction, void** pProfilerHandle, bool* pbIndirectedHandles); void recEmbedFieldHandle(CORINFO_FIELD_HANDLE handle, void** ppIndirection, CORINFO_FIELD_HANDLE result); void dmpEmbedFieldHandle(DWORDLONG key, DLDL value); CORINFO_FIELD_HANDLE repEmbedFieldHandle(CORINFO_FIELD_HANDLE handle, void** ppIndirection); - void recAreTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2, BOOL result); + void recAreTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2, bool result); void dmpAreTypesEquivalent(DLDL key, DWORD value); - BOOL repAreTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2); + bool repAreTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2); void recCompareTypesForCast(CORINFO_CLASS_HANDLE fromClass, CORINFO_CLASS_HANDLE toClass, TypeCompareState result); void dmpCompareTypesForCast(DLDL key, DWORD value); @@ -1276,9 +1276,9 @@ class MethodContext void dmpGetRelocTypeHint(DWORDLONG key, DWORD value); WORD repGetRelocTypeHint(void* target); - void recIsValidToken(CORINFO_MODULE_HANDLE module, unsigned metaTOK, BOOL result); + void recIsValidToken(CORINFO_MODULE_HANDLE module, unsigned metaTOK, bool result); void dmpIsValidToken(DLD key, DWORD value); - BOOL repIsValidToken(CORINFO_MODULE_HANDLE module, unsigned metaTOK); + bool repIsValidToken(CORINFO_MODULE_HANDLE module, unsigned metaTOK); void recGetClassName(CORINFO_CLASS_HANDLE cls, const char* result); void dmpGetClassName(DWORDLONG key, DWORD value); @@ -1293,9 +1293,9 @@ class MethodContext CORINFO_CLASS_HANDLE repGetTypeInstantiationArgument(CORINFO_CLASS_HANDLE cls, unsigned index); void recAppendClassName( - CORINFO_CLASS_HANDLE cls, BOOL fNamespace, BOOL fFullInst, BOOL fAssembly, const WCHAR* result); + CORINFO_CLASS_HANDLE cls, bool fNamespace, bool fFullInst, bool fAssembly, const WCHAR* result); void dmpAppendClassName(const Agnostic_AppendClassName& key, DWORD value); - const WCHAR* repAppendClassName(CORINFO_CLASS_HANDLE cls, BOOL fNamespace, BOOL fFullInst, BOOL fAssembly); + const WCHAR* repAppendClassName(CORINFO_CLASS_HANDLE cls, bool fNamespace, bool fFullInst, bool fAssembly); void recGetTailCallHelpers( CORINFO_RESOLVED_TOKEN* callToken, @@ -1313,9 +1313,9 @@ class MethodContext void dmpGetMethodDefFromMethod(DWORDLONG key, DWORD value); mdMethodDef repGetMethodDefFromMethod(CORINFO_METHOD_HANDLE hMethod); - void recCheckMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, BOOL fOptional, BOOL result); + void recCheckMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, bool fOptional, bool result); void dmpCheckMethodModifier(const Agnostic_CheckMethodModifier& key, DWORD value); - BOOL repCheckMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, BOOL fOptional); + bool repCheckMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, bool fOptional); void recGetArrayRank(CORINFO_CLASS_HANDLE cls, unsigned result); void dmpGetArrayRank(DWORDLONG key, DWORD value); diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp index a0bfb5e5f4955..40935680d97b9 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp @@ -300,21 +300,21 @@ CorInfoUnmanagedCallConv interceptor_ICJI::getUnmanagedCallConv(CORINFO_METHOD_H // return if any marshaling is required for PInvoke methods. Note that // method == 0 => calli. The call site sig is only needed for the varargs or calli case -BOOL interceptor_ICJI::pInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig) +bool interceptor_ICJI::pInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig) { mc->cr->AddCall("pInvokeMarshalingRequired"); - BOOL temp = original_ICorJitInfo->pInvokeMarshalingRequired(method, callSiteSig); + bool temp = original_ICorJitInfo->pInvokeMarshalingRequired(method, callSiteSig); mc->recPInvokeMarshalingRequired(method, callSiteSig, temp); return temp; } // Check constraints on method type arguments (only). // The parent class should be checked separately using satisfiesClassConstraints(parent). -BOOL interceptor_ICJI::satisfiesMethodConstraints(CORINFO_CLASS_HANDLE parent, // the exact parent of the method +bool interceptor_ICJI::satisfiesMethodConstraints(CORINFO_CLASS_HANDLE parent, // the exact parent of the method CORINFO_METHOD_HANDLE method) { mc->cr->AddCall("satisfiesMethodConstraints"); - BOOL temp = original_ICorJitInfo->satisfiesMethodConstraints(parent, method); + bool temp = original_ICorJitInfo->satisfiesMethodConstraints(parent, method); mc->recSatisfiesMethodConstraints(parent, method, temp); return temp; } @@ -322,16 +322,16 @@ BOOL interceptor_ICJI::satisfiesMethodConstraints(CORINFO_CLASS_HANDLE parent, // Given a delegate target class, a target method parent class, a target method, // a delegate class, check if the method signature is compatible with the Invoke method of the delegate // (under the typical instantiation of any free type variables in the memberref signatures). -BOOL interceptor_ICJI::isCompatibleDelegate( +bool interceptor_ICJI::isCompatibleDelegate( CORINFO_CLASS_HANDLE objCls, /* type of the delegate target, if any */ CORINFO_CLASS_HANDLE methodParentCls, /* exact parent of the target method, if any */ CORINFO_METHOD_HANDLE method, /* (representative) target method, if any */ CORINFO_CLASS_HANDLE delegateCls, /* exact type of the delegate */ - BOOL* pfIsOpenDelegate /* is the delegate open */ + bool* pfIsOpenDelegate /* is the delegate open */ ) { mc->cr->AddCall("isCompatibleDelegate"); - BOOL temp = + bool temp = original_ICorJitInfo->isCompatibleDelegate(objCls, methodParentCls, method, delegateCls, pfIsOpenDelegate); mc->recIsCompatibleDelegate(objCls, methodParentCls, method, delegateCls, pfIsOpenDelegate, temp); return temp; @@ -457,23 +457,23 @@ CORINFO_CLASS_HANDLE interceptor_ICJI::getTokenTypeAsHandle(CORINFO_RESOLVED_TOK } // Checks if the given metadata token is valid -BOOL interceptor_ICJI::isValidToken(CORINFO_MODULE_HANDLE module, /* IN */ +bool interceptor_ICJI::isValidToken(CORINFO_MODULE_HANDLE module, /* IN */ unsigned metaTOK /* IN */ ) { mc->cr->AddCall("isValidToken"); - BOOL result = original_ICorJitInfo->isValidToken(module, metaTOK); + bool result = original_ICorJitInfo->isValidToken(module, metaTOK); mc->recIsValidToken(module, metaTOK, result); return result; } // Checks if the given metadata token is valid StringRef -BOOL interceptor_ICJI::isValidStringRef(CORINFO_MODULE_HANDLE module, /* IN */ +bool interceptor_ICJI::isValidStringRef(CORINFO_MODULE_HANDLE module, /* IN */ unsigned metaTOK /* IN */ ) { mc->cr->AddCall("isValidStringRef"); - BOOL temp = original_ICorJitInfo->isValidStringRef(module, metaTOK); + bool temp = original_ICorJitInfo->isValidStringRef(module, metaTOK); mc->recIsValidStringRef(module, metaTOK, temp); return temp; } @@ -538,9 +538,9 @@ CORINFO_CLASS_HANDLE interceptor_ICJI::getTypeInstantiationArgument(CORINFO_CLAS int interceptor_ICJI::appendClassName(__deref_inout_ecount(*pnBufLen) WCHAR** ppBuf, int* pnBufLen, CORINFO_CLASS_HANDLE cls, - BOOL fNamespace, - BOOL fFullInst, - BOOL fAssembly) + bool fNamespace, + bool fFullInst, + bool fAssembly) { mc->cr->AddCall("appendClassName"); WCHAR* pBuf = *ppBuf; @@ -551,10 +551,10 @@ int interceptor_ICJI::appendClassName(__deref_inout_ecount(*pnBufLen) WCHAR** pp // Quick check whether the type is a value class. Returns the same value as getClassAttribs(cls) & // CORINFO_FLG_VALUECLASS, except faster. -BOOL interceptor_ICJI::isValueClass(CORINFO_CLASS_HANDLE cls) +bool interceptor_ICJI::isValueClass(CORINFO_CLASS_HANDLE cls) { mc->cr->AddCall("isValueClass"); - BOOL temp = original_ICorJitInfo->isValueClass(cls); + bool temp = original_ICorJitInfo->isValueClass(cls); mc->recIsValueClass(cls, temp); return temp; } @@ -586,10 +586,10 @@ DWORD interceptor_ICJI::getClassAttribs(CORINFO_CLASS_HANDLE cls) // an optimization: the JIT may assume that return buffer pointers for return types for which this predicate // returns TRUE are always stack allocated, and thus, that stores to the GC-pointer fields of such return // buffers do not require GC write barriers. -BOOL interceptor_ICJI::isStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls) +bool interceptor_ICJI::isStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls) { mc->cr->AddCall("isStructRequiringStackAllocRetBuf"); - BOOL temp = original_ICorJitInfo->isStructRequiringStackAllocRetBuf(cls); + bool temp = original_ICorJitInfo->isStructRequiringStackAllocRetBuf(cls); mc->recIsStructRequiringStackAllocRetBuf(cls, temp); return temp; } @@ -658,15 +658,15 @@ unsigned interceptor_ICJI::getHeapClassSize(CORINFO_CLASS_HANDLE cls) return temp; } -BOOL interceptor_ICJI::canAllocateOnStack(CORINFO_CLASS_HANDLE cls) +bool interceptor_ICJI::canAllocateOnStack(CORINFO_CLASS_HANDLE cls) { mc->cr->AddCall("canAllocateOnStack"); - BOOL temp = original_ICorJitInfo->canAllocateOnStack(cls); + bool temp = original_ICorJitInfo->canAllocateOnStack(cls); mc->recCanAllocateOnStack(cls, temp); return temp; } -unsigned interceptor_ICJI::getClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, BOOL fDoubleAlignHint) +unsigned interceptor_ICJI::getClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, bool fDoubleAlignHint) { mc->cr->AddCall("getClassAlignmentRequirement"); unsigned temp = original_ICorJitInfo->getClassAlignmentRequirement(cls, fDoubleAlignHint); @@ -712,10 +712,10 @@ CORINFO_FIELD_HANDLE interceptor_ICJI::getFieldInClass(CORINFO_CLASS_HANDLE clsH return temp; } -BOOL interceptor_ICJI::checkMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, BOOL fOptional) +bool interceptor_ICJI::checkMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, bool fOptional) { mc->cr->AddCall("checkMethodModifier"); - BOOL result = original_ICorJitInfo->checkMethodModifier(hMethod, modifier, fOptional); + bool result = original_ICorJitInfo->checkMethodModifier(hMethod, modifier, fOptional); mc->recCheckMethodModifier(hMethod, modifier, fOptional, result); return result; } @@ -893,21 +893,21 @@ CorInfoType interceptor_ICJI::getTypeForPrimitiveNumericClass(CORINFO_CLASS_HAND // TRUE if child is a subtype of parent // if parent is an interface, then does child implement / extend parent -BOOL interceptor_ICJI::canCast(CORINFO_CLASS_HANDLE child, // subtype (extends parent) +bool interceptor_ICJI::canCast(CORINFO_CLASS_HANDLE child, // subtype (extends parent) CORINFO_CLASS_HANDLE parent // base type ) { mc->cr->AddCall("canCast"); - BOOL temp = original_ICorJitInfo->canCast(child, parent); + bool temp = original_ICorJitInfo->canCast(child, parent); mc->recCanCast(child, parent, temp); return temp; } // TRUE if cls1 and cls2 are considered equivalent types. -BOOL interceptor_ICJI::areTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) +bool interceptor_ICJI::areTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) { mc->cr->AddCall("areTypesEquivalent"); - BOOL temp = original_ICorJitInfo->areTypesEquivalent(cls1, cls2); + bool temp = original_ICorJitInfo->areTypesEquivalent(cls1, cls2); mc->recAreTypesEquivalent(cls1, cls2, temp); return temp; } @@ -942,10 +942,10 @@ CORINFO_CLASS_HANDLE interceptor_ICJI::mergeClasses(CORINFO_CLASS_HANDLE cls1, C } // Returns true if cls2 is known to be a more specific type than cls1. -BOOL interceptor_ICJI::isMoreSpecificType(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) +bool interceptor_ICJI::isMoreSpecificType(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) { mc->cr->AddCall("isMoreSpecificType"); - BOOL temp = original_ICorJitInfo->isMoreSpecificType(cls1, cls2); + bool temp = original_ICorJitInfo->isMoreSpecificType(cls1, cls2); mc->recIsMoreSpecificType(cls1, cls2, temp); return temp; } @@ -974,19 +974,19 @@ CorInfoType interceptor_ICJI::getChildType(CORINFO_CLASS_HANDLE clsHnd, CORINFO_ } // Check constraints on type arguments of this class and parent classes -BOOL interceptor_ICJI::satisfiesClassConstraints(CORINFO_CLASS_HANDLE cls) +bool interceptor_ICJI::satisfiesClassConstraints(CORINFO_CLASS_HANDLE cls) { mc->cr->AddCall("satisfiesClassConstraints"); - BOOL temp = original_ICorJitInfo->satisfiesClassConstraints(cls); + bool temp = original_ICorJitInfo->satisfiesClassConstraints(cls); mc->recSatisfiesClassConstraints(cls, temp); return temp; } // Check if this is a single dimensional array type -BOOL interceptor_ICJI::isSDArray(CORINFO_CLASS_HANDLE cls) +bool interceptor_ICJI::isSDArray(CORINFO_CLASS_HANDLE cls) { mc->cr->AddCall("isSDArray"); - BOOL temp = original_ICorJitInfo->isSDArray(cls); + bool temp = original_ICorJitInfo->isSDArray(cls); mc->recIsSDArray(cls, temp); return temp; } @@ -1592,7 +1592,7 @@ CORINFO_FIELD_HANDLE interceptor_ICJI::embedFieldHandle(CORINFO_FIELD_HANDLE han // then indicate how the handle should be looked up at run-time. // void interceptor_ICJI::embedGenericHandle(CORINFO_RESOLVED_TOKEN* pResolvedToken, - BOOL fEmbedParent, // TRUE - embeds parent type handle of the field/method + bool fEmbedParent, // TRUE - embeds parent type handle of the field/method // handle CORINFO_GENERICHANDLE_RESULT* pResult) { @@ -1657,7 +1657,7 @@ CORINFO_JUST_MY_CODE_HANDLE interceptor_ICJI::getJustMyCodeHandle(CORINFO_METHOD // Gets a method handle that can be used to correlate profiling data. // This is the IP of a native method, or the address of the descriptor struct // for IL. Always guaranteed to be unique per process, and not to move. */ -void interceptor_ICJI::GetProfilingHandle(BOOL* pbHookFunction, void** pProfilerHandle, BOOL* pbIndirectedHandles) +void interceptor_ICJI::GetProfilingHandle(bool* pbHookFunction, void** pProfilerHandle, bool* pbIndirectedHandles) { mc->cr->AddCall("GetProfilingHandle"); original_ICorJitInfo->GetProfilingHandle(pbHookFunction, pProfilerHandle, pbIndirectedHandles); @@ -1714,17 +1714,17 @@ void interceptor_ICJI::getCallInfo( PAL_ENDTRY } -BOOL interceptor_ICJI::canAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType) +bool interceptor_ICJI::canAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType) { mc->cr->AddCall("canAccessFamily"); - BOOL temp = original_ICorJitInfo->canAccessFamily(hCaller, hInstanceType); + bool temp = original_ICorJitInfo->canAccessFamily(hCaller, hInstanceType); mc->recCanAccessFamily(hCaller, hInstanceType, temp); return temp; } // Returns TRUE if the Class Domain ID is the RID of the class (currently true for every class // except reflection emitted classes and generics) -BOOL interceptor_ICJI::isRIDClassDomainID(CORINFO_CLASS_HANDLE cls) +bool interceptor_ICJI::isRIDClassDomainID(CORINFO_CLASS_HANDLE cls) { mc->cr->AddCall("isRIDClassDomainID"); return original_ICorJitInfo->isRIDClassDomainID(cls); @@ -1919,8 +1919,8 @@ void interceptor_ICJI::allocMem(ULONG hotCodeSize, /* IN */ // For prejitted code we split up the unwinding information into // separate sections .rdata and .pdata. // -void interceptor_ICJI::reserveUnwindInfo(BOOL isFunclet, /* IN */ - BOOL isColdCode, /* IN */ +void interceptor_ICJI::reserveUnwindInfo(bool isFunclet, /* IN */ + bool isColdCode, /* IN */ ULONG unwindSize /* IN */ ) { @@ -1999,7 +1999,7 @@ void interceptor_ICJI::setEHinfo(unsigned EHnumber, /* IN */ // Level 1 -> fatalError, Level 2 -> Error, Level 3 -> Warning // Level 4 means happens 10 times in a run, level 5 means 100, level 6 means 1000 ... // returns non-zero if the logging succeeded -BOOL interceptor_ICJI::logMsg(unsigned level, const char* fmt, va_list args) +bool interceptor_ICJI::logMsg(unsigned level, const char* fmt, va_list args) { mc->cr->AddCall("logMsg"); return original_ICorJitInfo->logMsg(level, fmt, args); diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp index fa5f38ed1d7e8..68d226cc8b59f 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp @@ -169,7 +169,7 @@ CorInfoUnmanagedCallConv interceptor_ICJI::getUnmanagedCallConv( return original_ICorJitInfo->getUnmanagedCallConv(method); } -BOOL interceptor_ICJI::pInvokeMarshalingRequired( +bool interceptor_ICJI::pInvokeMarshalingRequired( CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig) { @@ -177,7 +177,7 @@ BOOL interceptor_ICJI::pInvokeMarshalingRequired( return original_ICorJitInfo->pInvokeMarshalingRequired(method, callSiteSig); } -BOOL interceptor_ICJI::satisfiesMethodConstraints( +bool interceptor_ICJI::satisfiesMethodConstraints( CORINFO_CLASS_HANDLE parent, CORINFO_METHOD_HANDLE method) { @@ -185,12 +185,12 @@ BOOL interceptor_ICJI::satisfiesMethodConstraints( return original_ICorJitInfo->satisfiesMethodConstraints(parent, method); } -BOOL interceptor_ICJI::isCompatibleDelegate( +bool interceptor_ICJI::isCompatibleDelegate( CORINFO_CLASS_HANDLE objCls, CORINFO_CLASS_HANDLE methodParentCls, CORINFO_METHOD_HANDLE method, CORINFO_CLASS_HANDLE delegateCls, - BOOL* pfIsOpenDelegate) + bool* pfIsOpenDelegate) { mcs->AddCall("isCompatibleDelegate"); return original_ICorJitInfo->isCompatibleDelegate(objCls, methodParentCls, method, delegateCls, pfIsOpenDelegate); @@ -273,7 +273,7 @@ CORINFO_CLASS_HANDLE interceptor_ICJI::getTokenTypeAsHandle( return original_ICorJitInfo->getTokenTypeAsHandle(pResolvedToken); } -BOOL interceptor_ICJI::isValidToken( +bool interceptor_ICJI::isValidToken( CORINFO_MODULE_HANDLE module, unsigned metaTOK) { @@ -281,7 +281,7 @@ BOOL interceptor_ICJI::isValidToken( return original_ICorJitInfo->isValidToken(module, metaTOK); } -BOOL interceptor_ICJI::isValidStringRef( +bool interceptor_ICJI::isValidStringRef( CORINFO_MODULE_HANDLE module, unsigned metaTOK) { @@ -332,15 +332,15 @@ int interceptor_ICJI::appendClassName( WCHAR** ppBuf, int* pnBufLen, CORINFO_CLASS_HANDLE cls, - BOOL fNamespace, - BOOL fFullInst, - BOOL fAssembly) + bool fNamespace, + bool fFullInst, + bool fAssembly) { mcs->AddCall("appendClassName"); return original_ICorJitInfo->appendClassName(ppBuf, pnBufLen, cls, fNamespace, fFullInst, fAssembly); } -BOOL interceptor_ICJI::isValueClass( +bool interceptor_ICJI::isValueClass( CORINFO_CLASS_HANDLE cls) { mcs->AddCall("isValueClass"); @@ -362,7 +362,7 @@ DWORD interceptor_ICJI::getClassAttribs( return original_ICorJitInfo->getClassAttribs(cls); } -BOOL interceptor_ICJI::isStructRequiringStackAllocRetBuf( +bool interceptor_ICJI::isStructRequiringStackAllocRetBuf( CORINFO_CLASS_HANDLE cls) { mcs->AddCall("isStructRequiringStackAllocRetBuf"); @@ -427,7 +427,7 @@ unsigned interceptor_ICJI::getHeapClassSize( return original_ICorJitInfo->getHeapClassSize(cls); } -BOOL interceptor_ICJI::canAllocateOnStack( +bool interceptor_ICJI::canAllocateOnStack( CORINFO_CLASS_HANDLE cls) { mcs->AddCall("canAllocateOnStack"); @@ -436,7 +436,7 @@ BOOL interceptor_ICJI::canAllocateOnStack( unsigned interceptor_ICJI::getClassAlignmentRequirement( CORINFO_CLASS_HANDLE cls, - BOOL fDoubleAlignHint) + bool fDoubleAlignHint) { mcs->AddCall("getClassAlignmentRequirement"); return original_ICorJitInfo->getClassAlignmentRequirement(cls, fDoubleAlignHint); @@ -465,10 +465,10 @@ CORINFO_FIELD_HANDLE interceptor_ICJI::getFieldInClass( return original_ICorJitInfo->getFieldInClass(clsHnd, num); } -BOOL interceptor_ICJI::checkMethodModifier( +bool interceptor_ICJI::checkMethodModifier( CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, - BOOL fOptional) + bool fOptional) { mcs->AddCall("checkMethodModifier"); return original_ICorJitInfo->checkMethodModifier(hMethod, modifier, fOptional); @@ -589,7 +589,7 @@ CorInfoType interceptor_ICJI::getTypeForPrimitiveNumericClass( return original_ICorJitInfo->getTypeForPrimitiveNumericClass(cls); } -BOOL interceptor_ICJI::canCast( +bool interceptor_ICJI::canCast( CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent) { @@ -597,7 +597,7 @@ BOOL interceptor_ICJI::canCast( return original_ICorJitInfo->canCast(child, parent); } -BOOL interceptor_ICJI::areTypesEquivalent( +bool interceptor_ICJI::areTypesEquivalent( CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) { @@ -629,7 +629,7 @@ CORINFO_CLASS_HANDLE interceptor_ICJI::mergeClasses( return original_ICorJitInfo->mergeClasses(cls1, cls2); } -BOOL interceptor_ICJI::isMoreSpecificType( +bool interceptor_ICJI::isMoreSpecificType( CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) { @@ -652,14 +652,14 @@ CorInfoType interceptor_ICJI::getChildType( return original_ICorJitInfo->getChildType(clsHnd, clsRet); } -BOOL interceptor_ICJI::satisfiesClassConstraints( +bool interceptor_ICJI::satisfiesClassConstraints( CORINFO_CLASS_HANDLE cls) { mcs->AddCall("satisfiesClassConstraints"); return original_ICorJitInfo->satisfiesClassConstraints(cls); } -BOOL interceptor_ICJI::isSDArray( +bool interceptor_ICJI::isSDArray( CORINFO_CLASS_HANDLE cls) { mcs->AddCall("isSDArray"); @@ -1030,7 +1030,7 @@ CORINFO_FIELD_HANDLE interceptor_ICJI::embedFieldHandle( void interceptor_ICJI::embedGenericHandle( CORINFO_RESOLVED_TOKEN* pResolvedToken, - BOOL fEmbedParent, + bool fEmbedParent, CORINFO_GENERICHANDLE_RESULT* pResult) { mcs->AddCall("embedGenericHandle"); @@ -1077,9 +1077,9 @@ CORINFO_JUST_MY_CODE_HANDLE interceptor_ICJI::getJustMyCodeHandle( } void interceptor_ICJI::GetProfilingHandle( - BOOL* pbHookFunction, + bool* pbHookFunction, void** pProfilerHandle, - BOOL* pbIndirectedHandles) + bool* pbIndirectedHandles) { mcs->AddCall("GetProfilingHandle"); original_ICorJitInfo->GetProfilingHandle(pbHookFunction, pProfilerHandle, pbIndirectedHandles); @@ -1096,7 +1096,7 @@ void interceptor_ICJI::getCallInfo( original_ICorJitInfo->getCallInfo(pResolvedToken, pConstrainedResolvedToken, callerHandle, flags, pResult); } -BOOL interceptor_ICJI::canAccessFamily( +bool interceptor_ICJI::canAccessFamily( CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType) { @@ -1104,7 +1104,7 @@ BOOL interceptor_ICJI::canAccessFamily( return original_ICorJitInfo->canAccessFamily(hCaller, hInstanceType); } -BOOL interceptor_ICJI::isRIDClassDomainID( +bool interceptor_ICJI::isRIDClassDomainID( CORINFO_CLASS_HANDLE cls) { mcs->AddCall("isRIDClassDomainID"); @@ -1248,8 +1248,8 @@ void interceptor_ICJI::allocMem( } void interceptor_ICJI::reserveUnwindInfo( - BOOL isFunclet, - BOOL isColdCode, + bool isFunclet, + bool isColdCode, ULONG unwindSize) { mcs->AddCall("reserveUnwindInfo"); @@ -1291,7 +1291,7 @@ void interceptor_ICJI::setEHinfo( original_ICorJitInfo->setEHinfo(EHnumber, clause); } -BOOL interceptor_ICJI::logMsg( +bool interceptor_ICJI::logMsg( unsigned level, const char* fmt, va_list args) diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp index e06dd650348f5..f32838307c10b 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp +++ b/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp @@ -150,26 +150,26 @@ CorInfoUnmanagedCallConv interceptor_ICJI::getUnmanagedCallConv( return original_ICorJitInfo->getUnmanagedCallConv(method); } -BOOL interceptor_ICJI::pInvokeMarshalingRequired( +bool interceptor_ICJI::pInvokeMarshalingRequired( CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig) { return original_ICorJitInfo->pInvokeMarshalingRequired(method, callSiteSig); } -BOOL interceptor_ICJI::satisfiesMethodConstraints( +bool interceptor_ICJI::satisfiesMethodConstraints( CORINFO_CLASS_HANDLE parent, CORINFO_METHOD_HANDLE method) { return original_ICorJitInfo->satisfiesMethodConstraints(parent, method); } -BOOL interceptor_ICJI::isCompatibleDelegate( +bool interceptor_ICJI::isCompatibleDelegate( CORINFO_CLASS_HANDLE objCls, CORINFO_CLASS_HANDLE methodParentCls, CORINFO_METHOD_HANDLE method, CORINFO_CLASS_HANDLE delegateCls, - BOOL* pfIsOpenDelegate) + bool* pfIsOpenDelegate) { return original_ICorJitInfo->isCompatibleDelegate(objCls, methodParentCls, method, delegateCls, pfIsOpenDelegate); } @@ -241,14 +241,14 @@ CORINFO_CLASS_HANDLE interceptor_ICJI::getTokenTypeAsHandle( return original_ICorJitInfo->getTokenTypeAsHandle(pResolvedToken); } -BOOL interceptor_ICJI::isValidToken( +bool interceptor_ICJI::isValidToken( CORINFO_MODULE_HANDLE module, unsigned metaTOK) { return original_ICorJitInfo->isValidToken(module, metaTOK); } -BOOL interceptor_ICJI::isValidStringRef( +bool interceptor_ICJI::isValidStringRef( CORINFO_MODULE_HANDLE module, unsigned metaTOK) { @@ -293,14 +293,14 @@ int interceptor_ICJI::appendClassName( WCHAR** ppBuf, int* pnBufLen, CORINFO_CLASS_HANDLE cls, - BOOL fNamespace, - BOOL fFullInst, - BOOL fAssembly) + bool fNamespace, + bool fFullInst, + bool fAssembly) { return original_ICorJitInfo->appendClassName(ppBuf, pnBufLen, cls, fNamespace, fFullInst, fAssembly); } -BOOL interceptor_ICJI::isValueClass( +bool interceptor_ICJI::isValueClass( CORINFO_CLASS_HANDLE cls) { return original_ICorJitInfo->isValueClass(cls); @@ -319,7 +319,7 @@ DWORD interceptor_ICJI::getClassAttribs( return original_ICorJitInfo->getClassAttribs(cls); } -BOOL interceptor_ICJI::isStructRequiringStackAllocRetBuf( +bool interceptor_ICJI::isStructRequiringStackAllocRetBuf( CORINFO_CLASS_HANDLE cls) { return original_ICorJitInfo->isStructRequiringStackAllocRetBuf(cls); @@ -375,7 +375,7 @@ unsigned interceptor_ICJI::getHeapClassSize( return original_ICorJitInfo->getHeapClassSize(cls); } -BOOL interceptor_ICJI::canAllocateOnStack( +bool interceptor_ICJI::canAllocateOnStack( CORINFO_CLASS_HANDLE cls) { return original_ICorJitInfo->canAllocateOnStack(cls); @@ -383,7 +383,7 @@ BOOL interceptor_ICJI::canAllocateOnStack( unsigned interceptor_ICJI::getClassAlignmentRequirement( CORINFO_CLASS_HANDLE cls, - BOOL fDoubleAlignHint) + bool fDoubleAlignHint) { return original_ICorJitInfo->getClassAlignmentRequirement(cls, fDoubleAlignHint); } @@ -408,10 +408,10 @@ CORINFO_FIELD_HANDLE interceptor_ICJI::getFieldInClass( return original_ICorJitInfo->getFieldInClass(clsHnd, num); } -BOOL interceptor_ICJI::checkMethodModifier( +bool interceptor_ICJI::checkMethodModifier( CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, - BOOL fOptional) + bool fOptional) { return original_ICorJitInfo->checkMethodModifier(hMethod, modifier, fOptional); } @@ -516,14 +516,14 @@ CorInfoType interceptor_ICJI::getTypeForPrimitiveNumericClass( return original_ICorJitInfo->getTypeForPrimitiveNumericClass(cls); } -BOOL interceptor_ICJI::canCast( +bool interceptor_ICJI::canCast( CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent) { return original_ICorJitInfo->canCast(child, parent); } -BOOL interceptor_ICJI::areTypesEquivalent( +bool interceptor_ICJI::areTypesEquivalent( CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) { @@ -551,7 +551,7 @@ CORINFO_CLASS_HANDLE interceptor_ICJI::mergeClasses( return original_ICorJitInfo->mergeClasses(cls1, cls2); } -BOOL interceptor_ICJI::isMoreSpecificType( +bool interceptor_ICJI::isMoreSpecificType( CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) { @@ -571,13 +571,13 @@ CorInfoType interceptor_ICJI::getChildType( return original_ICorJitInfo->getChildType(clsHnd, clsRet); } -BOOL interceptor_ICJI::satisfiesClassConstraints( +bool interceptor_ICJI::satisfiesClassConstraints( CORINFO_CLASS_HANDLE cls) { return original_ICorJitInfo->satisfiesClassConstraints(cls); } -BOOL interceptor_ICJI::isSDArray( +bool interceptor_ICJI::isSDArray( CORINFO_CLASS_HANDLE cls) { return original_ICorJitInfo->isSDArray(cls); @@ -901,7 +901,7 @@ CORINFO_FIELD_HANDLE interceptor_ICJI::embedFieldHandle( void interceptor_ICJI::embedGenericHandle( CORINFO_RESOLVED_TOKEN* pResolvedToken, - BOOL fEmbedParent, + bool fEmbedParent, CORINFO_GENERICHANDLE_RESULT* pResult) { original_ICorJitInfo->embedGenericHandle(pResolvedToken, fEmbedParent, pResult); @@ -942,9 +942,9 @@ CORINFO_JUST_MY_CODE_HANDLE interceptor_ICJI::getJustMyCodeHandle( } void interceptor_ICJI::GetProfilingHandle( - BOOL* pbHookFunction, + bool* pbHookFunction, void** pProfilerHandle, - BOOL* pbIndirectedHandles) + bool* pbIndirectedHandles) { original_ICorJitInfo->GetProfilingHandle(pbHookFunction, pProfilerHandle, pbIndirectedHandles); } @@ -959,14 +959,14 @@ void interceptor_ICJI::getCallInfo( original_ICorJitInfo->getCallInfo(pResolvedToken, pConstrainedResolvedToken, callerHandle, flags, pResult); } -BOOL interceptor_ICJI::canAccessFamily( +bool interceptor_ICJI::canAccessFamily( CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType) { return original_ICorJitInfo->canAccessFamily(hCaller, hInstanceType); } -BOOL interceptor_ICJI::isRIDClassDomainID( +bool interceptor_ICJI::isRIDClassDomainID( CORINFO_CLASS_HANDLE cls) { return original_ICorJitInfo->isRIDClassDomainID(cls); @@ -1093,8 +1093,8 @@ void interceptor_ICJI::allocMem( } void interceptor_ICJI::reserveUnwindInfo( - BOOL isFunclet, - BOOL isColdCode, + bool isFunclet, + bool isColdCode, ULONG unwindSize) { original_ICorJitInfo->reserveUnwindInfo(isFunclet, isColdCode, unwindSize); @@ -1131,7 +1131,7 @@ void interceptor_ICJI::setEHinfo( original_ICorJitInfo->setEHinfo(EHnumber, clause); } -BOOL interceptor_ICJI::logMsg( +bool interceptor_ICJI::logMsg( unsigned level, const char* fmt, va_list args) diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/icorjitinfo.cpp b/src/coreclr/src/ToolBox/superpmi/superpmi/icorjitinfo.cpp index 42abc8c338c49..62e8bc9066e02 100644 --- a/src/coreclr/src/ToolBox/superpmi/superpmi/icorjitinfo.cpp +++ b/src/coreclr/src/ToolBox/superpmi/superpmi/icorjitinfo.cpp @@ -227,7 +227,7 @@ CorInfoUnmanagedCallConv MyICJI::getUnmanagedCallConv(CORINFO_METHOD_HANDLE meth // return if any marshaling is required for PInvoke methods. Note that // method == 0 => calli. The call site sig is only needed for the varargs or calli case -BOOL MyICJI::pInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig) +bool MyICJI::pInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig) { jitInstance->mc->cr->AddCall("pInvokeMarshalingRequired"); return jitInstance->mc->repPInvokeMarshalingRequired(method, callSiteSig); @@ -235,7 +235,7 @@ BOOL MyICJI::pInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG // Check constraints on method type arguments (only). // The parent class should be checked separately using satisfiesClassConstraints(parent). -BOOL MyICJI::satisfiesMethodConstraints(CORINFO_CLASS_HANDLE parent, // the exact parent of the method +bool MyICJI::satisfiesMethodConstraints(CORINFO_CLASS_HANDLE parent, // the exact parent of the method CORINFO_METHOD_HANDLE method) { jitInstance->mc->cr->AddCall("satisfiesMethodConstraints"); @@ -245,11 +245,11 @@ BOOL MyICJI::satisfiesMethodConstraints(CORINFO_CLASS_HANDLE parent, // the exa // Given a delegate target class, a target method parent class, a target method, // a delegate class, check if the method signature is compatible with the Invoke method of the delegate // (under the typical instantiation of any free type variables in the memberref signatures). -BOOL MyICJI::isCompatibleDelegate(CORINFO_CLASS_HANDLE objCls, /* type of the delegate target, if any */ +bool MyICJI::isCompatibleDelegate(CORINFO_CLASS_HANDLE objCls, /* type of the delegate target, if any */ CORINFO_CLASS_HANDLE methodParentCls, /* exact parent of the target method, if any */ CORINFO_METHOD_HANDLE method, /* (representative) target method, if any */ CORINFO_CLASS_HANDLE delegateCls, /* exact type of the delegate */ - BOOL* pfIsOpenDelegate /* is the delegate open */ + bool* pfIsOpenDelegate /* is the delegate open */ ) { jitInstance->mc->cr->AddCall("isCompatibleDelegate"); @@ -350,7 +350,7 @@ CORINFO_CLASS_HANDLE MyICJI::getTokenTypeAsHandle(CORINFO_RESOLVED_TOKEN* pResol } // Checks if the given metadata token is valid -BOOL MyICJI::isValidToken(CORINFO_MODULE_HANDLE module, /* IN */ +bool MyICJI::isValidToken(CORINFO_MODULE_HANDLE module, /* IN */ unsigned metaTOK /* IN */ ) { @@ -359,7 +359,7 @@ BOOL MyICJI::isValidToken(CORINFO_MODULE_HANDLE module, /* IN */ } // Checks if the given metadata token is valid StringRef -BOOL MyICJI::isValidStringRef(CORINFO_MODULE_HANDLE module, /* IN */ +bool MyICJI::isValidStringRef(CORINFO_MODULE_HANDLE module, /* IN */ unsigned metaTOK /* IN */ ) { @@ -420,9 +420,9 @@ CORINFO_CLASS_HANDLE MyICJI::getTypeInstantiationArgument(CORINFO_CLASS_HANDLE c int MyICJI::appendClassName(__deref_inout_ecount(*pnBufLen) WCHAR** ppBuf, int* pnBufLen, CORINFO_CLASS_HANDLE cls, - BOOL fNamespace, - BOOL fFullInst, - BOOL fAssembly) + bool fNamespace, + bool fFullInst, + bool fAssembly) { jitInstance->mc->cr->AddCall("appendClassName"); const WCHAR* result = jitInstance->mc->repAppendClassName(cls, fNamespace, fFullInst, fAssembly); @@ -442,7 +442,7 @@ int MyICJI::appendClassName(__deref_inout_ecount(*pnBufLen) WCHAR** ppBuf, // Quick check whether the type is a value class. Returns the same value as getClassAttribs(cls) & // CORINFO_FLG_VALUECLASS, except faster. -BOOL MyICJI::isValueClass(CORINFO_CLASS_HANDLE cls) +bool MyICJI::isValueClass(CORINFO_CLASS_HANDLE cls) { jitInstance->mc->cr->AddCall("isValueClass"); return jitInstance->mc->repIsValueClass(cls); @@ -470,7 +470,7 @@ DWORD MyICJI::getClassAttribs(CORINFO_CLASS_HANDLE cls) // an optimization: the JIT may assume that return buffer pointers for return types for which this predicate // returns TRUE are always stack allocated, and thus, that stores to the GC-pointer fields of such return // buffers do not require GC write barriers. -BOOL MyICJI::isStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls) +bool MyICJI::isStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls) { jitInstance->mc->cr->AddCall("isStructRequiringStackAllocRetBuf"); return jitInstance->mc->repIsStructRequiringStackAllocRetBuf(cls); @@ -547,13 +547,13 @@ unsigned MyICJI::getHeapClassSize(CORINFO_CLASS_HANDLE cls) return jitInstance->mc->repGetHeapClassSize(cls); } -BOOL MyICJI::canAllocateOnStack(CORINFO_CLASS_HANDLE cls) +bool MyICJI::canAllocateOnStack(CORINFO_CLASS_HANDLE cls) { jitInstance->mc->cr->AddCall("canAllocateOnStack"); return jitInstance->mc->repCanAllocateOnStack(cls); } -unsigned MyICJI::getClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, BOOL fDoubleAlignHint) +unsigned MyICJI::getClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, bool fDoubleAlignHint) { jitInstance->mc->cr->AddCall("getClassAlignmentRequirement"); return jitInstance->mc->repGetClassAlignmentRequirement(cls, fDoubleAlignHint); @@ -590,10 +590,10 @@ CORINFO_FIELD_HANDLE MyICJI::getFieldInClass(CORINFO_CLASS_HANDLE clsHnd, INT nu return jitInstance->mc->repGetFieldInClass(clsHnd, num); } -BOOL MyICJI::checkMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, BOOL fOptional) +bool MyICJI::checkMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, bool fOptional) { jitInstance->mc->cr->AddCall("checkMethodModifier"); - BOOL result = jitInstance->mc->repCheckMethodModifier(hMethod, modifier, fOptional); + bool result = jitInstance->mc->repCheckMethodModifier(hMethod, modifier, fOptional); return result; } @@ -742,7 +742,7 @@ CorInfoType MyICJI::getTypeForPrimitiveNumericClass(CORINFO_CLASS_HANDLE cls) // TRUE if child is a subtype of parent // if parent is an interface, then does child implement / extend parent -BOOL MyICJI::canCast(CORINFO_CLASS_HANDLE child, // subtype (extends parent) +bool MyICJI::canCast(CORINFO_CLASS_HANDLE child, // subtype (extends parent) CORINFO_CLASS_HANDLE parent // base type ) { @@ -751,7 +751,7 @@ BOOL MyICJI::canCast(CORINFO_CLASS_HANDLE child, // subtype (extends parent) } // TRUE if cls1 and cls2 are considered equivalent types. -BOOL MyICJI::areTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) +bool MyICJI::areTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) { jitInstance->mc->cr->AddCall("areTypesEquivalent"); return jitInstance->mc->repAreTypesEquivalent(cls1, cls2); @@ -781,7 +781,7 @@ CORINFO_CLASS_HANDLE MyICJI::mergeClasses(CORINFO_CLASS_HANDLE cls1, CORINFO_CLA } // Returns true if cls2 is known to be a more specific type than cls1 -BOOL MyICJI::isMoreSpecificType(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) +bool MyICJI::isMoreSpecificType(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) { jitInstance->mc->cr->AddCall("isMoreSpecificType"); return jitInstance->mc->repIsMoreSpecificType(cls1, cls2); @@ -807,14 +807,14 @@ CorInfoType MyICJI::getChildType(CORINFO_CLASS_HANDLE clsHnd, CORINFO_CLASS_HAND } // Check constraints on type arguments of this class and parent classes -BOOL MyICJI::satisfiesClassConstraints(CORINFO_CLASS_HANDLE cls) +bool MyICJI::satisfiesClassConstraints(CORINFO_CLASS_HANDLE cls) { jitInstance->mc->cr->AddCall("satisfiesClassConstraints"); return jitInstance->mc->repSatisfiesClassConstraints(cls); } // Check if this is a single dimensional array type -BOOL MyICJI::isSDArray(CORINFO_CLASS_HANDLE cls) +bool MyICJI::isSDArray(CORINFO_CLASS_HANDLE cls) { jitInstance->mc->cr->AddCall("isSDArray"); return jitInstance->mc->repIsSDArray(cls); @@ -1339,7 +1339,7 @@ CORINFO_FIELD_HANDLE MyICJI::embedFieldHandle(CORINFO_FIELD_HANDLE handle, void* // then indicate how the handle should be looked up at run-time. // void MyICJI::embedGenericHandle(CORINFO_RESOLVED_TOKEN* pResolvedToken, - BOOL fEmbedParent, // TRUE - embeds parent type handle of the field/method handle + bool fEmbedParent, // TRUE - embeds parent type handle of the field/method handle CORINFO_GENERICHANDLE_RESULT* pResult) { jitInstance->mc->cr->AddCall("embedGenericHandle"); @@ -1394,7 +1394,7 @@ CORINFO_JUST_MY_CODE_HANDLE MyICJI::getJustMyCodeHandle(CORINFO_METHOD_HANDLE // Gets a method handle that can be used to correlate profiling data. // This is the IP of a native method, or the address of the descriptor struct // for IL. Always guaranteed to be unique per process, and not to move. */ -void MyICJI::GetProfilingHandle(BOOL* pbHookFunction, void** pProfilerHandle, BOOL* pbIndirectedHandles) +void MyICJI::GetProfilingHandle(bool* pbHookFunction, void** pProfilerHandle, bool* pbIndirectedHandles) { jitInstance->mc->cr->AddCall("GetProfilingHandle"); jitInstance->mc->repGetProfilingHandle(pbHookFunction, pProfilerHandle, pbIndirectedHandles); @@ -1425,7 +1425,7 @@ void MyICJI::getCallInfo( ThrowException(exceptionCode); } -BOOL MyICJI::canAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType) +bool MyICJI::canAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType) { jitInstance->mc->cr->AddCall("canAccessFamily"); @@ -1433,7 +1433,7 @@ BOOL MyICJI::canAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE } // Returns TRUE if the Class Domain ID is the RID of the class (currently true for every class // except reflection emitted classes and generics) -BOOL MyICJI::isRIDClassDomainID(CORINFO_CLASS_HANDLE cls) +bool MyICJI::isRIDClassDomainID(CORINFO_CLASS_HANDLE cls) { jitInstance->mc->cr->AddCall("isRIDClassDomainID"); LogError("Hit unimplemented isRIDClassDomainID"); @@ -1658,8 +1658,8 @@ void MyICJI::allocMem(ULONG hotCodeSize, /* IN */ // For prejitted code we split up the unwinding information into // separate sections .rdata and .pdata. // -void MyICJI::reserveUnwindInfo(BOOL isFunclet, /* IN */ - BOOL isColdCode, /* IN */ +void MyICJI::reserveUnwindInfo(bool isFunclet, /* IN */ + bool isColdCode, /* IN */ ULONG unwindSize /* IN */ ) { @@ -1738,7 +1738,7 @@ void MyICJI::setEHinfo(unsigned EHnumber, /* IN */ // Level 1 -> fatalError, Level 2 -> Error, Level 3 -> Warning // Level 4 means happens 10 times in a run, level 5 means 100, level 6 means 1000 ... // returns non-zero if the logging succeeded -BOOL MyICJI::logMsg(unsigned level, const char* fmt, va_list args) +bool MyICJI::logMsg(unsigned level, const char* fmt, va_list args) { jitInstance->mc->cr->AddCall("logMsg"); diff --git a/src/coreclr/src/inc/corinfo.h b/src/coreclr/src/inc/corinfo.h index 8acaaa5509f24..bcaaab5ed2060 100644 --- a/src/coreclr/src/inc/corinfo.h +++ b/src/coreclr/src/inc/corinfo.h @@ -1567,11 +1567,11 @@ struct CORINFO_CALL_INFO CORINFO_THIS_TRANSFORM thisTransform; CORINFO_CALL_KIND kind; - BOOL nullInstanceCheck; + bool nullInstanceCheck; // Context for inlining and hidden arg CORINFO_CONTEXT_HANDLE contextHandle; - BOOL exactContextNeedsRuntimeLookup; // Set if contextHandle is approx handle. Runtime lookup is required to get the exact handle. + bool exactContextNeedsRuntimeLookup; // Set if contextHandle is approx handle. Runtime lookup is required to get the exact handle. // If kind.CORINFO_VIRTUALCALL_STUB then stubLookup will be set. // If kind.CORINFO_CALL_CODE_POINTER then entryPointLookup will be set. @@ -1584,7 +1584,7 @@ struct CORINFO_CALL_INFO CORINFO_CONST_LOOKUP instParamLookup; // Used by Ready-to-Run - BOOL wrapperDelegateInvoke; + bool wrapperDelegateInvoke; }; struct CORINFO_DEVIRTUALIZATION_INFO @@ -2050,7 +2050,7 @@ class ICorStaticInfo // Get the unboxed entry point for a method, if possible. virtual CORINFO_METHOD_HANDLE getUnboxedEntry( CORINFO_METHOD_HANDLE ftn, - bool* requiresInstMethodTableArg = NULL /* OUT */ + bool* requiresInstMethodTableArg ) = 0; // Given T, return the type of the default EqualityComparer. @@ -2089,14 +2089,14 @@ class ICorStaticInfo // return if any marshaling is required for PInvoke methods. Note that // method == 0 => calli. The call site sig is only needed for the varargs or calli case - virtual BOOL pInvokeMarshalingRequired( + virtual bool pInvokeMarshalingRequired( CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig ) = 0; // Check constraints on method type arguments (only). // The parent class should be checked separately using satisfiesClassConstraints(parent). - virtual BOOL satisfiesMethodConstraints( + virtual bool satisfiesMethodConstraints( CORINFO_CLASS_HANDLE parent, // the exact parent of the method CORINFO_METHOD_HANDLE method ) = 0; @@ -2104,12 +2104,12 @@ class ICorStaticInfo // Given a delegate target class, a target method parent class, a target method, // a delegate class, check if the method signature is compatible with the Invoke method of the delegate // (under the typical instantiation of any free type variables in the memberref signatures). - virtual BOOL isCompatibleDelegate( + virtual bool isCompatibleDelegate( CORINFO_CLASS_HANDLE objCls, /* type of the delegate target, if any */ CORINFO_CLASS_HANDLE methodParentCls, /* exact parent of the target method, if any */ CORINFO_METHOD_HANDLE method, /* (representative) target method, if any */ CORINFO_CLASS_HANDLE delegateCls, /* exact type of the delegate */ - BOOL *pfIsOpenDelegate /* is the delegate open */ + bool *pfIsOpenDelegate /* is the delegate open */ ) = 0; // load and restore the method @@ -2177,13 +2177,13 @@ class ICorStaticInfo CORINFO_RESOLVED_TOKEN * pResolvedToken /* IN */) = 0; // Checks if the given metadata token is valid - virtual BOOL isValidToken ( + virtual bool isValidToken ( CORINFO_MODULE_HANDLE module, /* IN */ unsigned metaTOK /* IN */ ) = 0; // Checks if the given metadata token is valid StringRef - virtual BOOL isValidStringRef ( + virtual bool isValidStringRef ( CORINFO_MODULE_HANDLE module, /* IN */ unsigned metaTOK /* IN */ ) = 0; @@ -2237,13 +2237,13 @@ class ICorStaticInfo __deref_inout_ecount(*pnBufLen) WCHAR** ppBuf, int* pnBufLen, CORINFO_CLASS_HANDLE cls, - BOOL fNamespace, - BOOL fFullInst, - BOOL fAssembly + bool fNamespace, + bool fFullInst, + bool fAssembly ) = 0; // Quick check whether the type is a value class. Returns the same value as getClassAttribs(cls) & CORINFO_FLG_VALUECLASS, except faster. - virtual BOOL isValueClass(CORINFO_CLASS_HANDLE cls) = 0; + virtual bool isValueClass(CORINFO_CLASS_HANDLE cls) = 0; // Decides how the JIT should do the optimization to inline the check for // GetTypeFromHandle(handle) == obj.GetType() (for CORINFO_INLINE_TYPECHECK_SOURCE_VTABLE) @@ -2261,7 +2261,7 @@ class ICorStaticInfo // an optimization: the JIT may assume that return buffer pointers for return types for which this predicate // returns TRUE are always stack allocated, and thus, that stores to the GC-pointer fields of such return // buffers do not require GC write barriers. - virtual BOOL isStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls) = 0; + virtual bool isStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls) = 0; virtual CORINFO_MODULE_HANDLE getClassModule ( CORINFO_CLASS_HANDLE cls @@ -2300,13 +2300,13 @@ class ICorStaticInfo CORINFO_CLASS_HANDLE cls ) = 0; - virtual BOOL canAllocateOnStack( + virtual bool canAllocateOnStack( CORINFO_CLASS_HANDLE cls ) = 0; virtual unsigned getClassAlignmentRequirement ( CORINFO_CLASS_HANDLE cls, - BOOL fDoubleAlignHint = FALSE + bool fDoubleAlignHint = false ) = 0; // This is only called for Value classes. It returns a boolean array @@ -2333,17 +2333,17 @@ class ICorStaticInfo INT num ) = 0; - virtual BOOL checkMethodModifier( + virtual bool checkMethodModifier( CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, - BOOL fOptional + bool fOptional ) = 0; // returns the "NEW" helper optimized for "newCls." virtual CorInfoHelpFunc getNewHelper( CORINFO_RESOLVED_TOKEN * pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, - bool * pHasSideEffects = NULL /* OUT */ + bool * pHasSideEffects ) = 0; // returns the newArr (1-Dim array) helper optimized for "arrayCls." @@ -2455,13 +2455,13 @@ class ICorStaticInfo // TRUE if child is a subtype of parent // if parent is an interface, then does child implement / extend parent - virtual BOOL canCast( + virtual bool canCast( CORINFO_CLASS_HANDLE child, // subtype (extends parent) CORINFO_CLASS_HANDLE parent // base type ) = 0; // TRUE if cls1 and cls2 are considered equivalent types. - virtual BOOL areTypesEquivalent( + virtual bool areTypesEquivalent( CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2 ) = 0; @@ -2491,7 +2491,7 @@ class ICorStaticInfo // for purposes of jit type tracking. This is a hint to the // jit for optimization; it does not have correctness // implications. - virtual BOOL isMoreSpecificType( + virtual bool isMoreSpecificType( CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2 ) = 0; @@ -2513,12 +2513,12 @@ class ICorStaticInfo ) = 0; // Check constraints on type arguments of this class and parent classes - virtual BOOL satisfiesClassConstraints( + virtual bool satisfiesClassConstraints( CORINFO_CLASS_HANDLE cls ) = 0; // Check if this is a single dimensional array type - virtual BOOL isSDArray( + virtual bool isSDArray( CORINFO_CLASS_HANDLE cls ) = 0; @@ -2930,7 +2930,7 @@ class ICorDynamicInfo : public ICorStaticInfo // virtual void embedGenericHandle( CORINFO_RESOLVED_TOKEN * pResolvedToken, - BOOL fEmbedParent, // TRUE - embeds parent type handle of the field/method handle + bool fEmbedParent, // TRUE - embeds parent type handle of the field/method handle CORINFO_GENERICHANDLE_RESULT * pResult) = 0; // Return information used to locate the exact enclosing type of the current method. @@ -2976,9 +2976,9 @@ class ICorDynamicInfo : public ICorStaticInfo // This is the IP of a native method, or the address of the descriptor struct // for IL. Always guaranteed to be unique per process, and not to move. */ virtual void GetProfilingHandle( - BOOL *pbHookFunction, + bool *pbHookFunction, void **pProfilerHandle, - BOOL *pbIndirectedHandles + bool *pbIndirectedHandles ) = 0; // Returns instructions on how to make the call. See code:CORINFO_CALL_INFO for possible return values. @@ -2999,12 +2999,12 @@ class ICorDynamicInfo : public ICorStaticInfo CORINFO_CALL_INFO *pResult ) = 0; - virtual BOOL canAccessFamily(CORINFO_METHOD_HANDLE hCaller, + virtual bool canAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType) = 0; // Returns TRUE if the Class Domain ID is the RID of the class (currently true for every class // except reflection emitted classes and generics) - virtual BOOL isRIDClassDomainID(CORINFO_CLASS_HANDLE cls) = 0; + virtual bool isRIDClassDomainID(CORINFO_CLASS_HANDLE cls) = 0; // returns the class's domain ID for accessing shared statics virtual unsigned getClassDomainID ( diff --git a/src/coreclr/src/inc/corjit.h b/src/coreclr/src/inc/corjit.h index f358f6740fe17..f23f1407870fc 100644 --- a/src/coreclr/src/inc/corjit.h +++ b/src/coreclr/src/inc/corjit.h @@ -177,8 +177,8 @@ class ICorJitInfo : public ICorDynamicInfo // separate sections .rdata and .pdata. // virtual void reserveUnwindInfo ( - BOOL isFunclet, /* IN */ - BOOL isColdCode, /* IN */ + bool isFunclet, /* IN */ + bool isColdCode, /* IN */ ULONG unwindSize /* IN */ ) = 0; @@ -237,7 +237,7 @@ class ICorJitInfo : public ICorDynamicInfo // Level -> fatalError, Level 2 -> Error, Level 3 -> Warning // Level 4 means happens 10 times in a run, level 5 means 100, level 6 means 1000 ... // returns non-zero if the logging succeeded - virtual BOOL logMsg(unsigned level, const char* fmt, va_list args) = 0; + virtual bool logMsg(unsigned level, const char* fmt, va_list args) = 0; // do an assert. will return true if the code should retry (DebugBreak) // returns false, if the assert should be igored. diff --git a/src/coreclr/src/inc/jiteeversionguid.h b/src/coreclr/src/inc/jiteeversionguid.h index fdb8d016b49e0..fc5bea70ee2ad 100644 --- a/src/coreclr/src/inc/jiteeversionguid.h +++ b/src/coreclr/src/inc/jiteeversionguid.h @@ -25,11 +25,11 @@ // ////////////////////////////////////////////////////////////////////////////////////////////////////////// -constexpr GUID JITEEVersionIdentifier = { /* 94cd1e55-a53b-4c6a-b697-46415b5d4204 */ - 0x94cd1e55, - 0xa53b, - 0x4c6a, - {0xb6, 0x97, 0x46, 0x41, 0x5b, 0x5d, 0x42, 0x04} +constexpr GUID JITEEVersionIdentifier = { /* f4746286-33ad-45a2-a37e-d226d689524d */ + 0xf4746286, + 0x33ad, + 0x45a2, + {0xa3, 0x7e, 0xd2, 0x26, 0xd6, 0x89, 0x52, 0x4d} }; ////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/coreclr/src/jit/ICorJitInfo_API_wrapper.hpp b/src/coreclr/src/jit/ICorJitInfo_API_wrapper.hpp index ddcadced08b13..29f9fd9ae8def 100644 --- a/src/coreclr/src/jit/ICorJitInfo_API_wrapper.hpp +++ b/src/coreclr/src/jit/ICorJitInfo_API_wrapper.hpp @@ -200,35 +200,35 @@ CorInfoUnmanagedCallConv WrapICorJitInfo::getUnmanagedCallConv( return temp; } -BOOL WrapICorJitInfo::pInvokeMarshalingRequired( +bool WrapICorJitInfo::pInvokeMarshalingRequired( CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig) { API_ENTER(pInvokeMarshalingRequired); - BOOL temp = wrapHnd->pInvokeMarshalingRequired(method, callSiteSig); + bool temp = wrapHnd->pInvokeMarshalingRequired(method, callSiteSig); API_LEAVE(pInvokeMarshalingRequired); return temp; } -BOOL WrapICorJitInfo::satisfiesMethodConstraints( +bool WrapICorJitInfo::satisfiesMethodConstraints( CORINFO_CLASS_HANDLE parent, CORINFO_METHOD_HANDLE method) { API_ENTER(satisfiesMethodConstraints); - BOOL temp = wrapHnd->satisfiesMethodConstraints(parent, method); + bool temp = wrapHnd->satisfiesMethodConstraints(parent, method); API_LEAVE(satisfiesMethodConstraints); return temp; } -BOOL WrapICorJitInfo::isCompatibleDelegate( +bool WrapICorJitInfo::isCompatibleDelegate( CORINFO_CLASS_HANDLE objCls, CORINFO_CLASS_HANDLE methodParentCls, CORINFO_METHOD_HANDLE method, CORINFO_CLASS_HANDLE delegateCls, - BOOL* pfIsOpenDelegate) + bool* pfIsOpenDelegate) { API_ENTER(isCompatibleDelegate); - BOOL temp = wrapHnd->isCompatibleDelegate(objCls, methodParentCls, method, delegateCls, pfIsOpenDelegate); + bool temp = wrapHnd->isCompatibleDelegate(objCls, methodParentCls, method, delegateCls, pfIsOpenDelegate); API_LEAVE(isCompatibleDelegate); return temp; } @@ -324,22 +324,22 @@ CORINFO_CLASS_HANDLE WrapICorJitInfo::getTokenTypeAsHandle( return temp; } -BOOL WrapICorJitInfo::isValidToken( +bool WrapICorJitInfo::isValidToken( CORINFO_MODULE_HANDLE module, unsigned metaTOK) { API_ENTER(isValidToken); - BOOL temp = wrapHnd->isValidToken(module, metaTOK); + bool temp = wrapHnd->isValidToken(module, metaTOK); API_LEAVE(isValidToken); return temp; } -BOOL WrapICorJitInfo::isValidStringRef( +bool WrapICorJitInfo::isValidStringRef( CORINFO_MODULE_HANDLE module, unsigned metaTOK) { API_ENTER(isValidStringRef); - BOOL temp = wrapHnd->isValidStringRef(module, metaTOK); + bool temp = wrapHnd->isValidStringRef(module, metaTOK); API_LEAVE(isValidStringRef); return temp; } @@ -397,9 +397,9 @@ int WrapICorJitInfo::appendClassName( WCHAR** ppBuf, int* pnBufLen, CORINFO_CLASS_HANDLE cls, - BOOL fNamespace, - BOOL fFullInst, - BOOL fAssembly) + bool fNamespace, + bool fFullInst, + bool fAssembly) { API_ENTER(appendClassName); int temp = wrapHnd->appendClassName(ppBuf, pnBufLen, cls, fNamespace, fFullInst, fAssembly); @@ -407,11 +407,11 @@ int WrapICorJitInfo::appendClassName( return temp; } -BOOL WrapICorJitInfo::isValueClass( +bool WrapICorJitInfo::isValueClass( CORINFO_CLASS_HANDLE cls) { API_ENTER(isValueClass); - BOOL temp = wrapHnd->isValueClass(cls); + bool temp = wrapHnd->isValueClass(cls); API_LEAVE(isValueClass); return temp; } @@ -435,11 +435,11 @@ DWORD WrapICorJitInfo::getClassAttribs( return temp; } -BOOL WrapICorJitInfo::isStructRequiringStackAllocRetBuf( +bool WrapICorJitInfo::isStructRequiringStackAllocRetBuf( CORINFO_CLASS_HANDLE cls) { API_ENTER(isStructRequiringStackAllocRetBuf); - BOOL temp = wrapHnd->isStructRequiringStackAllocRetBuf(cls); + bool temp = wrapHnd->isStructRequiringStackAllocRetBuf(cls); API_LEAVE(isStructRequiringStackAllocRetBuf); return temp; } @@ -517,18 +517,18 @@ unsigned WrapICorJitInfo::getHeapClassSize( return temp; } -BOOL WrapICorJitInfo::canAllocateOnStack( +bool WrapICorJitInfo::canAllocateOnStack( CORINFO_CLASS_HANDLE cls) { API_ENTER(canAllocateOnStack); - BOOL temp = wrapHnd->canAllocateOnStack(cls); + bool temp = wrapHnd->canAllocateOnStack(cls); API_LEAVE(canAllocateOnStack); return temp; } unsigned WrapICorJitInfo::getClassAlignmentRequirement( CORINFO_CLASS_HANDLE cls, - BOOL fDoubleAlignHint) + bool fDoubleAlignHint) { API_ENTER(getClassAlignmentRequirement); unsigned temp = wrapHnd->getClassAlignmentRequirement(cls, fDoubleAlignHint); @@ -565,13 +565,13 @@ CORINFO_FIELD_HANDLE WrapICorJitInfo::getFieldInClass( return temp; } -BOOL WrapICorJitInfo::checkMethodModifier( +bool WrapICorJitInfo::checkMethodModifier( CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, - BOOL fOptional) + bool fOptional) { API_ENTER(checkMethodModifier); - BOOL temp = wrapHnd->checkMethodModifier(hMethod, modifier, fOptional); + bool temp = wrapHnd->checkMethodModifier(hMethod, modifier, fOptional); API_LEAVE(checkMethodModifier); return temp; } @@ -719,22 +719,22 @@ CorInfoType WrapICorJitInfo::getTypeForPrimitiveNumericClass( return temp; } -BOOL WrapICorJitInfo::canCast( +bool WrapICorJitInfo::canCast( CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent) { API_ENTER(canCast); - BOOL temp = wrapHnd->canCast(child, parent); + bool temp = wrapHnd->canCast(child, parent); API_LEAVE(canCast); return temp; } -BOOL WrapICorJitInfo::areTypesEquivalent( +bool WrapICorJitInfo::areTypesEquivalent( CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) { API_ENTER(areTypesEquivalent); - BOOL temp = wrapHnd->areTypesEquivalent(cls1, cls2); + bool temp = wrapHnd->areTypesEquivalent(cls1, cls2); API_LEAVE(areTypesEquivalent); return temp; } @@ -769,12 +769,12 @@ CORINFO_CLASS_HANDLE WrapICorJitInfo::mergeClasses( return temp; } -BOOL WrapICorJitInfo::isMoreSpecificType( +bool WrapICorJitInfo::isMoreSpecificType( CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) { API_ENTER(isMoreSpecificType); - BOOL temp = wrapHnd->isMoreSpecificType(cls1, cls2); + bool temp = wrapHnd->isMoreSpecificType(cls1, cls2); API_LEAVE(isMoreSpecificType); return temp; } @@ -798,20 +798,20 @@ CorInfoType WrapICorJitInfo::getChildType( return temp; } -BOOL WrapICorJitInfo::satisfiesClassConstraints( +bool WrapICorJitInfo::satisfiesClassConstraints( CORINFO_CLASS_HANDLE cls) { API_ENTER(satisfiesClassConstraints); - BOOL temp = wrapHnd->satisfiesClassConstraints(cls); + bool temp = wrapHnd->satisfiesClassConstraints(cls); API_LEAVE(satisfiesClassConstraints); return temp; } -BOOL WrapICorJitInfo::isSDArray( +bool WrapICorJitInfo::isSDArray( CORINFO_CLASS_HANDLE cls) { API_ENTER(isSDArray); - BOOL temp = wrapHnd->isSDArray(cls); + bool temp = wrapHnd->isSDArray(cls); API_LEAVE(isSDArray); return temp; } @@ -1260,7 +1260,7 @@ CORINFO_FIELD_HANDLE WrapICorJitInfo::embedFieldHandle( void WrapICorJitInfo::embedGenericHandle( CORINFO_RESOLVED_TOKEN* pResolvedToken, - BOOL fEmbedParent, + bool fEmbedParent, CORINFO_GENERICHANDLE_RESULT* pResult) { API_ENTER(embedGenericHandle); @@ -1316,9 +1316,9 @@ CORINFO_JUST_MY_CODE_HANDLE WrapICorJitInfo::getJustMyCodeHandle( } void WrapICorJitInfo::GetProfilingHandle( - BOOL* pbHookFunction, + bool* pbHookFunction, void** pProfilerHandle, - BOOL* pbIndirectedHandles) + bool* pbIndirectedHandles) { API_ENTER(GetProfilingHandle); wrapHnd->GetProfilingHandle(pbHookFunction, pProfilerHandle, pbIndirectedHandles); @@ -1337,21 +1337,21 @@ void WrapICorJitInfo::getCallInfo( API_LEAVE(getCallInfo); } -BOOL WrapICorJitInfo::canAccessFamily( +bool WrapICorJitInfo::canAccessFamily( CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType) { API_ENTER(canAccessFamily); - BOOL temp = wrapHnd->canAccessFamily(hCaller, hInstanceType); + bool temp = wrapHnd->canAccessFamily(hCaller, hInstanceType); API_LEAVE(canAccessFamily); return temp; } -BOOL WrapICorJitInfo::isRIDClassDomainID( +bool WrapICorJitInfo::isRIDClassDomainID( CORINFO_CLASS_HANDLE cls) { API_ENTER(isRIDClassDomainID); - BOOL temp = wrapHnd->isRIDClassDomainID(cls); + bool temp = wrapHnd->isRIDClassDomainID(cls); API_LEAVE(isRIDClassDomainID); return temp; } @@ -1520,8 +1520,8 @@ void WrapICorJitInfo::allocMem( } void WrapICorJitInfo::reserveUnwindInfo( - BOOL isFunclet, - BOOL isColdCode, + bool isFunclet, + bool isColdCode, ULONG unwindSize) { API_ENTER(reserveUnwindInfo); @@ -1569,13 +1569,13 @@ void WrapICorJitInfo::setEHinfo( API_LEAVE(setEHinfo); } -BOOL WrapICorJitInfo::logMsg( +bool WrapICorJitInfo::logMsg( unsigned level, const char* fmt, va_list args) { API_ENTER(logMsg); - BOOL temp = wrapHnd->logMsg(level, fmt, args); + bool temp = wrapHnd->logMsg(level, fmt, args); API_LEAVE(logMsg); return temp; } diff --git a/src/coreclr/src/jit/compiler.cpp b/src/coreclr/src/jit/compiler.cpp index 1b76513211484..41bc1d600c98d 100644 --- a/src/coreclr/src/jit/compiler.cpp +++ b/src/coreclr/src/jit/compiler.cpp @@ -3178,8 +3178,8 @@ void Compiler::compInitOptions(JitFlags* jitFlags) // Cache the profiler handle if (jitFlags->IsSet(JitFlags::JIT_FLAG_PROF_ENTERLEAVE)) { - BOOL hookNeeded; - BOOL indirected; + bool hookNeeded; + bool indirected; info.compCompHnd->GetProfilingHandle(&hookNeeded, &compProfilerMethHnd, &indirected); compProfilerHookNeeded = !!hookNeeded; compProfilerMethHndIndirected = !!indirected; diff --git a/src/coreclr/src/jit/importer.cpp b/src/coreclr/src/jit/importer.cpp index 8f0354086f663..606ca5360b897 100644 --- a/src/coreclr/src/jit/importer.cpp +++ b/src/coreclr/src/jit/importer.cpp @@ -5795,7 +5795,7 @@ void Compiler::verVerifyCall(OPCODE opcode, eeGetCallInfo(&delegateResolvedToken, nullptr /* constraint typeRef */, addVerifyFlag(CORINFO_CALLINFO_SECURITYCHECKS), &delegateCallInfo); - BOOL isOpenDelegate = FALSE; + bool isOpenDelegate = false; VerifyOrReturn(info.compCompHnd->isCompatibleDelegate(objTypeHandle, delegateResolvedToken.hClass, tiActualFtn.GetMethod(), pResolvedToken->hClass, &isOpenDelegate), diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoBase.cs b/src/coreclr/src/tools/Common/JitInterface/CorInfoBase.cs index 8fd7bc81c3743..c7e198be1d45e 100644 --- a/src/coreclr/src/tools/Common/JitInterface/CorInfoBase.cs +++ b/src/coreclr/src/tools/Common/JitInterface/CorInfoBase.cs @@ -202,12 +202,12 @@ static byte _resolveVirtualMethod(IntPtr thisHandle, IntPtr* ppException, CORINF } [UnmanagedCallersOnly] - static CORINFO_METHOD_STRUCT_* _getUnboxedEntry(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, byte* requiresInstMethodTableArg) + static CORINFO_METHOD_STRUCT_* _getUnboxedEntry(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, bool* requiresInstMethodTableArg) { var _this = GetThis(thisHandle); try { - return _this.getUnboxedEntry(ftn, requiresInstMethodTableArg); + return _this.getUnboxedEntry(ftn, ref *requiresInstMethodTableArg); } catch (Exception ex) { @@ -291,7 +291,7 @@ static CorInfoUnmanagedCallConv _getUnmanagedCallConv(IntPtr thisHandle, IntPtr* } [UnmanagedCallersOnly] - static int _pInvokeMarshalingRequired(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* method, CORINFO_SIG_INFO* callSiteSig) + static byte _pInvokeMarshalingRequired(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* method, CORINFO_SIG_INFO* callSiteSig) { var _this = GetThis(thisHandle); try @@ -306,7 +306,7 @@ static int _pInvokeMarshalingRequired(IntPtr thisHandle, IntPtr* ppException, CO } [UnmanagedCallersOnly] - static int _satisfiesMethodConstraints(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* parent, CORINFO_METHOD_STRUCT_* method) + static byte _satisfiesMethodConstraints(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* parent, CORINFO_METHOD_STRUCT_* method) { var _this = GetThis(thisHandle); try @@ -321,12 +321,12 @@ static int _satisfiesMethodConstraints(IntPtr thisHandle, IntPtr* ppException, C } [UnmanagedCallersOnly] - static int _isCompatibleDelegate(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* objCls, CORINFO_CLASS_STRUCT_* methodParentCls, CORINFO_METHOD_STRUCT_* method, CORINFO_CLASS_STRUCT_* delegateCls, BOOL* pfIsOpenDelegate) + static byte _isCompatibleDelegate(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* objCls, CORINFO_CLASS_STRUCT_* methodParentCls, CORINFO_METHOD_STRUCT_* method, CORINFO_CLASS_STRUCT_* delegateCls, bool* pfIsOpenDelegate) { var _this = GetThis(thisHandle); try { - return _this.isCompatibleDelegate(objCls, methodParentCls, method, delegateCls, pfIsOpenDelegate) ? 1 : 0; + return _this.isCompatibleDelegate(objCls, methodParentCls, method, delegateCls, ref *pfIsOpenDelegate) ? 1 : 0; } catch (Exception ex) { @@ -480,7 +480,7 @@ static void _findCallSiteSig(IntPtr thisHandle, IntPtr* ppException, CORINFO_MOD } [UnmanagedCallersOnly] - static int _isValidToken(IntPtr thisHandle, IntPtr* ppException, CORINFO_MODULE_STRUCT_* module, uint metaTOK) + static byte _isValidToken(IntPtr thisHandle, IntPtr* ppException, CORINFO_MODULE_STRUCT_* module, uint metaTOK) { var _this = GetThis(thisHandle); try @@ -495,7 +495,7 @@ static int _isValidToken(IntPtr thisHandle, IntPtr* ppException, CORINFO_MODULE_ } [UnmanagedCallersOnly] - static int _isValidStringRef(IntPtr thisHandle, IntPtr* ppException, CORINFO_MODULE_STRUCT_* module, uint metaTOK) + static byte _isValidStringRef(IntPtr thisHandle, IntPtr* ppException, CORINFO_MODULE_STRUCT_* module, uint metaTOK) { var _this = GetThis(thisHandle); try @@ -585,7 +585,7 @@ static CorInfoType _asCorInfoType(IntPtr thisHandle, IntPtr* ppException, CORINF } [UnmanagedCallersOnly] - static int _appendClassName(IntPtr thisHandle, IntPtr* ppException, char** ppBuf, int* pnBufLen, CORINFO_CLASS_STRUCT_* cls, int fNamespace, int fFullInst, int fAssembly) + static int _appendClassName(IntPtr thisHandle, IntPtr* ppException, char** ppBuf, int* pnBufLen, CORINFO_CLASS_STRUCT_* cls, byte fNamespace, byte fFullInst, byte fAssembly) { var _this = GetThis(thisHandle); try @@ -600,7 +600,7 @@ static int _appendClassName(IntPtr thisHandle, IntPtr* ppException, char** ppBuf } [UnmanagedCallersOnly] - static int _isValueClass(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) + static byte _isValueClass(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) { var _this = GetThis(thisHandle); try @@ -645,7 +645,7 @@ static uint _getClassAttribs(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLA } [UnmanagedCallersOnly] - static int _isStructRequiringStackAllocRetBuf(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) + static byte _isStructRequiringStackAllocRetBuf(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) { var _this = GetThis(thisHandle); try @@ -779,7 +779,7 @@ static uint _getHeapClassSize(IntPtr thisHandle, IntPtr* ppException, CORINFO_CL } [UnmanagedCallersOnly] - static int _canAllocateOnStack(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) + static byte _canAllocateOnStack(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) { var _this = GetThis(thisHandle); try @@ -794,7 +794,7 @@ static int _canAllocateOnStack(IntPtr thisHandle, IntPtr* ppException, CORINFO_C } [UnmanagedCallersOnly] - static uint _getClassAlignmentRequirement(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls, int fDoubleAlignHint) + static uint _getClassAlignmentRequirement(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls, byte fDoubleAlignHint) { var _this = GetThis(thisHandle); try @@ -854,7 +854,7 @@ static uint _getClassNumInstanceFields(IntPtr thisHandle, IntPtr* ppException, C } [UnmanagedCallersOnly] - static int _checkMethodModifier(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* hMethod, byte* modifier, int fOptional) + static byte _checkMethodModifier(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* hMethod, byte* modifier, byte fOptional) { var _this = GetThis(thisHandle); try @@ -869,12 +869,12 @@ static int _checkMethodModifier(IntPtr thisHandle, IntPtr* ppException, CORINFO_ } [UnmanagedCallersOnly] - static CorInfoHelpFunc _getNewHelper(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_STRUCT_* callerHandle, byte* pHasSideEffects) + static CorInfoHelpFunc _getNewHelper(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_STRUCT_* callerHandle, bool* pHasSideEffects) { var _this = GetThis(thisHandle); try { - return _this.getNewHelper(ref *pResolvedToken, callerHandle, pHasSideEffects); + return _this.getNewHelper(ref *pResolvedToken, callerHandle, ref *pHasSideEffects); } catch (Exception ex) { @@ -1092,7 +1092,7 @@ static CorInfoType _getTypeForPrimitiveNumericClass(IntPtr thisHandle, IntPtr* p } [UnmanagedCallersOnly] - static int _canCast(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* child, CORINFO_CLASS_STRUCT_* parent) + static byte _canCast(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* child, CORINFO_CLASS_STRUCT_* parent) { var _this = GetThis(thisHandle); try @@ -1107,7 +1107,7 @@ static int _canCast(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT } [UnmanagedCallersOnly] - static int _areTypesEquivalent(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls1, CORINFO_CLASS_STRUCT_* cls2) + static byte _areTypesEquivalent(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls1, CORINFO_CLASS_STRUCT_* cls2) { var _this = GetThis(thisHandle); try @@ -1167,7 +1167,7 @@ static TypeCompareState _compareTypesForEquality(IntPtr thisHandle, IntPtr* ppEx } [UnmanagedCallersOnly] - static int _isMoreSpecificType(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls1, CORINFO_CLASS_STRUCT_* cls2) + static byte _isMoreSpecificType(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls1, CORINFO_CLASS_STRUCT_* cls2) { var _this = GetThis(thisHandle); try @@ -1212,7 +1212,7 @@ static CorInfoType _getChildType(IntPtr thisHandle, IntPtr* ppException, CORINFO } [UnmanagedCallersOnly] - static int _satisfiesClassConstraints(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) + static byte _satisfiesClassConstraints(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) { var _this = GetThis(thisHandle); try @@ -1227,7 +1227,7 @@ static int _satisfiesClassConstraints(IntPtr thisHandle, IntPtr* ppException, CO } [UnmanagedCallersOnly] - static int _isSDArray(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) + static byte _isSDArray(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) { var _this = GetThis(thisHandle); try @@ -1920,7 +1920,7 @@ static CorInfoHelpFunc _getLazyStringLiteralHelper(IntPtr thisHandle, IntPtr* pp } [UnmanagedCallersOnly] - static void _embedGenericHandle(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN* pResolvedToken, int fEmbedParent, CORINFO_GENERICHANDLE_RESULT* pResult) + static void _embedGenericHandle(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN* pResolvedToken, byte fEmbedParent, CORINFO_GENERICHANDLE_RESULT* pResult) { var _this = GetThis(thisHandle); try @@ -2007,12 +2007,12 @@ static byte _canGetCookieForPInvokeCalliSig(IntPtr thisHandle, IntPtr* ppExcepti } [UnmanagedCallersOnly] - static void _GetProfilingHandle(IntPtr thisHandle, IntPtr* ppException, BOOL* pbHookFunction, void** pProfilerHandle, BOOL* pbIndirectedHandles) + static void _GetProfilingHandle(IntPtr thisHandle, IntPtr* ppException, bool* pbHookFunction, void** pProfilerHandle, bool* pbIndirectedHandles) { var _this = GetThis(thisHandle); try { - _this.GetProfilingHandle(pbHookFunction, ref *pProfilerHandle, pbIndirectedHandles); + _this.GetProfilingHandle(ref *pbHookFunction, ref *pProfilerHandle, ref *pbIndirectedHandles); } catch (Exception ex) { @@ -2035,7 +2035,7 @@ static void _getCallInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVE } [UnmanagedCallersOnly] - static int _canAccessFamily(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* hCaller, CORINFO_CLASS_STRUCT_* hInstanceType) + static byte _canAccessFamily(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* hCaller, CORINFO_CLASS_STRUCT_* hInstanceType) { var _this = GetThis(thisHandle); try @@ -2050,7 +2050,7 @@ static int _canAccessFamily(IntPtr thisHandle, IntPtr* ppException, CORINFO_METH } [UnmanagedCallersOnly] - static int _isRIDClassDomainID(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) + static byte _isRIDClassDomainID(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls) { var _this = GetThis(thisHandle); try @@ -2300,7 +2300,7 @@ static void _allocMem(IntPtr thisHandle, IntPtr* ppException, uint hotCodeSize, } [UnmanagedCallersOnly] - static void _reserveUnwindInfo(IntPtr thisHandle, IntPtr* ppException, int isFunclet, int isColdCode, uint unwindSize) + static void _reserveUnwindInfo(IntPtr thisHandle, IntPtr* ppException, byte isFunclet, byte isColdCode, uint unwindSize) { var _this = GetThis(thisHandle); try @@ -2371,7 +2371,7 @@ static void _setEHinfo(IntPtr thisHandle, IntPtr* ppException, uint EHnumber, CO } [UnmanagedCallersOnly] - static int _logMsg(IntPtr thisHandle, IntPtr* ppException, uint level, byte* fmt, IntPtr args) + static byte _logMsg(IntPtr thisHandle, IntPtr* ppException, uint level, byte* fmt, IntPtr args) { var _this = GetThis(thisHandle); try @@ -2550,15 +2550,15 @@ static IntPtr GetUnmanagedCallbacks() callbacks[10] = (delegate* unmanaged)&_getMethodModule; callbacks[11] = (delegate* unmanaged)&_getMethodVTableOffset; callbacks[12] = (delegate* unmanaged)&_resolveVirtualMethod; - callbacks[13] = (delegate* unmanaged)&_getUnboxedEntry; + callbacks[13] = (delegate* unmanaged)&_getUnboxedEntry; callbacks[14] = (delegate* unmanaged)&_getDefaultEqualityComparerClass; callbacks[15] = (delegate* unmanaged)&_expandRawHandleIntrinsic; callbacks[16] = (delegate* unmanaged)&_getIntrinsicID; callbacks[17] = (delegate* unmanaged)&_isIntrinsicType; callbacks[18] = (delegate* unmanaged)&_getUnmanagedCallConv; - callbacks[19] = (delegate* unmanaged)&_pInvokeMarshalingRequired; - callbacks[20] = (delegate* unmanaged)&_satisfiesMethodConstraints; - callbacks[21] = (delegate* unmanaged)&_isCompatibleDelegate; + callbacks[19] = (delegate* unmanaged)&_pInvokeMarshalingRequired; + callbacks[20] = (delegate* unmanaged)&_satisfiesMethodConstraints; + callbacks[21] = (delegate* unmanaged)&_isCompatibleDelegate; callbacks[22] = (delegate* unmanaged)&_methodMustBeLoadedBeforeCodeIsRun; callbacks[23] = (delegate* unmanaged)&_mapMethodDeclToMethodImpl; callbacks[24] = (delegate* unmanaged)&_getGSCookie; @@ -2569,18 +2569,18 @@ static IntPtr GetUnmanagedCallbacks() callbacks[29] = (delegate* unmanaged)&_findSig; callbacks[30] = (delegate* unmanaged)&_findCallSiteSig; callbacks[31] = (delegate* unmanaged)&_getTokenTypeAsHandle; - callbacks[32] = (delegate* unmanaged)&_isValidToken; - callbacks[33] = (delegate* unmanaged)&_isValidStringRef; + callbacks[32] = (delegate* unmanaged)&_isValidToken; + callbacks[33] = (delegate* unmanaged)&_isValidStringRef; callbacks[34] = (delegate* unmanaged)&_getStringLiteral; callbacks[35] = (delegate* unmanaged)&_asCorInfoType; callbacks[36] = (delegate* unmanaged)&_getClassName; callbacks[37] = (delegate* unmanaged)&_getClassNameFromMetadata; callbacks[38] = (delegate* unmanaged)&_getTypeInstantiationArgument; - callbacks[39] = (delegate* unmanaged)&_appendClassName; - callbacks[40] = (delegate* unmanaged)&_isValueClass; + callbacks[39] = (delegate* unmanaged)&_appendClassName; + callbacks[40] = (delegate* unmanaged)&_isValueClass; callbacks[41] = (delegate* unmanaged)&_canInlineTypeCheck; callbacks[42] = (delegate* unmanaged)&_getClassAttribs; - callbacks[43] = (delegate* unmanaged)&_isStructRequiringStackAllocRetBuf; + callbacks[43] = (delegate* unmanaged)&_isStructRequiringStackAllocRetBuf; callbacks[44] = (delegate* unmanaged)&_getClassModule; callbacks[45] = (delegate* unmanaged)&_getModuleAssembly; callbacks[46] = (delegate* unmanaged)&_getAssemblyName; @@ -2589,13 +2589,13 @@ static IntPtr GetUnmanagedCallbacks() callbacks[49] = (delegate* unmanaged)&_getClassModuleIdForStatics; callbacks[50] = (delegate* unmanaged)&_getClassSize; callbacks[51] = (delegate* unmanaged)&_getHeapClassSize; - callbacks[52] = (delegate* unmanaged)&_canAllocateOnStack; - callbacks[53] = (delegate* unmanaged)&_getClassAlignmentRequirement; + callbacks[52] = (delegate* unmanaged)&_canAllocateOnStack; + callbacks[53] = (delegate* unmanaged)&_getClassAlignmentRequirement; callbacks[54] = (delegate* unmanaged)&_getClassGClayout; callbacks[55] = (delegate* unmanaged)&_getClassNumInstanceFields; callbacks[56] = (delegate* unmanaged)&_getFieldInClass; - callbacks[57] = (delegate* unmanaged)&_checkMethodModifier; - callbacks[58] = (delegate* unmanaged)&_getNewHelper; + callbacks[57] = (delegate* unmanaged)&_checkMethodModifier; + callbacks[58] = (delegate* unmanaged)&_getNewHelper; callbacks[59] = (delegate* unmanaged)&_getNewArrHelper; callbacks[60] = (delegate* unmanaged)&_getCastingHelper; callbacks[61] = (delegate* unmanaged)&_getSharedCCtorHelper; @@ -2610,16 +2610,16 @@ static IntPtr GetUnmanagedCallbacks() callbacks[70] = (delegate* unmanaged)&_getBuiltinClass; callbacks[71] = (delegate* unmanaged)&_getTypeForPrimitiveValueClass; callbacks[72] = (delegate* unmanaged)&_getTypeForPrimitiveNumericClass; - callbacks[73] = (delegate* unmanaged)&_canCast; - callbacks[74] = (delegate* unmanaged)&_areTypesEquivalent; + callbacks[73] = (delegate* unmanaged)&_canCast; + callbacks[74] = (delegate* unmanaged)&_areTypesEquivalent; callbacks[75] = (delegate* unmanaged)&_compareTypesForCast; callbacks[76] = (delegate* unmanaged)&_compareTypesForEquality; callbacks[77] = (delegate* unmanaged)&_mergeClasses; - callbacks[78] = (delegate* unmanaged)&_isMoreSpecificType; + callbacks[78] = (delegate* unmanaged)&_isMoreSpecificType; callbacks[79] = (delegate* unmanaged)&_getParentType; callbacks[80] = (delegate* unmanaged)&_getChildType; - callbacks[81] = (delegate* unmanaged)&_satisfiesClassConstraints; - callbacks[82] = (delegate* unmanaged)&_isSDArray; + callbacks[81] = (delegate* unmanaged)&_satisfiesClassConstraints; + callbacks[82] = (delegate* unmanaged)&_isSDArray; callbacks[83] = (delegate* unmanaged)&_getArrayRank; callbacks[84] = (delegate* unmanaged)&_getArrayInitializationData; callbacks[85] = (delegate* unmanaged)&_canAccessClass; @@ -2666,16 +2666,16 @@ static IntPtr GetUnmanagedCallbacks() callbacks[126] = (delegate* unmanaged)&_embedClassHandle; callbacks[127] = (delegate* unmanaged)&_embedMethodHandle; callbacks[128] = (delegate* unmanaged)&_embedFieldHandle; - callbacks[129] = (delegate* unmanaged)&_embedGenericHandle; + callbacks[129] = (delegate* unmanaged)&_embedGenericHandle; callbacks[130] = (delegate* unmanaged)&_getLocationOfThisType; callbacks[131] = (delegate* unmanaged)&_getAddressOfPInvokeTarget; callbacks[132] = (delegate* unmanaged)&_GetCookieForPInvokeCalliSig; callbacks[133] = (delegate* unmanaged)&_canGetCookieForPInvokeCalliSig; callbacks[134] = (delegate* unmanaged)&_getJustMyCodeHandle; - callbacks[135] = (delegate* unmanaged)&_GetProfilingHandle; + callbacks[135] = (delegate* unmanaged)&_GetProfilingHandle; callbacks[136] = (delegate* unmanaged)&_getCallInfo; - callbacks[137] = (delegate* unmanaged)&_canAccessFamily; - callbacks[138] = (delegate* unmanaged)&_isRIDClassDomainID; + callbacks[137] = (delegate* unmanaged)&_canAccessFamily; + callbacks[138] = (delegate* unmanaged)&_isRIDClassDomainID; callbacks[139] = (delegate* unmanaged)&_getClassDomainID; callbacks[140] = (delegate* unmanaged)&_getFieldAddress; callbacks[141] = (delegate* unmanaged)&_getStaticFieldCurrentClass; @@ -2692,12 +2692,12 @@ static IntPtr GetUnmanagedCallbacks() callbacks[152] = (delegate* unmanaged)&_convertPInvokeCalliToCall; callbacks[153] = (delegate* unmanaged)&_notifyInstructionSetUsage; callbacks[154] = (delegate* unmanaged)&_allocMem; - callbacks[155] = (delegate* unmanaged)&_reserveUnwindInfo; + callbacks[155] = (delegate* unmanaged)&_reserveUnwindInfo; callbacks[156] = (delegate* unmanaged)&_allocUnwindInfo; callbacks[157] = (delegate* unmanaged)&_allocGCInfo; callbacks[158] = (delegate* unmanaged)&_setEHcount; callbacks[159] = (delegate* unmanaged)&_setEHinfo; - callbacks[160] = (delegate* unmanaged)&_logMsg; + callbacks[160] = (delegate* unmanaged)&_logMsg; callbacks[161] = (delegate* unmanaged)&_doAssert; callbacks[162] = (delegate* unmanaged)&_reportFatalError; callbacks[163] = (delegate* unmanaged)&_allocMethodBlockCounts; diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs b/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs index 60283129d2897..cf0dfef9fd01b 100644 --- a/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs +++ b/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs @@ -1003,21 +1003,16 @@ private bool resolveVirtualMethod(CORINFO_DEVIRTUALIZATION_INFO* info) return true; } - private CORINFO_METHOD_STRUCT_* getUnboxedEntry(CORINFO_METHOD_STRUCT_* ftn, byte* requiresInstMethodTableArg) + private CORINFO_METHOD_STRUCT_* getUnboxedEntry(CORINFO_METHOD_STRUCT_* ftn, ref bool requiresInstMethodTableArg) { MethodDesc result = null; - bool requiresInstMTArg = false; + requiresInstMethodTableArg = false; MethodDesc method = HandleToObject(ftn); if (method.IsUnboxingThunk()) { result = method.GetUnboxedMethod(); - requiresInstMTArg = method.RequiresInstMethodTableArg(); - } - - if (requiresInstMethodTableArg != null) - { - *requiresInstMethodTableArg = requiresInstMTArg ? (byte)1 : (byte)0; + requiresInstMethodTableArg = method.RequiresInstMethodTableArg(); } return result != null ? ObjectToHandle(result) : null; @@ -1059,7 +1054,7 @@ private CorInfoUnmanagedCallConv getUnmanagedCallConv(CORINFO_METHOD_STRUCT_* me private bool satisfiesMethodConstraints(CORINFO_CLASS_STRUCT_* parent, CORINFO_METHOD_STRUCT_* method) { throw new NotImplementedException("satisfiesMethodConstraints"); } - private bool isCompatibleDelegate(CORINFO_CLASS_STRUCT_* objCls, CORINFO_CLASS_STRUCT_* methodParentCls, CORINFO_METHOD_STRUCT_* method, CORINFO_CLASS_STRUCT_* delegateCls, BOOL* pfIsOpenDelegate) + private bool isCompatibleDelegate(CORINFO_CLASS_STRUCT_* objCls, CORINFO_CLASS_STRUCT_* methodParentCls, CORINFO_METHOD_STRUCT_* method, CORINFO_CLASS_STRUCT_* delegateCls, ref bool pfIsOpenDelegate) { throw new NotImplementedException("isCompatibleDelegate"); } private void setPatchpointInfo(PatchpointInfo* patchpointInfo) { throw new NotImplementedException("setPatchpointInfo"); } @@ -2733,7 +2728,7 @@ private void getLocationOfThisType(CORINFO_METHOD_STRUCT_* context, ref CORINFO_ ppIndirection = null; return null; } - private void GetProfilingHandle(BOOL* pbHookFunction, ref void* pProfilerHandle, BOOL* pbIndirectedHandles) + private void GetProfilingHandle(ref bool pbHookFunction, ref void* pProfilerHandle, ref bool pbIndirectedHandles) { throw new NotImplementedException("GetProfilingHandle"); } /// diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.cs b/src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.cs index bb894cf5a0e04..d3a627cf1535c 100644 --- a/src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.cs +++ b/src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.cs @@ -1009,13 +1009,13 @@ public unsafe struct CORINFO_CALL_INFO public CORINFO_CALL_KIND kind; - public uint _nullInstanceCheck; + public byte _nullInstanceCheck; public bool nullInstanceCheck { get { return _nullInstanceCheck != 0; } set { _nullInstanceCheck = value ? (byte)1 : (byte)0; } } // Context for inlining and hidden arg public CORINFO_CONTEXT_STRUCT* contextHandle; - public uint _exactContextNeedsRuntimeLookup; // Set if contextHandle is approx handle. Runtime lookup is required to get the exact handle. + public byte _exactContextNeedsRuntimeLookup; // Set if contextHandle is approx handle. Runtime lookup is required to get the exact handle. public bool exactContextNeedsRuntimeLookup { get { return _exactContextNeedsRuntimeLookup != 0; } set { _exactContextNeedsRuntimeLookup = value ? (byte)1 : (byte)0; } } // If kind.CORINFO_VIRTUALCALL_STUB then stubLookup will be set. @@ -1025,7 +1025,7 @@ public unsafe struct CORINFO_CALL_INFO // Used by Ready-to-Run public CORINFO_CONST_LOOKUP instParamLookup; - public uint _wrapperDelegateInvoke; + public byte _wrapperDelegateInvoke; public bool wrapperDelegateInvoke { get { return _wrapperDelegateInvoke != 0; } set { _wrapperDelegateInvoke = value ? (byte)1 : (byte)0; } } } diff --git a/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/Program.cs b/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/Program.cs index 26614d504d871..c7e97f4aea78b 100644 --- a/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/Program.cs +++ b/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/Program.cs @@ -436,7 +436,7 @@ static void API_Wrapper_Generic_Core(TextWriter tw, IEnumerable fu { foreach (FunctionDecl decl in functionData) { - tw.Write($"\n"); + tw.WriteLine(""); if (addVirtualPrefix) { tw.Write(" virtual "); @@ -453,7 +453,7 @@ static void API_Wrapper_Generic_Core(TextWriter tw, IEnumerable fu { tw.Write(","); } - tw.Write("\n " + GetNativeType(param.Type) + " " + param.Name); + tw.Write(Environment.NewLine + " " + GetNativeType(param.Type) + " " + param.Name); } tw.Write(')'); if (skipManualWrapper && decl.ManualNativeWrapper) @@ -461,7 +461,7 @@ static void API_Wrapper_Generic_Core(TextWriter tw, IEnumerable fu tw.WriteLine(";"); continue; } - tw.Write('\n'); + tw.WriteLine(""); tw.WriteLine("{"); string beforeCall = beforeCallFunc(decl) ?? null; string afterCall = afterCallFunc(decl) ?? null; @@ -573,7 +573,7 @@ static void SPMI_ICorJitInfoImpl(TextWriter tw, IEnumerable functi foreach (FunctionDecl decl in functionData) { - tw.Write($"\n{decl.ReturnType.NativeTypeName2} { decl.FunctionName}("); + tw.Write($"{Environment.NewLine}{decl.ReturnType.NativeTypeName2} { decl.FunctionName}("); bool isFirst = true; foreach (Parameter param in decl.Parameters) { @@ -585,7 +585,7 @@ static void SPMI_ICorJitInfoImpl(TextWriter tw, IEnumerable functi { tw.Write(","); } - tw.Write("\n " + param.Type.NativeTypeName2 + " " + param.Name); + tw.Write(Environment.NewLine + " " + param.Type.NativeTypeName2 + " " + param.Name); } tw.WriteLine(");"); } @@ -609,7 +609,7 @@ static void SPMI_ShimCounter_ICorJitInfo(TextWriter tw, IEnumerable $" mcs->AddCall(\"{decl.FunctionName}\");", afterCallFunc: (FunctionDecl decl)=> null, @@ -627,7 +627,7 @@ static void SPMI_ShimSimple_ICorJitInfo(TextWriter tw, IEnumerable #include ""spmiutil.h"" ", - footer: "\n", + footer: Environment.NewLine, cppType: "interceptor_ICJI", beforeCallFunc: (FunctionDecl decl)=> null, afterCallFunc: (FunctionDecl decl)=> null, diff --git a/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt b/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt index 026f57c57a36b..a381eadedac35 100644 --- a/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt +++ b/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt @@ -52,7 +52,6 @@ unsigned int, uint size_t,UIntPtr SIZE_T,UIntPtr,size_t WORD,ushort,unsigned short -BOOL,[MarshalAs(UnmanagedType.Bool)]bool,int bool,[MarshalAs(UnmanagedType.I1)]bool const char *,byte* mdMethodDef,mdToken,unsigned int @@ -61,7 +60,6 @@ BYTE*,byte*,unsigned char* GSCookie*,IntPtr*,void* GSCookie**,IntPtr**,void** -BOOL*,BOOL*,int* bool*,ref bool BoolStar,byte*,bool*,bool* UINT32*,ref uint,unsigned int* @@ -173,15 +171,15 @@ FUNCTIONS CORINFO_MODULE_HANDLE getMethodModule( CORINFO_METHOD_HANDLE method ); void getMethodVTableOffset( CORINFO_METHOD_HANDLE method, unsigned* offsetOfIndirection, unsigned* offsetAfterIndirection, bool* isRelative); bool resolveVirtualMethod(CORINFO_DEVIRTUALIZATION_INFO* info); - CORINFO_METHOD_HANDLE getUnboxedEntry(CORINFO_METHOD_HANDLE ftn, BoolStar requiresInstMethodTableArg); + CORINFO_METHOD_HANDLE getUnboxedEntry(CORINFO_METHOD_HANDLE ftn, bool* requiresInstMethodTableArg); CORINFO_CLASS_HANDLE getDefaultEqualityComparerClass(CORINFO_CLASS_HANDLE elemType); void expandRawHandleIntrinsic(CORINFO_RESOLVED_TOKEN * pResolvedToken, CORINFO_GENERICHANDLE_RESULT * pResult); CorInfoIntrinsics getIntrinsicID( CORINFO_METHOD_HANDLE method , BoolStar pMustExpand); bool isIntrinsicType( CORINFO_CLASS_HANDLE classHnd ); CorInfoUnmanagedCallConv getUnmanagedCallConv( CORINFO_METHOD_HANDLE method ); - BOOL pInvokeMarshalingRequired( CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig ); - BOOL satisfiesMethodConstraints( CORINFO_CLASS_HANDLE parent, CORINFO_METHOD_HANDLE method ); - BOOL isCompatibleDelegate( CORINFO_CLASS_HANDLE objCls, CORINFO_CLASS_HANDLE methodParentCls, CORINFO_METHOD_HANDLE method, CORINFO_CLASS_HANDLE delegateCls, BOOL *pfIsOpenDelegate ); + bool pInvokeMarshalingRequired( CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig ); + bool satisfiesMethodConstraints( CORINFO_CLASS_HANDLE parent, CORINFO_METHOD_HANDLE method ); + bool isCompatibleDelegate( CORINFO_CLASS_HANDLE objCls, CORINFO_CLASS_HANDLE methodParentCls, CORINFO_METHOD_HANDLE method, CORINFO_CLASS_HANDLE delegateCls, bool *pfIsOpenDelegate ); void methodMustBeLoadedBeforeCodeIsRun( CORINFO_METHOD_HANDLE method ); CORINFO_METHOD_HANDLE mapMethodDeclToMethodImpl( CORINFO_METHOD_HANDLE method ); void getGSCookie( GSCookie * pCookieVal, GSCookie ** ppCookieVal ); @@ -192,18 +190,18 @@ FUNCTIONS void findSig( CORINFO_MODULE_HANDLE module, unsigned sigTOK, CORINFO_CONTEXT_HANDLE context, CORINFO_SIG_INFO *sig ); void findCallSiteSig( CORINFO_MODULE_HANDLE module,unsigned methTOK, CORINFO_CONTEXT_HANDLE context, CORINFO_SIG_INFO *sig) CORINFO_CLASS_HANDLE getTokenTypeAsHandle(CORINFO_RESOLVED_TOKEN* pResolvedToken) - BOOL isValidToken(CORINFO_MODULE_HANDLE module, unsigned metaTOK) - BOOL isValidStringRef(CORINFO_MODULE_HANDLE module, unsigned metaTOK) + bool isValidToken(CORINFO_MODULE_HANDLE module, unsigned metaTOK) + bool isValidStringRef(CORINFO_MODULE_HANDLE module, unsigned metaTOK) LPCWSTR getStringLiteral(CORINFO_MODULE_HANDLE module, unsigned metaTOK, int* length) CorInfoType asCorInfoType(CORINFO_CLASS_HANDLE cls) const char* getClassName(CORINFO_CLASS_HANDLE cls) const char* getClassNameFromMetadata(CORINFO_CLASS_HANDLE cls, const char **namespaceName) CORINFO_CLASS_HANDLE getTypeInstantiationArgument(CORINFO_CLASS_HANDLE cls, unsigned index) - int appendClassName(WCHAR** ppBuf, int* pnBufLen, CORINFO_CLASS_HANDLE cls, BOOL fNamespace, BOOL fFullInst, BOOL fAssembly) - BOOL isValueClass(CORINFO_CLASS_HANDLE cls) + int appendClassName(WCHAR** ppBuf, int* pnBufLen, CORINFO_CLASS_HANDLE cls, bool fNamespace, bool fFullInst, bool fAssembly) + bool isValueClass(CORINFO_CLASS_HANDLE cls) CorInfoInlineTypeCheck canInlineTypeCheck(CORINFO_CLASS_HANDLE cls, CorInfoInlineTypeCheckSource source) DWORD getClassAttribs(CORINFO_CLASS_HANDLE cls) - BOOL isStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls) + bool isStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls) CORINFO_MODULE_HANDLE getClassModule(CORINFO_CLASS_HANDLE cls) CORINFO_ASSEMBLY_HANDLE getModuleAssembly(CORINFO_MODULE_HANDLE mod) const char* getAssemblyName(CORINFO_ASSEMBLY_HANDLE assem) @@ -212,13 +210,13 @@ FUNCTIONS size_t getClassModuleIdForStatics(CORINFO_CLASS_HANDLE cls, CORINFO_MODULE_HANDLE* pModule, VOIDSTARSTAR ppIndirection) unsigned getClassSize(CORINFO_CLASS_HANDLE cls) unsigned getHeapClassSize(CORINFO_CLASS_HANDLE cls) - BOOL canAllocateOnStack(CORINFO_CLASS_HANDLE cls) - unsigned getClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, BOOL fDoubleAlignHint) + bool canAllocateOnStack(CORINFO_CLASS_HANDLE cls) + unsigned getClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, bool fDoubleAlignHint) unsigned getClassGClayout(CORINFO_CLASS_HANDLE cls, BYTE* gcPtrs) unsigned getClassNumInstanceFields(CORINFO_CLASS_HANDLE cls) CORINFO_FIELD_HANDLE getFieldInClass(CORINFO_CLASS_HANDLE clsHnd, INT num) - BOOL checkMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, BOOL fOptional) - CorInfoHelpFunc getNewHelper(CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, BoolStar pHasSideEffects) + bool checkMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, bool fOptional) + CorInfoHelpFunc getNewHelper(CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, bool* pHasSideEffects) CorInfoHelpFunc getNewArrHelper(CORINFO_CLASS_HANDLE arrayCls) CorInfoHelpFunc getCastingHelper(CORINFO_RESOLVED_TOKEN* pResolvedToken, bool fThrowing) CorInfoHelpFunc getSharedCCtorHelper(CORINFO_CLASS_HANDLE clsHnd) @@ -233,16 +231,16 @@ FUNCTIONS CORINFO_CLASS_HANDLE getBuiltinClass(CorInfoClassId classId) CorInfoType getTypeForPrimitiveValueClass(CORINFO_CLASS_HANDLE cls) CorInfoType getTypeForPrimitiveNumericClass(CORINFO_CLASS_HANDLE cls) - BOOL canCast(CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent) - BOOL areTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) + bool canCast(CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent) + bool areTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) TypeCompareState compareTypesForCast(CORINFO_CLASS_HANDLE fromClass, CORINFO_CLASS_HANDLE toClass) TypeCompareState compareTypesForEquality(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) CORINFO_CLASS_HANDLE mergeClasses(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) - BOOL isMoreSpecificType(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) + bool isMoreSpecificType(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) CORINFO_CLASS_HANDLE getParentType(CORINFO_CLASS_HANDLE cls) CorInfoType getChildType(CORINFO_CLASS_HANDLE clsHnd, CORINFO_CLASS_HANDLE* clsRet) - BOOL satisfiesClassConstraints(CORINFO_CLASS_HANDLE cls) - BOOL isSDArray(CORINFO_CLASS_HANDLE cls) + bool satisfiesClassConstraints(CORINFO_CLASS_HANDLE cls) + bool isSDArray(CORINFO_CLASS_HANDLE cls) unsigned getArrayRank(CORINFO_CLASS_HANDLE cls) void* getArrayInitializationData(CORINFO_FIELD_HANDLE field, DWORD size) CorInfoIsAccessAllowedResult canAccessClass(CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, CORINFO_HELPER_DESC* pAccessHelper) @@ -289,16 +287,16 @@ FUNCTIONS CORINFO_CLASS_HANDLE embedClassHandle(CORINFO_CLASS_HANDLE handle, void **ppIndirection); CORINFO_METHOD_HANDLE embedMethodHandle(CORINFO_METHOD_HANDLE handle, void **ppIndirection); CORINFO_FIELD_HANDLE embedFieldHandle(CORINFO_FIELD_HANDLE handle, void **ppIndirection); - void embedGenericHandle(CORINFO_RESOLVED_TOKEN * pResolvedToken, BOOL fEmbedParent, CORINFO_GENERICHANDLE_RESULT * pResult); + void embedGenericHandle(CORINFO_RESOLVED_TOKEN * pResolvedToken, bool fEmbedParent, CORINFO_GENERICHANDLE_RESULT * pResult); void getLocationOfThisType(CORINFO_METHOD_HANDLE context, CORINFO_LOOKUP_KIND* pLookupKind); void getAddressOfPInvokeTarget(CORINFO_METHOD_HANDLE method, CORINFO_CONST_LOOKUP *pLookup); LPVOID GetCookieForPInvokeCalliSig(CORINFO_SIG_INFO* szMetaSig, void ** ppIndirection); bool canGetCookieForPInvokeCalliSig(CORINFO_SIG_INFO* szMetaSig); CORINFO_JUST_MY_CODE_HANDLE getJustMyCodeHandle(CORINFO_METHOD_HANDLE method, CORINFO_JUST_MY_CODE_HANDLE**ppIndirection); - void GetProfilingHandle(BOOL *pbHookFunction, void **pProfilerHandle, BOOL *pbIndirectedHandles); + void GetProfilingHandle(bool* pbHookFunction, void **pProfilerHandle, bool* pbIndirectedHandles); void getCallInfo(CORINFO_RESOLVED_TOKEN * pResolvedToken, CORINFO_RESOLVED_TOKEN_PTR pConstrainedResolvedToken, CORINFO_METHOD_HANDLE callerHandle, CORINFO_CALLINFO_FLAGS flags, CORINFO_CALL_INFO *pResult); - BOOL canAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType); - BOOL isRIDClassDomainID(CORINFO_CLASS_HANDLE cls); + bool canAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType); + bool isRIDClassDomainID(CORINFO_CLASS_HANDLE cls); unsigned getClassDomainID (CORINFO_CLASS_HANDLE cls, void **ppIndirection); void* getFieldAddress(CORINFO_FIELD_HANDLE field, VOIDSTARSTAR ppIndirection); CORINFO_CLASS_HANDLE getStaticFieldCurrentClass(CORINFO_FIELD_HANDLE field, BoolStar pIsSpeculative); @@ -315,12 +313,12 @@ FUNCTIONS bool convertPInvokeCalliToCall(CORINFO_RESOLVED_TOKEN * pResolvedToken, bool mustConvert); void notifyInstructionSetUsage(CORINFO_InstructionSet instructionSet,bool supportEnabled); void allocMem( ULONG hotCodeSize, ULONG coldCodeSize, ULONG roDataSize, ULONG xcptnsCount, CorJitAllocMemFlag flag, void** hotCodeBlock, void** coldCodeBlock, void** roDataBlock ); - void reserveUnwindInfo(BOOL isFunclet, BOOL isColdCode, ULONG unwindSize) + void reserveUnwindInfo(bool isFunclet, bool isColdCode, ULONG unwindSize) void allocUnwindInfo(BYTE* pHotCode, BYTE* pColdCode, ULONG startOffset, ULONG endOffset, ULONG unwindSize, BYTE* pUnwindBlock, CorJitFuncKind funcKind) void* allocGCInfo(size_t size) void setEHcount(unsigned cEH) void setEHinfo(unsigned EHnumber, const CORINFO_EH_CLAUSE* clause) - BOOL logMsg(unsigned level, const char* fmt, va_list args) + bool logMsg(unsigned level, const char* fmt, va_list args) int doAssert(const char* szFile, int iLine, const char* szExpr) void reportFatalError(CorJitResult result) HRESULT allocMethodBlockCounts(UINT32 count, ICorJitInfo::BlockCounts** pBlockCounts) diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs b/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs index 4d75c95a8dce8..61779f5406ab6 100644 --- a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs +++ b/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs @@ -1027,7 +1027,7 @@ private CorInfoHelpFunc getCastingHelper(ref CORINFO_RESOLVED_TOKEN pResolvedTok return fThrowing ? CorInfoHelpFunc.CORINFO_HELP_CHKCASTANY : CorInfoHelpFunc.CORINFO_HELP_ISINSTANCEOFANY; } - private CorInfoHelpFunc getNewHelper(ref CORINFO_RESOLVED_TOKEN pResolvedToken, CORINFO_METHOD_STRUCT_* callerHandle, byte* pHasSideEffects = null) + private CorInfoHelpFunc getNewHelper(ref CORINFO_RESOLVED_TOKEN pResolvedToken, CORINFO_METHOD_STRUCT_* callerHandle, ref bool pHasSideEffects) { TypeDesc type = HandleToObject(pResolvedToken.hClass); MetadataType metadataType = type as MetadataType; @@ -1036,10 +1036,7 @@ private CorInfoHelpFunc getNewHelper(ref CORINFO_RESOLVED_TOKEN pResolvedToken, ThrowHelper.ThrowInvalidProgramException(ExceptionStringID.InvalidProgramSpecific, HandleToObject(callerHandle)); } - if (pHasSideEffects != null) - { - *pHasSideEffects = (byte)(type.HasFinalizer ? 1 : 0); - } + pHasSideEffects = type.HasFinalizer; return CorInfoHelpFunc.CORINFO_HELP_NEWFAST; } diff --git a/src/coreclr/src/tools/aot/jitinterface/jitinterface.h b/src/coreclr/src/tools/aot/jitinterface/jitinterface.h index cbd3fd37044f0..0db250bb170a5 100644 --- a/src/coreclr/src/tools/aot/jitinterface/jitinterface.h +++ b/src/coreclr/src/tools/aot/jitinterface/jitinterface.h @@ -29,9 +29,9 @@ struct JitInterfaceCallbacks int (* getIntrinsicID)(void * thisHandle, CorInfoExceptionClass** ppException, void* method, bool* pMustExpand); bool (* isIntrinsicType)(void * thisHandle, CorInfoExceptionClass** ppException, void* classHnd); int (* getUnmanagedCallConv)(void * thisHandle, CorInfoExceptionClass** ppException, void* method); - int (* pInvokeMarshalingRequired)(void * thisHandle, CorInfoExceptionClass** ppException, void* method, void* callSiteSig); - int (* satisfiesMethodConstraints)(void * thisHandle, CorInfoExceptionClass** ppException, void* parent, void* method); - int (* isCompatibleDelegate)(void * thisHandle, CorInfoExceptionClass** ppException, void* objCls, void* methodParentCls, void* method, void* delegateCls, int* pfIsOpenDelegate); + bool (* pInvokeMarshalingRequired)(void * thisHandle, CorInfoExceptionClass** ppException, void* method, void* callSiteSig); + bool (* satisfiesMethodConstraints)(void * thisHandle, CorInfoExceptionClass** ppException, void* parent, void* method); + bool (* isCompatibleDelegate)(void * thisHandle, CorInfoExceptionClass** ppException, void* objCls, void* methodParentCls, void* method, void* delegateCls, bool* pfIsOpenDelegate); void (* methodMustBeLoadedBeforeCodeIsRun)(void * thisHandle, CorInfoExceptionClass** ppException, void* method); void* (* mapMethodDeclToMethodImpl)(void * thisHandle, CorInfoExceptionClass** ppException, void* method); void (* getGSCookie)(void * thisHandle, CorInfoExceptionClass** ppException, void* pCookieVal, void** ppCookieVal); @@ -42,18 +42,18 @@ struct JitInterfaceCallbacks void (* findSig)(void * thisHandle, CorInfoExceptionClass** ppException, void* module, unsigned sigTOK, void* context, void* sig); void (* findCallSiteSig)(void * thisHandle, CorInfoExceptionClass** ppException, void* module, unsigned methTOK, void* context, void* sig); void* (* getTokenTypeAsHandle)(void * thisHandle, CorInfoExceptionClass** ppException, void* pResolvedToken); - int (* isValidToken)(void * thisHandle, CorInfoExceptionClass** ppException, void* module, unsigned metaTOK); - int (* isValidStringRef)(void * thisHandle, CorInfoExceptionClass** ppException, void* module, unsigned metaTOK); + bool (* isValidToken)(void * thisHandle, CorInfoExceptionClass** ppException, void* module, unsigned metaTOK); + bool (* isValidStringRef)(void * thisHandle, CorInfoExceptionClass** ppException, void* module, unsigned metaTOK); const wchar_t* (* getStringLiteral)(void * thisHandle, CorInfoExceptionClass** ppException, void* module, unsigned metaTOK, int* length); int (* asCorInfoType)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); const char* (* getClassName)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); const char* (* getClassNameFromMetadata)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls, const char** namespaceName); void* (* getTypeInstantiationArgument)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls, unsigned index); - int (* appendClassName)(void * thisHandle, CorInfoExceptionClass** ppException, wchar_t** ppBuf, int* pnBufLen, void* cls, int fNamespace, int fFullInst, int fAssembly); - int (* isValueClass)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); + int (* appendClassName)(void * thisHandle, CorInfoExceptionClass** ppException, wchar_t** ppBuf, int* pnBufLen, void* cls, bool fNamespace, bool fFullInst, bool fAssembly); + bool (* isValueClass)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); int (* canInlineTypeCheck)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls, int source); unsigned int (* getClassAttribs)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); - int (* isStructRequiringStackAllocRetBuf)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); + bool (* isStructRequiringStackAllocRetBuf)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); void* (* getClassModule)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); void* (* getModuleAssembly)(void * thisHandle, CorInfoExceptionClass** ppException, void* mod); const char* (* getAssemblyName)(void * thisHandle, CorInfoExceptionClass** ppException, void* assem); @@ -62,12 +62,12 @@ struct JitInterfaceCallbacks size_t (* getClassModuleIdForStatics)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls, void* pModule, void** ppIndirection); unsigned (* getClassSize)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); unsigned (* getHeapClassSize)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); - int (* canAllocateOnStack)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); - unsigned (* getClassAlignmentRequirement)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls, int fDoubleAlignHint); + bool (* canAllocateOnStack)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); + unsigned (* getClassAlignmentRequirement)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls, bool fDoubleAlignHint); unsigned (* getClassGClayout)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls, unsigned char* gcPtrs); unsigned (* getClassNumInstanceFields)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); void* (* getFieldInClass)(void * thisHandle, CorInfoExceptionClass** ppException, void* clsHnd, int num); - int (* checkMethodModifier)(void * thisHandle, CorInfoExceptionClass** ppException, void* hMethod, const char* modifier, int fOptional); + bool (* checkMethodModifier)(void * thisHandle, CorInfoExceptionClass** ppException, void* hMethod, const char* modifier, bool fOptional); int (* getNewHelper)(void * thisHandle, CorInfoExceptionClass** ppException, void* pResolvedToken, void* callerHandle, bool* pHasSideEffects); int (* getNewArrHelper)(void * thisHandle, CorInfoExceptionClass** ppException, void* arrayCls); int (* getCastingHelper)(void * thisHandle, CorInfoExceptionClass** ppException, void* pResolvedToken, bool fThrowing); @@ -83,16 +83,16 @@ struct JitInterfaceCallbacks void* (* getBuiltinClass)(void * thisHandle, CorInfoExceptionClass** ppException, int classId); int (* getTypeForPrimitiveValueClass)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); int (* getTypeForPrimitiveNumericClass)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); - int (* canCast)(void * thisHandle, CorInfoExceptionClass** ppException, void* child, void* parent); - int (* areTypesEquivalent)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls1, void* cls2); + bool (* canCast)(void * thisHandle, CorInfoExceptionClass** ppException, void* child, void* parent); + bool (* areTypesEquivalent)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls1, void* cls2); int (* compareTypesForCast)(void * thisHandle, CorInfoExceptionClass** ppException, void* fromClass, void* toClass); int (* compareTypesForEquality)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls1, void* cls2); void* (* mergeClasses)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls1, void* cls2); - int (* isMoreSpecificType)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls1, void* cls2); + bool (* isMoreSpecificType)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls1, void* cls2); void* (* getParentType)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); int (* getChildType)(void * thisHandle, CorInfoExceptionClass** ppException, void* clsHnd, void* clsRet); - int (* satisfiesClassConstraints)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); - int (* isSDArray)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); + bool (* satisfiesClassConstraints)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); + bool (* isSDArray)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); unsigned (* getArrayRank)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); void* (* getArrayInitializationData)(void * thisHandle, CorInfoExceptionClass** ppException, void* field, unsigned int size); int (* canAccessClass)(void * thisHandle, CorInfoExceptionClass** ppException, void* pResolvedToken, void* callerHandle, void* pAccessHelper); @@ -139,16 +139,16 @@ struct JitInterfaceCallbacks void* (* embedClassHandle)(void * thisHandle, CorInfoExceptionClass** ppException, void* handle, void** ppIndirection); void* (* embedMethodHandle)(void * thisHandle, CorInfoExceptionClass** ppException, void* handle, void** ppIndirection); void* (* embedFieldHandle)(void * thisHandle, CorInfoExceptionClass** ppException, void* handle, void** ppIndirection); - void (* embedGenericHandle)(void * thisHandle, CorInfoExceptionClass** ppException, void* pResolvedToken, int fEmbedParent, void* pResult); + void (* embedGenericHandle)(void * thisHandle, CorInfoExceptionClass** ppException, void* pResolvedToken, bool fEmbedParent, void* pResult); void (* getLocationOfThisType)(void * thisHandle, CorInfoExceptionClass** ppException, void* context, void* pLookupKind); void (* getAddressOfPInvokeTarget)(void * thisHandle, CorInfoExceptionClass** ppException, void* method, void* pLookup); void* (* GetCookieForPInvokeCalliSig)(void * thisHandle, CorInfoExceptionClass** ppException, void* szMetaSig, void** ppIndirection); bool (* canGetCookieForPInvokeCalliSig)(void * thisHandle, CorInfoExceptionClass** ppException, void* szMetaSig); void* (* getJustMyCodeHandle)(void * thisHandle, CorInfoExceptionClass** ppException, void* method, void** ppIndirection); - void (* GetProfilingHandle)(void * thisHandle, CorInfoExceptionClass** ppException, int* pbHookFunction, void** pProfilerHandle, int* pbIndirectedHandles); + void (* GetProfilingHandle)(void * thisHandle, CorInfoExceptionClass** ppException, bool* pbHookFunction, void** pProfilerHandle, bool* pbIndirectedHandles); void (* getCallInfo)(void * thisHandle, CorInfoExceptionClass** ppException, void* pResolvedToken, void* pConstrainedResolvedToken, void* callerHandle, int flags, void* pResult); - int (* canAccessFamily)(void * thisHandle, CorInfoExceptionClass** ppException, void* hCaller, void* hInstanceType); - int (* isRIDClassDomainID)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); + bool (* canAccessFamily)(void * thisHandle, CorInfoExceptionClass** ppException, void* hCaller, void* hInstanceType); + bool (* isRIDClassDomainID)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls); unsigned (* getClassDomainID)(void * thisHandle, CorInfoExceptionClass** ppException, void* cls, void** ppIndirection); void* (* getFieldAddress)(void * thisHandle, CorInfoExceptionClass** ppException, void* field, void** ppIndirection); void* (* getStaticFieldCurrentClass)(void * thisHandle, CorInfoExceptionClass** ppException, void* field, bool* pIsSpeculative); @@ -165,12 +165,12 @@ struct JitInterfaceCallbacks bool (* convertPInvokeCalliToCall)(void * thisHandle, CorInfoExceptionClass** ppException, void* pResolvedToken, bool mustConvert); void (* notifyInstructionSetUsage)(void * thisHandle, CorInfoExceptionClass** ppException, int instructionSet, bool supportEnabled); void (* allocMem)(void * thisHandle, CorInfoExceptionClass** ppException, unsigned int hotCodeSize, unsigned int coldCodeSize, unsigned int roDataSize, unsigned int xcptnsCount, int flag, void** hotCodeBlock, void** coldCodeBlock, void** roDataBlock); - void (* reserveUnwindInfo)(void * thisHandle, CorInfoExceptionClass** ppException, int isFunclet, int isColdCode, unsigned int unwindSize); + void (* reserveUnwindInfo)(void * thisHandle, CorInfoExceptionClass** ppException, bool isFunclet, bool isColdCode, unsigned int unwindSize); void (* allocUnwindInfo)(void * thisHandle, CorInfoExceptionClass** ppException, unsigned char* pHotCode, unsigned char* pColdCode, unsigned int startOffset, unsigned int endOffset, unsigned int unwindSize, unsigned char* pUnwindBlock, int funcKind); void* (* allocGCInfo)(void * thisHandle, CorInfoExceptionClass** ppException, size_t size); void (* setEHcount)(void * thisHandle, CorInfoExceptionClass** ppException, unsigned cEH); void (* setEHinfo)(void * thisHandle, CorInfoExceptionClass** ppException, unsigned EHnumber, void* clause); - int (* logMsg)(void * thisHandle, CorInfoExceptionClass** ppException, unsigned level, const char* fmt, va_list args); + bool (* logMsg)(void * thisHandle, CorInfoExceptionClass** ppException, unsigned level, const char* fmt, va_list args); int (* doAssert)(void * thisHandle, CorInfoExceptionClass** ppException, const char* szFile, int iLine, const char* szExpr); void (* reportFatalError)(void * thisHandle, CorInfoExceptionClass** ppException, int result); int (* allocMethodBlockCounts)(void * thisHandle, CorInfoExceptionClass** ppException, unsigned int count, void** pBlockCounts); @@ -384,35 +384,35 @@ class JitInterfaceWrapper return temp; } - virtual int pInvokeMarshalingRequired( + virtual bool pInvokeMarshalingRequired( void* method, void* callSiteSig) { CorInfoExceptionClass* pException = nullptr; - int temp = _callbacks->pInvokeMarshalingRequired(_thisHandle, &pException, method, callSiteSig); + bool temp = _callbacks->pInvokeMarshalingRequired(_thisHandle, &pException, method, callSiteSig); if (pException != nullptr) throw pException; return temp; } - virtual int satisfiesMethodConstraints( + virtual bool satisfiesMethodConstraints( void* parent, void* method) { CorInfoExceptionClass* pException = nullptr; - int temp = _callbacks->satisfiesMethodConstraints(_thisHandle, &pException, parent, method); + bool temp = _callbacks->satisfiesMethodConstraints(_thisHandle, &pException, parent, method); if (pException != nullptr) throw pException; return temp; } - virtual int isCompatibleDelegate( + virtual bool isCompatibleDelegate( void* objCls, void* methodParentCls, void* method, void* delegateCls, - int* pfIsOpenDelegate) + bool* pfIsOpenDelegate) { CorInfoExceptionClass* pException = nullptr; - int temp = _callbacks->isCompatibleDelegate(_thisHandle, &pException, objCls, methodParentCls, method, delegateCls, pfIsOpenDelegate); + bool temp = _callbacks->isCompatibleDelegate(_thisHandle, &pException, objCls, methodParentCls, method, delegateCls, pfIsOpenDelegate); if (pException != nullptr) throw pException; return temp; } @@ -508,22 +508,22 @@ class JitInterfaceWrapper return temp; } - virtual int isValidToken( + virtual bool isValidToken( void* module, unsigned metaTOK) { CorInfoExceptionClass* pException = nullptr; - int temp = _callbacks->isValidToken(_thisHandle, &pException, module, metaTOK); + bool temp = _callbacks->isValidToken(_thisHandle, &pException, module, metaTOK); if (pException != nullptr) throw pException; return temp; } - virtual int isValidStringRef( + virtual bool isValidStringRef( void* module, unsigned metaTOK) { CorInfoExceptionClass* pException = nullptr; - int temp = _callbacks->isValidStringRef(_thisHandle, &pException, module, metaTOK); + bool temp = _callbacks->isValidStringRef(_thisHandle, &pException, module, metaTOK); if (pException != nullptr) throw pException; return temp; } @@ -581,9 +581,9 @@ class JitInterfaceWrapper wchar_t** ppBuf, int* pnBufLen, void* cls, - int fNamespace, - int fFullInst, - int fAssembly) + bool fNamespace, + bool fFullInst, + bool fAssembly) { CorInfoExceptionClass* pException = nullptr; int temp = _callbacks->appendClassName(_thisHandle, &pException, ppBuf, pnBufLen, cls, fNamespace, fFullInst, fAssembly); @@ -591,11 +591,11 @@ class JitInterfaceWrapper return temp; } - virtual int isValueClass( + virtual bool isValueClass( void* cls) { CorInfoExceptionClass* pException = nullptr; - int temp = _callbacks->isValueClass(_thisHandle, &pException, cls); + bool temp = _callbacks->isValueClass(_thisHandle, &pException, cls); if (pException != nullptr) throw pException; return temp; } @@ -619,11 +619,11 @@ class JitInterfaceWrapper return temp; } - virtual int isStructRequiringStackAllocRetBuf( + virtual bool isStructRequiringStackAllocRetBuf( void* cls) { CorInfoExceptionClass* pException = nullptr; - int temp = _callbacks->isStructRequiringStackAllocRetBuf(_thisHandle, &pException, cls); + bool temp = _callbacks->isStructRequiringStackAllocRetBuf(_thisHandle, &pException, cls); if (pException != nullptr) throw pException; return temp; } @@ -701,18 +701,18 @@ class JitInterfaceWrapper return temp; } - virtual int canAllocateOnStack( + virtual bool canAllocateOnStack( void* cls) { CorInfoExceptionClass* pException = nullptr; - int temp = _callbacks->canAllocateOnStack(_thisHandle, &pException, cls); + bool temp = _callbacks->canAllocateOnStack(_thisHandle, &pException, cls); if (pException != nullptr) throw pException; return temp; } virtual unsigned getClassAlignmentRequirement( void* cls, - int fDoubleAlignHint) + bool fDoubleAlignHint) { CorInfoExceptionClass* pException = nullptr; unsigned temp = _callbacks->getClassAlignmentRequirement(_thisHandle, &pException, cls, fDoubleAlignHint); @@ -749,13 +749,13 @@ class JitInterfaceWrapper return temp; } - virtual int checkMethodModifier( + virtual bool checkMethodModifier( void* hMethod, const char* modifier, - int fOptional) + bool fOptional) { CorInfoExceptionClass* pException = nullptr; - int temp = _callbacks->checkMethodModifier(_thisHandle, &pException, hMethod, modifier, fOptional); + bool temp = _callbacks->checkMethodModifier(_thisHandle, &pException, hMethod, modifier, fOptional); if (pException != nullptr) throw pException; return temp; } @@ -903,22 +903,22 @@ class JitInterfaceWrapper return temp; } - virtual int canCast( + virtual bool canCast( void* child, void* parent) { CorInfoExceptionClass* pException = nullptr; - int temp = _callbacks->canCast(_thisHandle, &pException, child, parent); + bool temp = _callbacks->canCast(_thisHandle, &pException, child, parent); if (pException != nullptr) throw pException; return temp; } - virtual int areTypesEquivalent( + virtual bool areTypesEquivalent( void* cls1, void* cls2) { CorInfoExceptionClass* pException = nullptr; - int temp = _callbacks->areTypesEquivalent(_thisHandle, &pException, cls1, cls2); + bool temp = _callbacks->areTypesEquivalent(_thisHandle, &pException, cls1, cls2); if (pException != nullptr) throw pException; return temp; } @@ -953,12 +953,12 @@ class JitInterfaceWrapper return temp; } - virtual int isMoreSpecificType( + virtual bool isMoreSpecificType( void* cls1, void* cls2) { CorInfoExceptionClass* pException = nullptr; - int temp = _callbacks->isMoreSpecificType(_thisHandle, &pException, cls1, cls2); + bool temp = _callbacks->isMoreSpecificType(_thisHandle, &pException, cls1, cls2); if (pException != nullptr) throw pException; return temp; } @@ -982,20 +982,20 @@ class JitInterfaceWrapper return temp; } - virtual int satisfiesClassConstraints( + virtual bool satisfiesClassConstraints( void* cls) { CorInfoExceptionClass* pException = nullptr; - int temp = _callbacks->satisfiesClassConstraints(_thisHandle, &pException, cls); + bool temp = _callbacks->satisfiesClassConstraints(_thisHandle, &pException, cls); if (pException != nullptr) throw pException; return temp; } - virtual int isSDArray( + virtual bool isSDArray( void* cls) { CorInfoExceptionClass* pException = nullptr; - int temp = _callbacks->isSDArray(_thisHandle, &pException, cls); + bool temp = _callbacks->isSDArray(_thisHandle, &pException, cls); if (pException != nullptr) throw pException; return temp; } @@ -1427,7 +1427,7 @@ class JitInterfaceWrapper virtual void embedGenericHandle( void* pResolvedToken, - int fEmbedParent, + bool fEmbedParent, void* pResult) { CorInfoExceptionClass* pException = nullptr; @@ -1483,9 +1483,9 @@ class JitInterfaceWrapper } virtual void GetProfilingHandle( - int* pbHookFunction, + bool* pbHookFunction, void** pProfilerHandle, - int* pbIndirectedHandles) + bool* pbIndirectedHandles) { CorInfoExceptionClass* pException = nullptr; _callbacks->GetProfilingHandle(_thisHandle, &pException, pbHookFunction, pProfilerHandle, pbIndirectedHandles); @@ -1504,21 +1504,21 @@ class JitInterfaceWrapper if (pException != nullptr) throw pException; } - virtual int canAccessFamily( + virtual bool canAccessFamily( void* hCaller, void* hInstanceType) { CorInfoExceptionClass* pException = nullptr; - int temp = _callbacks->canAccessFamily(_thisHandle, &pException, hCaller, hInstanceType); + bool temp = _callbacks->canAccessFamily(_thisHandle, &pException, hCaller, hInstanceType); if (pException != nullptr) throw pException; return temp; } - virtual int isRIDClassDomainID( + virtual bool isRIDClassDomainID( void* cls) { CorInfoExceptionClass* pException = nullptr; - int temp = _callbacks->isRIDClassDomainID(_thisHandle, &pException, cls); + bool temp = _callbacks->isRIDClassDomainID(_thisHandle, &pException, cls); if (pException != nullptr) throw pException; return temp; } @@ -1687,8 +1687,8 @@ class JitInterfaceWrapper } virtual void reserveUnwindInfo( - int isFunclet, - int isColdCode, + bool isFunclet, + bool isColdCode, unsigned int unwindSize) { CorInfoExceptionClass* pException = nullptr; @@ -1736,13 +1736,13 @@ class JitInterfaceWrapper if (pException != nullptr) throw pException; } - virtual int logMsg( + virtual bool logMsg( unsigned level, const char* fmt, va_list args) { CorInfoExceptionClass* pException = nullptr; - int temp = _callbacks->logMsg(_thisHandle, &pException, level, fmt, args); + bool temp = _callbacks->logMsg(_thisHandle, &pException, level, fmt, args); if (pException != nullptr) throw pException; return temp; } diff --git a/src/coreclr/src/vm/comdelegate.cpp b/src/coreclr/src/vm/comdelegate.cpp index 5f12dc5fa0ce8..f57b85009abdc 100644 --- a/src/coreclr/src/vm/comdelegate.cpp +++ b/src/coreclr/src/vm/comdelegate.cpp @@ -880,7 +880,7 @@ FCIMPL5(FC_BOOL_RET, COMDelegate::BindToMethodName, pCurMethod->GetMethodInstantiation(), false /* do not allow code with a shared-code calling convention to be returned */, true /* Ensure that methods on generic interfaces are returned as instantiated method descs */); - BOOL fIsOpenDelegate; + bool fIsOpenDelegate; if (!COMDelegate::IsMethodDescCompatible((gc.target == NULL) ? TypeHandle() : gc.target->GetTypeHandle(), methodType, pCurMethod, @@ -960,7 +960,7 @@ FCIMPL5(FC_BOOL_RET, COMDelegate::BindToMethodInfo, Object* refThisUNSAFE, Objec false /* do not allow code with a shared-code calling convention to be returned */, true /* Ensure that methods on generic interfaces are returned as instantiated method descs */); - BOOL fIsOpenDelegate; + bool fIsOpenDelegate; if (COMDelegate::IsMethodDescCompatible((gc.refFirstArg == NULL) ? TypeHandle() : gc.refFirstArg->GetTypeHandle(), TypeHandle(pMethMT), method, @@ -2420,7 +2420,7 @@ PCODE COMDelegate::GetWrapperInvoke(MethodDesc* pMD) #endif // CROSSGEN_COMPILE -static BOOL IsLocationAssignable(TypeHandle fromHandle, TypeHandle toHandle, BOOL relaxedMatch, BOOL fromHandleIsBoxed) +static bool IsLocationAssignable(TypeHandle fromHandle, TypeHandle toHandle, bool relaxedMatch, bool fromHandleIsBoxed) { CONTRACTL { @@ -2431,13 +2431,13 @@ static BOOL IsLocationAssignable(TypeHandle fromHandle, TypeHandle toHandle, BOO CONTRACTL_END; // Identical types are obviously compatible. if (fromHandle == toHandle) - return TRUE; + return true; // Byref parameters can never be allowed relaxed matching since type safety will always be violated in one // of the two directions (in or out). Checking one of the types is enough since a byref type is never // compatible with a non-byref type. if (fromHandle.IsByRef()) - relaxedMatch = FALSE; + relaxedMatch = false; // If we allow relaxed matching then any subtype of toHandle is probably // compatible (definitely so if we know fromHandle is coming from a boxed @@ -2520,7 +2520,7 @@ static BOOL IsLocationAssignable(TypeHandle fromHandle, TypeHandle toHandle, BOO { // It was not possible to prove that the variables are both reference types // or both value types. - return FALSE; + return false; } } } @@ -2535,12 +2535,12 @@ static BOOL IsLocationAssignable(TypeHandle fromHandle, TypeHandle toHandle, BOO if (CorTypeInfo::IsObjRef_NoThrow(toHandle.GetInternalCorElementType())) { if (!fromHandleVar->ConstrainedAsObjRef()) - return FALSE; + return false; } else { if (!fromHandleVar->ConstrainedAsValueType()) - return FALSE; + return false; } } } @@ -2551,22 +2551,22 @@ static BOOL IsLocationAssignable(TypeHandle fromHandle, TypeHandle toHandle, BOO // The COR element types have all the information we need. if (CorTypeInfo::IsObjRef_NoThrow(fromHandle.GetInternalCorElementType()) != CorTypeInfo::IsObjRef_NoThrow(toHandle.GetInternalCorElementType())) - return FALSE; + return false; } } - return TRUE; + return true; } else { // they are not compatible yet enums can go into each other if their underlying element type is the same if (toHandle.GetVerifierCorElementType() == fromHandle.GetVerifierCorElementType() && (toHandle.IsEnum() || fromHandle.IsEnum())) - return TRUE; + return true; } - return FALSE; + return false; } MethodDesc* COMDelegate::FindDelegateInvokeMethod(MethodTable *pMT) @@ -2597,13 +2597,13 @@ BOOL COMDelegate::IsDelegateInvokeMethod(MethodDesc *pMD) return (pMD == ((DelegateEEClass *)pMT->GetClass())->GetInvokeMethod()); } -BOOL COMDelegate::IsMethodDescCompatible(TypeHandle thFirstArg, +bool COMDelegate::IsMethodDescCompatible(TypeHandle thFirstArg, TypeHandle thExactMethodType, MethodDesc *pTargetMethod, TypeHandle thDelegate, MethodDesc *pInvokeMethod, int flags, - BOOL *pfIsOpenDelegate) + bool *pfIsOpenDelegate) { CONTRACTL { @@ -2616,14 +2616,14 @@ BOOL COMDelegate::IsMethodDescCompatible(TypeHandle thFirstArg, // Handle easy cases first -- if there's a constraint on whether the target method is static or instance we can check that very // quickly. if (flags & DBF_StaticMethodOnly && !pTargetMethod->IsStatic()) - return FALSE; + return false; if (flags & DBF_InstanceMethodOnly && pTargetMethod->IsStatic()) - return FALSE; + return false; // we don't allow you to bind to methods on Nullable because the unboxing stubs don't know how to // handle this case. if (!pTargetMethod->IsStatic() && Nullable::IsNullableType(pTargetMethod->GetMethodTable())) - return FALSE; + return false; // Get signatures for the delegate invoke and target methods. MetaSig sigInvoke(pInvokeMethod, thDelegate); @@ -2631,7 +2631,7 @@ BOOL COMDelegate::IsMethodDescCompatible(TypeHandle thFirstArg, // Check that there is no vararg mismatch. if (sigInvoke.IsVarArg() != sigTarget.IsVarArg()) - return FALSE; + return false; // The relationship between the number of arguments on the delegate invoke and target methods tells us a lot about the type of // delegate we'll create (open or closed over the first argument). We're getting the fixed argument counts here, which are all @@ -2647,31 +2647,31 @@ BOOL COMDelegate::IsMethodDescCompatible(TypeHandle thFirstArg, // Determine whether the match (if it is otherwise compatible) would result in an open or closed delegate or is just completely // out of whack. - BOOL fIsOpenDelegate; + bool fIsOpenDelegate; if (numTotalTargetArgs == numFixedInvokeArgs) // All arguments provided by invoke, delegate must be open. - fIsOpenDelegate = TRUE; + fIsOpenDelegate = true; else if (numTotalTargetArgs == numFixedInvokeArgs + 1) // One too few arguments provided by invoke, delegate must be closed. - fIsOpenDelegate = FALSE; + fIsOpenDelegate = false; else // Target method cannot possibly match the invoke method. - return FALSE; + return false; // Deal with cases where the caller wants a specific type of delegate. if (flags & DBF_OpenDelegateOnly && !fIsOpenDelegate) - return FALSE; + return false; if (flags & DBF_ClosedDelegateOnly && fIsOpenDelegate) - return FALSE; + return false; // If the target (or first argument) is null, the delegate type would be closed and the caller explicitly doesn't want to allow // closing over null then filter that case now. if (flags & DBF_NeverCloseOverNull && thFirstArg.IsNull() && !fIsOpenDelegate) - return FALSE; + return false; // If, on the other hand, we're looking at an open delegate but the caller has provided a target it's also not a match. if (fIsOpenDelegate && !thFirstArg.IsNull()) - return FALSE; + return false; // **********OLD COMMENT********** // We don't allow open delegates over virtual value type methods. That's because we currently have no way to allow the first @@ -2713,7 +2713,7 @@ BOOL COMDelegate::IsMethodDescCompatible(TypeHandle thFirstArg, { // No bound arguments, take first type from invoke signature. if (sigInvoke.NextArgNormalized() == ELEMENT_TYPE_END) - return FALSE; + return false; thFirstInvokeArg = sigInvoke.GetLastTypeHandleThrowing(); } else @@ -2725,7 +2725,7 @@ BOOL COMDelegate::IsMethodDescCompatible(TypeHandle thFirstArg, { // The first argument for a static method is the first fixed arg. if (sigTarget.NextArgNormalized() == ELEMENT_TYPE_END) - return FALSE; + return false; thFirstTargetArg = sigTarget.GetLastTypeHandleThrowing(); // Delegates closed over static methods have a further constraint: the first argument of the target must be an object @@ -2737,14 +2737,14 @@ BOOL COMDelegate::IsMethodDescCompatible(TypeHandle thFirstArg, // If the first argument of the target is a generic variable, it must be constrained to be an object reference. TypeVarTypeDesc *varFirstTargetArg = thFirstTargetArg.AsGenericVariable(); if (!varFirstTargetArg->ConstrainedAsObjRef()) - return FALSE; + return false; } else { // Otherwise the code:CorElementType of the argument must be classified as an object reference. CorElementType etFirstTargetArg = thFirstTargetArg.GetInternalCorElementType(); if (!CorTypeInfo::IsObjRef(etFirstTargetArg)) - return FALSE; + return false; } } } @@ -2780,7 +2780,7 @@ BOOL COMDelegate::IsMethodDescCompatible(TypeHandle thFirstArg, thFirstTargetArg, !pTargetMethod->IsStatic() || flags & DBF_RelaxedSignature, !fIsOpenDelegate)) - return FALSE; + return false; // Loop over the remaining fixed args, the list should be one to one at this point. while (TRUE) @@ -2791,7 +2791,7 @@ BOOL COMDelegate::IsMethodDescCompatible(TypeHandle thFirstArg, { // We've reached the end of one signature. We better be at the end of the other or it's not a match. if (etInvokeArg != etTargetArg) - return FALSE; + return false; break; } else @@ -2799,8 +2799,8 @@ BOOL COMDelegate::IsMethodDescCompatible(TypeHandle thFirstArg, TypeHandle thInvokeArg = sigInvoke.GetLastTypeHandleThrowing(); TypeHandle thTargetArg = sigTarget.GetLastTypeHandleThrowing(); - if (!IsLocationAssignable(thInvokeArg, thTargetArg, flags & DBF_RelaxedSignature, FALSE)) - return FALSE; + if (!IsLocationAssignable(thInvokeArg, thTargetArg, flags & DBF_RelaxedSignature, false)) + return false; } } @@ -2812,13 +2812,13 @@ BOOL COMDelegate::IsMethodDescCompatible(TypeHandle thFirstArg, if (!IsLocationAssignable(sigTarget.GetRetTypeHandleThrowing(), sigInvoke.GetRetTypeHandleThrowing(), flags & DBF_RelaxedSignature, - FALSE)) - return FALSE; + false)) + return false; // We must have a match. if (pfIsOpenDelegate) *pfIsOpenDelegate = fIsOpenDelegate; - return TRUE; + return true; } MethodDesc* COMDelegate::GetDelegateCtor(TypeHandle delegateType, MethodDesc *pTargetMethod, DelegateCtorArgs *pCtorData) @@ -3066,11 +3066,11 @@ MethodDesc* COMDelegate::GetDelegateCtor(TypeHandle delegateType, MethodDesc *pT will *only* verify a constructor application at the typical (ie. formal) instantiation. */ /* static */ -BOOL COMDelegate::ValidateCtor(TypeHandle instHnd, +bool COMDelegate::ValidateCtor(TypeHandle instHnd, TypeHandle ftnParentHnd, MethodDesc *pFtn, TypeHandle dlgtHnd, - BOOL *pfIsOpenDelegate) + bool *pfIsOpenDelegate) { CONTRACTL @@ -3091,7 +3091,7 @@ BOOL COMDelegate::ValidateCtor(TypeHandle instHnd, PREFIX_ASSUME(pdlgEEClass != NULL); MethodDesc *pDlgtInvoke = pdlgEEClass->GetInvokeMethod(); if (pDlgtInvoke == NULL) - return FALSE; + return false; return IsMethodDescCompatible(instHnd, ftnParentHnd, pFtn, dlgtHnd, pDlgtInvoke, DBF_RelaxedSignature, pfIsOpenDelegate); } diff --git a/src/coreclr/src/vm/comdelegate.h b/src/coreclr/src/vm/comdelegate.h index 5226f6357ffd7..40e80246de095 100644 --- a/src/coreclr/src/vm/comdelegate.h +++ b/src/coreclr/src/vm/comdelegate.h @@ -134,17 +134,17 @@ class COMDelegate static MethodDesc* FindDelegateInvokeMethod(MethodTable *pMT); static BOOL IsDelegateInvokeMethod(MethodDesc *pMD); - static BOOL IsMethodDescCompatible(TypeHandle thFirstArg, + static bool IsMethodDescCompatible(TypeHandle thFirstArg, TypeHandle thExactMethodType, MethodDesc *pTargetMethod, TypeHandle thDelegate, MethodDesc *pInvokeMethod, int flags, - BOOL *pfIsOpenDelegate); + bool *pfIsOpenDelegate); static MethodDesc* GetDelegateCtor(TypeHandle delegateType, MethodDesc *pTargetMethod, DelegateCtorArgs *pCtorData); //@GENERICSVER: new (suitable for generics) // Method to do static validation of delegate .ctor - static BOOL ValidateCtor(TypeHandle objHnd, TypeHandle ftnParentHnd, MethodDesc *pFtn, TypeHandle dlgtHnd, BOOL *pfIsOpenDelegate); + static bool ValidateCtor(TypeHandle objHnd, TypeHandle ftnParentHnd, MethodDesc *pFtn, TypeHandle dlgtHnd, bool *pfIsOpenDelegate); private: static void BindToMethod(DELEGATEREF *pRefThis, diff --git a/src/coreclr/src/vm/jitinterface.cpp b/src/coreclr/src/vm/jitinterface.cpp index cc7183d6ddb60..26aec7f7b5e71 100644 --- a/src/coreclr/src/vm/jitinterface.cpp +++ b/src/coreclr/src/vm/jitinterface.cpp @@ -742,7 +742,7 @@ static bool CallerAndCalleeInSystemVersionBubble(MethodDesc* pCaller, MethodDesc /*********************************************************************/ // Checks if the given metadata token is valid -BOOL CEEInfo::isValidToken ( +bool CEEInfo::isValidToken ( CORINFO_MODULE_HANDLE module, mdToken metaTOK) { @@ -752,7 +752,7 @@ BOOL CEEInfo::isValidToken ( MODE_ANY; } CONTRACTL_END; - BOOL result = FALSE; + bool result = false; JIT_TO_EE_TRANSITION_LEAF(); @@ -760,7 +760,7 @@ BOOL CEEInfo::isValidToken ( { // No explicit token validation for dynamic code. Validation is // side-effect of token resolution. - result = TRUE; + result = true; } else { @@ -774,7 +774,7 @@ BOOL CEEInfo::isValidToken ( /*********************************************************************/ // Checks if the given metadata token is valid StringRef -BOOL CEEInfo::isValidStringRef ( +bool CEEInfo::isValidStringRef ( CORINFO_MODULE_HANDLE module, mdToken metaTOK) { @@ -784,7 +784,7 @@ BOOL CEEInfo::isValidStringRef ( MODE_PREEMPTIVE; } CONTRACTL_END; - BOOL result = FALSE; + bool result = true; JIT_TO_EE_TRANSITION(); @@ -1996,7 +1996,7 @@ CEEInfo::getHeapClassSize( //--------------------------------------------------------------------------------------- // // Return TRUE if an object of this type can be allocated on the stack. -BOOL CEEInfo::canAllocateOnStack(CORINFO_CLASS_HANDLE clsHnd) +bool CEEInfo::canAllocateOnStack(CORINFO_CLASS_HANDLE clsHnd) { CONTRACTL{ NOTHROW; @@ -2004,7 +2004,7 @@ BOOL CEEInfo::canAllocateOnStack(CORINFO_CLASS_HANDLE clsHnd) MODE_PREEMPTIVE; } CONTRACTL_END; - BOOL result = FALSE; + bool result = false; JIT_TO_EE_TRANSITION_LEAF(); @@ -2026,7 +2026,7 @@ BOOL CEEInfo::canAllocateOnStack(CORINFO_CLASS_HANDLE clsHnd) return result; } -unsigned CEEInfo::getClassAlignmentRequirement(CORINFO_CLASS_HANDLE type, BOOL fDoubleAlignHint) +unsigned CEEInfo::getClassAlignmentRequirement(CORINFO_CLASS_HANDLE type, bool fDoubleAlignHint) { CONTRACTL { NOTHROW; @@ -2164,9 +2164,9 @@ CEEInfo::getMethodDefFromMethod(CORINFO_METHOD_HANDLE hMethod) return result; } -BOOL CEEInfo::checkMethodModifier(CORINFO_METHOD_HANDLE hMethod, +bool CEEInfo::checkMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, - BOOL fOptional) + bool fOptional) { CONTRACTL { THROWS; @@ -2174,7 +2174,7 @@ BOOL CEEInfo::checkMethodModifier(CORINFO_METHOD_HANDLE hMethod, MODE_PREEMPTIVE; } CONTRACTL_END; - BOOL result = FALSE; + bool result = false; JIT_TO_EE_TRANSITION(); @@ -2593,7 +2593,7 @@ void CEEInfo::MethodCompileComplete(CORINFO_METHOD_HANDLE methHnd) // void CEEInfo::embedGenericHandle( CORINFO_RESOLVED_TOKEN * pResolvedToken, - BOOL fEmbedParent, + bool fEmbedParent, CORINFO_GENERICHANDLE_RESULT *pResult) { CONTRACTL { @@ -2784,7 +2784,7 @@ void CEEInfo::ScanMethodSpec(Module * pModule, PCCOR_SIGNATURE pMethodSpec, ULON } } -BOOL CEEInfo::ScanTypeSpec(Module * pModule, PCCOR_SIGNATURE pTypeSpec, ULONG cbTypeSpec) +bool CEEInfo::ScanTypeSpec(Module * pModule, PCCOR_SIGNATURE pTypeSpec, ULONG cbTypeSpec) { STANDARD_VM_CONTRACT; @@ -2813,7 +2813,7 @@ BOOL CEEInfo::ScanTypeSpec(Module * pModule, PCCOR_SIGNATURE pTypeSpec, ULONG cb IfFailThrow(sp.SkipExactlyOne()); } - return TRUE; + return true; } void CEEInfo::ScanInstantiation(Module * pModule, Instantiation inst) @@ -2986,7 +2986,7 @@ MethodDesc * CEEInfo::GetMethodForSecurity(CORINFO_METHOD_HANDLE callerHandle) } // Check that the instantation is -static BOOL IsSignatureForTypicalInstantiation(SigPointer sigptr, CorElementType varType, ULONG ntypars) +static bool IsSignatureForTypicalInstantiation(SigPointer sigptr, CorElementType varType, ULONG ntypars) { STANDARD_VM_CONTRACT; @@ -2995,20 +2995,20 @@ static BOOL IsSignatureForTypicalInstantiation(SigPointer sigptr, CorElementType CorElementType type; IfFailThrow(sigptr.GetElemType(&type)); if (type != varType) - return FALSE; + return false; ULONG data; IfFailThrow(sigptr.GetData(&data)); if (data != i) - return FALSE; + return false; } - return TRUE; + return true; } // Check that methodSpec instantiation is -static BOOL IsMethodSpecForTypicalInstantation(SigPointer sigptr) +static bool IsMethodSpecForTypicalInstantation(SigPointer sigptr) { STANDARD_VM_CONTRACT; @@ -3023,14 +3023,14 @@ static BOOL IsMethodSpecForTypicalInstantation(SigPointer sigptr) } // Check that typeSpec instantiation is -static BOOL IsTypeSpecForTypicalInstantiation(SigPointer sigptr) +static bool IsTypeSpecForTypicalInstantiation(SigPointer sigptr) { STANDARD_VM_CONTRACT; CorElementType type; IfFailThrow(sigptr.GetElemType(&type)); if (type != ELEMENT_TYPE_GENERICINST) - return FALSE; + return false; IfFailThrow(sigptr.SkipExactlyOne()); @@ -3622,9 +3622,9 @@ const char* CEEInfo::getHelperName (CorInfoHelpFunc ftnNum) int CEEInfo::appendClassName(__deref_inout_ecount(*pnBufLen) WCHAR** ppBuf, int* pnBufLen, CORINFO_CLASS_HANDLE clsHnd, - BOOL fNamespace, - BOOL fFullInst, - BOOL fAssembly) + bool fNamespace, + bool fFullInst, + bool fAssembly) { CONTRACTL { MODE_PREEMPTIVE; @@ -3782,7 +3782,7 @@ size_t CEEInfo::getClassModuleIdForStatics(CORINFO_CLASS_HANDLE clsHnd, CORINFO_ } /*********************************************************************/ -BOOL CEEInfo::isValueClass(CORINFO_CLASS_HANDLE clsHnd) +bool CEEInfo::isValueClass(CORINFO_CLASS_HANDLE clsHnd) { CONTRACTL { NOTHROW; @@ -3790,7 +3790,7 @@ BOOL CEEInfo::isValueClass(CORINFO_CLASS_HANDLE clsHnd) MODE_PREEMPTIVE; } CONTRACTL_END; - BOOL ret = FALSE; + bool ret = false; JIT_TO_EE_TRANSITION_LEAF(); @@ -3800,7 +3800,7 @@ BOOL CEEInfo::isValueClass(CORINFO_CLASS_HANDLE clsHnd) // for corner cases like ELEMENT_TYPE_FNPTR TypeHandle VMClsHnd(clsHnd); MethodTable * pMT = VMClsHnd.GetMethodTable(); - ret = (pMT != NULL) ? pMT->IsValueType() : 0; + ret = (pMT != NULL) ? pMT->IsValueType() : false; EE_TO_JIT_TRANSITION_LEAF(); @@ -3843,7 +3843,7 @@ DWORD CEEInfo::getClassAttribs (CORINFO_CLASS_HANDLE clsHnd) /*********************************************************************/ -BOOL CEEInfo::isStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE clsHnd) +bool CEEInfo::isStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE clsHnd) { CONTRACTL { THROWS; @@ -3851,7 +3851,7 @@ BOOL CEEInfo::isStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE clsHnd) MODE_PREEMPTIVE; } CONTRACTL_END; - BOOL ret = 0; + bool ret = 0; JIT_TO_EE_TRANSITION_LEAF(); @@ -4451,7 +4451,7 @@ void CEEInfo::getGSCookie(GSCookie * pCookieVal, GSCookie ** ppCookieVal) /*********************************************************************/ // TRUE if child is a subtype of parent // if parent is an interface, then does child implement / extend parent -BOOL CEEInfo::canCast( +bool CEEInfo::canCast( CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent) { @@ -4461,11 +4461,11 @@ BOOL CEEInfo::canCast( MODE_PREEMPTIVE; } CONTRACTL_END; - BOOL result = FALSE; + bool result = false; JIT_TO_EE_TRANSITION(); - result = ((TypeHandle)child).CanCastTo((TypeHandle)parent); + result = !!((TypeHandle)child).CanCastTo((TypeHandle)parent); EE_TO_JIT_TRANSITION(); @@ -4474,7 +4474,7 @@ BOOL CEEInfo::canCast( /*********************************************************************/ // TRUE if cls1 and cls2 are considered equivalent types. -BOOL CEEInfo::areTypesEquivalent( +bool CEEInfo::areTypesEquivalent( CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) { @@ -4484,11 +4484,11 @@ BOOL CEEInfo::areTypesEquivalent( MODE_PREEMPTIVE; } CONTRACTL_END; - BOOL result = FALSE; + bool result = false; JIT_TO_EE_TRANSITION(); - result = ((TypeHandle)cls1).IsEquivalentTo((TypeHandle)cls2); + result = !!((TypeHandle)cls1).IsEquivalentTo((TypeHandle)cls2); EE_TO_JIT_TRANSITION(); @@ -4770,7 +4770,7 @@ static BOOL isMoreSpecificTypeHelper( // Returns true if cls2 is known to be a more specific type // than cls1 (a subtype or more restrictive shared type). -BOOL CEEInfo::isMoreSpecificType( +bool CEEInfo::isMoreSpecificType( CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) { @@ -4780,7 +4780,7 @@ BOOL CEEInfo::isMoreSpecificType( MODE_PREEMPTIVE; } CONTRACTL_END; - BOOL result = FALSE; + bool result = false; JIT_TO_EE_TRANSITION(); @@ -4880,7 +4880,7 @@ CorInfoType CEEInfo::getChildType ( /*********************************************************************/ // Check any constraints on class type arguments -BOOL CEEInfo::satisfiesClassConstraints(CORINFO_CLASS_HANDLE cls) +bool CEEInfo::satisfiesClassConstraints(CORINFO_CLASS_HANDLE cls) { CONTRACTL { THROWS; @@ -4888,7 +4888,7 @@ BOOL CEEInfo::satisfiesClassConstraints(CORINFO_CLASS_HANDLE cls) MODE_PREEMPTIVE; } CONTRACTL_END; - BOOL result = FALSE; + bool result = false; JIT_TO_EE_TRANSITION(); @@ -4902,7 +4902,7 @@ BOOL CEEInfo::satisfiesClassConstraints(CORINFO_CLASS_HANDLE cls) /*********************************************************************/ // Check if this is a single dimensional array type -BOOL CEEInfo::isSDArray(CORINFO_CLASS_HANDLE cls) +bool CEEInfo::isSDArray(CORINFO_CLASS_HANDLE cls) { CONTRACTL { THROWS; @@ -4910,7 +4910,7 @@ BOOL CEEInfo::isSDArray(CORINFO_CLASS_HANDLE cls) MODE_PREEMPTIVE; } CONTRACTL_END; - BOOL result = FALSE; + bool result = false; JIT_TO_EE_TRANSITION(); @@ -5759,12 +5759,12 @@ void CEEInfo::getCallInfo( EE_TO_JIT_TRANSITION(); } -BOOL CEEInfo::canAccessFamily(CORINFO_METHOD_HANDLE hCaller, +bool CEEInfo::canAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType) { WRAPPER_NO_CONTRACT; - BOOL ret = FALSE; + bool ret = false; //Since this is only for verification, I don't need to do the demand. JIT_TO_EE_TRANSITION(); @@ -5795,11 +5795,11 @@ BOOL CEEInfo::canAccessFamily(CORINFO_METHOD_HANDLE hCaller, if (doCheck) { - ret = ClassLoader::CanAccessFamilyVerification(accessingType, targetType); + ret = !!ClassLoader::CanAccessFamilyVerification(accessingType, targetType); } else { - ret = TRUE; + ret = true; } EE_TO_JIT_TRANSITION(); @@ -5849,7 +5849,7 @@ void CEEInfo::ThrowExceptionForHelper(const CORINFO_HELPER_DESC * throwHelper) } -BOOL CEEInfo::isRIDClassDomainID(CORINFO_CLASS_HANDLE cls) +bool CEEInfo::isRIDClassDomainID(CORINFO_CLASS_HANDLE cls) { CONTRACTL { THROWS; @@ -5857,7 +5857,7 @@ BOOL CEEInfo::isRIDClassDomainID(CORINFO_CLASS_HANDLE cls) MODE_PREEMPTIVE; } CONTRACTL_END; - BOOL result = FALSE; + bool result = FALSE; JIT_TO_EE_TRANSITION(); @@ -5989,23 +5989,20 @@ CorInfoHelpFunc CEEInfo::getNewHelperStatic(MethodTable * pMT, bool * pHasSideEf BOOL hasFinalizer = pMT->HasFinalizer(); BOOL isComObjectType = pMT->IsComObjectType(); - if (pHasSideEffects != nullptr) + if (isComObjectType) { - if (isComObjectType) - { - *pHasSideEffects = true; - } - else + *pHasSideEffects = true; + } + else #ifdef FEATURE_READYTORUN_COMPILER - if (IsReadyToRunCompilation()) - { - *pHasSideEffects = hasFinalizer || !pMT->IsInheritanceChainFixedInCurrentVersionBubble(); - } - else + if (IsReadyToRunCompilation()) + { + *pHasSideEffects = hasFinalizer || !pMT->IsInheritanceChainFixedInCurrentVersionBubble(); + } + else #endif - { - *pHasSideEffects = !!hasFinalizer; - } + { + *pHasSideEffects = !!hasFinalizer; } if (isComObjectType) @@ -9089,10 +9086,7 @@ CORINFO_METHOD_HANDLE CEEInfo::getUnboxedEntry( requiresInstMTArg = !!pUnboxedMD->RequiresInstMethodTableArg(); } - if (requiresInstMethodTableArg != NULL) - { - *requiresInstMethodTableArg = requiresInstMTArg; - } + *requiresInstMethodTableArg = requiresInstMTArg; EE_TO_JIT_TRANSITION(); @@ -9856,7 +9850,7 @@ CorInfoUnmanagedCallConv CEEInfo::getUnmanagedCallConv(CORINFO_METHOD_HANDLE met } /*********************************************************************/ -BOOL CEEInfo::pInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig) +bool CEEInfo::pInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig) { CONTRACTL { THROWS; @@ -9864,7 +9858,7 @@ BOOL CEEInfo::pInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SI MODE_PREEMPTIVE; } CONTRACTL_END; - BOOL result = FALSE; + bool result = false; JIT_TO_EE_TRANSITION(); @@ -9931,7 +9925,7 @@ bool CEEInfo::canGetCookieForPInvokeCalliSig(CORINFO_SIG_INFO* szMetaSig) // Check any constraints on method type arguments -BOOL CEEInfo::satisfiesMethodConstraints( +bool CEEInfo::satisfiesMethodConstraints( CORINFO_CLASS_HANDLE parent, CORINFO_METHOD_HANDLE method) { @@ -9941,13 +9935,13 @@ BOOL CEEInfo::satisfiesMethodConstraints( MODE_PREEMPTIVE; } CONTRACTL_END; - BOOL result = FALSE; + bool result = false; JIT_TO_EE_TRANSITION(); _ASSERTE(parent != NULL); _ASSERTE(method != NULL); - result = GetMethod(method)->SatisfiesMethodConstraints(TypeHandle(parent)); + result = !!GetMethod(method)->SatisfiesMethodConstraints(TypeHandle(parent)); EE_TO_JIT_TRANSITION(); @@ -9963,12 +9957,12 @@ BOOL CEEInfo::satisfiesMethodConstraints( // // objCls should be NULL if the target object is NULL //@GENERICSVER: new (suitable for generics) -BOOL CEEInfo::isCompatibleDelegate( +bool CEEInfo::isCompatibleDelegate( CORINFO_CLASS_HANDLE objCls, CORINFO_CLASS_HANDLE methodParentCls, CORINFO_METHOD_HANDLE method, CORINFO_CLASS_HANDLE delegateCls, - BOOL* pfIsOpenDelegate) + bool* pfIsOpenDelegate) { CONTRACTL { THROWS; @@ -9976,7 +9970,7 @@ BOOL CEEInfo::isCompatibleDelegate( MODE_PREEMPTIVE; } CONTRACTL_END; - BOOL result = FALSE; + bool result = false; JIT_TO_EE_TRANSITION(); @@ -10765,14 +10759,14 @@ void CEEInfo::reportFatalError(CorJitResult result) EE_TO_JIT_TRANSITION_LEAF(); } -BOOL CEEInfo::logMsg(unsigned level, const char* fmt, va_list args) +bool CEEInfo::logMsg(unsigned level, const char* fmt, va_list args) { STATIC_CONTRACT_THROWS; STATIC_CONTRACT_GC_TRIGGERS; STATIC_CONTRACT_MODE_PREEMPTIVE; STATIC_CONTRACT_DEBUG_ONLY; - BOOL result = FALSE; + bool result = false; JIT_TO_EE_TRANSITION_LEAF(); @@ -10780,7 +10774,7 @@ BOOL CEEInfo::logMsg(unsigned level, const char* fmt, va_list args) if (LoggingOn(LF_JIT, level)) { LogSpewValist(LF_JIT, level, (char*) fmt, args); - result = TRUE; + result = true; } #endif // LOGGING @@ -10908,9 +10902,9 @@ void CEEJitInfo::addActiveDependency(CORINFO_MODULE_HANDLE moduleFrom,CORINFO_MO // result in CEEJitInfo::GetProfilingHandleCache. Thereafter, this wrapper regurgitates the cached values // rather than calling into CEEInfo::GetProfilingHandle each time. This avoids // making duplicate calls into the profiler's FunctionIDMapper callback. -void CEEJitInfo::GetProfilingHandle(BOOL *pbHookFunction, +void CEEJitInfo::GetProfilingHandle(bool *pbHookFunction, void **pProfilerHandle, - BOOL *pbIndirectedHandles) + bool *pbIndirectedHandles) { CONTRACTL { THROWS; @@ -10954,7 +10948,7 @@ void CEEJitInfo::GetProfilingHandle(BOOL *pbHookFunction, } // Our cache of these values are bitfield bools, but the interface requires - // BOOL. So to avoid setting aside a staging area on the stack for these + // bool. So to avoid setting aside a staging area on the stack for these // values, we filled them in directly in the if (not cached yet) case. *pbHookFunction = (m_gphCache.m_bGphHookFunction != false); @@ -10964,7 +10958,7 @@ void CEEJitInfo::GetProfilingHandle(BOOL *pbHookFunction, // // This is the JIT case, which is never indirected. // - *pbIndirectedHandles = FALSE; + *pbIndirectedHandles = false; } /*********************************************************************/ @@ -11147,7 +11141,7 @@ void reservePersonalityRoutineSpace(ULONG &unwindSize) // For prejitted code we split up the unwinding information into // separate sections .rdata and .pdata. // -void CEEJitInfo::reserveUnwindInfo(BOOL isFunclet, BOOL isColdCode, ULONG unwindSize) +void CEEJitInfo::reserveUnwindInfo(bool isFunclet, bool isColdCode, ULONG unwindSize) { #ifdef FEATURE_EH_FUNCLETS CONTRACTL { @@ -14106,8 +14100,8 @@ void CEEInfo::allocMem ( } void CEEInfo::reserveUnwindInfo ( - BOOL isFunclet, /* IN */ - BOOL isColdCode, /* IN */ + bool isFunclet, /* IN */ + bool isColdCode, /* IN */ ULONG unwindSize /* IN */ ) { @@ -14326,9 +14320,9 @@ void CEEInfo::addActiveDependency(CORINFO_MODULE_HANDLE moduleFrom,CORINFO_MODUL UNREACHABLE(); // only called on derived class. } -void CEEInfo::GetProfilingHandle(BOOL *pbHookFunction, +void CEEInfo::GetProfilingHandle(bool *pbHookFunction, void **pProfilerHandle, - BOOL *pbIndirectedHandles) + bool *pbIndirectedHandles) { LIMITED_METHOD_CONTRACT; UNREACHABLE(); // only called on derived class. diff --git a/src/coreclr/src/vm/jitinterface.h b/src/coreclr/src/vm/jitinterface.h index 86198fee85b59..fa081029e023d 100644 --- a/src/coreclr/src/vm/jitinterface.h +++ b/src/coreclr/src/vm/jitinterface.h @@ -443,10 +443,10 @@ class CEEInfo : public ICorJitInfo int appendClassName(__deref_inout_ecount(*pnBufLen) WCHAR** ppBuf, int* pnBufLen, CORINFO_CLASS_HANDLE cls, - BOOL fNamespace, - BOOL fFullInst, - BOOL fAssembly); - BOOL isValueClass (CORINFO_CLASS_HANDLE cls); + bool fNamespace, + bool fFullInst, + bool fAssembly); + bool isValueClass (CORINFO_CLASS_HANDLE cls); CorInfoInlineTypeCheck canInlineTypeCheck (CORINFO_CLASS_HANDLE cls, CorInfoInlineTypeCheckSource source); DWORD getClassAttribs (CORINFO_CLASS_HANDLE cls); @@ -454,19 +454,19 @@ class CEEInfo : public ICorJitInfo // Internal version without JIT-EE transition DWORD getClassAttribsInternal (CORINFO_CLASS_HANDLE cls); - BOOL isStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls); + bool isStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls); unsigned getClassSize (CORINFO_CLASS_HANDLE cls); unsigned getHeapClassSize(CORINFO_CLASS_HANDLE cls); - BOOL canAllocateOnStack(CORINFO_CLASS_HANDLE cls); - unsigned getClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, BOOL fDoubleAlignHint); + bool canAllocateOnStack(CORINFO_CLASS_HANDLE cls); + unsigned getClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, bool fDoubleAlignHint); static unsigned getClassAlignmentRequirementStatic(TypeHandle clsHnd); // Used for HFA's on IA64...and later for type based disambiguation CORINFO_FIELD_HANDLE getFieldInClass(CORINFO_CLASS_HANDLE clsHnd, INT num); mdMethodDef getMethodDefFromMethod(CORINFO_METHOD_HANDLE hMethod); - BOOL checkMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, BOOL fOptional); + bool checkMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, bool fOptional); unsigned getClassGClayout (CORINFO_CLASS_HANDLE cls, BYTE* gcPtrs); /* really GCType* gcPtrs */ static unsigned getClassGClayoutStatic(TypeHandle th, BYTE* gcPtrs); @@ -482,8 +482,8 @@ class CEEInfo : public ICorJitInfo // considered when checking visibility rules. - CorInfoHelpFunc getNewHelper(CORINFO_RESOLVED_TOKEN * pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, bool * pHasSideEffects = NULL); - static CorInfoHelpFunc getNewHelperStatic(MethodTable * pMT, bool * pHasSideEffects = NULL); + CorInfoHelpFunc getNewHelper(CORINFO_RESOLVED_TOKEN * pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, bool * pHasSideEffects); + static CorInfoHelpFunc getNewHelperStatic(MethodTable * pMT, bool * pHasSideEffects); CorInfoHelpFunc getNewArrHelper(CORINFO_CLASS_HANDLE arrayCls); static CorInfoHelpFunc getNewArrHelperStatic(TypeHandle clsHnd); @@ -536,13 +536,13 @@ class CEEInfo : public ICorJitInfo // TRUE if child is a subtype of parent // if parent is an interface, then does child implement / extend parent - BOOL canCast( + bool canCast( CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent ); // TRUE if cls1 and cls2 are considered equivalent types. - BOOL areTypesEquivalent( + bool areTypesEquivalent( CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2 ); @@ -569,7 +569,7 @@ class CEEInfo : public ICorJitInfo // Returns true if cls2 is known to be a more specific type // than cls1 (a subtype or more restrictive shared type). - BOOL isMoreSpecificType( + bool isMoreSpecificType( CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2 ); @@ -591,12 +591,12 @@ class CEEInfo : public ICorJitInfo ); // Check constraints on type arguments of this class and parent classes - BOOL satisfiesClassConstraints( + bool satisfiesClassConstraints( CORINFO_CLASS_HANDLE cls ); // Check if this is a single dimensional array type - BOOL isSDArray( + bool isSDArray( CORINFO_CLASS_HANDLE cls ); @@ -647,12 +647,12 @@ class CEEInfo : public ICorJitInfo __out_ecount (FQNameCapacity) char * szFQName, size_t FQNameCapacity); // Checks if the given metadata token is valid - BOOL isValidToken ( + bool isValidToken ( CORINFO_MODULE_HANDLE module, mdToken metaTOK); // Checks if the given metadata token is valid StringRef - BOOL isValidStringRef ( + bool isValidStringRef ( CORINFO_MODULE_HANDLE module, mdToken metaTOK); @@ -758,7 +758,7 @@ class CEEInfo : public ICorJitInfo bool isIntrinsicType(CORINFO_CLASS_HANDLE classHnd); CorInfoUnmanagedCallConv getUnmanagedCallConv(CORINFO_METHOD_HANDLE method); - BOOL pInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig); + bool pInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* callSiteSig); // Generate a cookie based on the signature that would needs to be passed // to the above generic stub @@ -767,7 +767,7 @@ class CEEInfo : public ICorJitInfo // Check constraints on method type arguments (only). // The parent class should be checked separately using satisfiesClassConstraints(parent). - BOOL satisfiesMethodConstraints( + bool satisfiesMethodConstraints( CORINFO_CLASS_HANDLE parent, // the exact parent of the method CORINFO_METHOD_HANDLE method ); @@ -775,12 +775,12 @@ class CEEInfo : public ICorJitInfo // Given a Delegate type and a method, check if the method signature // is Compatible with the Invoke method of the delegate. //@GENERICSVER: new (suitable for generics) - BOOL isCompatibleDelegate( + bool isCompatibleDelegate( CORINFO_CLASS_HANDLE objCls, CORINFO_CLASS_HANDLE methodParentCls, CORINFO_METHOD_HANDLE method, CORINFO_CLASS_HANDLE delegateCls, - BOOL* pfIsOpenDelegate); + bool* pfIsOpenDelegate); // ICorFieldInfo stuff const char* getFieldName (CORINFO_FIELD_HANDLE field, @@ -858,7 +858,7 @@ class CEEInfo : public ICorJitInfo CORINFO_METHOD_HANDLE callerHandle, CORINFO_CALLINFO_FLAGS flags, CORINFO_CALL_INFO *pResult /*out */); - BOOL canAccessFamily(CORINFO_METHOD_HANDLE hCaller, + bool canAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType); protected: @@ -876,7 +876,7 @@ class CEEInfo : public ICorJitInfo public: - BOOL isRIDClassDomainID(CORINFO_CLASS_HANDLE cls); + bool isRIDClassDomainID(CORINFO_CLASS_HANDLE cls); unsigned getClassDomainID (CORINFO_CLASS_HANDLE cls, void **ppIndirection); CORINFO_VARARGS_HANDLE getVarArgsHandle(CORINFO_SIG_INFO *sig, void **ppIndirection); bool canGetVarArgsHandle(CORINFO_SIG_INFO *sig); @@ -885,9 +885,9 @@ class CEEInfo : public ICorJitInfo CORINFO_JUST_MY_CODE_HANDLE getJustMyCodeHandle(CORINFO_METHOD_HANDLE method, CORINFO_JUST_MY_CODE_HANDLE **ppIndirection); void GetProfilingHandle( - BOOL *pbHookFunction, + bool *pbHookFunction, void **pProfilerHandle, - BOOL *pbIndirectedHandles + bool *pbIndirectedHandles ); InfoAccessType constructStringLiteral(CORINFO_MODULE_HANDLE scopeHnd, mdToken metaTok, void **ppValue); @@ -940,7 +940,7 @@ class CEEInfo : public ICorJitInfo void **ppIndirection); void embedGenericHandle(CORINFO_RESOLVED_TOKEN * pResolvedToken, - BOOL fEmbedParent, + bool fEmbedParent, CORINFO_GENERICHANDLE_RESULT *pResult); void getLocationOfThisType(CORINFO_METHOD_HANDLE context, CORINFO_LOOKUP_KIND* pLookupKind); @@ -957,7 +957,7 @@ class CEEInfo : public ICorJitInfo } // Returns whether we are generating code for NGen image. - BOOL IsCompilingForNGen() + bool IsCompilingForNGen() { LIMITED_METHOD_CONTRACT; // NGen is the only place where we set the override @@ -990,8 +990,8 @@ class CEEInfo : public ICorJitInfo ); void reserveUnwindInfo ( - BOOL isFunclet, /* IN */ - BOOL isColdCode, /* IN */ + bool isFunclet, /* IN */ + bool isColdCode, /* IN */ ULONG unwindSize /* IN */ ); @@ -1018,7 +1018,7 @@ class CEEInfo : public ICorJitInfo const CORINFO_EH_CLAUSE *clause /* IN */ ); - BOOL logMsg(unsigned level, const char* fmt, va_list args); + bool logMsg(unsigned level, const char* fmt, va_list args); int doAssert(const char* szFile, int iLine, const char* szExpr); @@ -1173,7 +1173,7 @@ class CEEInfo : public ICorJitInfo void ScanForModuleDependencies(Module* pModule, SigPointer psig); void ScanMethodSpec(Module * pModule, PCCOR_SIGNATURE pMethodSpec, ULONG cbMethodSpec); // Returns true if it is ok to proceed with scan of parent chain - BOOL ScanTypeSpec(Module * pModule, PCCOR_SIGNATURE pTypeSpec, ULONG cbTypeSpec); + bool ScanTypeSpec(Module * pModule, PCCOR_SIGNATURE pTypeSpec, ULONG cbTypeSpec); void ScanInstantiation(Module * pModule, Instantiation inst); // The main entrypoints for module activation tracking @@ -1207,7 +1207,7 @@ class CEEJitInfo : public CEEInfo void ** roDataBlock /* OUT */ ); - void reserveUnwindInfo(BOOL isFunclet, BOOL isColdCode, ULONG unwindSize); + void reserveUnwindInfo(bool isFunclet, bool isColdCode, ULONG unwindSize); void allocUnwindInfo ( BYTE * pHotCode, /* IN */ @@ -1471,9 +1471,9 @@ class CEEJitInfo : public CEEInfo // rather than calling into CEEInfo::GetProfilingHandle each time. This avoids // making duplicate calls into the profiler's FunctionIDMapper callback. void GetProfilingHandle( - BOOL *pbHookFunction, + bool *pbHookFunction, void **pProfilerHandle, - BOOL *pbIndirectedHandles + bool *pbIndirectedHandles ); InfoAccessType constructStringLiteral(CORINFO_MODULE_HANDLE scopeHnd, mdToken metaTok, void **ppValue); diff --git a/src/coreclr/src/vm/prestub.cpp b/src/coreclr/src/vm/prestub.cpp index 61eb9ae2bcced..7bc994b6aeed7 100644 --- a/src/coreclr/src/vm/prestub.cpp +++ b/src/coreclr/src/vm/prestub.cpp @@ -3396,7 +3396,8 @@ PCODE DynamicHelperFixup(TransitionBlock * pTransitionBlock, TADDR * pCell, DWOR { case ENCODE_NEW_HELPER: { - CorInfoHelpFunc helpFunc = CEEInfo::getNewHelperStatic(th.AsMethodTable()); + bool fHasSideEffectsUnused; + CorInfoHelpFunc helpFunc = CEEInfo::getNewHelperStatic(th.AsMethodTable(), &fHasSideEffectsUnused); pHelper = DynamicHelpers::CreateHelper(pModule->GetLoaderAllocator(), th.AsTAddr(), CEEJitInfo::getHelperFtnStatic(helpFunc)); } break; diff --git a/src/coreclr/src/vm/reflectioninvocation.cpp b/src/coreclr/src/vm/reflectioninvocation.cpp index d1f48ed93e6ad..c4267ae151f36 100644 --- a/src/coreclr/src/vm/reflectioninvocation.cpp +++ b/src/coreclr/src/vm/reflectioninvocation.cpp @@ -2135,7 +2135,8 @@ void QCALLTYPE RuntimeTypeHandle::GetActivationInfo( else { // managed sig: MethodTable* -> object (via JIT helper) - *ppfnAllocator = CEEJitInfo::getHelperFtnStatic(CEEInfo::getNewHelperStatic(pMT)); + bool fHasSideEffectsUnused; + *ppfnAllocator = CEEJitInfo::getHelperFtnStatic(CEEInfo::getNewHelperStatic(pMT, &fHasSideEffectsUnused)); *pvAllocatorFirstArg = pMT; if (pMT->HasDefaultConstructor()) diff --git a/src/coreclr/src/zap/zapinfo.cpp b/src/coreclr/src/zap/zapinfo.cpp index bcc96877bf81d..c8e20edd83a34 100644 --- a/src/coreclr/src/zap/zapinfo.cpp +++ b/src/coreclr/src/zap/zapinfo.cpp @@ -1302,7 +1302,7 @@ void ZapInfo::reportFatalError(CorJitResult result) // For prejitted code we need to count how many funclet regions // we have so that we can allocate and sort a contiguous .rdata block. // -void ZapInfo::reserveUnwindInfo(BOOL isFunclet, BOOL isColdCode, ULONG unwindSize) +void ZapInfo::reserveUnwindInfo(bool isFunclet, bool isColdCode, ULONG unwindSize) { // Nothing to do } @@ -1400,7 +1400,7 @@ void ZapInfo::allocUnwindInfo ( #endif // FEATURE_EH_FUNCLETS } -BOOL ZapInfo::logMsg(unsigned level, const char *fmt, va_list args) +bool ZapInfo::logMsg(unsigned level, const char *fmt, va_list args) { if (HasSvcLogger()) { @@ -1631,7 +1631,7 @@ void ZapInfo::getLocationOfThisType(CORINFO_METHOD_HANDLE context, CORINFO_LOOKU void ZapInfo::embedGenericHandle(CORINFO_RESOLVED_TOKEN * pResolvedToken, - BOOL fEmbedParent, + bool fEmbedParent, CORINFO_GENERICHANDLE_RESULT *pResult) { _ASSERTE(pResult); @@ -2116,9 +2116,9 @@ ZapImport * ZapInfo::GetProfilingHandleImport() return m_pProfilingHandle; } -void ZapInfo::GetProfilingHandle(BOOL *pbHookFunction, +void ZapInfo::GetProfilingHandle(bool *pbHookFunction, void **pProfilerHandle, - BOOL *pbIndirectedHandles) + bool *pbIndirectedHandles) { // // Return the location within the fixup table @@ -2549,13 +2549,13 @@ void ZapInfo::getCallInfo(CORINFO_RESOLVED_TOKEN * pResolvedToken, } } -BOOL ZapInfo::canAccessFamily(CORINFO_METHOD_HANDLE hCaller, +bool ZapInfo::canAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType) { return m_pEEJitInfo->canAccessFamily(hCaller, hInstanceType); } -BOOL ZapInfo::isRIDClassDomainID (CORINFO_CLASS_HANDLE cls) +bool ZapInfo::isRIDClassDomainID (CORINFO_CLASS_HANDLE cls) { return m_pEEJitInfo->isRIDClassDomainID(cls); } @@ -3359,14 +3359,14 @@ const char* ZapInfo::getHelperName(CorInfoHelpFunc func) int ZapInfo::appendClassName(__deref_inout_ecount(*pnBufLen) WCHAR** ppBuf, int* pnBufLen, CORINFO_CLASS_HANDLE cls, - BOOL fNamespace, - BOOL fFullInst, - BOOL fAssembly) + bool fNamespace, + bool fFullInst, + bool fAssembly) { return m_pEEJitInfo->appendClassName(ppBuf,pnBufLen,cls,fNamespace,fFullInst,fAssembly); } -BOOL ZapInfo::isValueClass(CORINFO_CLASS_HANDLE cls) +bool ZapInfo::isValueClass(CORINFO_CLASS_HANDLE cls) { return m_pEEJitInfo->isValueClass(cls); } @@ -3381,7 +3381,7 @@ DWORD ZapInfo::getClassAttribs(CORINFO_CLASS_HANDLE cls) return m_pEEJitInfo->getClassAttribs(cls); } -BOOL ZapInfo::isStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls) +bool ZapInfo::isStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls) { return m_pEEJitInfo->isStructRequiringStackAllocRetBuf(cls); } @@ -3428,13 +3428,13 @@ CorInfoType ZapInfo::getTypeForPrimitiveNumericClass(CORINFO_CLASS_HANDLE cls) return m_pEEJitInfo->getTypeForPrimitiveNumericClass(cls); } -BOOL ZapInfo::canCast(CORINFO_CLASS_HANDLE child, +bool ZapInfo::canCast(CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent) { return m_pEEJitInfo->canCast(child, parent); } -BOOL ZapInfo::areTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) +bool ZapInfo::areTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) { return m_pEEJitInfo->areTypesEquivalent(cls1, cls2); } @@ -3456,7 +3456,7 @@ CORINFO_CLASS_HANDLE ZapInfo::mergeClasses( return m_pEEJitInfo->mergeClasses(cls1, cls2); } -BOOL ZapInfo::isMoreSpecificType( +bool ZapInfo::isMoreSpecificType( CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2) { @@ -3476,13 +3476,13 @@ CorInfoType ZapInfo::getChildType ( return m_pEEJitInfo->getChildType(clsHnd, clsRet); } -BOOL ZapInfo::satisfiesClassConstraints( +bool ZapInfo::satisfiesClassConstraints( CORINFO_CLASS_HANDLE cls) { return m_pEEJitInfo->satisfiesClassConstraints(cls); } -BOOL ZapInfo::isSDArray(CORINFO_CLASS_HANDLE cls) +bool ZapInfo::isSDArray(CORINFO_CLASS_HANDLE cls) { return m_pEEJitInfo->isSDArray(cls); } @@ -3624,12 +3624,12 @@ unsigned ZapInfo::getHeapClassSize(CORINFO_CLASS_HANDLE cls) return m_pEEJitInfo->getHeapClassSize(cls); } -BOOL ZapInfo::canAllocateOnStack(CORINFO_CLASS_HANDLE cls) +bool ZapInfo::canAllocateOnStack(CORINFO_CLASS_HANDLE cls) { return m_pEEJitInfo->canAllocateOnStack(cls); } -unsigned ZapInfo::getClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, BOOL fDoubleAlignHint) +unsigned ZapInfo::getClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, bool fDoubleAlignHint) { return m_pEEJitInfo->getClassAlignmentRequirement(cls, fDoubleAlignHint); } @@ -3644,7 +3644,7 @@ mdMethodDef ZapInfo::getMethodDefFromMethod(CORINFO_METHOD_HANDLE hMethod) return m_pEEJitInfo->getMethodDefFromMethod(hMethod); } -BOOL ZapInfo::checkMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, BOOL fOptional) +bool ZapInfo::checkMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, bool fOptional) { return m_pEEJitInfo->checkMethodModifier(hMethod, modifier, fOptional); } @@ -3728,11 +3728,12 @@ bool ZapInfo::getReadyToRunHelper(CORINFO_RESOLVED_TOKEN * pResolvedToken, DWORD fAtypicalCallsite = (id & CORINFO_HELP_READYTORUN_ATYPICAL_CALLSITE); id = (CorInfoHelpFunc)(id & ~CORINFO_HELP_READYTORUN_ATYPICAL_CALLSITE); + bool ignoredSideEffects = false; switch (id) { case CORINFO_HELP_READYTORUN_NEW: // Call CEEInfo::getNewHelper to validate the request (e.g., check for abstract class). - m_pEEJitInfo->getNewHelper(pResolvedToken, m_currentMethodHandle); + m_pEEJitInfo->getNewHelper(pResolvedToken, m_currentMethodHandle, &ignoredSideEffects); if ((getClassAttribs(pResolvedToken->hClass) & CORINFO_FLG_SHAREDINST) != 0) return false; // Requires runtime lookup. @@ -3867,14 +3868,14 @@ size_t ZapInfo::findNameOfToken(CORINFO_MODULE_HANDLE tokenScope, return m_pEEJitInfo->findNameOfToken(tokenScope, token, szFQName, FQNameCapacity); } -BOOL ZapInfo::isValidToken ( +bool ZapInfo::isValidToken ( CORINFO_MODULE_HANDLE tokenScope, unsigned token) { return m_pEEJitInfo->isValidToken(tokenScope, token); } -BOOL ZapInfo::isValidStringRef ( +bool ZapInfo::isValidStringRef ( CORINFO_MODULE_HANDLE tokenScope, unsigned token) { @@ -4051,7 +4052,7 @@ CorInfoUnmanagedCallConv ZapInfo::getUnmanagedCallConv(CORINFO_METHOD_HANDLE met return m_pEEJitInfo->getUnmanagedCallConv(method); } -BOOL ZapInfo::pInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, +bool ZapInfo::pInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig) { #if defined(TARGET_X86) && defined(TARGET_UNIX) @@ -4082,7 +4083,7 @@ bool ZapInfo::canGetCookieForPInvokeCalliSig(CORINFO_SIG_INFO* szMetaSig) return canGetVarArgsHandle(szMetaSig); } -BOOL ZapInfo::satisfiesMethodConstraints( +bool ZapInfo::satisfiesMethodConstraints( CORINFO_CLASS_HANDLE parent, CORINFO_METHOD_HANDLE method) { @@ -4090,12 +4091,12 @@ BOOL ZapInfo::satisfiesMethodConstraints( } -BOOL ZapInfo::isCompatibleDelegate( +bool ZapInfo::isCompatibleDelegate( CORINFO_CLASS_HANDLE objCls, CORINFO_CLASS_HANDLE methodParentCls, CORINFO_METHOD_HANDLE method, CORINFO_CLASS_HANDLE delegateCls, - BOOL* pfIsOpenDelegate) + bool* pfIsOpenDelegate) { return m_pEEJitInfo->isCompatibleDelegate(objCls, methodParentCls, method, delegateCls, pfIsOpenDelegate); } diff --git a/src/coreclr/src/zap/zapinfo.h b/src/coreclr/src/zap/zapinfo.h index e9b812ba497a8..49400c2853644 100644 --- a/src/coreclr/src/zap/zapinfo.h +++ b/src/coreclr/src/zap/zapinfo.h @@ -279,8 +279,8 @@ class ZapInfo ); void reserveUnwindInfo( - BOOL isFunclet, /* IN */ - BOOL isColdCode, /* IN */ + bool isFunclet, /* IN */ + bool isColdCode, /* IN */ ULONG unwindSize /* IN */ ); @@ -299,7 +299,7 @@ class ZapInfo void setEHinfo(unsigned EHnumber, const CORINFO_EH_CLAUSE *clause); int canHandleException(struct _EXCEPTION_POINTERS *pExceptionPointers); - BOOL logMsg(unsigned level, const char *fmt, va_list args); + bool logMsg(unsigned level, const char *fmt, va_list args); int doAssert(const char* szFile, int iLine, const char* szExpr); void reportFatalError(CorJitResult result); @@ -348,7 +348,7 @@ class ZapInfo void **ppIndirection); void embedGenericHandle(CORINFO_RESOLVED_TOKEN * pResolvedToken, - BOOL fEmbedParent, + bool fEmbedParent, CORINFO_GENERICHANDLE_RESULT *pResult); void getLocationOfThisType(CORINFO_METHOD_HANDLE context, CORINFO_LOOKUP_KIND* pLookupKind); @@ -392,9 +392,9 @@ class ZapInfo ZapImport * GetProfilingHandleImport(); void GetProfilingHandle( - BOOL *pbHookFunction, + bool *pbHookFunction, void **pProfilerHandle, - BOOL *pbIndirectedHandles + bool *pbIndirectedHandles ); void getCallInfo( @@ -409,11 +409,11 @@ class ZapInfo //out params CORINFO_CALL_INFO *pResult); - BOOL canAccessFamily(CORINFO_METHOD_HANDLE hCaller, + bool canAccessFamily(CORINFO_METHOD_HANDLE hCaller, CORINFO_CLASS_HANDLE hInstanceType); - BOOL isRIDClassDomainID(CORINFO_CLASS_HANDLE cls); + bool isRIDClassDomainID(CORINFO_CLASS_HANDLE cls); unsigned getClassDomainID(CORINFO_CLASS_HANDLE cls, void **ppIndirection); @@ -515,13 +515,13 @@ class ZapInfo const char* getHelperName(CorInfoHelpFunc ftnNum); int appendClassName(__deref_inout_ecount(*pnBufLen) WCHAR** ppBuf, int* pnBufLen, CORINFO_CLASS_HANDLE cls, - BOOL fNamespace, - BOOL fFullInst, - BOOL fAssembly); - BOOL isValueClass(CORINFO_CLASS_HANDLE clsHnd); + bool fNamespace, + bool fFullInst, + bool fAssembly); + bool isValueClass(CORINFO_CLASS_HANDLE clsHnd); CorInfoInlineTypeCheck canInlineTypeCheck(CORINFO_CLASS_HANDLE cls, CorInfoInlineTypeCheckSource source); DWORD getClassAttribs(CORINFO_CLASS_HANDLE cls); - BOOL isStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls); + bool isStructRequiringStackAllocRetBuf(CORINFO_CLASS_HANDLE cls); CORINFO_MODULE_HANDLE getClassModule(CORINFO_CLASS_HANDLE cls); CORINFO_ASSEMBLY_HANDLE getModuleAssembly(CORINFO_MODULE_HANDLE mod); const char* getAssemblyName(CORINFO_ASSEMBLY_HANDLE assem); @@ -531,13 +531,13 @@ class ZapInfo unsigned getClassSize(CORINFO_CLASS_HANDLE cls); unsigned getHeapClassSize(CORINFO_CLASS_HANDLE cls); - BOOL canAllocateOnStack(CORINFO_CLASS_HANDLE cls); - unsigned getClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, BOOL fDoubleAlignHint); + bool canAllocateOnStack(CORINFO_CLASS_HANDLE cls); + unsigned getClassAlignmentRequirement(CORINFO_CLASS_HANDLE cls, bool fDoubleAlignHint); CORINFO_FIELD_HANDLE getFieldInClass(CORINFO_CLASS_HANDLE clsHnd, INT num); mdMethodDef getMethodDefFromMethod(CORINFO_METHOD_HANDLE hMethod); - BOOL checkMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, BOOL fOptional); + bool checkMethodModifier(CORINFO_METHOD_HANDLE hMethod, LPCSTR modifier, bool fOptional); unsigned getClassGClayout(CORINFO_CLASS_HANDLE cls, BYTE *gcPtrs); @@ -547,7 +547,7 @@ class ZapInfo unsigned getClassNumInstanceFields(CORINFO_CLASS_HANDLE cls); - CorInfoHelpFunc getNewHelper(CORINFO_RESOLVED_TOKEN * pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, bool * pHasSideEffects = NULL); + CorInfoHelpFunc getNewHelper(CORINFO_RESOLVED_TOKEN * pResolvedToken, CORINFO_METHOD_HANDLE callerHandle, bool * pHasSideEffects); CorInfoHelpFunc getCastingHelper(CORINFO_RESOLVED_TOKEN * pResolvedToken, bool fThrowing); CorInfoHelpFunc getNewArrHelper(CORINFO_CLASS_HANDLE arrayCls); CorInfoHelpFunc getSharedCCtorHelper(CORINFO_CLASS_HANDLE clsHnd); @@ -579,22 +579,22 @@ class ZapInfo CORINFO_CLASS_HANDLE getBuiltinClass(CorInfoClassId classId); CorInfoType getTypeForPrimitiveValueClass(CORINFO_CLASS_HANDLE cls); CorInfoType getTypeForPrimitiveNumericClass(CORINFO_CLASS_HANDLE cls); - BOOL canCast(CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent); - BOOL areTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2); + bool canCast(CORINFO_CLASS_HANDLE child, CORINFO_CLASS_HANDLE parent); + bool areTypesEquivalent(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2); TypeCompareState compareTypesForCast(CORINFO_CLASS_HANDLE fromClass, CORINFO_CLASS_HANDLE toClass); TypeCompareState compareTypesForEquality(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2); CORINFO_CLASS_HANDLE mergeClasses(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2); - BOOL isMoreSpecificType(CORINFO_CLASS_HANDLE cls1, + bool isMoreSpecificType(CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2); CORINFO_CLASS_HANDLE getParentType(CORINFO_CLASS_HANDLE cls); CorInfoType getChildType (CORINFO_CLASS_HANDLE clsHnd, CORINFO_CLASS_HANDLE *clsRet); - BOOL satisfiesClassConstraints(CORINFO_CLASS_HANDLE cls); + bool satisfiesClassConstraints(CORINFO_CLASS_HANDLE cls); - BOOL isSDArray (CORINFO_CLASS_HANDLE cls); + bool isSDArray (CORINFO_CLASS_HANDLE cls); unsigned getArrayRank(CORINFO_CLASS_HANDLE cls); void * getArrayInitializationData(CORINFO_FIELD_HANDLE field, DWORD size); CorInfoIsAccessAllowedResult canAccessClass(CORINFO_RESOLVED_TOKEN * pResolvedToken, @@ -618,9 +618,9 @@ class ZapInfo unsigned metaTOK, __out_ecount (FQNameCapacity) char * szFQName, size_t FQNameCapacity); - BOOL isValidToken(CORINFO_MODULE_HANDLE module, + bool isValidToken(CORINFO_MODULE_HANDLE module, unsigned metaTOK); - BOOL isValidStringRef(CORINFO_MODULE_HANDLE module, + bool isValidStringRef(CORINFO_MODULE_HANDLE module, unsigned metaTOK); LPCWSTR getStringLiteral(CORINFO_MODULE_HANDLE module, unsigned metaTOK, @@ -692,18 +692,18 @@ class ZapInfo bool * pMustExpand = NULL); bool isIntrinsicType(CORINFO_CLASS_HANDLE classHnd); CorInfoUnmanagedCallConv getUnmanagedCallConv(CORINFO_METHOD_HANDLE method); - BOOL pInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig); + bool pInvokeMarshalingRequired(CORINFO_METHOD_HANDLE method, CORINFO_SIG_INFO* sig); LPVOID GetCookieForPInvokeCalliSig(CORINFO_SIG_INFO* szMetaSig, void ** ppIndirecton); bool canGetCookieForPInvokeCalliSig(CORINFO_SIG_INFO* szMetaSig); - BOOL satisfiesMethodConstraints(CORINFO_CLASS_HANDLE parent, + bool satisfiesMethodConstraints(CORINFO_CLASS_HANDLE parent, CORINFO_METHOD_HANDLE method); - BOOL isCompatibleDelegate(CORINFO_CLASS_HANDLE objCls, + bool isCompatibleDelegate(CORINFO_CLASS_HANDLE objCls, CORINFO_CLASS_HANDLE methodParentCls, CORINFO_METHOD_HANDLE method, CORINFO_CLASS_HANDLE delegateCls, - BOOL* pfIsOpenDelegate); + bool* pfIsOpenDelegate); void getGSCookie(GSCookie * pCookieVal, GSCookie** ppCookieVal); From b65825e27aedbe75d57379f9f17c3ba5ee677f3b Mon Sep 17 00:00:00 2001 From: Adeel Mujahid <3840695+am11@users.noreply.github.com> Date: Tue, 8 Dec 2020 02:05:07 +0200 Subject: [PATCH 56/87] Add default case in RLimitResources switch (#45707) * Add default case in RLimitResources switch * Fix cmake warning in libs, showing up in -s clr too --- src/libraries/Native/Unix/System.Native/pal_process.c | 4 ++++ src/libraries/Native/Unix/configure.cmake | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/src/libraries/Native/Unix/System.Native/pal_process.c b/src/libraries/Native/Unix/System.Native/pal_process.c index 94c74e00c3b82..d0fba26d8d420 100644 --- a/src/libraries/Native/Unix/System.Native/pal_process.c +++ b/src/libraries/Native/Unix/System.Native/pal_process.c @@ -562,6 +562,10 @@ static int32_t ConvertRLimitResourcesPalToPlatform(RLimitResources value) #endif case PAL_RLIMIT_NOFILE: return RLIMIT_NOFILE; +#if !defined(RLIMIT_RSS) || !(defined(RLIMIT_MEMLOCK) || defined(RLIMIT_VMEM)) || !defined(RLIMIT_NPROC) + default: + break; +#endif } assert_msg(false, "Unknown RLIMIT value", (int)value); diff --git a/src/libraries/Native/Unix/configure.cmake b/src/libraries/Native/Unix/configure.cmake index a0d547d868e17..82e1ab4b5130b 100644 --- a/src/libraries/Native/Unix/configure.cmake +++ b/src/libraries/Native/Unix/configure.cmake @@ -7,6 +7,11 @@ include(CheckStructHasMember) include(CheckSymbolExists) include(CheckTypeSize) +# CMP0075 Include file check macros honor CMAKE_REQUIRED_LIBRARIES. +if(POLICY CMP0075) + cmake_policy(SET CMP0075 NEW) +endif() + if (CLR_CMAKE_TARGET_ANDROID) set(PAL_UNIX_NAME \"ANDROID\") elseif (CLR_CMAKE_TARGET_BROWSER) From 86f25ee030ec85e872d8bfc9185c5a2f31bed08f Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Tue, 8 Dec 2020 01:06:30 +0100 Subject: [PATCH 57/87] Move regenerate-download-table and cleanup (#45724) --- eng/Subsets.props | 2 +- eng/regenerate-download-table.proj | 47 ++++++++++++++++++++++ tools-local/regenerate-download-table.proj | 46 --------------------- 3 files changed, 48 insertions(+), 47 deletions(-) create mode 100644 eng/regenerate-download-table.proj delete mode 100644 tools-local/regenerate-download-table.proj diff --git a/eng/Subsets.props b/eng/Subsets.props index d328c72ff6194..aa65f6771b223 100644 --- a/eng/Subsets.props +++ b/eng/Subsets.props @@ -301,7 +301,7 @@ - + diff --git a/eng/regenerate-download-table.proj b/eng/regenerate-download-table.proj new file mode 100644 index 0000000000000..860765f104c47 --- /dev/null +++ b/eng/regenerate-download-table.proj @@ -0,0 +1,47 @@ + + + netstandard2.0 + + + + + + + + + $([MSBuild]::NormalizePath('$(RepoRoot)', 'docs', 'project', 'dogfooding.md')) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools-local/regenerate-download-table.proj b/tools-local/regenerate-download-table.proj deleted file mode 100644 index 74f52a995e258..0000000000000 --- a/tools-local/regenerate-download-table.proj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - $([MSBuild]::NormalizePath('$(RepoRoot)', 'docs', 'project', 'dogfooding.md')) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 75442397ab33c646845b1f0984bff0b0717fdc9a Mon Sep 17 00:00:00 2001 From: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com> Date: Tue, 8 Dec 2020 03:26:18 +0300 Subject: [PATCH 58/87] Reword the note on redundancy of frequent clean builds (#45718) --- docs/workflow/building/libraries/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/workflow/building/libraries/README.md b/docs/workflow/building/libraries/README.md index 9883dd121e2e8..a8bc829d50a84 100644 --- a/docs/workflow/building/libraries/README.md +++ b/docs/workflow/building/libraries/README.md @@ -10,7 +10,7 @@ git clean -xdf git pull upstream master & git push origin master :: Build Debug libraries on top of Release runtime: build.cmd clr+libs -rc Release -:: The above you may only perform once in a day, or when you pull down significant new changes. +:: Performing the above is usually only needed once in a day, or when you pull down significant new changes. :: If you use Visual Studio, you might open System.Text.RegularExpressions.sln here. build.cmd -vs System.Text.RegularExpressions @@ -34,7 +34,7 @@ git clean -xdf git pull upstream master & git push origin master # Build Debug libraries on top of Release runtime: ./build.sh clr+libs -rc Release -# The above you may only perform once in a day, or when you pull down significant new changes. +# Performing the above is usually only needed once in a day, or when you pull down significant new changes. # Switch to working on a given library (RegularExpressions in this case) cd src/libraries/System.Text.RegularExpressions From 0ec07945a9759a72a689edbb01e69b232e26e05a Mon Sep 17 00:00:00 2001 From: John Salem Date: Mon, 7 Dec 2020 17:21:04 -0800 Subject: [PATCH 59/87] Enable StressLog for subprocess in EventPipe tests (#45425) --- src/tests/tracing/eventpipe/common/IpcUtils.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/tests/tracing/eventpipe/common/IpcUtils.cs b/src/tests/tracing/eventpipe/common/IpcUtils.cs index 554037c1d009b..8dc8da268021b 100644 --- a/src/tests/tracing/eventpipe/common/IpcUtils.cs +++ b/src/tests/tracing/eventpipe/common/IpcUtils.cs @@ -67,6 +67,9 @@ public static async Task RunSubprocess(Assembly currentAssembly, Dictionar process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true; + process.StartInfo.Environment.Add("COMPlus_StressLog", "1"); // Turn on stresslog for subprocess + process.StartInfo.Environment.Add("COMPlus_LogFacility", "1000"); // Diagnostics Server Log Facility + process.StartInfo.Environment.Add("COMPlus_LogLevel", "10"); // Log everything foreach ((string key, string value) in environment) process.StartInfo.Environment.Add(key, value); process.StartInfo.FileName = Process.GetCurrentProcess().MainModule.FileName; From 69e114c1abf91241a0eeecf1ecceab4711b8aa62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Rylek?= Date: Tue, 8 Dec 2020 03:19:44 +0100 Subject: [PATCH 60/87] December infra rollout - remove duplicated 'src' from coreclr subrepo (src/coreclr/src becomes src/coreclr) (#44973) * Move src/coreclr/src/Directory.Build.targets to src/coreclr Merge src/coreclr/src/CMakeLists.txt into src/coreclr/CMakeLists.txt * Mechanical move of src/coreclr/src to src/coreclr * Scripts adjustments to reflect the changed paths --- .gitignore | 33 +++-- Directory.Build.props | 2 +- eng/Subsets.props | 24 ++-- .../{src => }/.nuget/Directory.Build.props | 0 .../{src => }/.nuget/Directory.Build.targets | 0 ...rosoft.CrossOsDiag.Private.CoreCLR.pkgproj | 0 ...Microsoft.CrossOsDiag.Private.CoreCLR.proj | 0 .../Microsoft.ILVerification.pkgproj | 0 .../Microsoft.NET.Sdk.IL.pkgproj | 0 .../.nuget/Microsoft.NET.Sdk.IL/sdk/Sdk.props | 0 .../Microsoft.NET.Sdk.IL/sdk/Sdk.targets | 0 .../Microsoft.NET.Sdk.IL.Common.targets | 0 .../targets/Microsoft.NET.Sdk.IL.targets | 0 .../Microsoft.NETCore.ILAsm.pkgproj | 0 .../Microsoft.NETCore.ILAsm.proj | 0 .../Microsoft.NETCore.ILDAsm.pkgproj | 0 .../Microsoft.NETCore.ILDAsm.proj | 0 .../Microsoft.NETCore.TestHost.pkgproj | 0 .../Microsoft.NETCore.TestHost.proj | 0 src/coreclr/{src => }/.nuget/_.pdb | 0 src/coreclr/{src => }/.nuget/builds.targets | 0 .../{src => }/.nuget/coreclr-packages.proj | 0 .../{src => }/.nuget/descriptions.json | 0 .../dotnet-ilverify/DotnetToolSettings.xml | 0 .../dotnet-ilverify/dotnet-ilverify.pkgproj | 0 .../.nuget/optdata/Directory.Build.props | 0 .../.nuget/optdata/Directory.Build.targets | 0 .../{src => }/.nuget/optdata/optdata.csproj | 0 .../{src => }/.nuget/packageIndex.json | 0 src/coreclr/{src => }/.nuget/packaging.props | 0 .../{src => }/.nuget/versioning.targets | 0 src/coreclr/CMakeLists.txt | 134 +++++++++++++++--- src/coreclr/Directory.Build.targets | 20 +++ ...ateRuntimeRootILLinkDescriptorFile.targets | 0 .../MembersMustExist.AnalyzerData | 0 .../System.Private.CoreLib.csproj | 6 +- .../System.Private.CoreLib.sln | 0 .../GenUnicodeProp/CategoryCasingInfo.cs | 0 .../Tools/GenUnicodeProp/DataTable.cs | 0 .../GenUnicodeProp/GenUnicodeProp.csproj | 0 .../GenUnicodeProp/NumericGraphemeInfo.cs | 0 .../Tools/GenUnicodeProp/Program.cs | 0 .../Tools/GenUnicodeProp/Readme.md | 0 .../GenUnicodeProp/StrongBidiCategory.cs | 0 .../Tools/GenUnicodeProp/TableLevels.cs | 0 .../src/ILLink/ILLinkTrim.xml | 0 .../Runtime/InteropServices/ComActivator.cs | 0 .../InteropServices/ComponentActivator.cs | 0 .../InteropServices/InMemoryAssemblyLoader.cs | 0 .../IsolatedComponentLoadContext.cs | 0 .../src/Interop/Unix/Interop.Libraries.cs | 0 .../src/Microsoft/Win32/OAVariantLib.cs | 0 .../src/System/ArgIterator.cs | 0 .../src/System/Array.CoreCLR.cs | 0 .../src/System/Attribute.CoreCLR.cs | 0 .../System/BadImageFormatException.CoreCLR.cs | 0 .../src/System/Buffer.CoreCLR.cs | 0 .../src/System/CLRConfig.cs | 0 .../EmptyReadOnlyDictionaryInternal.cs | 0 .../Generic/ArraySortHelper.CoreCLR.cs | 0 .../Collections/Generic/Comparer.CoreCLR.cs | 0 .../Collections/Generic/ComparerHelpers.cs | 0 .../Generic/EqualityComparer.CoreCLR.cs | 0 .../ObjectModel/ReadOnlyDictionary.cs | 0 .../src/System/Currency.cs | 0 .../src/System/DateTime.Unix.CoreCLR.cs | 0 .../src/System/DateTime.Windows.CoreCLR.cs | 0 .../src/System/Delegate.CoreCLR.cs | 0 .../src/System/Diagnostics/Debugger.cs | 0 .../Diagnostics/EditAndContinueHelper.cs | 0 .../Diagnostics/Eventing/EventPipe.CoreCLR.cs | 0 .../ICustomDebuggerNotification.cs | 0 .../System/Diagnostics/StackFrame.CoreCLR.cs | 0 .../System/Diagnostics/StackFrameHelper.cs | 0 .../System/Diagnostics/StackTrace.CoreCLR.cs | 0 .../Diagnostics/SymbolStore/ISymWriter.cs | 0 .../Diagnostics/SymbolStore/SymAddressKind.cs | 0 .../System/Diagnostics/SymbolStore/Token.cs | 0 .../src/System/Enum.CoreCLR.cs | 0 .../src/System/Environment.CoreCLR.cs | 0 .../src/System/Exception.CoreCLR.cs | 0 .../System.Private.CoreLib/src/System/GC.cs | 0 .../System/IO/FileLoadException.CoreCLR.cs | 0 .../IO/FileNotFoundException.CoreCLR.cs | 0 .../src/System/IO/Stream.CoreCLR.cs | 0 .../src/System/Math.CoreCLR.cs | 0 .../src/System/MathF.CoreCLR.cs | 0 .../System/MissingMemberException.CoreCLR.cs | 0 .../src/System/MulticastDelegate.cs | 0 .../src/System/Object.CoreCLR.cs | 0 .../src/System/OleAutBinder.cs | 0 .../src/System/Reflection/Assembly.CoreCLR.cs | 0 .../System/Reflection/AssemblyName.CoreCLR.cs | 0 .../src/System/Reflection/Associates.cs | 0 .../Reflection/ConstructorInfo.CoreCLR.cs | 0 .../src/System/Reflection/CustomAttribute.cs | 0 .../System/Reflection/Emit/AssemblyBuilder.cs | 0 .../Reflection/Emit/AssemblyBuilderData.cs | 0 .../Reflection/Emit/ConstructorBuilder.cs | 0 .../Reflection/Emit/CustomAttributeBuilder.cs | 0 .../Reflection/Emit/DynamicILGenerator.cs | 0 .../System/Reflection/Emit/DynamicMethod.cs | 0 .../src/System/Reflection/Emit/EnumBuilder.cs | 0 .../System/Reflection/Emit/EventBuilder.cs | 0 .../System/Reflection/Emit/FieldBuilder.cs | 0 .../Emit/GenericTypeParameterBuilder.cs | 0 .../src/System/Reflection/Emit/ILGenerator.cs | 0 .../System/Reflection/Emit/ISymWrapperCore.cs | 0 .../System/Reflection/Emit/LocalBuilder.cs | 0 .../System/Reflection/Emit/MethodBuilder.cs | 0 .../Emit/MethodBuilderInstantiation.cs | 0 .../System/Reflection/Emit/ModuleBuilder.cs | 0 .../Reflection/Emit/ModuleBuilderData.cs | 0 .../Reflection/Emit/ParameterBuilder.cs | 0 .../System/Reflection/Emit/PropertyBuilder.cs | 0 .../System/Reflection/Emit/SignatureHelper.cs | 0 .../System/Reflection/Emit/SymbolMethod.cs | 0 .../src/System/Reflection/Emit/SymbolType.cs | 0 .../src/System/Reflection/Emit/TypeBuilder.cs | 0 .../Emit/TypeBuilderInstantiation.cs | 0 .../Emit/XXXOnTypeBuilderInstantiation.cs | 0 .../System/Reflection/FieldInfo.CoreCLR.cs | 0 .../src/System/Reflection/INVOCATION_FLAGS.cs | 0 .../src/System/Reflection/LoaderAllocator.cs | 0 .../src/System/Reflection/MdConstant.cs | 0 .../src/System/Reflection/MdFieldInfo.cs | 0 .../src/System/Reflection/MdImport.cs | 0 .../System/Reflection/MemberInfo.Internal.cs | 0 .../Reflection/Metadata/AssemblyExtensions.cs | 0 .../System/Reflection/MethodBase.CoreCLR.cs | 0 .../src/System/Reflection/RtFieldInfo.cs | 0 .../src/System/Reflection/RuntimeAssembly.cs | 0 .../Reflection/RuntimeConstructorInfo.cs | 0 .../src/System/Reflection/RuntimeEventInfo.cs | 0 .../RuntimeExceptionHandlingClause.cs | 0 .../src/System/Reflection/RuntimeFieldInfo.cs | 0 .../Reflection/RuntimeLocalVariableInfo.cs | 0 .../System/Reflection/RuntimeMethodBody.cs | 0 .../System/Reflection/RuntimeMethodInfo.cs | 0 .../src/System/Reflection/RuntimeModule.cs | 0 .../System/Reflection/RuntimeParameterInfo.cs | 0 .../System/Reflection/RuntimePropertyInfo.cs | 0 .../ManifestBasedResourceGroveler.CoreCLR.cs | 0 .../Runtime/CompilerServices/CastHelpers.cs | 0 .../CrossLoaderAllocatorHashHelpers.cs | 0 .../CompilerServices/DependentHandle.cs | 0 .../Runtime/CompilerServices/GCHeapHash.cs | 0 .../CompilerServices/ICastableHelpers.cs | 0 .../RuntimeFeature.CoreCLR.cs | 0 .../RuntimeHelpers.CoreCLR.cs | 0 .../TypeDependencyAttribute.cs | 0 .../src/System/Runtime/GCSettings.CoreCLR.cs | 0 .../InteropServices/ComEventsHelper.cs | 0 .../Runtime/InteropServices/ComEventsInfo.cs | 0 .../InteropServices/ComTypes/IEnumerable.cs | 0 .../InteropServices/ComTypes/IEnumerator.cs | 0 .../Runtime/InteropServices/ComWrappers.cs | 0 .../CustomMarshalers/ComDataHelpers.cs | 0 .../EnumVariantViewOfEnumerator.cs | 0 .../EnumerableToDispatchMarshaler.cs | 0 .../EnumerableViewOfDispatch.cs | 0 .../EnumeratorToEnumVariantMarshaler.cs | 0 .../EnumeratorViewOfEnumVariant.cs | 0 .../ExpandoToDispatchExMarshaler.cs | 0 .../TypeToTypeInfoMarshaler.cs | 0 .../DynamicInterfaceCastableHelpers.cs | 0 .../InteropServices/GCHandle.CoreCLR.cs | 0 .../Runtime/InteropServices/IException.cs | 0 .../InteropServices/Marshal.CoreCLR.cs | 0 .../InteropServices/MemoryMarshal.CoreCLR.cs | 0 .../InteropServices/NativeLibrary.CoreCLR.cs | 0 .../Runtime/Intrinsics/X86/X86Base.CoreCLR.cs | 0 .../Loader/AssemblyLoadContext.CoreCLR.cs | 0 .../Runtime/Versioning/CompatibilitySwitch.cs | 0 .../src/System/RuntimeArgumentHandle.cs | 0 .../src/System/RuntimeHandles.cs | 0 .../src/System/RuntimeType.ActivatorCache.cs | 0 .../src/System/RuntimeType.CoreCLR.cs | 0 .../DynamicSecurityMethodAttribute.cs | 0 .../src/System/StartupHookProvider.cs | 0 .../src/System/String.CoreCLR.cs | 0 .../src/System/StubHelpers.cs | 0 .../src/System/Text/StringBuilder.CoreCLR.cs | 0 .../ClrThreadPoolBoundHandle.Unix.cs | 0 .../ClrThreadPoolBoundHandle.Windows.cs | 0 .../Threading/ClrThreadPoolBoundHandle.cs | 0 .../ClrThreadPoolBoundHandleOverlapped.cs | 0 .../ClrThreadPoolPreAllocatedOverlapped.cs | 0 .../System/Threading/Interlocked.CoreCLR.cs | 0 .../Threading/LowLevelLifoSemaphore.Unix.cs | 0 .../src/System/Threading/Monitor.CoreCLR.cs | 0 .../src/System/Threading/Overlapped.cs | 0 .../src/System/Threading/ProcessorIdCache.cs | 0 .../src/System/Threading/StackCrawlMark.cs | 0 .../SynchronizationContext.CoreCLR.cs | 0 .../src/System/Threading/Thread.CoreCLR.cs | 0 .../System/Threading/ThreadPool.CoreCLR.cs | 0 .../src/System/Threading/Timer.CoreCLR.cs | 0 .../System/Threading/WaitHandle.CoreCLR.cs | 0 .../src/System/Type.CoreCLR.cs | 0 .../src/System/TypeLoadException.CoreCLR.cs | 0 .../src/System/TypeNameParser.cs | 0 .../src/System/TypedReference.cs | 0 .../src/System/ValueType.cs | 0 .../src/System/Variant.cs | 0 .../src/System/WeakReference.CoreCLR.cs | 0 .../src/System/WeakReference.T.CoreCLR.cs | 0 .../src/System/__Canon.cs | 0 .../src/System/__ComObject.cs | 0 src/coreclr/{src => }/ToolBox/CMakeLists.txt | 0 .../{src => }/ToolBox/SOS/CMakeLists.txt | 0 .../{src => }/ToolBox/SOS/DIALib/DIALib.il | 0 .../ToolBox/SOS/DIALib/DIALib.ilproj | 0 .../SOS/DacTableGen/DacTableGen.csproj | 0 .../SOS/DacTableGen/MapSymbolProvider.cs | 0 .../ToolBox/SOS/DacTableGen/cvconst.cs | 0 .../ToolBox/SOS/DacTableGen/diautil.cs | 0 .../{src => }/ToolBox/SOS/DacTableGen/main.cs | 0 .../ToolBox/SOS/Directory.Build.props | 0 .../{src => }/ToolBox/SOS/SOS_README.md | 0 .../{src => }/ToolBox/superpmi/.clang-format | 0 .../{src => }/ToolBox/superpmi/CMakeLists.txt | 0 .../ToolBox/superpmi/mcs/CMakeLists.txt | 0 .../ToolBox/superpmi/mcs/commandline.cpp | 0 .../ToolBox/superpmi/mcs/commandline.h | 0 .../{src => }/ToolBox/superpmi/mcs/mcs.cpp | 0 .../{src => }/ToolBox/superpmi/mcs/mcs.h | 0 .../ToolBox/superpmi/mcs/removedup.cpp | 0 .../ToolBox/superpmi/mcs/removedup.h | 0 .../ToolBox/superpmi/mcs/verbasmdump.cpp | 0 .../ToolBox/superpmi/mcs/verbasmdump.h | 0 .../ToolBox/superpmi/mcs/verbconcat.cpp | 0 .../ToolBox/superpmi/mcs/verbconcat.h | 0 .../ToolBox/superpmi/mcs/verbdump.cpp | 0 .../{src => }/ToolBox/superpmi/mcs/verbdump.h | 0 .../ToolBox/superpmi/mcs/verbdumpmap.cpp | 0 .../ToolBox/superpmi/mcs/verbdumpmap.h | 0 .../ToolBox/superpmi/mcs/verbdumptoc.cpp | 0 .../ToolBox/superpmi/mcs/verbdumptoc.h | 0 .../ToolBox/superpmi/mcs/verbfracture.cpp | 0 .../ToolBox/superpmi/mcs/verbfracture.h | 0 .../ToolBox/superpmi/mcs/verbildump.cpp | 0 .../ToolBox/superpmi/mcs/verbildump.h | 0 .../ToolBox/superpmi/mcs/verbinteg.cpp | 0 .../ToolBox/superpmi/mcs/verbinteg.h | 0 .../ToolBox/superpmi/mcs/verbmerge.cpp | 0 .../ToolBox/superpmi/mcs/verbmerge.h | 0 .../superpmi/mcs/verbprintjiteeversion.cpp | 0 .../superpmi/mcs/verbprintjiteeversion.h | 0 .../ToolBox/superpmi/mcs/verbremovedup.cpp | 0 .../ToolBox/superpmi/mcs/verbremovedup.h | 0 .../ToolBox/superpmi/mcs/verbstat.cpp | 0 .../{src => }/ToolBox/superpmi/mcs/verbstat.h | 0 .../ToolBox/superpmi/mcs/verbstrip.cpp | 0 .../ToolBox/superpmi/mcs/verbstrip.h | 0 .../ToolBox/superpmi/mcs/verbtoc.cpp | 0 .../{src => }/ToolBox/superpmi/mcs/verbtoc.h | 0 .../{src => }/ToolBox/superpmi/readme.md | 0 .../superpmi/superpmi-shared/asmdumper.cpp | 0 .../superpmi/superpmi-shared/asmdumper.h | 0 .../superpmi/superpmi-shared/callutils.cpp | 0 .../superpmi/superpmi-shared/callutils.h | 0 .../superpmi-shared/compileresult.cpp | 0 .../superpmi/superpmi-shared/compileresult.h | 0 .../superpmi/superpmi-shared/crlwmlist.h | 0 .../superpmi-shared/errorhandling.cpp | 0 .../superpmi/superpmi-shared/errorhandling.h | 0 .../ToolBox/superpmi/superpmi-shared/hash.cpp | 0 .../ToolBox/superpmi/superpmi-shared/hash.h | 0 .../superpmi-shared/icorjitcompilerimpl.h | 0 .../superpmi-shared/icorjithostimpl.h | 0 .../superpmi-shared/icorjitinfoimpl.h | 0 .../superpmi/superpmi-shared/lightweightmap.h | 0 .../superpmi/superpmi-shared/logging.cpp | 0 .../superpmi/superpmi-shared/logging.h | 0 .../superpmi/superpmi-shared/lwmlist.h | 0 .../superpmi/superpmi-shared/mclist.cpp | 0 .../ToolBox/superpmi/superpmi-shared/mclist.h | 0 .../superpmi-shared/methodcontext.cpp | 0 .../superpmi/superpmi-shared/methodcontext.h | 0 .../superpmi-shared/methodcontextiterator.cpp | 0 .../superpmi-shared/methodcontextiterator.h | 0 .../superpmi-shared/methodcontextreader.cpp | 0 .../superpmi-shared/methodcontextreader.h | 0 .../superpmi/superpmi-shared/runtimedetails.h | 0 .../superpmi/superpmi-shared/simpletimer.cpp | 0 .../superpmi/superpmi-shared/simpletimer.h | 0 .../superpmi-shared/spmidumphelper.cpp | 0 .../superpmi/superpmi-shared/spmidumphelper.h | 0 .../superpmi-shared/spmirecordhelper.h | 0 .../superpmi/superpmi-shared/spmiutil.cpp | 0 .../superpmi/superpmi-shared/spmiutil.h | 0 .../superpmi/superpmi-shared/standardpch.h | 0 .../superpmi/superpmi-shared/tocfile.cpp | 0 .../superpmi/superpmi-shared/tocfile.h | 0 .../superpmi/superpmi-shared/typeutils.cpp | 0 .../superpmi/superpmi-shared/typeutils.h | 0 .../superpmi-shim-collector/CMakeLists.txt | 0 .../icorjitcompiler.cpp | 0 .../superpmi-shim-collector/icorjitcompiler.h | 0 .../superpmi-shim-collector/icorjitinfo.cpp | 0 .../superpmi-shim-collector/icorjitinfo.h | 0 .../superpmi-shim-collector/jithost.cpp | 0 .../superpmi-shim-collector/jithost.h | 0 .../superpmi-shim-collector.cpp | 0 .../superpmi-shim-collector.def | 0 .../superpmi-shim-collector.h | 0 .../superpmi-shim-counter/CMakeLists.txt | 0 .../superpmi-shim-counter/icorjitcompiler.cpp | 0 .../superpmi-shim-counter/icorjitcompiler.h | 0 .../superpmi-shim-counter/icorjitinfo.cpp | 0 .../superpmi-shim-counter/icorjitinfo.h | 0 .../superpmi-shim-counter/jithost.cpp | 0 .../superpmi/superpmi-shim-counter/jithost.h | 0 .../methodcallsummarizer.cpp | 0 .../methodcallsummarizer.h | 0 .../superpmi-shim-counter.cpp | 0 .../superpmi-shim-counter.def | 0 .../superpmi-shim-counter.h | 0 .../superpmi-shim-simple/CMakeLists.txt | 0 .../superpmi-shim-simple/icorjitcompiler.cpp | 0 .../superpmi-shim-simple/icorjitcompiler.h | 0 .../superpmi-shim-simple/icorjitinfo.cpp | 0 .../superpmi-shim-simple/icorjitinfo.h | 0 .../superpmi/superpmi-shim-simple/jithost.cpp | 0 .../superpmi/superpmi-shim-simple/jithost.h | 0 .../superpmi-shim-simple.cpp | 0 .../superpmi-shim-simple.def | 0 .../superpmi-shim-simple.h | 0 .../ToolBox/superpmi/superpmi/CMakeLists.txt | 0 .../ToolBox/superpmi/superpmi/commandline.cpp | 0 .../ToolBox/superpmi/superpmi/commandline.h | 0 .../ToolBox/superpmi/superpmi/cycletimer.cpp | 0 .../ToolBox/superpmi/superpmi/cycletimer.h | 0 .../ToolBox/superpmi/superpmi/icorjitinfo.cpp | 0 .../ToolBox/superpmi/superpmi/icorjitinfo.h | 0 .../ToolBox/superpmi/superpmi/jitdebugger.cpp | 0 .../ToolBox/superpmi/superpmi/jitdebugger.h | 0 .../ToolBox/superpmi/superpmi/jithost.cpp | 0 .../ToolBox/superpmi/superpmi/jithost.h | 0 .../ToolBox/superpmi/superpmi/jitinstance.cpp | 0 .../ToolBox/superpmi/superpmi/jitinstance.h | 0 .../superpmi/superpmi/methodstatsemitter.cpp | 0 .../superpmi/superpmi/methodstatsemitter.h | 0 .../ToolBox/superpmi/superpmi/neardiffer.cpp | 0 .../ToolBox/superpmi/superpmi/neardiffer.h | 0 .../superpmi/superpmi/parallelsuperpmi.cpp | 0 .../ToolBox/superpmi/superpmi/superpmi.cpp | 0 .../ToolBox/superpmi/superpmi/superpmi.h | 0 src/coreclr/{src => }/binder/CMakeLists.txt | 0 .../{src => }/binder/activitytracker.cpp | 0 .../{src => }/binder/applicationcontext.cpp | 0 src/coreclr/{src => }/binder/assembly.cpp | 0 .../{src => }/binder/assemblybinder.cpp | 0 .../binder/assemblyidentitycache.cpp | 0 src/coreclr/{src => }/binder/assemblyname.cpp | 0 .../{src => }/binder/bindertracing.cpp | 0 .../clrprivbinderassemblyloadcontext.cpp | 0 .../{src => }/binder/clrprivbindercoreclr.cpp | 0 .../{src => }/binder/coreclrbindercommon.cpp | 0 src/coreclr/{src => }/binder/failurecache.cpp | 0 .../{src => }/binder/fusionassemblyname.cpp | 0 .../{src => }/binder/inc/activitytracker.h | 0 .../binder/inc/applicationcontext.hpp | 0 .../binder/inc/applicationcontext.inl | 0 src/coreclr/{src => }/binder/inc/assembly.hpp | 0 src/coreclr/{src => }/binder/inc/assembly.inl | 0 .../{src => }/binder/inc/assemblybinder.hpp | 0 .../{src => }/binder/inc/assemblyentry.hpp | 0 .../binder/inc/assemblyhashtraits.hpp | 0 .../{src => }/binder/inc/assemblyidentity.hpp | 0 .../binder/inc/assemblyidentitycache.hpp | 0 .../{src => }/binder/inc/assemblyname.hpp | 0 .../{src => }/binder/inc/assemblyname.inl | 0 .../{src => }/binder/inc/assemblyversion.hpp | 0 .../{src => }/binder/inc/assemblyversion.inl | 0 .../{src => }/binder/inc/bindertracing.h | 0 .../{src => }/binder/inc/bindertypes.hpp | 0 .../{src => }/binder/inc/bindresult.hpp | 0 .../{src => }/binder/inc/bindresult.inl | 0 .../inc/clrprivbinderassemblyloadcontext.h | 0 .../binder/inc/clrprivbindercoreclr.h | 0 .../{src => }/binder/inc/contextentry.hpp | 0 .../binder/inc/coreclrbindercommon.h | 0 .../{src => }/binder/inc/failurecache.hpp | 0 .../binder/inc/failurecachehashtraits.hpp | 0 .../binder/inc/fusionassemblyname.hpp | 0 .../{src => }/binder/inc/fusionhelpers.hpp | 0 .../{src => }/binder/inc/loadcontext.hpp | 0 .../{src => }/binder/inc/loadcontext.inl | 0 .../{src => }/binder/inc/stringlexer.hpp | 0 .../{src => }/binder/inc/stringlexer.inl | 0 .../binder/inc/textualidentityparser.hpp | 0 src/coreclr/{src => }/binder/inc/utils.hpp | 0 .../{src => }/binder/inc/variables.hpp | 0 src/coreclr/{src => }/binder/stringlexer.cpp | 0 .../binder/textualidentityparser.cpp | 0 src/coreclr/{src => }/binder/utils.cpp | 0 src/coreclr/{src => }/binder/variables.cpp | 0 src/coreclr/build-runtime.cmd | 2 +- src/coreclr/build-runtime.sh | 2 +- .../{src => }/classlibnative/CMakeLists.txt | 0 .../classlibnative/bcltype/CMakeLists.txt | 0 .../classlibnative/bcltype/arraynative.cpp | 0 .../classlibnative/bcltype/arraynative.h | 0 .../classlibnative/bcltype/arraynative.inl | 0 .../classlibnative/bcltype/oavariant.cpp | 0 .../classlibnative/bcltype/oavariant.h | 0 .../classlibnative/bcltype/objectnative.cpp | 0 .../classlibnative/bcltype/objectnative.h | 0 .../classlibnative/bcltype/stringnative.cpp | 0 .../classlibnative/bcltype/stringnative.h | 0 .../classlibnative/bcltype/system.cpp | 0 .../{src => }/classlibnative/bcltype/system.h | 0 .../classlibnative/bcltype/varargsnative.cpp | 0 .../classlibnative/bcltype/varargsnative.h | 0 .../classlibnative/bcltype/variant.cpp | 0 .../classlibnative/bcltype/variant.h | 0 .../classlibnative/float/CMakeLists.txt | 0 .../classlibnative/float/floatdouble.cpp | 0 .../classlibnative/float/floatsingle.cpp | 0 .../classlibnative/inc/floatdouble.h | 0 .../classlibnative/inc/floatsingle.h | 0 .../{src => }/classlibnative/inc/nls.h | 0 src/coreclr/{src => }/cpp.hint | 0 src/coreclr/{src => }/debug/CMakeLists.txt | 0 .../{src => }/debug/createdump/CMakeLists.txt | 2 +- .../{src => }/debug/createdump/config.h.in | 0 .../debug/createdump/configure.cmake | 0 .../{src => }/debug/createdump/crashinfo.cpp | 0 .../{src => }/debug/createdump/crashinfo.h | 0 .../debug/createdump/crashinfomac.cpp | 0 .../debug/createdump/crashinfounix.cpp | 0 .../{src => }/debug/createdump/createdump.h | 0 .../{src => }/debug/createdump/createdump.rc | 0 .../debug/createdump/createdumpunix.cpp | 0 .../debug/createdump/createdumpwindows.cpp | 0 .../{src => }/debug/createdump/datatarget.cpp | 0 .../{src => }/debug/createdump/datatarget.h | 0 .../{src => }/debug/createdump/dumpname.cpp | 0 .../{src => }/debug/createdump/dumpwriter.cpp | 0 .../{src => }/debug/createdump/dumpwriter.h | 0 src/coreclr/{src => }/debug/createdump/mac.h | 0 .../{src => }/debug/createdump/main.cpp | 0 .../{src => }/debug/createdump/memoryregion.h | 0 .../{src => }/debug/createdump/threadinfo.cpp | 0 .../{src => }/debug/createdump/threadinfo.h | 0 .../debug/createdump/threadinfomac.cpp | 0 .../debug/createdump/threadinfounix.cpp | 0 .../{src => }/debug/daccess/CMakeLists.txt | 8 +- .../debug/daccess/amd64/primitives.cpp | 0 .../debug/daccess/arm/primitives.cpp | 0 .../debug/daccess/arm64/primitives.cpp | 0 .../{src => }/debug/daccess/daccess.cpp | 0 .../{src => }/debug/daccess/dacdbiimpl.cpp | 0 .../{src => }/debug/daccess/dacdbiimpl.h | 0 .../{src => }/debug/daccess/dacdbiimpl.inl | 0 .../debug/daccess/dacdbiimpllocks.cpp | 0 .../debug/daccess/dacdbiimplstackwalk.cpp | 0 src/coreclr/{src => }/debug/daccess/dacfn.cpp | 0 src/coreclr/{src => }/debug/daccess/dacimpl.h | 0 .../debug/daccess/datatargetadapter.cpp | 0 .../debug/daccess/datatargetadapter.h | 0 .../{src => }/debug/daccess/enummem.cpp | 0 .../{src => }/debug/daccess/fntableaccess.cpp | 0 .../{src => }/debug/daccess/fntableaccess.h | 0 .../{src => }/debug/daccess/gcinterface.dac.h | 0 .../debug/daccess/i386/primitives.cpp | 0 .../{src => }/debug/daccess/inspect.cpp | 0 .../{src => }/debug/daccess/nidump.cpp | 0 src/coreclr/{src => }/debug/daccess/nidump.h | 0 .../{src => }/debug/daccess/nidump.inl | 0 .../{src => }/debug/daccess/reimpl.cpp | 0 .../{src => }/debug/daccess/request.cpp | 0 .../{src => }/debug/daccess/request_common.h | 0 .../{src => }/debug/daccess/request_svr.cpp | 0 src/coreclr/{src => }/debug/daccess/stack.cpp | 0 src/coreclr/{src => }/debug/daccess/stdafx.h | 0 src/coreclr/{src => }/debug/daccess/task.cpp | 0 .../{src => }/debug/dbgutil/CMakeLists.txt | 2 +- .../{src => }/debug/dbgutil/dbgutil.cpp | 0 .../{src => }/debug/dbgutil/elfreader.cpp | 0 .../{src => }/debug/dbgutil/elfreader.h | 0 .../{src => }/debug/dbgutil/machoreader.cpp | 0 .../{src => }/debug/dbgutil/machoreader.h | 0 .../{src => }/debug/debug-pal/CMakeLists.txt | 0 .../debug/debug-pal/dummy/twowaypipe.cpp | 0 .../debug/debug-pal/unix/diagnosticsipc.cpp | 0 .../debug-pal/unix/processdescriptor.cpp | 0 .../debug/debug-pal/unix/twowaypipe.cpp | 0 .../debug/debug-pal/win/diagnosticsipc.cpp | 0 .../debug/debug-pal/win/processdescriptor.cpp | 0 .../debug/debug-pal/win/twowaypipe.cpp | 0 src/coreclr/{src => }/debug/di/CMakeLists.txt | 0 .../debug/di/ICorDebugValueTypes.vsd | Bin .../debug/di/amd64/FloatConversion.asm | 0 .../debug/di/amd64/cordbregisterset.cpp | 0 .../debug/di/amd64/floatconversion.S | 0 .../{src => }/debug/di/amd64/primitives.cpp | 0 .../debug/di/arm/cordbregisterset.cpp | 0 .../{src => }/debug/di/arm/floatconversion.S | 0 .../debug/di/arm/floatconversion.asm | 0 .../{src => }/debug/di/arm/primitives.cpp | 0 .../debug/di/arm64/cordbregisterset.cpp | 0 .../debug/di/arm64/floatconversion.S | 0 .../debug/di/arm64/floatconversion.asm | 0 .../{src => }/debug/di/arm64/primitives.cpp | 0 src/coreclr/{src => }/debug/di/breakpoint.cpp | 0 src/coreclr/{src => }/debug/di/classfactory.h | 0 src/coreclr/{src => }/debug/di/cordb.cpp | 0 .../debug/di/dbgtransportmanager.cpp | 0 .../{src => }/debug/di/dbgtransportmanager.h | 0 .../debug/di/dbgtransportpipeline.cpp | 0 src/coreclr/{src => }/debug/di/divalue.cpp | 0 src/coreclr/{src => }/debug/di/eventchannel.h | 0 .../debug/di/eventredirectionpipeline.cpp | 0 .../debug/di/eventredirectionpipeline.h | 0 src/coreclr/{src => }/debug/di/hash.cpp | 0 src/coreclr/{src => }/debug/di/helpers.h | 0 .../debug/di/i386/cordbregisterset.cpp | 0 .../{src => }/debug/di/i386/primitives.cpp | 0 .../{src => }/debug/di/localeventchannel.cpp | 0 src/coreclr/{src => }/debug/di/module.cpp | 0 .../{src => }/debug/di/nativepipeline.cpp | 0 .../{src => }/debug/di/nativepipeline.h | 0 .../{src => }/debug/di/platformspecific.cpp | 0 src/coreclr/{src => }/debug/di/process.cpp | 0 src/coreclr/{src => }/debug/di/publish.cpp | 0 .../{src => }/debug/di/remoteeventchannel.cpp | 0 .../{src => }/debug/di/rsappdomain.cpp | 0 src/coreclr/{src => }/debug/di/rsassembly.cpp | 0 src/coreclr/{src => }/debug/di/rsclass.cpp | 0 .../{src => }/debug/di/rsenumerator.hpp | 0 src/coreclr/{src => }/debug/di/rsfunction.cpp | 0 src/coreclr/{src => }/debug/di/rsmain.cpp | 0 src/coreclr/{src => }/debug/di/rsmda.cpp | 0 src/coreclr/{src => }/debug/di/rspriv.h | 0 src/coreclr/{src => }/debug/di/rspriv.inl | 0 .../{src => }/debug/di/rsregsetcommon.cpp | 0 .../{src => }/debug/di/rsstackwalk.cpp | 0 src/coreclr/{src => }/debug/di/rsthread.cpp | 0 src/coreclr/{src => }/debug/di/rstype.cpp | 0 src/coreclr/{src => }/debug/di/shared.cpp | 0 .../{src => }/debug/di/shimcallback.cpp | 0 .../{src => }/debug/di/shimdatatarget.cpp | 0 .../{src => }/debug/di/shimdatatarget.h | 0 src/coreclr/{src => }/debug/di/shimevents.cpp | 0 .../debug/di/shimlocaldatatarget.cpp | 0 src/coreclr/{src => }/debug/di/shimpriv.h | 0 .../{src => }/debug/di/shimprocess.cpp | 0 .../debug/di/shimremotedatatarget.cpp | 0 .../{src => }/debug/di/shimstackwalk.cpp | 0 src/coreclr/{src => }/debug/di/stdafx.h | 0 src/coreclr/{src => }/debug/di/symbolinfo.cpp | 0 src/coreclr/{src => }/debug/di/symbolinfo.h | 0 src/coreclr/{src => }/debug/di/valuehome.cpp | 0 .../{src => }/debug/di/windowspipeline.cpp | 0 src/coreclr/{src => }/debug/ee/CMakeLists.txt | 0 .../debug/ee/amd64/amd64InstrDecode.h | 0 .../{src => }/debug/ee/amd64/amd64walker.cpp | 0 .../{src => }/debug/ee/amd64/dbghelpers.S | 0 .../{src => }/debug/ee/amd64/dbghelpers.asm | 0 .../ee/amd64/debuggerregdisplayhelper.cpp | 0 .../Amd64InstructionTableGenerator.cs | 0 .../Amd64InstructionTableGenerator.csproj | 0 .../ee/amd64/gen_amd64InstrDecode/README.md | 0 .../gen_amd64InstrDecode/createOpcodes.cpp | 0 .../{src => }/debug/ee/amd64/primitives.cpp | 0 .../{src => }/debug/ee/arm/armwalker.cpp | 0 .../{src => }/debug/ee/arm/dbghelpers.S | 0 .../{src => }/debug/ee/arm/dbghelpers.asm | 0 .../{src => }/debug/ee/arm/primitives.cpp | 0 .../{src => }/debug/ee/arm64/arm64walker.cpp | 0 .../{src => }/debug/ee/arm64/dbghelpers.S | 0 .../{src => }/debug/ee/arm64/dbghelpers.asm | 0 .../{src => }/debug/ee/arm64/primitives.cpp | 0 src/coreclr/{src => }/debug/ee/canary.cpp | 0 src/coreclr/{src => }/debug/ee/canary.h | 0 src/coreclr/{src => }/debug/ee/controller.cpp | 0 src/coreclr/{src => }/debug/ee/controller.h | 0 src/coreclr/{src => }/debug/ee/controller.inl | 0 .../{src => }/debug/ee/dac/CMakeLists.txt | 0 src/coreclr/{src => }/debug/ee/dactable.cpp | 0 src/coreclr/{src => }/debug/ee/datatest.h | 0 src/coreclr/{src => }/debug/ee/debugger.cpp | 0 src/coreclr/{src => }/debug/ee/debugger.h | 0 src/coreclr/{src => }/debug/ee/debugger.inl | 0 .../{src => }/debug/ee/debuggermodule.cpp | 0 src/coreclr/{src => }/debug/ee/frameinfo.cpp | 0 src/coreclr/{src => }/debug/ee/frameinfo.h | 0 src/coreclr/{src => }/debug/ee/funceval.cpp | 0 .../{src => }/debug/ee/functioninfo.cpp | 0 .../{src => }/debug/ee/i386/dbghelpers.S | 0 .../{src => }/debug/ee/i386/dbghelpers.asm | 0 .../ee/i386/debuggerregdisplayhelper.cpp | 0 .../{src => }/debug/ee/i386/primitives.cpp | 0 .../{src => }/debug/ee/i386/x86walker.cpp | 0 src/coreclr/{src => }/debug/ee/rcthread.cpp | 0 src/coreclr/{src => }/debug/ee/shared.cpp | 0 src/coreclr/{src => }/debug/ee/stdafx.h | 0 src/coreclr/{src => }/debug/ee/walker.h | 0 .../{src => }/debug/ee/wks/CMakeLists.txt | 0 .../{src => }/debug/ildbsymlib/CMakeLists.txt | 0 .../{src => }/debug/ildbsymlib/classfactory.h | 0 .../debug/ildbsymlib/ildbsymbols.cpp | 0 src/coreclr/{src => }/debug/ildbsymlib/pch.h | 0 .../{src => }/debug/ildbsymlib/pdbdata.h | 0 .../{src => }/debug/ildbsymlib/symbinder.cpp | 0 .../{src => }/debug/ildbsymlib/symbinder.h | 0 .../{src => }/debug/ildbsymlib/symread.cpp | 0 .../{src => }/debug/ildbsymlib/symread.h | 0 .../{src => }/debug/ildbsymlib/symwrite.cpp | 0 .../{src => }/debug/ildbsymlib/symwrite.h | 0 .../{src => }/debug/ildbsymlib/umisc.h | 0 .../{src => }/debug/inc/amd64/primitives.h | 0 .../{src => }/debug/inc/arm/primitives.h | 0 .../{src => }/debug/inc/arm64/primitives.h | 0 .../{src => }/debug/inc/arm_primitives.h | 0 src/coreclr/{src => }/debug/inc/common.h | 0 .../inc/coreclrremotedebugginginterfaces.h | 0 .../{src => }/debug/inc/dacdbiinterface.h | 0 .../{src => }/debug/inc/dacdbistructures.h | 0 .../{src => }/debug/inc/dacdbistructures.inl | 0 .../{src => }/debug/inc/dbgappdomain.h | 0 .../{src => }/debug/inc/dbgipcevents.h | 0 .../{src => }/debug/inc/dbgipceventtypes.h | 0 .../{src => }/debug/inc/dbgtargetcontext.h | 0 .../{src => }/debug/inc/dbgtransportsession.h | 0 src/coreclr/{src => }/debug/inc/dbgutil.h | 0 .../{src => }/debug/inc/ddmarshalutil.h | 0 .../{src => }/debug/inc/diagnosticsipc.h | 0 .../{src => }/debug/inc/dump/dumpcommon.h | 0 .../{src => }/debug/inc/eventredirection.h | 0 .../{src => }/debug/inc/i386/primitives.h | 0 .../{src => }/debug/inc/processdescriptor.h | 0 .../debug/inc/readonlydatatargetfacade.h | 0 .../debug/inc/readonlydatatargetfacade.inl | 0 src/coreclr/{src => }/debug/inc/runtimeinfo.h | 0 .../{src => }/debug/inc/stringcopyholder.h | 0 src/coreclr/{src => }/debug/inc/twowaypipe.h | 0 .../debug/runtimeinfo/CMakeLists.txt | 0 .../debug/runtimeinfo/runtimeinfo.cpp | 0 .../debug/shared/amd64/primitives.cpp | 0 .../{src => }/debug/shared/arm/primitives.cpp | 0 .../debug/shared/arm64/primitives.cpp | 0 .../debug/shared/dbgtransportsession.cpp | 0 .../debug/shared/i386/primitives.cpp | 0 .../debug/shared/stringcopyholder.cpp | 0 src/coreclr/{src => }/debug/shared/utils.cpp | 0 .../{src => }/debug/shim/CMakeLists.txt | 0 .../{src => }/debug/shim/debugshim.cpp | 0 src/coreclr/{src => }/debug/shim/debugshim.h | 0 src/coreclr/{src => }/dlls/CMakeLists.txt | 0 .../{src => }/dlls/clretwrc/CMakeLists.txt | 0 .../{src => }/dlls/clretwrc/clretwrc.rc | 0 .../{src => }/dlls/dbgshim/CMakeLists.txt | 2 +- .../{src => }/dlls/dbgshim/dbgshim.cpp | 0 src/coreclr/{src => }/dlls/dbgshim/dbgshim.h | 0 .../{src => }/dlls/dbgshim/dbgshim.ntdef | 0 src/coreclr/{src => }/dlls/dbgshim/dbgshim.rc | 0 .../dlls/dbgshim/dbgshim_unixexports.src | 0 .../{src => }/dlls/mscordac/CMakeLists.txt | 0 src/coreclr/{src => }/dlls/mscordac/Native.rc | 0 .../{src => }/dlls/mscordac/libredefines.S | 0 .../{src => }/dlls/mscordac/mscordac.cpp | 0 .../{src => }/dlls/mscordac/mscordac.src | 0 .../dlls/mscordac/mscordac_unixexports.src | 0 .../{src => }/dlls/mscordac/palredefines.S | 0 src/coreclr/{src => }/dlls/mscordac/update.pl | 0 .../{src => }/dlls/mscordbi/CMakeLists.txt | 0 src/coreclr/{src => }/dlls/mscordbi/Native.rc | 0 .../{src => }/dlls/mscordbi/mscordbi.cpp | 0 .../{src => }/dlls/mscordbi/mscordbi.src | 0 .../dlls/mscordbi/mscordbi_unixexports.src | 0 src/coreclr/{src => }/dlls/mscordbi/stdafx.h | 0 .../{src => }/dlls/mscoree/CMakeLists.txt | 0 src/coreclr/{src => }/dlls/mscoree/Native.rc | 0 .../dlls/mscoree/coreclr/CMakeLists.txt | 6 +- .../{src => }/dlls/mscoree/coreclr/README.md | 0 .../mscoree/coreclr/dump_helper_resource.bin | Bin .../{src => }/dlls/mscoree/delayloadhook.cpp | 0 .../dlls/mscoree/gdbjit_unixexports.src | 0 .../{src => }/dlls/mscoree/mscoree.cpp | 0 .../{src => }/dlls/mscoree/mscorwks_ntdef.src | 0 .../dlls/mscoree/mscorwks_unixexports.src | 0 src/coreclr/{src => }/dlls/mscoree/stdafx.cpp | 0 src/coreclr/{src => }/dlls/mscoree/stdafx.h | 0 .../{src => }/dlls/mscoree/unixinterface.cpp | 0 .../{src => }/dlls/mscorpe/CMakeLists.txt | 0 .../dlls/mscorpe/ceefilegenwriter.cpp | 0 .../dlls/mscorpe/ceefilegenwritertokens.cpp | 0 .../{src => }/dlls/mscorpe/iceefilegen.cpp | 0 .../{src => }/dlls/mscorpe/pewriter.cpp | 0 src/coreclr/{src => }/dlls/mscorpe/pewriter.h | 0 src/coreclr/{src => }/dlls/mscorpe/stdafx.cpp | 0 src/coreclr/{src => }/dlls/mscorpe/stdafx.h | 0 .../{src => }/dlls/mscorrc/CMakeLists.txt | 0 src/coreclr/{src => }/dlls/mscorrc/include.rc | 0 .../{src => }/dlls/mscorrc/mscorrc.common.rc | 0 src/coreclr/{src => }/dlls/mscorrc/mscorrc.rc | 0 src/coreclr/{src => }/dlls/mscorrc/resource.h | 0 src/coreclr/{src => }/gc/CMakeLists.txt | 0 src/coreclr/{src => }/gc/env/common.cpp | 0 src/coreclr/{src => }/gc/env/common.h | 0 src/coreclr/{src => }/gc/env/etmdummy.h | 0 src/coreclr/{src => }/gc/env/gcenv.base.h | 0 src/coreclr/{src => }/gc/env/gcenv.ee.h | 0 src/coreclr/{src => }/gc/env/gcenv.h | 0 .../{src => }/gc/env/gcenv.interlocked.h | 0 .../{src => }/gc/env/gcenv.interlocked.inl | 0 src/coreclr/{src => }/gc/env/gcenv.object.h | 0 src/coreclr/{src => }/gc/env/gcenv.os.h | 0 src/coreclr/{src => }/gc/env/gcenv.structs.h | 0 src/coreclr/{src => }/gc/env/gcenv.sync.h | 0 src/coreclr/{src => }/gc/env/gcenv.unix.inl | 0 .../{src => }/gc/env/gcenv.windows.inl | 0 src/coreclr/{src => }/gc/env/volatile.h | 0 src/coreclr/{src => }/gc/gc.cpp | 0 src/coreclr/{src => }/gc/gc.h | 0 src/coreclr/{src => }/gc/gccommon.cpp | 0 src/coreclr/{src => }/gc/gcconfig.cpp | 0 src/coreclr/{src => }/gc/gcconfig.h | 0 src/coreclr/{src => }/gc/gcdesc.h | 0 src/coreclr/{src => }/gc/gcee.cpp | 0 src/coreclr/{src => }/gc/gceesvr.cpp | 0 src/coreclr/{src => }/gc/gceewks.cpp | 0 .../{src => }/gc/gcenv.ee.standalone.inl | 0 src/coreclr/{src => }/gc/gcenv.inl | 0 .../{src => }/gc/gcevent_serializers.h | 0 src/coreclr/{src => }/gc/gcevents.h | 0 src/coreclr/{src => }/gc/gceventstatus.cpp | 0 src/coreclr/{src => }/gc/gceventstatus.h | 0 src/coreclr/{src => }/gc/gchandletable.cpp | 0 src/coreclr/{src => }/gc/gchandletableimpl.h | 0 src/coreclr/{src => }/gc/gcimpl.h | 0 src/coreclr/{src => }/gc/gcinterface.dac.h | 0 .../{src => }/gc/gcinterface.dacvars.def | 0 src/coreclr/{src => }/gc/gcinterface.ee.h | 0 src/coreclr/{src => }/gc/gcinterface.h | 0 src/coreclr/{src => }/gc/gcload.cpp | 0 src/coreclr/{src => }/gc/gcpriv.h | 0 src/coreclr/{src => }/gc/gcrecord.h | 0 src/coreclr/{src => }/gc/gcscan.cpp | 0 src/coreclr/{src => }/gc/gcscan.h | 0 src/coreclr/{src => }/gc/gcsvr.cpp | 0 src/coreclr/{src => }/gc/gcwks.cpp | 0 src/coreclr/{src => }/gc/handletable.cpp | 0 src/coreclr/{src => }/gc/handletable.h | 0 src/coreclr/{src => }/gc/handletable.inl | 0 src/coreclr/{src => }/gc/handletablecache.cpp | 0 src/coreclr/{src => }/gc/handletablecore.cpp | 0 src/coreclr/{src => }/gc/handletablepriv.h | 0 src/coreclr/{src => }/gc/handletablescan.cpp | 0 src/coreclr/{src => }/gc/objecthandle.cpp | 0 src/coreclr/{src => }/gc/objecthandle.h | 0 .../{src => }/gc/sample/CMakeLists.txt | 0 src/coreclr/{src => }/gc/sample/GCSample.cpp | 0 .../{src => }/gc/sample/GCSample.vcxproj | 0 .../gc/sample/GCSample.vcxproj.filters | 0 src/coreclr/{src => }/gc/sample/gcenv.ee.cpp | 0 src/coreclr/{src => }/gc/sample/gcenv.h | 0 .../{src => }/gc/softwarewritewatch.cpp | 0 src/coreclr/{src => }/gc/softwarewritewatch.h | 0 src/coreclr/{src => }/gc/unix/CMakeLists.txt | 0 src/coreclr/{src => }/gc/unix/cgroup.cpp | 0 src/coreclr/{src => }/gc/unix/cgroup.h | 0 src/coreclr/{src => }/gc/unix/config.gc.h.in | 0 src/coreclr/{src => }/gc/unix/configure.cmake | 0 src/coreclr/{src => }/gc/unix/events.cpp | 0 src/coreclr/{src => }/gc/unix/gcenv.unix.cpp | 0 src/coreclr/{src => }/gc/unix/globals.h | 0 src/coreclr/{src => }/gc/vxsort/alignment.h | 0 src/coreclr/{src => }/gc/vxsort/defs.h | 0 src/coreclr/{src => }/gc/vxsort/do_vxsort.h | 0 .../{src => }/gc/vxsort/do_vxsort_avx2.cpp | 0 .../{src => }/gc/vxsort/do_vxsort_avx512.cpp | 0 .../{src => }/gc/vxsort/isa_detection.cpp | 0 .../gc/vxsort/machine_traits.avx2.cpp | 0 .../{src => }/gc/vxsort/machine_traits.avx2.h | 0 .../gc/vxsort/machine_traits.avx512.h | 0 .../{src => }/gc/vxsort/machine_traits.h | 0 src/coreclr/{src => }/gc/vxsort/packer.h | 0 .../smallsort/avx2_load_mask_tables.cpp | 0 .../bitonic_sort.AVX2.int32_t.generated.cpp | 0 .../bitonic_sort.AVX2.int32_t.generated.h | 0 .../bitonic_sort.AVX2.int64_t.generated.cpp | 0 .../bitonic_sort.AVX2.int64_t.generated.h | 0 .../bitonic_sort.AVX512.int32_t.generated.cpp | 0 .../bitonic_sort.AVX512.int32_t.generated.h | 0 .../bitonic_sort.AVX512.int64_t.generated.cpp | 0 .../bitonic_sort.AVX512.int64_t.generated.h | 0 .../gc/vxsort/smallsort/bitonic_sort.h | 0 .../gc/vxsort/smallsort/codegen/avx2.py | 0 .../gc/vxsort/smallsort/codegen/avx512.py | 0 .../vxsort/smallsort/codegen/bitonic_gen.py | 0 .../vxsort/smallsort/codegen/bitonic_isa.py | 0 .../gc/vxsort/smallsort/codegen/utils.py | 0 src/coreclr/{src => }/gc/vxsort/vxsort.h | 0 .../gc/vxsort/vxsort_targets_disable.h | 0 .../gc/vxsort/vxsort_targets_enable_avx2.h | 0 .../gc/vxsort/vxsort_targets_enable_avx512.h | 0 .../{src => }/gc/windows/gcenv.windows.cpp | 0 src/coreclr/{src => }/gcdump/gcdump.cpp | 0 src/coreclr/{src => }/gcdump/gcdumpnonx86.cpp | 0 .../{src => }/gcdump/i386/gcdumpx86.cpp | 0 src/coreclr/{src => }/gcinfo/CMakeLists.txt | 0 src/coreclr/{src => }/gcinfo/arraylist.cpp | 0 src/coreclr/{src => }/gcinfo/gcinfodumper.cpp | 0 .../{src => }/gcinfo/gcinfoencoder.cpp | 0 src/coreclr/{src => }/gcinfo/simplerhash.cpp | 0 src/coreclr/{src => }/hosts/CMakeLists.txt | 0 src/coreclr/{src => }/hosts/applydefines.pl | 0 .../{src => }/hosts/corerun/CMakeLists.txt | 0 .../{src => }/hosts/corerun/corerun.cpp | 0 .../{src => }/hosts/corerun/logger.cpp | 0 src/coreclr/{src => }/hosts/corerun/logger.h | 0 src/coreclr/{src => }/hosts/corerun/native.rc | 0 src/coreclr/{src => }/hosts/corerun/test.txt | 0 .../{src => }/hosts/coreshim/CMakeLists.txt | 0 .../hosts/coreshim/ComActivation.cpp | 0 .../{src => }/hosts/coreshim/CoreShim.cpp | 0 .../{src => }/hosts/coreshim/CoreShim.h | 0 .../{src => }/hosts/coreshim/Exports.def | 0 src/coreclr/{src => }/hosts/inc/coreclrhost.h | 0 .../hosts/unixcorerun/CMakeLists.txt | 0 .../{src => }/hosts/unixcorerun/config.h.in | 0 .../hosts/unixcorerun/configure.cmake | 0 .../{src => }/hosts/unixcorerun/corerun.cpp | 0 src/coreclr/{src => }/ilasm/CMakeLists.txt | 0 src/coreclr/{src => }/ilasm/Native.rc | 0 src/coreclr/{src => }/ilasm/asmenum.h | 0 src/coreclr/{src => }/ilasm/asmman.cpp | 0 src/coreclr/{src => }/ilasm/asmman.hpp | 0 src/coreclr/{src => }/ilasm/asmparse.h | 0 src/coreclr/{src => }/ilasm/asmparse.y | 0 src/coreclr/{src => }/ilasm/asmtemplates.h | 0 src/coreclr/{src => }/ilasm/assem.cpp | 0 src/coreclr/{src => }/ilasm/assembler.cpp | 0 src/coreclr/{src => }/ilasm/assembler.h | 0 src/coreclr/{src => }/ilasm/binstr.h | 0 src/coreclr/{src => }/ilasm/class.hpp | 0 src/coreclr/{src => }/ilasm/extractGrammar.pl | 0 src/coreclr/{src => }/ilasm/grammar_after.cpp | 0 .../{src => }/ilasm/grammar_before.cpp | 0 src/coreclr/{src => }/ilasm/ilasmpch.h | 0 src/coreclr/{src => }/ilasm/main.cpp | 0 src/coreclr/{src => }/ilasm/method.cpp | 0 src/coreclr/{src => }/ilasm/method.hpp | 0 src/coreclr/{src => }/ilasm/nvpair.h | 0 src/coreclr/{src => }/ilasm/portable_pdb.cpp | 0 src/coreclr/{src => }/ilasm/portable_pdb.h | 0 .../{src => }/ilasm/prebuilt/asmparse.cpp | 0 .../{src => }/ilasm/prebuilt/asmparse.grammar | 0 src/coreclr/{src => }/ilasm/typar.hpp | 0 src/coreclr/{src => }/ilasm/writer.cpp | 0 src/coreclr/{src => }/ilasm/writer_enc.cpp | 0 src/coreclr/{src => }/ildasm/CMakeLists.txt | 0 src/coreclr/{src => }/ildasm/ceeload.cpp | 0 src/coreclr/{src => }/ildasm/ceeload.h | 0 src/coreclr/{src => }/ildasm/dasm.cpp | 0 src/coreclr/{src => }/ildasm/dasm.rc | 0 .../{src => }/ildasm/dasm_formattype.cpp | 0 src/coreclr/{src => }/ildasm/dasm_mi.cpp | 0 src/coreclr/{src => }/ildasm/dasm_sz.cpp | 0 src/coreclr/{src => }/ildasm/dasm_sz.h | 0 src/coreclr/{src => }/ildasm/dasmenum.hpp | 0 src/coreclr/{src => }/ildasm/dis.cpp | 0 src/coreclr/{src => }/ildasm/dis.h | 0 src/coreclr/{src => }/ildasm/dman.cpp | 0 src/coreclr/{src => }/ildasm/dres.cpp | 0 src/coreclr/{src => }/ildasm/dynamicarray.h | 0 .../{src => }/ildasm/exe/CMakeLists.txt | 0 src/coreclr/{src => }/ildasm/ildasmpch.cpp | 0 src/coreclr/{src => }/ildasm/ildasmpch.h | 0 src/coreclr/{src => }/ildasm/resource.h | 0 src/coreclr/{src => }/ildasm/util.hpp | 0 src/coreclr/{src => }/ildasm/windasm.cpp | 0 src/coreclr/{src => }/inc/CMakeLists.txt | 0 src/coreclr/{src => }/inc/CrstTypeTool.cs | 0 src/coreclr/{src => }/inc/CrstTypes.def | 0 src/coreclr/{src => }/inc/MSCOREE.IDL | 0 src/coreclr/{src => }/inc/OpCodeGen.pl | 0 src/coreclr/{src => }/inc/allocacheck.h | 0 src/coreclr/{src => }/inc/arrayholder.h | 0 src/coreclr/{src => }/inc/arraylist.h | 0 src/coreclr/{src => }/inc/bbsweep.h | 0 src/coreclr/{src => }/inc/bitmask.h | 0 src/coreclr/{src => }/inc/bitmask.inl | 0 src/coreclr/{src => }/inc/bitposition.h | 0 src/coreclr/{src => }/inc/bitvector.h | 0 src/coreclr/{src => }/inc/blobfetcher.h | 0 src/coreclr/{src => }/inc/bundle.h | 0 src/coreclr/{src => }/inc/cahlpr.h | 0 src/coreclr/{src => }/inc/caparser.h | 0 src/coreclr/{src => }/inc/ceefilegenwriter.h | 0 src/coreclr/{src => }/inc/ceegen.h | 0 src/coreclr/{src => }/inc/ceegentokenmapper.h | 0 src/coreclr/{src => }/inc/ceesectionstring.h | 0 src/coreclr/{src => }/inc/cfi.h | 0 src/coreclr/{src => }/inc/check.h | 0 src/coreclr/{src => }/inc/check.inl | 0 src/coreclr/{src => }/inc/clr/fs.h | 0 src/coreclr/{src => }/inc/clr/fs/path.h | 0 src/coreclr/{src => }/inc/clr/stack.h | 0 src/coreclr/{src => }/inc/clr/str.h | 0 src/coreclr/{src => }/inc/clr/win32.h | 0 src/coreclr/{src => }/inc/clr_std/algorithm | 0 src/coreclr/{src => }/inc/clr_std/string | 0 src/coreclr/{src => }/inc/clr_std/type_traits | 0 src/coreclr/{src => }/inc/clr_std/utility | 0 src/coreclr/{src => }/inc/clr_std/vector | 0 src/coreclr/{src => }/inc/clrconfig.h | 0 src/coreclr/{src => }/inc/clrconfigvalues.h | 0 src/coreclr/{src => }/inc/clrdata.idl | 0 src/coreclr/{src => }/inc/clrhost.h | 0 src/coreclr/{src => }/inc/clrinternal.idl | 0 src/coreclr/{src => }/inc/clrnt.h | 0 src/coreclr/{src => }/inc/clrprivbinderutil.h | 0 src/coreclr/{src => }/inc/clrprivbinding.idl | 0 src/coreclr/{src => }/inc/clrtypes.h | 0 src/coreclr/{src => }/inc/clrversion.h | 0 src/coreclr/{src => }/inc/complex.h | 0 src/coreclr/{src => }/inc/configuration.h | 0 src/coreclr/{src => }/inc/contract.h | 0 src/coreclr/{src => }/inc/contract.inl | 0 src/coreclr/{src => }/inc/contxt.h | 0 src/coreclr/{src => }/inc/cor.h | 0 src/coreclr/{src => }/inc/corbbtprof.h | 0 src/coreclr/{src => }/inc/corcompile.h | 0 src/coreclr/{src => }/inc/cordbpriv.h | 0 src/coreclr/{src => }/inc/cordebug.idl | 0 src/coreclr/{src => }/inc/cordebuginfo.h | 0 src/coreclr/{src => }/inc/coredistools.h | 0 src/coreclr/{src => }/inc/coregen.h | 0 src/coreclr/{src => }/inc/corerror.xml | 0 src/coreclr/{src => }/inc/corexcep.h | 0 src/coreclr/{src => }/inc/corhdr.h | 0 src/coreclr/{src => }/inc/corhlpr.cpp | 0 src/coreclr/{src => }/inc/corhlpr.h | 0 src/coreclr/{src => }/inc/corhlprpriv.cpp | 0 src/coreclr/{src => }/inc/corhlprpriv.h | 0 src/coreclr/{src => }/inc/corhost.h | 0 src/coreclr/{src => }/inc/corimage.h | 0 src/coreclr/{src => }/inc/corinfo.h | 0 .../{src => }/inc/corinfoinstructionset.h | 0 src/coreclr/{src => }/inc/corjit.h | 0 src/coreclr/{src => }/inc/corjitflags.h | 0 src/coreclr/{src => }/inc/corjithost.h | 0 src/coreclr/{src => }/inc/corpriv.h | 0 src/coreclr/{src => }/inc/corprof.idl | 0 src/coreclr/{src => }/inc/corpub.idl | 0 src/coreclr/{src => }/inc/corsym.idl | 0 src/coreclr/{src => }/inc/cortypeinfo.h | 0 src/coreclr/{src => }/inc/crosscomp.h | 0 src/coreclr/{src => }/inc/crsttypes.h | 0 src/coreclr/{src => }/inc/crtwrap.h | 0 src/coreclr/{src => }/inc/cvconst.h | 0 src/coreclr/{src => }/inc/cvinfo.h | 0 src/coreclr/{src => }/inc/cycletimer.h | 0 src/coreclr/{src => }/inc/daccess.h | 0 src/coreclr/{src => }/inc/dacprivate.h | 0 src/coreclr/{src => }/inc/dacvars.h | 0 src/coreclr/{src => }/inc/dbgenginemetrics.h | 0 src/coreclr/{src => }/inc/dbgmeta.h | 0 src/coreclr/{src => }/inc/dbgportable.h | 0 src/coreclr/{src => }/inc/debugmacros.h | 0 src/coreclr/{src => }/inc/debugmacrosext.h | 0 src/coreclr/{src => }/inc/debugreturn.h | 0 src/coreclr/{src => }/inc/defaultallocator.h | 0 src/coreclr/{src => }/inc/dlwrap.h | 0 src/coreclr/{src => }/inc/ecmakey.h | 0 src/coreclr/{src => }/inc/eetwain.h | 0 src/coreclr/{src => }/inc/eexcp.h | 0 src/coreclr/{src => }/inc/entrypoints.h | 0 src/coreclr/{src => }/inc/eventtrace.h | 0 src/coreclr/{src => }/inc/eventtracebase.h | 0 src/coreclr/{src => }/inc/ex.h | 0 src/coreclr/{src => }/inc/factory.h | 0 src/coreclr/{src => }/inc/factory.inl | 0 src/coreclr/{src => }/inc/fixuppointer.h | 0 src/coreclr/{src => }/inc/formattype.cpp | 0 src/coreclr/{src => }/inc/formattype.h | 0 src/coreclr/{src => }/inc/fstream.h | 0 src/coreclr/{src => }/inc/fstring.h | 0 src/coreclr/{src => }/inc/fusion.idl | 0 src/coreclr/{src => }/inc/gcdecoder.cpp | 0 src/coreclr/{src => }/inc/gcdump.h | 0 src/coreclr/{src => }/inc/gcinfo.h | 0 src/coreclr/{src => }/inc/gcinfoarraylist.h | 0 src/coreclr/{src => }/inc/gcinfodecoder.h | 0 src/coreclr/{src => }/inc/gcinfodumper.h | 0 src/coreclr/{src => }/inc/gcinfoencoder.h | 0 src/coreclr/{src => }/inc/gcinfotypes.h | 0 src/coreclr/{src => }/inc/gcrefmap.h | 0 src/coreclr/{src => }/inc/genheaders.cs | 0 src/coreclr/{src => }/inc/genrops.pl | 0 .../{src => }/inc/getproductversionnumber.h | 0 src/coreclr/{src => }/inc/guidfromname.h | 0 src/coreclr/{src => }/inc/holder.h | 0 src/coreclr/{src => }/inc/holderinst.h | 0 src/coreclr/{src => }/inc/iallocator.h | 0 src/coreclr/{src => }/inc/iceefilegen.h | 0 src/coreclr/{src => }/inc/il_kywd.h | 0 src/coreclr/{src => }/inc/ildbsymlib.h | 0 src/coreclr/{src => }/inc/ilformatter.h | 0 .../{src => }/inc/internalunknownimpl.h | 0 src/coreclr/{src => }/inc/intrinsic.h | 0 src/coreclr/{src => }/inc/iterator.h | 0 src/coreclr/{src => }/inc/jiteeversionguid.h | 0 src/coreclr/{src => }/inc/jithelpers.h | 0 src/coreclr/{src => }/inc/livedatatarget.h | 0 src/coreclr/{src => }/inc/llvm/Dwarf.def | 0 src/coreclr/{src => }/inc/llvm/Dwarf.h | 0 src/coreclr/{src => }/inc/llvm/ELF.h | 0 src/coreclr/{src => }/inc/loaderheap.h | 0 src/coreclr/{src => }/inc/log.h | 0 src/coreclr/{src => }/inc/loglf.h | 0 .../{src => }/inc/longfilepathwrappers.h | 0 src/coreclr/{src => }/inc/md5.h | 0 src/coreclr/{src => }/inc/mdcommon.h | 0 src/coreclr/{src => }/inc/mdfileformat.h | 0 src/coreclr/{src => }/inc/memorypool.h | 0 src/coreclr/{src => }/inc/memoryrange.h | 0 src/coreclr/{src => }/inc/metadata.h | 0 src/coreclr/{src => }/inc/metadataexports.h | 0 src/coreclr/{src => }/inc/metadatatracker.h | 0 src/coreclr/{src => }/inc/metahost.idl | 0 src/coreclr/{src => }/inc/metamodelpub.h | 0 src/coreclr/{src => }/inc/mpl/type_list | 0 src/coreclr/{src => }/inc/mscorsvc.idl | 0 src/coreclr/{src => }/inc/msodw.h | 0 src/coreclr/{src => }/inc/msodwwrap.h | 0 .../{src => }/inc/nativevaraccessors.h | 0 src/coreclr/{src => }/inc/new.hpp | 0 src/coreclr/{src => }/inc/ngen.h | 0 src/coreclr/{src => }/inc/nibblemapmacros.h | 0 src/coreclr/{src => }/inc/nibblestream.h | 0 src/coreclr/{src => }/inc/nsutilpriv.h | 0 src/coreclr/{src => }/inc/obj/i386/dummy | 0 src/coreclr/{src => }/inc/opcode.def | 0 src/coreclr/{src => }/inc/openum.h | 0 src/coreclr/{src => }/inc/opinfo.h | 0 src/coreclr/{src => }/inc/optdefault.h | 0 .../{src => }/inc/optsmallperfcritical.h | 0 src/coreclr/{src => }/inc/ostype.h | 0 src/coreclr/{src => }/inc/outstring.h | 0 src/coreclr/{src => }/inc/palclr.h | 0 src/coreclr/{src => }/inc/palclr_win.h | 0 src/coreclr/{src => }/inc/patchpointinfo.h | 0 src/coreclr/{src => }/inc/pedecoder.h | 0 src/coreclr/{src => }/inc/pedecoder.inl | 0 src/coreclr/{src => }/inc/peinformation.h | 0 src/coreclr/{src => }/inc/pesectionman.h | 0 src/coreclr/{src => }/inc/pinvokeoverride.h | 0 src/coreclr/{src => }/inc/posterror.h | 0 src/coreclr/{src => }/inc/predeftlsslot.h | 0 src/coreclr/{src => }/inc/prettyprintsig.h | 0 src/coreclr/{src => }/inc/profilepriv.h | 0 src/coreclr/{src => }/inc/profilepriv.inl | 0 src/coreclr/{src => }/inc/random.h | 0 src/coreclr/{src => }/inc/readme.md | 0 src/coreclr/{src => }/inc/readytorun.h | 0 src/coreclr/{src => }/inc/readytorunhelpers.h | 0 .../{src => }/inc/readytoruninstructionset.h | 0 src/coreclr/{src => }/inc/regdisp.h | 0 src/coreclr/{src => }/inc/regex_base.h | 0 src/coreclr/{src => }/inc/regex_util.h | 0 src/coreclr/{src => }/inc/registrywrapper.h | 0 src/coreclr/{src => }/inc/releaseholder.h | 0 src/coreclr/{src => }/inc/safemath.h | 0 src/coreclr/{src => }/inc/safewrap.h | 0 src/coreclr/{src => }/inc/sarray.h | 0 src/coreclr/{src => }/inc/sarray.inl | 0 src/coreclr/{src => }/inc/sbuffer.h | 0 src/coreclr/{src => }/inc/sbuffer.inl | 0 src/coreclr/{src => }/inc/securityutil.h | 0 src/coreclr/{src => }/inc/securitywrapper.h | 0 src/coreclr/{src => }/inc/sha1.h | 0 src/coreclr/{src => }/inc/shash.h | 0 src/coreclr/{src => }/inc/shash.inl | 0 src/coreclr/{src => }/inc/shimload.h | 0 src/coreclr/{src => }/inc/sigbuilder.h | 0 src/coreclr/{src => }/inc/sigparser.h | 0 src/coreclr/{src => }/inc/simplerhash.h | 0 src/coreclr/{src => }/inc/simplerhash.inl | 0 src/coreclr/{src => }/inc/slist.h | 0 src/coreclr/{src => }/inc/sospriv.idl | 0 src/coreclr/{src => }/inc/sstring.h | 0 src/coreclr/{src => }/inc/sstring.inl | 0 src/coreclr/{src => }/inc/stack.h | 0 src/coreclr/{src => }/inc/stackframe.h | 0 src/coreclr/{src => }/inc/stacktrace.h | 0 src/coreclr/{src => }/inc/static_assert.h | 0 src/coreclr/{src => }/inc/staticcontract.h | 0 src/coreclr/{src => }/inc/stdmacros.h | 0 src/coreclr/{src => }/inc/stgpool.h | 0 src/coreclr/{src => }/inc/stgpooli.h | 0 src/coreclr/{src => }/inc/stresslog.h | 0 src/coreclr/{src => }/inc/stringarraylist.h | 0 src/coreclr/{src => }/inc/stringarraylist.inl | 0 src/coreclr/{src => }/inc/strongnameholders.h | 0 .../{src => }/inc/strongnameinternal.h | 0 src/coreclr/{src => }/inc/switches.h | 0 src/coreclr/{src => }/inc/thekey.h | 0 src/coreclr/{src => }/inc/tls.h | 0 src/coreclr/{src => }/inc/unreachable.h | 0 src/coreclr/{src => }/inc/utilcode.h | 0 src/coreclr/{src => }/inc/utsem.h | 0 src/coreclr/{src => }/inc/volatile.h | 0 src/coreclr/{src => }/inc/vptr_list.h | 0 src/coreclr/{src => }/inc/win64unwind.h | 0 src/coreclr/{src => }/inc/winwrap.h | 0 src/coreclr/{src => }/inc/xclrdata.idl | 0 src/coreclr/{src => }/inc/xcordebug.idl | 0 .../{src => }/inc/yieldprocessornormalized.h | 0 src/coreclr/{src => }/inc/zapper.h | 0 src/coreclr/{src => }/interop/CMakeLists.txt | 0 src/coreclr/{src => }/interop/comwrappers.cpp | 0 src/coreclr/{src => }/interop/comwrappers.hpp | 0 .../{src => }/interop/inc/interoplib.h | 0 .../{src => }/interop/inc/interoplibabi.h | 0 .../{src => }/interop/inc/interoplibimports.h | 0 src/coreclr/{src => }/interop/interoplib.cpp | 0 src/coreclr/{src => }/interop/platform.h | 0 .../interop/referencetrackertypes.hpp | 0 .../interop/trackerobjectmanager.cpp | 0 src/coreclr/{src => }/jit/.clang-format | 0 src/coreclr/{src => }/jit/CMakeLists.txt | 0 src/coreclr/{src => }/jit/ClrJit.PAL.exports | 0 src/coreclr/{src => }/jit/ClrJit.exports | 0 .../{src => }/jit/ICorJitInfo_API_names.h | 0 .../{src => }/jit/ICorJitInfo_API_wrapper.hpp | 0 src/coreclr/{src => }/jit/Native.rc | 0 src/coreclr/{src => }/jit/_typeinfo.h | 0 src/coreclr/{src => }/jit/alloc.cpp | 0 src/coreclr/{src => }/jit/alloc.h | 0 src/coreclr/{src => }/jit/arraystack.h | 0 src/coreclr/{src => }/jit/assertionprop.cpp | 0 src/coreclr/{src => }/jit/bitset.cpp | 0 src/coreclr/{src => }/jit/bitset.h | 0 src/coreclr/{src => }/jit/bitsetasshortlong.h | 0 src/coreclr/{src => }/jit/bitsetasuint64.h | 0 .../{src => }/jit/bitsetasuint64inclass.h | 0 src/coreclr/{src => }/jit/bitsetops.h | 0 src/coreclr/{src => }/jit/bitvec.h | 0 src/coreclr/{src => }/jit/block.cpp | 0 src/coreclr/{src => }/jit/block.h | 0 src/coreclr/{src => }/jit/blockset.h | 0 src/coreclr/{src => }/jit/codegen.h | 0 src/coreclr/{src => }/jit/codegenarm.cpp | 0 src/coreclr/{src => }/jit/codegenarm64.cpp | 0 src/coreclr/{src => }/jit/codegenarmarch.cpp | 0 src/coreclr/{src => }/jit/codegencommon.cpp | 0 src/coreclr/{src => }/jit/codegeninterface.h | 0 src/coreclr/{src => }/jit/codegenlinear.cpp | 0 src/coreclr/{src => }/jit/codegenxarch.cpp | 0 src/coreclr/{src => }/jit/compiler.cpp | 0 src/coreclr/{src => }/jit/compiler.h | 0 src/coreclr/{src => }/jit/compiler.hpp | 0 .../{src => }/jit/compilerbitsettraits.h | 0 .../{src => }/jit/compilerbitsettraits.hpp | 0 src/coreclr/{src => }/jit/compmemkind.h | 0 src/coreclr/{src => }/jit/compphases.h | 0 src/coreclr/{src => }/jit/conventions.txt | 0 src/coreclr/{src => }/jit/copyprop.cpp | 0 src/coreclr/{src => }/jit/cpp.hint | 0 .../{src => }/jit/crossgen/CMakeLists.txt | 0 src/coreclr/{src => }/jit/dataflow.h | 0 src/coreclr/{src => }/jit/decomposelongs.cpp | 0 src/coreclr/{src => }/jit/decomposelongs.h | 0 src/coreclr/{src => }/jit/disasm.cpp | 0 src/coreclr/{src => }/jit/disasm.h | 0 src/coreclr/{src => }/jit/dllmain.cpp | 0 src/coreclr/{src => }/jit/earlyprop.cpp | 0 src/coreclr/{src => }/jit/ee_il_dll.cpp | 0 src/coreclr/{src => }/jit/ee_il_dll.hpp | 0 src/coreclr/{src => }/jit/eeinterface.cpp | 0 src/coreclr/{src => }/jit/emit.cpp | 0 src/coreclr/{src => }/jit/emit.h | 0 src/coreclr/{src => }/jit/emitarm.cpp | 0 src/coreclr/{src => }/jit/emitarm.h | 0 src/coreclr/{src => }/jit/emitarm64.cpp | 0 src/coreclr/{src => }/jit/emitarm64.h | 0 src/coreclr/{src => }/jit/emitdef.h | 0 src/coreclr/{src => }/jit/emitfmts.h | 0 src/coreclr/{src => }/jit/emitfmtsarm.h | 0 src/coreclr/{src => }/jit/emitfmtsarm64.h | 0 src/coreclr/{src => }/jit/emitfmtsxarch.h | 0 src/coreclr/{src => }/jit/emitinl.h | 0 src/coreclr/{src => }/jit/emitjmps.h | 0 src/coreclr/{src => }/jit/emitpub.h | 0 src/coreclr/{src => }/jit/emitxarch.cpp | 0 src/coreclr/{src => }/jit/emitxarch.h | 0 src/coreclr/{src => }/jit/error.cpp | 0 src/coreclr/{src => }/jit/error.h | 0 src/coreclr/{src => }/jit/flowgraph.cpp | 0 src/coreclr/{src => }/jit/gcdecode.cpp | 0 src/coreclr/{src => }/jit/gcencode.cpp | 0 src/coreclr/{src => }/jit/gcinfo.cpp | 0 src/coreclr/{src => }/jit/gentree.cpp | 0 src/coreclr/{src => }/jit/gentree.h | 0 src/coreclr/{src => }/jit/gschecks.cpp | 0 src/coreclr/{src => }/jit/gtlist.h | 0 src/coreclr/{src => }/jit/gtstructs.h | 0 src/coreclr/{src => }/jit/hashbv.cpp | 0 src/coreclr/{src => }/jit/hashbv.h | 0 src/coreclr/{src => }/jit/host.h | 0 src/coreclr/{src => }/jit/hostallocator.cpp | 0 src/coreclr/{src => }/jit/hostallocator.h | 0 src/coreclr/{src => }/jit/hwintrinsic.cpp | 0 src/coreclr/{src => }/jit/hwintrinsic.h | 0 .../{src => }/jit/hwintrinsicarm64.cpp | 0 .../{src => }/jit/hwintrinsiccodegenarm64.cpp | 0 .../{src => }/jit/hwintrinsiccodegenxarch.cpp | 0 .../{src => }/jit/hwintrinsiclistarm64.h | 0 .../{src => }/jit/hwintrinsiclistxarch.h | 0 .../{src => }/jit/hwintrinsicxarch.cpp | 0 src/coreclr/{src => }/jit/importer.cpp | 0 .../{src => }/jit/indirectcalltransformer.cpp | 0 src/coreclr/{src => }/jit/inline.cpp | 0 src/coreclr/{src => }/jit/inline.def | 0 src/coreclr/{src => }/jit/inline.h | 0 src/coreclr/{src => }/jit/inlinepolicy.cpp | 0 src/coreclr/{src => }/jit/inlinepolicy.h | 0 src/coreclr/{src => }/jit/instr.cpp | 0 src/coreclr/{src => }/jit/instr.h | 0 src/coreclr/{src => }/jit/instrs.h | 0 src/coreclr/{src => }/jit/instrsarm.h | 0 src/coreclr/{src => }/jit/instrsarm64.h | 0 src/coreclr/{src => }/jit/instrsxarch.h | 0 src/coreclr/{src => }/jit/jit.h | 0 src/coreclr/{src => }/jit/jitconfig.cpp | 0 src/coreclr/{src => }/jit/jitconfig.h | 0 src/coreclr/{src => }/jit/jitconfigvalues.h | 0 src/coreclr/{src => }/jit/jitee.h | 0 src/coreclr/{src => }/jit/jiteh.cpp | 0 src/coreclr/{src => }/jit/jiteh.h | 0 src/coreclr/{src => }/jit/jitexpandarray.h | 0 src/coreclr/{src => }/jit/jitgcinfo.h | 0 src/coreclr/{src => }/jit/jithashtable.cpp | 0 src/coreclr/{src => }/jit/jithashtable.h | 0 src/coreclr/{src => }/jit/jitpch.h | 0 src/coreclr/{src => }/jit/jitstd.h | 0 src/coreclr/{src => }/jit/jitstd/algorithm.h | 0 src/coreclr/{src => }/jit/jitstd/allocator.h | 0 src/coreclr/{src => }/jit/jitstd/functional.h | 0 src/coreclr/{src => }/jit/jitstd/iterator.h | 0 src/coreclr/{src => }/jit/jitstd/list.h | 0 src/coreclr/{src => }/jit/jitstd/new.h | 0 src/coreclr/{src => }/jit/jitstd/utility.h | 0 src/coreclr/{src => }/jit/jitstd/vector.h | 0 src/coreclr/{src => }/jit/jittelemetry.cpp | 0 src/coreclr/{src => }/jit/jittelemetry.h | 0 src/coreclr/{src => }/jit/layout.cpp | 0 src/coreclr/{src => }/jit/layout.h | 0 src/coreclr/{src => }/jit/lclmorph.cpp | 0 src/coreclr/{src => }/jit/lclvars.cpp | 0 src/coreclr/{src => }/jit/lir.cpp | 0 src/coreclr/{src => }/jit/lir.h | 0 src/coreclr/{src => }/jit/liveness.cpp | 0 src/coreclr/{src => }/jit/loopcloning.cpp | 0 src/coreclr/{src => }/jit/loopcloning.h | 0 src/coreclr/{src => }/jit/loopcloningopts.h | 0 src/coreclr/{src => }/jit/lower.cpp | 0 src/coreclr/{src => }/jit/lower.h | 0 src/coreclr/{src => }/jit/lowerarmarch.cpp | 0 src/coreclr/{src => }/jit/lowerxarch.cpp | 0 src/coreclr/{src => }/jit/lsra.cpp | 0 src/coreclr/{src => }/jit/lsra.h | 0 src/coreclr/{src => }/jit/lsra_reftypes.h | 0 src/coreclr/{src => }/jit/lsraarm.cpp | 0 src/coreclr/{src => }/jit/lsraarm64.cpp | 0 src/coreclr/{src => }/jit/lsraarmarch.cpp | 0 src/coreclr/{src => }/jit/lsrabuild.cpp | 0 src/coreclr/{src => }/jit/lsraxarch.cpp | 0 src/coreclr/{src => }/jit/morph.cpp | 0 .../{src => }/jit/namedintrinsiclist.h | 0 src/coreclr/{src => }/jit/objectalloc.cpp | 0 src/coreclr/{src => }/jit/objectalloc.h | 0 src/coreclr/{src => }/jit/opcode.h | 0 src/coreclr/{src => }/jit/optcse.cpp | 0 src/coreclr/{src => }/jit/optimizer.cpp | 0 src/coreclr/{src => }/jit/patchpoint.cpp | 0 src/coreclr/{src => }/jit/phase.cpp | 0 src/coreclr/{src => }/jit/phase.h | 0 src/coreclr/{src => }/jit/rangecheck.cpp | 0 src/coreclr/{src => }/jit/rangecheck.h | 0 src/coreclr/{src => }/jit/rationalize.cpp | 0 src/coreclr/{src => }/jit/rationalize.h | 0 src/coreclr/{src => }/jit/regalloc.cpp | 0 src/coreclr/{src => }/jit/regalloc.h | 0 src/coreclr/{src => }/jit/register.h | 0 .../{src => }/jit/register_arg_convention.cpp | 0 .../{src => }/jit/register_arg_convention.h | 0 src/coreclr/{src => }/jit/registerarm.h | 0 src/coreclr/{src => }/jit/registerarm64.h | 0 src/coreclr/{src => }/jit/reglist.h | 0 src/coreclr/{src => }/jit/regset.cpp | 0 src/coreclr/{src => }/jit/regset.h | 0 src/coreclr/{src => }/jit/scopeinfo.cpp | 0 src/coreclr/{src => }/jit/sideeffects.cpp | 0 src/coreclr/{src => }/jit/sideeffects.h | 0 src/coreclr/{src => }/jit/simd.cpp | 0 src/coreclr/{src => }/jit/simd.h | 0 .../{src => }/jit/simdashwintrinsic.cpp | 0 src/coreclr/{src => }/jit/simdashwintrinsic.h | 0 .../jit/simdashwintrinsiclistarm64.h | 0 .../jit/simdashwintrinsiclistxarch.h | 0 .../{src => }/jit/simdcodegenxarch.cpp | 0 src/coreclr/{src => }/jit/simdintrinsiclist.h | 0 src/coreclr/{src => }/jit/sm.cpp | 0 src/coreclr/{src => }/jit/sm.h | 0 src/coreclr/{src => }/jit/smallhash.h | 0 src/coreclr/{src => }/jit/smcommon.cpp | 0 src/coreclr/{src => }/jit/smcommon.h | 0 src/coreclr/{src => }/jit/smdata.cpp | 0 src/coreclr/{src => }/jit/smopcode.def | 0 src/coreclr/{src => }/jit/smopcodemap.def | 0 src/coreclr/{src => }/jit/smopenum.h | 0 src/coreclr/{src => }/jit/smweights.cpp | 0 src/coreclr/{src => }/jit/ssabuilder.cpp | 0 src/coreclr/{src => }/jit/ssabuilder.h | 0 src/coreclr/{src => }/jit/ssaconfig.h | 0 src/coreclr/{src => }/jit/ssarenamestate.cpp | 0 src/coreclr/{src => }/jit/ssarenamestate.h | 0 .../{src => }/jit/stacklevelsetter.cpp | 0 src/coreclr/{src => }/jit/stacklevelsetter.h | 0 .../{src => }/jit/static/CMakeLists.txt | 0 src/coreclr/{src => }/jit/static/clrjit.def | 0 src/coreclr/{src => }/jit/target.h | 0 src/coreclr/{src => }/jit/targetamd64.cpp | 0 src/coreclr/{src => }/jit/targetarm.cpp | 0 src/coreclr/{src => }/jit/targetarm64.cpp | 0 src/coreclr/{src => }/jit/targetx86.cpp | 0 src/coreclr/{src => }/jit/tinyarray.h | 0 src/coreclr/{src => }/jit/titypes.h | 0 src/coreclr/{src => }/jit/treelifeupdater.cpp | 0 src/coreclr/{src => }/jit/treelifeupdater.h | 0 src/coreclr/{src => }/jit/typeinfo.cpp | 0 src/coreclr/{src => }/jit/typelist.h | 0 src/coreclr/{src => }/jit/unwind.cpp | 0 src/coreclr/{src => }/jit/unwind.h | 0 src/coreclr/{src => }/jit/unwindamd64.cpp | 0 src/coreclr/{src => }/jit/unwindarm.cpp | 0 src/coreclr/{src => }/jit/unwindarm64.cpp | 0 src/coreclr/{src => }/jit/unwindx86.cpp | 0 src/coreclr/{src => }/jit/utils.cpp | 0 src/coreclr/{src => }/jit/utils.h | 0 src/coreclr/{src => }/jit/valuenum.cpp | 0 src/coreclr/{src => }/jit/valuenum.h | 0 src/coreclr/{src => }/jit/valuenumfuncs.h | 0 src/coreclr/{src => }/jit/valuenumtype.h | 0 src/coreclr/{src => }/jit/varset.h | 0 src/coreclr/{src => }/jit/vartype.h | 0 src/coreclr/{src => }/md/CMakeLists.txt | 0 .../{src => }/md/ceefilegen/CMakeLists.txt | 0 .../{src => }/md/ceefilegen/blobfetcher.cpp | 0 .../{src => }/md/ceefilegen/cceegen.cpp | 0 .../md/ceefilegen/ceegentokenmapper.cpp | 0 .../md/ceefilegen/ceesectionstring.cpp | 0 .../{src => }/md/ceefilegen/pesectionman.cpp | 0 src/coreclr/{src => }/md/ceefilegen/stdafx.h | 0 .../{src => }/md/compiler/CMakeLists.txt | 0 .../{src => }/md/compiler/assemblymd.cpp | 0 .../{src => }/md/compiler/assemblymd_emit.cpp | 0 .../{src => }/md/compiler/classfactory.cpp | 0 .../{src => }/md/compiler/classfactory.h | 0 src/coreclr/{src => }/md/compiler/custattr.h | 0 .../{src => }/md/compiler/custattr_emit.cpp | 0 .../{src => }/md/compiler/custattr_import.cpp | 0 src/coreclr/{src => }/md/compiler/disp.cpp | 0 src/coreclr/{src => }/md/compiler/disp.h | 0 src/coreclr/{src => }/md/compiler/emit.cpp | 0 .../{src => }/md/compiler/filtermanager.cpp | 0 .../{src => }/md/compiler/filtermanager.h | 0 src/coreclr/{src => }/md/compiler/helper.cpp | 0 src/coreclr/{src => }/md/compiler/import.cpp | 0 .../{src => }/md/compiler/importhelper.cpp | 0 .../{src => }/md/compiler/importhelper.h | 0 src/coreclr/{src => }/md/compiler/mdperf.cpp | 0 src/coreclr/{src => }/md/compiler/mdperf.h | 0 src/coreclr/{src => }/md/compiler/mdutil.cpp | 0 src/coreclr/{src => }/md/compiler/mdutil.h | 0 src/coreclr/{src => }/md/compiler/regmeta.cpp | 0 src/coreclr/{src => }/md/compiler/regmeta.h | 0 .../md/compiler/regmeta_compilersupport.cpp | 0 .../{src => }/md/compiler/regmeta_emit.cpp | 0 .../md/compiler/regmeta_imetadatatables.cpp | 0 .../{src => }/md/compiler/regmeta_import.cpp | 0 .../{src => }/md/compiler/regmeta_vm.cpp | 0 src/coreclr/{src => }/md/compiler/stdafx.h | 0 .../{src => }/md/compiler/verifylayouts.cpp | 0 src/coreclr/{src => }/md/compressedinteger.h | 0 .../{src => }/md/compressedinteger.inl | 0 src/coreclr/{src => }/md/datablob.h | 0 src/coreclr/{src => }/md/datablob.inl | 0 src/coreclr/{src => }/md/databuffer.h | 0 src/coreclr/{src => }/md/databuffer.inl | 0 .../{src => }/md/datasource/CMakeLists.txt | 0 src/coreclr/{src => }/md/datasource/api.cpp | 0 .../md/datasource/datatargetreader.cpp | 0 .../md/datasource/datatargetreader.h | 0 .../datasource/remotemdinternalrwsource.cpp | 0 .../md/datasource/remotemdinternalrwsource.h | 0 src/coreclr/{src => }/md/datasource/stdafx.h | 0 .../{src => }/md/datasource/targettypes.cpp | 0 .../{src => }/md/datasource/targettypes.h | 0 src/coreclr/{src => }/md/debug_metadata.h | 0 src/coreclr/{src => }/md/enc/CMakeLists.txt | 0 .../{src => }/md/enc/liteweightstgdbrw.cpp | 0 src/coreclr/{src => }/md/enc/mdinternalrw.cpp | 0 src/coreclr/{src => }/md/enc/metamodelenc.cpp | 0 src/coreclr/{src => }/md/enc/metamodelrw.cpp | 0 src/coreclr/{src => }/md/enc/pdbheap.cpp | 0 src/coreclr/{src => }/md/enc/peparse.cpp | 0 src/coreclr/{src => }/md/enc/rwutil.cpp | 0 src/coreclr/{src => }/md/enc/stdafx.h | 0 src/coreclr/{src => }/md/enc/stgio.cpp | 0 .../{src => }/md/enc/stgtiggerstorage.cpp | 0 .../{src => }/md/enc/stgtiggerstream.cpp | 0 src/coreclr/{src => }/md/errors_metadata.h | 0 src/coreclr/{src => }/md/export.h | 0 src/coreclr/{src => }/md/external.h | 0 src/coreclr/{src => }/md/heaps/blobheap.h | 0 src/coreclr/{src => }/md/heaps/export.h | 0 src/coreclr/{src => }/md/heaps/external.h | 0 src/coreclr/{src => }/md/heaps/guidheap.h | 0 src/coreclr/{src => }/md/heaps/stringheap.h | 0 .../{src => }/md/hotdata/CMakeLists.txt | 0 src/coreclr/{src => }/md/hotdata/export.h | 0 src/coreclr/{src => }/md/hotdata/external.h | 0 src/coreclr/{src => }/md/hotdata/heapindex.h | 0 .../{src => }/md/hotdata/hotdataformat.h | 0 src/coreclr/{src => }/md/hotdata/hotheap.cpp | 0 src/coreclr/{src => }/md/hotdata/hotheap.h | 0 .../md/hotdata/hotheapsdirectoryiterator.cpp | 0 .../md/hotdata/hotheapsdirectoryiterator.h | 0 .../{src => }/md/hotdata/hotheapwriter.cpp | 0 .../{src => }/md/hotdata/hotheapwriter.h | 0 .../{src => }/md/hotdata/hotmetadata.cpp | 0 .../{src => }/md/hotdata/hotmetadata.h | 0 src/coreclr/{src => }/md/hotdata/hottable.cpp | 0 src/coreclr/{src => }/md/hotdata/hottable.h | 0 .../{src => }/md/inc/VerifyLayouts.inc | 0 .../{src => }/md/inc/assemblymdinternaldisp.h | 0 src/coreclr/{src => }/md/inc/cahlprinternal.h | 0 .../{src => }/md/inc/liteweightstgdb.h | 0 .../{src => }/md/inc/mdcolumndescriptors.h | 0 src/coreclr/{src => }/md/inc/mdinternalrw.h | 0 src/coreclr/{src => }/md/inc/mdlog.h | 0 src/coreclr/{src => }/md/inc/metadatahash.h | 0 src/coreclr/{src => }/md/inc/metamodel.h | 0 src/coreclr/{src => }/md/inc/metamodelro.h | 0 src/coreclr/{src => }/md/inc/metamodelrw.h | 0 src/coreclr/{src => }/md/inc/pdbheap.h | 0 .../{src => }/md/inc/portablepdbmdds.h | 0 src/coreclr/{src => }/md/inc/portablepdbmdi.h | 0 src/coreclr/{src => }/md/inc/recordpool.h | 0 src/coreclr/{src => }/md/inc/rwutil.h | 0 src/coreclr/{src => }/md/inc/stgio.h | 0 .../{src => }/md/inc/stgtiggerstorage.h | 0 .../{src => }/md/inc/stgtiggerstream.h | 0 src/coreclr/{src => }/md/inc/streamutil.h | 0 src/coreclr/{src => }/md/inc/verifylayouts.h | 0 .../{src => }/md/runtime/CMakeLists.txt | 0 .../{src => }/md/runtime/liteweightstgdb.cpp | 0 .../md/runtime/mdcolumndescriptors.cpp | 0 .../{src => }/md/runtime/mdfileformat.cpp | 0 .../{src => }/md/runtime/mdinternaldisp.cpp | 0 .../{src => }/md/runtime/mdinternaldisp.h | 0 .../{src => }/md/runtime/mdinternalro.cpp | 0 .../{src => }/md/runtime/mdinternalro.h | 0 .../{src => }/md/runtime/metamodel.cpp | 0 .../md/runtime/metamodelcolumndefs.h | 0 .../{src => }/md/runtime/metamodelro.cpp | 0 .../{src => }/md/runtime/recordpool.cpp | 0 src/coreclr/{src => }/md/runtime/stdafx.h | 0 .../md/runtime/strongnameinternal.cpp | 0 .../{src => }/md/staticmd/CMakeLists.txt | 0 src/coreclr/{src => }/md/staticmd/apis.cpp | 0 src/coreclr/{src => }/md/staticmd/stdafx.h | 0 src/coreclr/{src => }/md/tables/export.h | 0 src/coreclr/{src => }/md/tables/external.h | 0 src/coreclr/{src => }/md/tables/table.h | 0 .../{src => }/nativeresources/CMakeLists.txt | 0 .../{src => }/nativeresources/processrc.awk | 0 .../{src => }/nativeresources/rctocpp.awk | 0 .../{src => }/nativeresources/rctopo.awk | 0 .../nativeresources/resourcestring.cpp | 0 .../nativeresources/resourcestring.h | 0 src/coreclr/{src => }/pal/CMakeLists.txt | 2 +- src/coreclr/{src => }/pal/inc/mbusafecrt.h | 0 src/coreclr/{src => }/pal/inc/pal.h | 0 src/coreclr/{src => }/pal/inc/pal_assert.h | 0 src/coreclr/{src => }/pal/inc/pal_endian.h | 0 src/coreclr/{src => }/pal/inc/pal_error.h | 0 src/coreclr/{src => }/pal/inc/pal_mstypes.h | 0 src/coreclr/{src => }/pal/inc/palprivate.h | 0 src/coreclr/{src => }/pal/inc/rt/aclapi.h | 0 src/coreclr/{src => }/pal/inc/rt/commctrl.h | 0 src/coreclr/{src => }/pal/inc/rt/commdlg.h | 0 src/coreclr/{src => }/pal/inc/rt/conio.h | 0 src/coreclr/{src => }/pal/inc/rt/cpp/assert.h | 0 src/coreclr/{src => }/pal/inc/rt/cpp/cstdlib | 0 src/coreclr/{src => }/pal/inc/rt/cpp/ctype.h | 0 .../{src => }/pal/inc/rt/cpp/emmintrin.h | 0 src/coreclr/{src => }/pal/inc/rt/cpp/fcntl.h | 0 src/coreclr/{src => }/pal/inc/rt/cpp/float.h | 0 src/coreclr/{src => }/pal/inc/rt/cpp/io.h | 0 src/coreclr/{src => }/pal/inc/rt/cpp/limits.h | 0 src/coreclr/{src => }/pal/inc/rt/cpp/malloc.h | 0 src/coreclr/{src => }/pal/inc/rt/cpp/math.h | 0 src/coreclr/{src => }/pal/inc/rt/cpp/memory.h | 0 src/coreclr/{src => }/pal/inc/rt/cpp/stdarg.h | 0 src/coreclr/{src => }/pal/inc/rt/cpp/stddef.h | 0 src/coreclr/{src => }/pal/inc/rt/cpp/stdint.h | 0 src/coreclr/{src => }/pal/inc/rt/cpp/stdio.h | 0 src/coreclr/{src => }/pal/inc/rt/cpp/stdlib.h | 0 src/coreclr/{src => }/pal/inc/rt/cpp/string.h | 0 src/coreclr/{src => }/pal/inc/rt/cpp/time.h | 0 src/coreclr/{src => }/pal/inc/rt/cpp/wchar.h | 0 .../{src => }/pal/inc/rt/cpp/xmmintrin.h | 0 src/coreclr/{src => }/pal/inc/rt/crtdbg.h | 0 src/coreclr/{src => }/pal/inc/rt/dbghelp.h | 0 src/coreclr/{src => }/pal/inc/rt/eh.h | 0 src/coreclr/{src => }/pal/inc/rt/errorrep.h | 0 src/coreclr/{src => }/pal/inc/rt/guiddef.h | 0 src/coreclr/{src => }/pal/inc/rt/htmlhelp.h | 0 src/coreclr/{src => }/pal/inc/rt/imagehlp.h | 0 src/coreclr/{src => }/pal/inc/rt/intrin.h | 0 src/coreclr/{src => }/pal/inc/rt/intsafe.h | 0 src/coreclr/{src => }/pal/inc/rt/new.h | 0 src/coreclr/{src => }/pal/inc/rt/no_sal2.h | 0 src/coreclr/{src => }/pal/inc/rt/ntimage.h | 0 src/coreclr/{src => }/pal/inc/rt/oaidl.h | 0 src/coreclr/{src => }/pal/inc/rt/objbase.h | 0 src/coreclr/{src => }/pal/inc/rt/objidl.h | 0 src/coreclr/{src => }/pal/inc/rt/ocidl.h | 0 src/coreclr/{src => }/pal/inc/rt/ole2.h | 0 src/coreclr/{src => }/pal/inc/rt/oleauto.h | 0 src/coreclr/{src => }/pal/inc/rt/olectl.h | 0 src/coreclr/{src => }/pal/inc/rt/palrt.h | 0 src/coreclr/{src => }/pal/inc/rt/poppack.h | 0 src/coreclr/{src => }/pal/inc/rt/process.h | 0 src/coreclr/{src => }/pal/inc/rt/psapi.h | 0 src/coreclr/{src => }/pal/inc/rt/pshpack1.h | 0 src/coreclr/{src => }/pal/inc/rt/pshpack2.h | 0 src/coreclr/{src => }/pal/inc/rt/pshpack4.h | 0 src/coreclr/{src => }/pal/inc/rt/pshpack8.h | 0 src/coreclr/{src => }/pal/inc/rt/richedit.h | 0 src/coreclr/{src => }/pal/inc/rt/rpc.h | 0 src/coreclr/{src => }/pal/inc/rt/rpcndr.h | 0 src/coreclr/{src => }/pal/inc/rt/safecrt.h | 0 src/coreclr/{src => }/pal/inc/rt/sal.h | 0 src/coreclr/{src => }/pal/inc/rt/servprov.h | 0 src/coreclr/{src => }/pal/inc/rt/share.h | 0 src/coreclr/{src => }/pal/inc/rt/shellapi.h | 0 src/coreclr/{src => }/pal/inc/rt/shlobj.h | 0 src/coreclr/{src => }/pal/inc/rt/shlwapi.h | 0 .../{src => }/pal/inc/rt/specstrings.h | 0 .../{src => }/pal/inc/rt/specstrings_strict.h | 0 .../{src => }/pal/inc/rt/specstrings_undef.h | 0 src/coreclr/{src => }/pal/inc/rt/tchar.h | 0 src/coreclr/{src => }/pal/inc/rt/tlhelp32.h | 0 src/coreclr/{src => }/pal/inc/rt/unknwn.h | 0 src/coreclr/{src => }/pal/inc/rt/urlmon.h | 0 src/coreclr/{src => }/pal/inc/rt/verrsrc.h | 0 .../{src => }/pal/inc/rt/winapifamily.h | 0 src/coreclr/{src => }/pal/inc/rt/winbase.h | 0 src/coreclr/{src => }/pal/inc/rt/wincrypt.h | 0 src/coreclr/{src => }/pal/inc/rt/windef.h | 0 src/coreclr/{src => }/pal/inc/rt/windows.h | 0 src/coreclr/{src => }/pal/inc/rt/winerror.h | 0 src/coreclr/{src => }/pal/inc/rt/wininet.h | 0 src/coreclr/{src => }/pal/inc/rt/winnls.h | 0 src/coreclr/{src => }/pal/inc/rt/winnt.h | 0 src/coreclr/{src => }/pal/inc/rt/winresrc.h | 0 src/coreclr/{src => }/pal/inc/rt/winternl.h | 0 src/coreclr/{src => }/pal/inc/rt/winuser.h | 0 src/coreclr/{src => }/pal/inc/rt/winver.h | 0 src/coreclr/{src => }/pal/inc/rt/wtsapi32.h | 0 src/coreclr/{src => }/pal/inc/strsafe.h | 0 .../{src => }/pal/inc/unixasmmacros.inc | 0 .../{src => }/pal/inc/unixasmmacrosamd64.inc | 0 .../{src => }/pal/inc/unixasmmacrosarm.inc | 0 .../{src => }/pal/inc/unixasmmacrosarm64.inc | 0 .../{src => }/pal/inc/unixasmmacrosx86.inc | 0 .../pal/prebuilt/corerror/makecorerror.bat | 0 .../pal/prebuilt/corerror/mscorurt.rc | 0 .../pal/prebuilt/corerror/readme.txt | 0 .../{src => }/pal/prebuilt/idl/clrdata_i.cpp | 0 .../pal/prebuilt/idl/clrinternal_i.cpp | 0 .../pal/prebuilt/idl/clrprivappxhosting_i.cpp | 0 .../pal/prebuilt/idl/clrprivbinding_i.cpp | 0 .../{src => }/pal/prebuilt/idl/cordebug_i.cpp | 0 .../{src => }/pal/prebuilt/idl/corprof_i.cpp | 0 .../{src => }/pal/prebuilt/idl/corpub_i.cpp | 0 .../{src => }/pal/prebuilt/idl/corsym_i.cpp | 0 .../{src => }/pal/prebuilt/idl/mscorsvc_i.cpp | 0 .../{src => }/pal/prebuilt/idl/sospriv_i.cpp | 0 .../{src => }/pal/prebuilt/idl/xclrdata_i.cpp | 0 .../pal/prebuilt/idl/xcordebug_i.cpp | 0 .../{src => }/pal/prebuilt/inc/CMakeLists.txt | 0 .../{src => }/pal/prebuilt/inc/clrdata.h | 0 .../{src => }/pal/prebuilt/inc/clrinternal.h | 0 .../pal/prebuilt/inc/clrprivbinding.h | 0 .../{src => }/pal/prebuilt/inc/cordebug.h | 0 .../{src => }/pal/prebuilt/inc/corerror.h | 0 .../{src => }/pal/prebuilt/inc/corprof.h | 0 .../{src => }/pal/prebuilt/inc/corpub.h | 0 .../{src => }/pal/prebuilt/inc/corsym.h | 0 .../{src => }/pal/prebuilt/inc/fusion.h | 0 .../{src => }/pal/prebuilt/inc/fxver.h | 0 .../{src => }/pal/prebuilt/inc/fxver.rc | 0 .../{src => }/pal/prebuilt/inc/metahost.h | 0 .../{src => }/pal/prebuilt/inc/mscoree.h | 0 .../{src => }/pal/prebuilt/inc/mscorsvc.h | 0 .../{src => }/pal/prebuilt/inc/readme.txt | 0 .../{src => }/pal/prebuilt/inc/sospriv.h | 0 .../{src => }/pal/prebuilt/inc/xclrdata.h | 0 .../{src => }/pal/prebuilt/inc/xcordebug.h | 0 src/coreclr/{src => }/pal/src/.tpattributes | 0 src/coreclr/{src => }/pal/src/CMakeLists.txt | 0 .../src/arch/amd64/activationhandlerwrapper.S | 0 .../pal/src/arch/amd64/asmconstants.h | 0 .../src/arch/amd64/callsignalhandlerwrapper.S | 0 .../{src => }/pal/src/arch/amd64/context.S | 0 .../{src => }/pal/src/arch/amd64/context2.S | 0 .../{src => }/pal/src/arch/amd64/debugbreak.S | 0 .../src/arch/amd64/dispatchexceptionwrapper.S | 0 .../pal/src/arch/amd64/exceptionhelper.S | 0 .../pal/src/arch/amd64/processor.cpp | 0 .../src/arch/amd64/signalhandlerhelper.cpp | 0 .../{src => }/pal/src/arch/arm/asmconstants.h | 0 .../src/arch/arm/callsignalhandlerwrapper.S | 0 .../{src => }/pal/src/arch/arm/context2.S | 0 .../{src => }/pal/src/arch/arm/debugbreak.S | 0 .../pal/src/arch/arm/exceptionhelper.S | 0 .../{src => }/pal/src/arch/arm/processor.cpp | 0 .../pal/src/arch/arm/signalhandlerhelper.cpp | 0 .../src/arch/arm64/activationhandlerwrapper.S | 0 .../pal/src/arch/arm64/asmconstants.h | 0 .../src/arch/arm64/callsignalhandlerwrapper.S | 0 .../{src => }/pal/src/arch/arm64/context.S | 0 .../{src => }/pal/src/arch/arm64/context2.S | 0 .../{src => }/pal/src/arch/arm64/debugbreak.S | 0 .../src/arch/arm64/dispatchexceptionwrapper.S | 0 .../pal/src/arch/arm64/exceptionhelper.S | 0 .../pal/src/arch/arm64/processor.cpp | 0 .../src/arch/arm64/signalhandlerhelper.cpp | 0 .../pal/src/arch/i386/asmconstants.h | 0 .../src/arch/i386/callsignalhandlerwrapper.S | 0 .../{src => }/pal/src/arch/i386/context2.S | 0 .../{src => }/pal/src/arch/i386/debugbreak.S | 0 .../pal/src/arch/i386/exceptionhelper.S | 0 .../{src => }/pal/src/arch/i386/processor.cpp | 0 .../pal/src/arch/i386/signalhandlerhelper.cpp | 0 .../pal/src/build_tools/mdtool_dummy | 0 .../pal/src/build_tools/mdtool_gcc.in | 0 src/coreclr/{src => }/pal/src/config.h.in | 0 src/coreclr/{src => }/pal/src/configure.cmake | 0 .../{src => }/pal/src/cruntime/file.cpp | 0 .../{src => }/pal/src/cruntime/filecrt.cpp | 0 .../{src => }/pal/src/cruntime/malloc.cpp | 0 .../{src => }/pal/src/cruntime/math.cpp | 0 .../{src => }/pal/src/cruntime/misc.cpp | 0 .../{src => }/pal/src/cruntime/path.cpp | 0 .../{src => }/pal/src/cruntime/printf.cpp | 0 .../{src => }/pal/src/cruntime/printfcpp.cpp | 0 .../pal/src/cruntime/silent_printf.cpp | 0 .../{src => }/pal/src/cruntime/string.cpp | 0 .../{src => }/pal/src/cruntime/stringtls.cpp | 0 .../{src => }/pal/src/cruntime/thread.cpp | 0 .../{src => }/pal/src/cruntime/wchar.cpp | 0 .../{src => }/pal/src/cruntime/wchartls.cpp | 0 src/coreclr/{src => }/pal/src/debug/debug.cpp | 0 .../pal/src/eventprovider/CMakeLists.txt | 0 .../dummyprovider/CMakeLists.txt | 2 +- .../lttngprovider/CMakeLists.txt | 2 +- .../lttngprovider/eventproviderhelpers.cpp | 0 .../src/exception/compact_unwind_encoding.h | 0 .../pal/src/exception/machexception.cpp | 0 .../pal/src/exception/machexception.h | 0 .../pal/src/exception/machmessage.cpp | 0 .../{src => }/pal/src/exception/machmessage.h | 0 .../pal/src/exception/remote-unwind.cpp | 0 .../pal/src/exception/seh-unwind.cpp | 0 .../{src => }/pal/src/exception/seh.cpp | 0 .../{src => }/pal/src/exception/signal.cpp | 0 .../{src => }/pal/src/file/directory.cpp | 0 src/coreclr/{src => }/pal/src/file/file.cpp | 0 .../{src => }/pal/src/file/filetime.cpp | 0 src/coreclr/{src => }/pal/src/file/find.cpp | 0 src/coreclr/{src => }/pal/src/file/path.cpp | 0 .../{src => }/pal/src/handlemgr/handleapi.cpp | 0 .../{src => }/pal/src/handlemgr/handlemgr.cpp | 0 .../{src => }/pal/src/include/pal/cgroup.h | 0 .../{src => }/pal/src/include/pal/context.h | 0 .../{src => }/pal/src/include/pal/corunix.hpp | 0 .../{src => }/pal/src/include/pal/corunix.inl | 0 .../{src => }/pal/src/include/pal/critsect.h | 0 .../{src => }/pal/src/include/pal/cruntime.h | 0 .../{src => }/pal/src/include/pal/cs.hpp | 0 .../{src => }/pal/src/include/pal/dbgmsg.h | 0 .../{src => }/pal/src/include/pal/debug.h | 0 .../{src => }/pal/src/include/pal/environ.h | 0 .../{src => }/pal/src/include/pal/event.hpp | 0 .../{src => }/pal/src/include/pal/fakepoll.h | 0 .../{src => }/pal/src/include/pal/file.h | 0 .../{src => }/pal/src/include/pal/file.hpp | 0 .../{src => }/pal/src/include/pal/filetime.h | 0 .../pal/src/include/pal/handleapi.hpp | 0 .../pal/src/include/pal/handlemgr.hpp | 0 .../{src => }/pal/src/include/pal/init.h | 0 .../{src => }/pal/src/include/pal/list.h | 0 .../{src => }/pal/src/include/pal/malloc.hpp | 0 .../{src => }/pal/src/include/pal/map.h | 0 .../{src => }/pal/src/include/pal/map.hpp | 0 .../{src => }/pal/src/include/pal/misc.h | 0 .../{src => }/pal/src/include/pal/module.h | 0 .../pal/src/include/pal/modulename.h | 0 .../{src => }/pal/src/include/pal/mutex.hpp | 0 .../{src => }/pal/src/include/pal/numa.h | 0 .../pal/src/include/pal/palinternal.h | 0 .../{src => }/pal/src/include/pal/perftrace.h | 0 .../pal/src/include/pal/printfcpp.hpp | 0 .../{src => }/pal/src/include/pal/process.h | 0 .../{src => }/pal/src/include/pal/procobj.hpp | 0 .../{src => }/pal/src/include/pal/seh.hpp | 0 .../pal/src/include/pal/semaphore.hpp | 0 .../pal/src/include/pal/sharedmemory.h | 0 .../pal/src/include/pal/sharedmemory.inl | 0 .../{src => }/pal/src/include/pal/shm.hpp | 0 .../{src => }/pal/src/include/pal/shmemory.h | 0 .../{src => }/pal/src/include/pal/signal.hpp | 0 .../pal/src/include/pal/stackstring.hpp | 0 .../pal/src/include/pal/synchcache.hpp | 0 .../pal/src/include/pal/synchobjects.hpp | 0 .../{src => }/pal/src/include/pal/thread.hpp | 0 .../pal/src/include/pal/threadinfo.hpp | 0 .../pal/src/include/pal/threadsusp.hpp | 0 .../pal/src/include/pal/unicodedata.h | 0 .../{src => }/pal/src/include/pal/utf8.h | 0 .../{src => }/pal/src/include/pal/utils.h | 0 .../{src => }/pal/src/include/pal/virtual.h | 0 src/coreclr/{src => }/pal/src/init/pal.cpp | 0 src/coreclr/{src => }/pal/src/init/sxs.cpp | 0 .../{src => }/pal/src/libunwind/.gitignore | 0 .../{src => }/pal/src/libunwind/.travis.yml | 0 .../{src => }/pal/src/libunwind/AUTHORS | 0 .../pal/src/libunwind/CMakeLists.txt | 0 .../{src => }/pal/src/libunwind/COPYING | 0 .../{src => }/pal/src/libunwind/ChangeLog | 0 .../{src => }/pal/src/libunwind/LICENSE | 0 .../{src => }/pal/src/libunwind/Makefile.am | 0 src/coreclr/{src => }/pal/src/libunwind/NEWS | 0 .../{src => }/pal/src/libunwind/README | 0 .../{src => }/pal/src/libunwind/README.md | 0 src/coreclr/{src => }/pal/src/libunwind/TODO | 0 .../{src => }/pal/src/libunwind/acinclude.m4 | 0 .../{src => }/pal/src/libunwind/autogen.sh | 0 .../{src => }/pal/src/libunwind/config.h.in | 0 .../{src => }/pal/src/libunwind/configure.ac | 0 .../pal/src/libunwind/configure.cmake | 0 .../pal/src/libunwind/doc/Makefile.am | 0 .../{src => }/pal/src/libunwind/doc/NOTES | 0 .../pal/src/libunwind/doc/_U_dyn_cancel.man | 0 .../pal/src/libunwind/doc/_U_dyn_cancel.tex | 0 .../pal/src/libunwind/doc/_U_dyn_register.man | 0 .../pal/src/libunwind/doc/_U_dyn_register.tex | 0 .../pal/src/libunwind/doc/common.tex.in | 0 .../src/libunwind/doc/libunwind-dynamic.man | 0 .../src/libunwind/doc/libunwind-dynamic.tex | 0 .../pal/src/libunwind/doc/libunwind-ia64.man | 0 .../pal/src/libunwind/doc/libunwind-ia64.tex | 0 .../src/libunwind/doc/libunwind-ptrace.man | 0 .../src/libunwind/doc/libunwind-ptrace.tex | 0 .../src/libunwind/doc/libunwind-setjmp.man | 0 .../src/libunwind/doc/libunwind-setjmp.tex | 0 .../pal/src/libunwind/doc/libunwind.man | 0 .../pal/src/libunwind/doc/libunwind.tex | 0 .../pal/src/libunwind/doc/libunwind.trans | 0 .../src/libunwind/doc/unw_apply_reg_state.man | 0 .../src/libunwind/doc/unw_apply_reg_state.tex | 0 .../pal/src/libunwind/doc/unw_backtrace.man | 0 .../pal/src/libunwind/doc/unw_backtrace.tex | 0 .../libunwind/doc/unw_create_addr_space.man | 0 .../libunwind/doc/unw_create_addr_space.tex | 0 .../libunwind/doc/unw_destroy_addr_space.man | 0 .../libunwind/doc/unw_destroy_addr_space.tex | 0 .../pal/src/libunwind/doc/unw_flush_cache.man | 0 .../pal/src/libunwind/doc/unw_flush_cache.tex | 0 .../src/libunwind/doc/unw_get_accessors.man | 0 .../src/libunwind/doc/unw_get_accessors.tex | 0 .../pal/src/libunwind/doc/unw_get_fpreg.man | 0 .../pal/src/libunwind/doc/unw_get_fpreg.tex | 0 .../src/libunwind/doc/unw_get_proc_info.man | 0 .../src/libunwind/doc/unw_get_proc_info.tex | 0 .../libunwind/doc/unw_get_proc_info_by_ip.man | 0 .../libunwind/doc/unw_get_proc_info_by_ip.tex | 0 .../src/libunwind/doc/unw_get_proc_name.man | 0 .../src/libunwind/doc/unw_get_proc_name.tex | 0 .../pal/src/libunwind/doc/unw_get_reg.man | 0 .../pal/src/libunwind/doc/unw_get_reg.tex | 0 .../pal/src/libunwind/doc/unw_getcontext.man | 0 .../pal/src/libunwind/doc/unw_getcontext.tex | 0 .../pal/src/libunwind/doc/unw_init_local.man | 0 .../pal/src/libunwind/doc/unw_init_local.tex | 0 .../pal/src/libunwind/doc/unw_init_local2.man | 0 .../pal/src/libunwind/doc/unw_init_remote.man | 0 .../pal/src/libunwind/doc/unw_init_remote.tex | 0 .../pal/src/libunwind/doc/unw_is_fpreg.man | 0 .../pal/src/libunwind/doc/unw_is_fpreg.tex | 0 .../src/libunwind/doc/unw_is_signal_frame.man | 0 .../src/libunwind/doc/unw_is_signal_frame.tex | 0 .../libunwind/doc/unw_reg_states_iterate.man | 0 .../libunwind/doc/unw_reg_states_iterate.tex | 0 .../pal/src/libunwind/doc/unw_regname.man | 0 .../pal/src/libunwind/doc/unw_regname.tex | 0 .../pal/src/libunwind/doc/unw_resume.man | 0 .../pal/src/libunwind/doc/unw_resume.tex | 0 .../src/libunwind/doc/unw_set_cache_size.man | 0 .../src/libunwind/doc/unw_set_cache_size.tex | 0 .../libunwind/doc/unw_set_caching_policy.man | 0 .../libunwind/doc/unw_set_caching_policy.tex | 0 .../pal/src/libunwind/doc/unw_set_fpreg.man | 0 .../pal/src/libunwind/doc/unw_set_fpreg.tex | 0 .../pal/src/libunwind/doc/unw_set_reg.man | 0 .../pal/src/libunwind/doc/unw_set_reg.tex | 0 .../pal/src/libunwind/doc/unw_step.man | 0 .../pal/src/libunwind/doc/unw_step.tex | 0 .../pal/src/libunwind/doc/unw_strerror.man | 0 .../pal/src/libunwind/doc/unw_strerror.tex | 0 .../pal/src/libunwind/include/compiler.h | 0 .../src/libunwind/include/config.h.cmake.in | 0 .../pal/src/libunwind/include/dwarf-eh.h | 0 .../pal/src/libunwind/include/dwarf.h | 0 .../pal/src/libunwind/include/dwarf_i.h | 0 .../src/libunwind/include/libunwind-aarch64.h | 0 .../pal/src/libunwind/include/libunwind-arm.h | 0 .../libunwind/include/libunwind-common.h.in | 0 .../libunwind/include/libunwind-coredump.h | 0 .../src/libunwind/include/libunwind-dynamic.h | 0 .../src/libunwind/include/libunwind-hppa.h | 0 .../src/libunwind/include/libunwind-ia64.h | 0 .../src/libunwind/include/libunwind-mips.h | 0 .../src/libunwind/include/libunwind-ppc32.h | 0 .../src/libunwind/include/libunwind-ppc64.h | 0 .../src/libunwind/include/libunwind-ptrace.h | 0 .../src/libunwind/include/libunwind-s390x.h | 0 .../pal/src/libunwind/include/libunwind-sh.h | 0 .../src/libunwind/include/libunwind-tilegx.h | 0 .../pal/src/libunwind/include/libunwind-x86.h | 0 .../src/libunwind/include/libunwind-x86_64.h | 0 .../pal/src/libunwind/include/libunwind.h.in | 0 .../pal/src/libunwind/include/libunwind_i.h | 0 .../pal/src/libunwind/include/mempool.h | 0 .../pal/src/libunwind/include/remote.h | 0 .../include/tdep-aarch64/dwarf-config.h | 0 .../libunwind/include/tdep-aarch64/jmpbuf.h | 0 .../include/tdep-aarch64/libunwind_i.h | 0 .../libunwind/include/tdep-arm/dwarf-config.h | 0 .../libunwind/include/tdep-arm/ex_tables.h | 0 .../src/libunwind/include/tdep-arm/jmpbuf.h | 0 .../libunwind/include/tdep-arm/libunwind_i.h | 0 .../include/tdep-hppa/dwarf-config.h | 0 .../src/libunwind/include/tdep-hppa/jmpbuf.h | 0 .../libunwind/include/tdep-hppa/libunwind_i.h | 0 .../src/libunwind/include/tdep-ia64/jmpbuf.h | 0 .../libunwind/include/tdep-ia64/libunwind_i.h | 0 .../pal/src/libunwind/include/tdep-ia64/rse.h | 0 .../src/libunwind/include/tdep-ia64/script.h | 0 .../include/tdep-mips/dwarf-config.h | 0 .../src/libunwind/include/tdep-mips/jmpbuf.h | 0 .../libunwind/include/tdep-mips/libunwind_i.h | 0 .../include/tdep-ppc32/dwarf-config.h | 0 .../src/libunwind/include/tdep-ppc32/jmpbuf.h | 0 .../include/tdep-ppc32/libunwind_i.h | 0 .../include/tdep-ppc64/dwarf-config.h | 0 .../src/libunwind/include/tdep-ppc64/jmpbuf.h | 0 .../include/tdep-ppc64/libunwind_i.h | 0 .../include/tdep-s390x/dwarf-config.h | 0 .../src/libunwind/include/tdep-s390x/jmpbuf.h | 0 .../include/tdep-s390x/libunwind_i.h | 0 .../libunwind/include/tdep-sh/dwarf-config.h | 0 .../src/libunwind/include/tdep-sh/jmpbuf.h | 0 .../libunwind/include/tdep-sh/libunwind_i.h | 0 .../include/tdep-tilegx/dwarf-config.h | 0 .../libunwind/include/tdep-tilegx/jmpbuf.h | 0 .../include/tdep-tilegx/libunwind_i.h | 0 .../libunwind/include/tdep-x86/dwarf-config.h | 0 .../src/libunwind/include/tdep-x86/jmpbuf.h | 0 .../libunwind/include/tdep-x86/libunwind_i.h | 0 .../include/tdep-x86_64/dwarf-config.h | 0 .../libunwind/include/tdep-x86_64/jmpbuf.h | 0 .../include/tdep-x86_64/libunwind_i.h | 0 .../src/libunwind/include/tdep/dwarf-config.h | 0 .../pal/src/libunwind/include/tdep/jmpbuf.h | 0 .../libunwind/include/tdep/libunwind_i.h.in | 0 .../pal/src/libunwind/include/unwind.h | 0 .../pal/src/libunwind/include/win/elf.h | 0 .../pal/src/libunwind/include/win/endian.h | 0 .../libunwind/include/win/fakestdalign.h.in | 0 .../libunwind/include/win/fakestdatomic.h.in | 0 .../src/libunwind/include/win/freebsd-elf32.h | 0 .../src/libunwind/include/win/freebsd-elf64.h | 0 .../include/win/freebsd-elf_common.h | 0 .../pal/src/libunwind/include/win/pthread.h | 0 .../pal/src/libunwind/include/win/signal.h | 0 .../pal/src/libunwind/include/win/sys/mman.h | 0 .../src/libunwind/include/win/sys/syscall.h | 0 .../pal/src/libunwind/include/win/sys/types.h | 0 .../src/libunwind/include/win/sys/ucontext.h | 0 .../pal/src/libunwind/include/win/ucontext.h | 0 .../pal/src/libunwind/include/win/unistd.h | 0 .../pal/src/libunwind/include/x86/jmpbuf.h | 0 .../pal/src/libunwind/libunwind-version.txt | 0 .../pal/src/libunwind/scripts/kernel-diff.sh | 0 .../src/libunwind/scripts/kernel-files.txt | 0 .../pal/src/libunwind/scripts/make-L-files | 0 .../pal/src/libunwind/src/CMakeLists.txt | 2 +- .../pal/src/libunwind/src/Makefile.am | 0 .../libunwind/src/aarch64/Gapply_reg_state.c | 0 .../src/aarch64/Gcreate_addr_space.c | 0 .../libunwind/src/aarch64/Gget_proc_info.c | 0 .../src/libunwind/src/aarch64/Gget_save_loc.c | 0 .../pal/src/libunwind/src/aarch64/Gglobal.c | 0 .../pal/src/libunwind/src/aarch64/Ginit.c | 0 .../src/libunwind/src/aarch64/Ginit_local.c | 0 .../src/libunwind/src/aarch64/Ginit_remote.c | 0 .../libunwind/src/aarch64/Gis_signal_frame.c | 0 .../src/aarch64/Greg_states_iterate.c | 0 .../pal/src/libunwind/src/aarch64/Gregs.c | 0 .../pal/src/libunwind/src/aarch64/Gresume.c | 0 .../src/libunwind/src/aarch64/Gstash_frame.c | 0 .../pal/src/libunwind/src/aarch64/Gstep.c | 0 .../pal/src/libunwind/src/aarch64/Gtrace.c | 0 .../libunwind/src/aarch64/Lapply_reg_state.c | 0 .../src/aarch64/Lcreate_addr_space.c | 0 .../libunwind/src/aarch64/Lget_proc_info.c | 0 .../src/libunwind/src/aarch64/Lget_save_loc.c | 0 .../pal/src/libunwind/src/aarch64/Lglobal.c | 0 .../pal/src/libunwind/src/aarch64/Linit.c | 0 .../src/libunwind/src/aarch64/Linit_local.c | 0 .../src/libunwind/src/aarch64/Linit_remote.c | 0 .../libunwind/src/aarch64/Lis_signal_frame.c | 0 .../src/aarch64/Lreg_states_iterate.c | 0 .../pal/src/libunwind/src/aarch64/Lregs.c | 0 .../pal/src/libunwind/src/aarch64/Lresume.c | 0 .../src/libunwind/src/aarch64/Lstash_frame.c | 0 .../pal/src/libunwind/src/aarch64/Lstep.c | 0 .../pal/src/libunwind/src/aarch64/Ltrace.c | 0 .../src/libunwind/src/aarch64/gen-offsets.c | 0 .../src/libunwind/src/aarch64/getcontext.S | 0 .../pal/src/libunwind/src/aarch64/init.h | 0 .../pal/src/libunwind/src/aarch64/is_fpreg.c | 0 .../pal/src/libunwind/src/aarch64/offsets.h | 0 .../pal/src/libunwind/src/aarch64/regname.c | 0 .../src/libunwind/src/aarch64/siglongjmp.S | 0 .../pal/src/libunwind/src/aarch64/unwind_i.h | 0 .../src/libunwind/src/arm/Gapply_reg_state.c | 0 .../libunwind/src/arm/Gcreate_addr_space.c | 0 .../pal/src/libunwind/src/arm/Gex_tables.c | 0 .../src/libunwind/src/arm/Gget_proc_info.c | 0 .../pal/src/libunwind/src/arm/Gget_save_loc.c | 0 .../pal/src/libunwind/src/arm/Gglobal.c | 0 .../pal/src/libunwind/src/arm/Ginit.c | 0 .../pal/src/libunwind/src/arm/Ginit_local.c | 0 .../pal/src/libunwind/src/arm/Ginit_remote.c | 0 .../pal/src/libunwind/src/arm/Gos-freebsd.c | 0 .../pal/src/libunwind/src/arm/Gos-linux.c | 0 .../pal/src/libunwind/src/arm/Gos-other.c | 0 .../libunwind/src/arm/Greg_states_iterate.c | 0 .../pal/src/libunwind/src/arm/Gregs.c | 0 .../pal/src/libunwind/src/arm/Gresume.c | 0 .../pal/src/libunwind/src/arm/Gstash_frame.c | 0 .../pal/src/libunwind/src/arm/Gstep.c | 0 .../pal/src/libunwind/src/arm/Gtrace.c | 0 .../src/libunwind/src/arm/Lapply_reg_state.c | 0 .../libunwind/src/arm/Lcreate_addr_space.c | 0 .../pal/src/libunwind/src/arm/Lex_tables.c | 0 .../src/libunwind/src/arm/Lget_proc_info.c | 0 .../pal/src/libunwind/src/arm/Lget_save_loc.c | 0 .../pal/src/libunwind/src/arm/Lglobal.c | 0 .../pal/src/libunwind/src/arm/Linit.c | 0 .../pal/src/libunwind/src/arm/Linit_local.c | 0 .../pal/src/libunwind/src/arm/Linit_remote.c | 0 .../src/libunwind/src/arm/Lis_signal_frame.c | 0 .../pal/src/libunwind/src/arm/Los-freebsd.c | 0 .../pal/src/libunwind/src/arm/Los-linux.c | 0 .../pal/src/libunwind/src/arm/Los-other.c | 0 .../libunwind/src/arm/Lreg_states_iterate.c | 0 .../pal/src/libunwind/src/arm/Lregs.c | 0 .../pal/src/libunwind/src/arm/Lresume.c | 0 .../pal/src/libunwind/src/arm/Lstash_frame.c | 0 .../pal/src/libunwind/src/arm/Lstep.c | 0 .../pal/src/libunwind/src/arm/Ltrace.c | 0 .../pal/src/libunwind/src/arm/gen-offsets.c | 0 .../pal/src/libunwind/src/arm/getcontext.S | 0 .../pal/src/libunwind/src/arm/init.h | 0 .../pal/src/libunwind/src/arm/is_fpreg.c | 0 .../pal/src/libunwind/src/arm/offsets.h | 0 .../pal/src/libunwind/src/arm/regname.c | 0 .../pal/src/libunwind/src/arm/siglongjmp.S | 0 .../pal/src/libunwind/src/arm/unwind_i.h | 0 .../pal/src/libunwind/src/coredump/README | 0 .../libunwind/src/coredump/_UCD_access_mem.c | 0 .../src/coredump/_UCD_access_reg_freebsd.c | 0 .../src/coredump/_UCD_access_reg_linux.c | 0 .../libunwind/src/coredump/_UCD_accessors.c | 0 .../src/libunwind/src/coredump/_UCD_create.c | 0 .../src/libunwind/src/coredump/_UCD_destroy.c | 0 .../src/coredump/_UCD_elf_map_image.c | 0 .../src/coredump/_UCD_find_proc_info.c | 0 .../src/coredump/_UCD_get_proc_name.c | 0 .../libunwind/src/coredump/_UCD_internal.h | 0 .../pal/src/libunwind/src/coredump/_UCD_lib.h | 0 .../src/coredump/_UPT_access_fpreg.c | 0 .../pal/src/libunwind/src/coredump/_UPT_elf.c | 0 .../coredump/_UPT_get_dyn_info_list_addr.c | 0 .../src/coredump/_UPT_put_unwind_info.c | 0 .../src/libunwind/src/coredump/_UPT_resume.c | 0 .../src/coredump/libunwind-coredump.pc.in | 0 .../pal/src/libunwind/src/dwarf/Gexpr.c | 0 .../pal/src/libunwind/src/dwarf/Gfde.c | 0 .../libunwind/src/dwarf/Gfind_proc_info-lsb.c | 0 .../libunwind/src/dwarf/Gfind_unwind_table.c | 0 .../pal/src/libunwind/src/dwarf/Gparser.c | 0 .../pal/src/libunwind/src/dwarf/Gpe.c | 0 .../pal/src/libunwind/src/dwarf/Lexpr.c | 0 .../pal/src/libunwind/src/dwarf/Lfde.c | 0 .../libunwind/src/dwarf/Lfind_proc_info-lsb.c | 0 .../libunwind/src/dwarf/Lfind_unwind_table.c | 0 .../pal/src/libunwind/src/dwarf/Lparser.c | 0 .../pal/src/libunwind/src/dwarf/Lpe.c | 0 .../pal/src/libunwind/src/dwarf/global.c | 0 .../{src => }/pal/src/libunwind/src/elf32.c | 0 .../{src => }/pal/src/libunwind/src/elf32.h | 0 .../{src => }/pal/src/libunwind/src/elf64.c | 0 .../{src => }/pal/src/libunwind/src/elf64.h | 0 .../{src => }/pal/src/libunwind/src/elfxx.c | 0 .../{src => }/pal/src/libunwind/src/elfxx.h | 0 .../src/libunwind/src/hppa/Gapply_reg_state.c | 0 .../libunwind/src/hppa/Gcreate_addr_space.c | 0 .../src/libunwind/src/hppa/Gget_proc_info.c | 0 .../src/libunwind/src/hppa/Gget_save_loc.c | 0 .../pal/src/libunwind/src/hppa/Gglobal.c | 0 .../pal/src/libunwind/src/hppa/Ginit.c | 0 .../pal/src/libunwind/src/hppa/Ginit_local.c | 0 .../pal/src/libunwind/src/hppa/Ginit_remote.c | 0 .../src/libunwind/src/hppa/Gis_signal_frame.c | 0 .../libunwind/src/hppa/Greg_states_iterate.c | 0 .../pal/src/libunwind/src/hppa/Gregs.c | 0 .../pal/src/libunwind/src/hppa/Gresume.c | 0 .../pal/src/libunwind/src/hppa/Gstep.c | 0 .../src/libunwind/src/hppa/Lapply_reg_state.c | 0 .../libunwind/src/hppa/Lcreate_addr_space.c | 0 .../src/libunwind/src/hppa/Lget_proc_info.c | 0 .../src/libunwind/src/hppa/Lget_save_loc.c | 0 .../pal/src/libunwind/src/hppa/Lglobal.c | 0 .../pal/src/libunwind/src/hppa/Linit.c | 0 .../pal/src/libunwind/src/hppa/Linit_local.c | 0 .../pal/src/libunwind/src/hppa/Linit_remote.c | 0 .../src/libunwind/src/hppa/Lis_signal_frame.c | 0 .../libunwind/src/hppa/Lreg_states_iterate.c | 0 .../pal/src/libunwind/src/hppa/Lregs.c | 0 .../pal/src/libunwind/src/hppa/Lresume.c | 0 .../pal/src/libunwind/src/hppa/Lstep.c | 0 .../src/libunwind/src/hppa/get_accessors.c | 0 .../pal/src/libunwind/src/hppa/getcontext.S | 0 .../pal/src/libunwind/src/hppa/init.h | 0 .../pal/src/libunwind/src/hppa/offsets.h | 0 .../pal/src/libunwind/src/hppa/regname.c | 0 .../pal/src/libunwind/src/hppa/setcontext.S | 0 .../pal/src/libunwind/src/hppa/siglongjmp.S | 0 .../pal/src/libunwind/src/hppa/tables.c | 0 .../pal/src/libunwind/src/hppa/unwind_i.h | 0 .../src/libunwind/src/ia64/Gapply_reg_state.c | 0 .../libunwind/src/ia64/Gcreate_addr_space.c | 0 .../libunwind/src/ia64/Gfind_unwind_table.c | 0 .../src/libunwind/src/ia64/Gget_proc_info.c | 0 .../src/libunwind/src/ia64/Gget_save_loc.c | 0 .../pal/src/libunwind/src/ia64/Gglobal.c | 0 .../pal/src/libunwind/src/ia64/Ginit.c | 0 .../pal/src/libunwind/src/ia64/Ginit_local.c | 0 .../pal/src/libunwind/src/ia64/Ginit_remote.c | 0 .../src/libunwind/src/ia64/Ginstall_cursor.S | 0 .../src/libunwind/src/ia64/Gis_signal_frame.c | 0 .../pal/src/libunwind/src/ia64/Gparser.c | 0 .../pal/src/libunwind/src/ia64/Grbs.c | 0 .../libunwind/src/ia64/Greg_states_iterate.c | 0 .../pal/src/libunwind/src/ia64/Gregs.c | 0 .../pal/src/libunwind/src/ia64/Gresume.c | 0 .../pal/src/libunwind/src/ia64/Gscript.c | 0 .../pal/src/libunwind/src/ia64/Gstep.c | 0 .../pal/src/libunwind/src/ia64/Gtables.c | 0 .../src/libunwind/src/ia64/Lapply_reg_state.c | 0 .../libunwind/src/ia64/Lcreate_addr_space.c | 0 .../libunwind/src/ia64/Lfind_unwind_table.c | 0 .../src/libunwind/src/ia64/Lget_proc_info.c | 0 .../src/libunwind/src/ia64/Lget_save_loc.c | 0 .../pal/src/libunwind/src/ia64/Lglobal.c | 0 .../pal/src/libunwind/src/ia64/Linit.c | 0 .../pal/src/libunwind/src/ia64/Linit_local.c | 0 .../pal/src/libunwind/src/ia64/Linit_remote.c | 0 .../src/libunwind/src/ia64/Linstall_cursor.S | 0 .../src/libunwind/src/ia64/Lis_signal_frame.c | 0 .../pal/src/libunwind/src/ia64/Lparser.c | 0 .../pal/src/libunwind/src/ia64/Lrbs.c | 0 .../libunwind/src/ia64/Lreg_states_iterate.c | 0 .../pal/src/libunwind/src/ia64/Lregs.c | 0 .../pal/src/libunwind/src/ia64/Lresume.c | 0 .../pal/src/libunwind/src/ia64/Lscript.c | 0 .../pal/src/libunwind/src/ia64/Lstep.c | 0 .../pal/src/libunwind/src/ia64/Ltables.c | 0 .../pal/src/libunwind/src/ia64/NOTES | 0 .../src/libunwind/src/ia64/dyn_info_list.S | 0 .../pal/src/libunwind/src/ia64/getcontext.S | 0 .../pal/src/libunwind/src/ia64/init.h | 0 .../pal/src/libunwind/src/ia64/longjmp.S | 0 .../pal/src/libunwind/src/ia64/mk_cursor_i | 0 .../pal/src/libunwind/src/ia64/offsets.h | 0 .../pal/src/libunwind/src/ia64/regname.c | 0 .../pal/src/libunwind/src/ia64/regs.h | 0 .../pal/src/libunwind/src/ia64/setjmp.S | 0 .../pal/src/libunwind/src/ia64/siglongjmp.S | 0 .../pal/src/libunwind/src/ia64/sigsetjmp.S | 0 .../pal/src/libunwind/src/ia64/ucontext_i.h | 0 .../src/libunwind/src/ia64/unwind_decoder.h | 0 .../pal/src/libunwind/src/ia64/unwind_i.h | 0 .../src/libunwind/src/libunwind-generic.pc.in | 0 .../libunwind/src/mi/Gdestroy_addr_space.c | 0 .../pal/src/libunwind/src/mi/Gdyn-extract.c | 0 .../pal/src/libunwind/src/mi/Gdyn-remote.c | 0 .../src/mi/Gfind_dynamic_proc_info.c | 0 .../pal/src/libunwind/src/mi/Gget_accessors.c | 0 .../pal/src/libunwind/src/mi/Gget_fpreg.c | 0 .../libunwind/src/mi/Gget_proc_info_by_ip.c | 0 .../pal/src/libunwind/src/mi/Gget_proc_name.c | 0 .../pal/src/libunwind/src/mi/Gget_reg.c | 0 .../src/mi/Gput_dynamic_unwind_info.c | 0 .../src/libunwind/src/mi/Gset_cache_size.c | 0 .../libunwind/src/mi/Gset_caching_policy.c | 0 .../pal/src/libunwind/src/mi/Gset_fpreg.c | 0 .../pal/src/libunwind/src/mi/Gset_reg.c | 0 .../libunwind/src/mi/Ldestroy_addr_space.c | 0 .../pal/src/libunwind/src/mi/Ldyn-extract.c | 0 .../pal/src/libunwind/src/mi/Ldyn-remote.c | 0 .../src/mi/Lfind_dynamic_proc_info.c | 0 .../pal/src/libunwind/src/mi/Lget_accessors.c | 0 .../pal/src/libunwind/src/mi/Lget_fpreg.c | 0 .../libunwind/src/mi/Lget_proc_info_by_ip.c | 0 .../pal/src/libunwind/src/mi/Lget_proc_name.c | 0 .../pal/src/libunwind/src/mi/Lget_reg.c | 0 .../src/mi/Lput_dynamic_unwind_info.c | 0 .../src/libunwind/src/mi/Lset_cache_size.c | 0 .../libunwind/src/mi/Lset_caching_policy.c | 0 .../pal/src/libunwind/src/mi/Lset_fpreg.c | 0 .../pal/src/libunwind/src/mi/Lset_reg.c | 0 .../pal/src/libunwind/src/mi/_ReadSLEB.c | 0 .../pal/src/libunwind/src/mi/_ReadULEB.c | 0 .../pal/src/libunwind/src/mi/backtrace.c | 0 .../pal/src/libunwind/src/mi/dyn-cancel.c | 0 .../pal/src/libunwind/src/mi/dyn-info-list.c | 0 .../pal/src/libunwind/src/mi/dyn-register.c | 0 .../pal/src/libunwind/src/mi/flush_cache.c | 0 .../{src => }/pal/src/libunwind/src/mi/init.c | 0 .../pal/src/libunwind/src/mi/mempool.c | 0 .../pal/src/libunwind/src/mi/strerror.c | 0 .../src/libunwind/src/mips/Gapply_reg_state.c | 0 .../libunwind/src/mips/Gcreate_addr_space.c | 0 .../src/libunwind/src/mips/Gget_proc_info.c | 0 .../src/libunwind/src/mips/Gget_save_loc.c | 0 .../pal/src/libunwind/src/mips/Gglobal.c | 0 .../pal/src/libunwind/src/mips/Ginit.c | 0 .../pal/src/libunwind/src/mips/Ginit_local.c | 0 .../pal/src/libunwind/src/mips/Ginit_remote.c | 0 .../src/libunwind/src/mips/Gis_signal_frame.c | 0 .../libunwind/src/mips/Greg_states_iterate.c | 0 .../pal/src/libunwind/src/mips/Gregs.c | 0 .../pal/src/libunwind/src/mips/Gresume.c | 0 .../pal/src/libunwind/src/mips/Gstep.c | 0 .../src/libunwind/src/mips/Lapply_reg_state.c | 0 .../libunwind/src/mips/Lcreate_addr_space.c | 0 .../src/libunwind/src/mips/Lget_proc_info.c | 0 .../src/libunwind/src/mips/Lget_save_loc.c | 0 .../pal/src/libunwind/src/mips/Lglobal.c | 0 .../pal/src/libunwind/src/mips/Linit.c | 0 .../pal/src/libunwind/src/mips/Linit_local.c | 0 .../pal/src/libunwind/src/mips/Linit_remote.c | 0 .../src/libunwind/src/mips/Lis_signal_frame.c | 0 .../libunwind/src/mips/Lreg_states_iterate.c | 0 .../pal/src/libunwind/src/mips/Lregs.c | 0 .../pal/src/libunwind/src/mips/Lresume.c | 0 .../pal/src/libunwind/src/mips/Lstep.c | 0 .../pal/src/libunwind/src/mips/elfxx.c | 0 .../pal/src/libunwind/src/mips/gen-offsets.c | 0 .../pal/src/libunwind/src/mips/getcontext.S | 0 .../pal/src/libunwind/src/mips/init.h | 0 .../pal/src/libunwind/src/mips/is_fpreg.c | 0 .../pal/src/libunwind/src/mips/offsets.h | 0 .../pal/src/libunwind/src/mips/regname.c | 0 .../pal/src/libunwind/src/mips/siglongjmp.S | 0 .../pal/src/libunwind/src/mips/unwind_i.h | 0 .../libunwind/src/oop/_OOP_find_proc_info.c | 0 .../pal/src/libunwind/src/oop/_OOP_internal.h | 0 .../pal/src/libunwind/src/os-freebsd.c | 0 .../{src => }/pal/src/libunwind/src/os-hpux.c | 0 .../pal/src/libunwind/src/os-linux.c | 0 .../pal/src/libunwind/src/os-linux.h | 0 .../{src => }/pal/src/libunwind/src/os-qnx.c | 0 .../pal/src/libunwind/src/os-solaris.c | 0 .../src/libunwind/src/ppc/Gapply_reg_state.c | 0 .../src/libunwind/src/ppc/Gget_proc_info.c | 0 .../pal/src/libunwind/src/ppc/Gget_save_loc.c | 0 .../pal/src/libunwind/src/ppc/Ginit_local.c | 0 .../pal/src/libunwind/src/ppc/Ginit_remote.c | 0 .../src/libunwind/src/ppc/Gis_signal_frame.c | 0 .../libunwind/src/ppc/Greg_states_iterate.c | 0 .../src/libunwind/src/ppc/Lapply_reg_state.c | 0 .../src/libunwind/src/ppc/Lget_proc_info.c | 0 .../pal/src/libunwind/src/ppc/Lget_save_loc.c | 0 .../pal/src/libunwind/src/ppc/Linit_local.c | 0 .../pal/src/libunwind/src/ppc/Linit_remote.c | 0 .../src/libunwind/src/ppc/Lis_signal_frame.c | 0 .../libunwind/src/ppc/Lreg_states_iterate.c | 0 .../pal/src/libunwind/src/ppc/longjmp.S | 0 .../pal/src/libunwind/src/ppc/siglongjmp.S | 0 .../libunwind/src/ppc32/Gapply_reg_state.c | 0 .../libunwind/src/ppc32/Gcreate_addr_space.c | 0 .../pal/src/libunwind/src/ppc32/Gglobal.c | 0 .../pal/src/libunwind/src/ppc32/Ginit.c | 0 .../libunwind/src/ppc32/Greg_states_iterate.c | 0 .../pal/src/libunwind/src/ppc32/Gregs.c | 0 .../pal/src/libunwind/src/ppc32/Gresume.c | 0 .../pal/src/libunwind/src/ppc32/Gstep.c | 0 .../libunwind/src/ppc32/Lapply_reg_state.c | 0 .../libunwind/src/ppc32/Lcreate_addr_space.c | 0 .../pal/src/libunwind/src/ppc32/Lglobal.c | 0 .../pal/src/libunwind/src/ppc32/Linit.c | 0 .../libunwind/src/ppc32/Lreg_states_iterate.c | 0 .../pal/src/libunwind/src/ppc32/Lregs.c | 0 .../pal/src/libunwind/src/ppc32/Lresume.c | 0 .../pal/src/libunwind/src/ppc32/Lstep.c | 0 .../pal/src/libunwind/src/ppc32/Make-arch.in | 0 .../src/libunwind/src/ppc32/get_func_addr.c | 0 .../pal/src/libunwind/src/ppc32/init.h | 0 .../pal/src/libunwind/src/ppc32/is_fpreg.c | 0 .../pal/src/libunwind/src/ppc32/regname.c | 0 .../pal/src/libunwind/src/ppc32/setcontext.S | 0 .../pal/src/libunwind/src/ppc32/ucontext_i.h | 0 .../pal/src/libunwind/src/ppc32/unwind_i.h | 0 .../libunwind/src/ppc64/Gapply_reg_state.c | 0 .../libunwind/src/ppc64/Gcreate_addr_space.c | 0 .../pal/src/libunwind/src/ppc64/Gglobal.c | 0 .../pal/src/libunwind/src/ppc64/Ginit.c | 0 .../libunwind/src/ppc64/Greg_states_iterate.c | 0 .../pal/src/libunwind/src/ppc64/Gregs.c | 0 .../pal/src/libunwind/src/ppc64/Gresume.c | 0 .../pal/src/libunwind/src/ppc64/Gstep.c | 0 .../libunwind/src/ppc64/Lapply_reg_state.c | 0 .../libunwind/src/ppc64/Lcreate_addr_space.c | 0 .../pal/src/libunwind/src/ppc64/Lglobal.c | 0 .../pal/src/libunwind/src/ppc64/Linit.c | 0 .../libunwind/src/ppc64/Lreg_states_iterate.c | 0 .../pal/src/libunwind/src/ppc64/Lregs.c | 0 .../pal/src/libunwind/src/ppc64/Lresume.c | 0 .../pal/src/libunwind/src/ppc64/Lstep.c | 0 .../src/libunwind/src/ppc64/get_func_addr.c | 0 .../pal/src/libunwind/src/ppc64/init.h | 0 .../pal/src/libunwind/src/ppc64/is_fpreg.c | 0 .../pal/src/libunwind/src/ppc64/regname.c | 0 .../pal/src/libunwind/src/ppc64/setcontext.S | 0 .../pal/src/libunwind/src/ppc64/ucontext_i.h | 0 .../pal/src/libunwind/src/ppc64/unwind_i.h | 0 .../libunwind/src/ptrace/_UPT_access_fpreg.c | 0 .../libunwind/src/ptrace/_UPT_access_mem.c | 0 .../libunwind/src/ptrace/_UPT_access_reg.c | 0 .../src/libunwind/src/ptrace/_UPT_accessors.c | 0 .../src/libunwind/src/ptrace/_UPT_create.c | 0 .../src/libunwind/src/ptrace/_UPT_destroy.c | 0 .../pal/src/libunwind/src/ptrace/_UPT_elf.c | 0 .../src/ptrace/_UPT_find_proc_info.c | 0 .../src/ptrace/_UPT_get_dyn_info_list_addr.c | 0 .../libunwind/src/ptrace/_UPT_get_proc_name.c | 0 .../src/libunwind/src/ptrace/_UPT_internal.h | 0 .../src/ptrace/_UPT_put_unwind_info.c | 0 .../libunwind/src/ptrace/_UPT_reg_offset.c | 0 .../src/libunwind/src/ptrace/_UPT_resume.c | 0 .../src/ptrace/libunwind-ptrace.pc.in | 0 .../libunwind/src/s390x/Gapply_reg_state.c | 0 .../libunwind/src/s390x/Gcreate_addr_space.c | 0 .../src/libunwind/src/s390x/Gget_proc_info.c | 0 .../src/libunwind/src/s390x/Gget_save_loc.c | 0 .../pal/src/libunwind/src/s390x/Gglobal.c | 0 .../pal/src/libunwind/src/s390x/Ginit.c | 0 .../pal/src/libunwind/src/s390x/Ginit_local.c | 0 .../src/libunwind/src/s390x/Ginit_remote.c | 0 .../libunwind/src/s390x/Gis_signal_frame.c | 0 .../libunwind/src/s390x/Greg_states_iterate.c | 0 .../pal/src/libunwind/src/s390x/Gregs.c | 0 .../pal/src/libunwind/src/s390x/Gresume.c | 0 .../pal/src/libunwind/src/s390x/Gstep.c | 0 .../libunwind/src/s390x/Lapply_reg_state.c | 0 .../libunwind/src/s390x/Lcreate_addr_space.c | 0 .../src/libunwind/src/s390x/Lget_proc_info.c | 0 .../src/libunwind/src/s390x/Lget_save_loc.c | 0 .../pal/src/libunwind/src/s390x/Lglobal.c | 0 .../pal/src/libunwind/src/s390x/Linit.c | 0 .../pal/src/libunwind/src/s390x/Linit_local.c | 0 .../src/libunwind/src/s390x/Linit_remote.c | 0 .../libunwind/src/s390x/Lis_signal_frame.c | 0 .../libunwind/src/s390x/Lreg_states_iterate.c | 0 .../pal/src/libunwind/src/s390x/Lregs.c | 0 .../pal/src/libunwind/src/s390x/Lresume.c | 0 .../pal/src/libunwind/src/s390x/Lstep.c | 0 .../pal/src/libunwind/src/s390x/getcontext.S | 0 .../pal/src/libunwind/src/s390x/init.h | 0 .../pal/src/libunwind/src/s390x/is_fpreg.c | 0 .../pal/src/libunwind/src/s390x/regname.c | 0 .../pal/src/libunwind/src/s390x/setcontext.S | 0 .../pal/src/libunwind/src/s390x/unwind_i.h | 0 .../src/setjmp/libunwind-setjmp.pc.in | 0 .../pal/src/libunwind/src/setjmp/longjmp.c | 0 .../pal/src/libunwind/src/setjmp/setjmp.c | 0 .../pal/src/libunwind/src/setjmp/setjmp_i.h | 0 .../pal/src/libunwind/src/setjmp/siglongjmp.c | 0 .../pal/src/libunwind/src/setjmp/sigsetjmp.c | 0 .../src/libunwind/src/sh/Gapply_reg_state.c | 0 .../src/libunwind/src/sh/Gcreate_addr_space.c | 0 .../pal/src/libunwind/src/sh/Gget_proc_info.c | 0 .../pal/src/libunwind/src/sh/Gget_save_loc.c | 0 .../pal/src/libunwind/src/sh/Gglobal.c | 0 .../pal/src/libunwind/src/sh/Ginit.c | 0 .../pal/src/libunwind/src/sh/Ginit_local.c | 0 .../pal/src/libunwind/src/sh/Ginit_remote.c | 0 .../src/libunwind/src/sh/Gis_signal_frame.c | 0 .../libunwind/src/sh/Greg_states_iterate.c | 0 .../pal/src/libunwind/src/sh/Gregs.c | 0 .../pal/src/libunwind/src/sh/Gresume.c | 0 .../pal/src/libunwind/src/sh/Gstep.c | 0 .../src/libunwind/src/sh/Lapply_reg_state.c | 0 .../src/libunwind/src/sh/Lcreate_addr_space.c | 0 .../pal/src/libunwind/src/sh/Lget_proc_info.c | 0 .../pal/src/libunwind/src/sh/Lget_save_loc.c | 0 .../pal/src/libunwind/src/sh/Lglobal.c | 0 .../pal/src/libunwind/src/sh/Linit.c | 0 .../pal/src/libunwind/src/sh/Linit_local.c | 0 .../pal/src/libunwind/src/sh/Linit_remote.c | 0 .../src/libunwind/src/sh/Lis_signal_frame.c | 0 .../libunwind/src/sh/Lreg_states_iterate.c | 0 .../pal/src/libunwind/src/sh/Lregs.c | 0 .../pal/src/libunwind/src/sh/Lresume.c | 0 .../pal/src/libunwind/src/sh/Lstep.c | 0 .../pal/src/libunwind/src/sh/gen-offsets.c | 0 .../{src => }/pal/src/libunwind/src/sh/init.h | 0 .../pal/src/libunwind/src/sh/is_fpreg.c | 0 .../pal/src/libunwind/src/sh/offsets.h | 0 .../pal/src/libunwind/src/sh/regname.c | 0 .../pal/src/libunwind/src/sh/siglongjmp.S | 0 .../pal/src/libunwind/src/sh/unwind_i.h | 0 .../libunwind/src/tilegx/Gapply_reg_state.c | 0 .../libunwind/src/tilegx/Gcreate_addr_space.c | 0 .../src/libunwind/src/tilegx/Gget_proc_info.c | 0 .../src/libunwind/src/tilegx/Gget_save_loc.c | 0 .../pal/src/libunwind/src/tilegx/Gglobal.c | 0 .../pal/src/libunwind/src/tilegx/Ginit.c | 0 .../src/libunwind/src/tilegx/Ginit_local.c | 0 .../src/libunwind/src/tilegx/Ginit_remote.c | 0 .../libunwind/src/tilegx/Gis_signal_frame.c | 0 .../src/tilegx/Greg_states_iterate.c | 0 .../pal/src/libunwind/src/tilegx/Gregs.c | 0 .../pal/src/libunwind/src/tilegx/Gresume.c | 0 .../pal/src/libunwind/src/tilegx/Gstep.c | 0 .../libunwind/src/tilegx/Lapply_reg_state.c | 0 .../libunwind/src/tilegx/Lcreate_addr_space.c | 0 .../src/libunwind/src/tilegx/Lget_proc_info.c | 0 .../src/libunwind/src/tilegx/Lget_save_loc.c | 0 .../pal/src/libunwind/src/tilegx/Lglobal.c | 0 .../pal/src/libunwind/src/tilegx/Linit.c | 0 .../src/libunwind/src/tilegx/Linit_local.c | 0 .../src/libunwind/src/tilegx/Linit_remote.c | 0 .../libunwind/src/tilegx/Lis_signal_frame.c | 0 .../src/tilegx/Lreg_states_iterate.c | 0 .../pal/src/libunwind/src/tilegx/Lregs.c | 0 .../pal/src/libunwind/src/tilegx/Lresume.c | 0 .../pal/src/libunwind/src/tilegx/Lstep.c | 0 .../pal/src/libunwind/src/tilegx/elfxx.c | 0 .../src/libunwind/src/tilegx/gen-offsets.c | 0 .../pal/src/libunwind/src/tilegx/getcontext.S | 0 .../pal/src/libunwind/src/tilegx/init.h | 0 .../pal/src/libunwind/src/tilegx/is_fpreg.c | 0 .../pal/src/libunwind/src/tilegx/offsets.h | 0 .../pal/src/libunwind/src/tilegx/regname.c | 0 .../pal/src/libunwind/src/tilegx/siglongjmp.S | 0 .../pal/src/libunwind/src/tilegx/unwind_i.h | 0 .../pal/src/libunwind/src/unwind/Backtrace.c | 0 .../libunwind/src/unwind/DeleteException.c | 0 .../src/unwind/FindEnclosingFunction.c | 0 .../src/libunwind/src/unwind/ForcedUnwind.c | 0 .../pal/src/libunwind/src/unwind/GetBSP.c | 0 .../pal/src/libunwind/src/unwind/GetCFA.c | 0 .../src/libunwind/src/unwind/GetDataRelBase.c | 0 .../pal/src/libunwind/src/unwind/GetGR.c | 0 .../pal/src/libunwind/src/unwind/GetIP.c | 0 .../pal/src/libunwind/src/unwind/GetIPInfo.c | 0 .../src/unwind/GetLanguageSpecificData.c | 0 .../src/libunwind/src/unwind/GetRegionStart.c | 0 .../src/libunwind/src/unwind/GetTextRelBase.c | 0 .../src/libunwind/src/unwind/RaiseException.c | 0 .../pal/src/libunwind/src/unwind/Resume.c | 0 .../libunwind/src/unwind/Resume_or_Rethrow.c | 0 .../pal/src/libunwind/src/unwind/SetGR.c | 0 .../pal/src/libunwind/src/unwind/SetIP.c | 0 .../src/libunwind/src/unwind/libunwind.pc.in | 0 .../libunwind/src/unwind/unwind-internal.h | 0 .../libunwind/src/win/pal-single-threaded.c | 0 .../src/libunwind/src/x86/Gapply_reg_state.c | 0 .../libunwind/src/x86/Gcreate_addr_space.c | 0 .../src/libunwind/src/x86/Gget_proc_info.c | 0 .../pal/src/libunwind/src/x86/Gget_save_loc.c | 0 .../pal/src/libunwind/src/x86/Gglobal.c | 0 .../pal/src/libunwind/src/x86/Ginit.c | 0 .../pal/src/libunwind/src/x86/Ginit_local.c | 0 .../pal/src/libunwind/src/x86/Ginit_remote.c | 0 .../pal/src/libunwind/src/x86/Gos-freebsd.c | 0 .../pal/src/libunwind/src/x86/Gos-linux.c | 0 .../libunwind/src/x86/Greg_states_iterate.c | 0 .../pal/src/libunwind/src/x86/Gregs.c | 0 .../pal/src/libunwind/src/x86/Gresume.c | 0 .../pal/src/libunwind/src/x86/Gstep.c | 0 .../src/libunwind/src/x86/Lapply_reg_state.c | 0 .../libunwind/src/x86/Lcreate_addr_space.c | 0 .../src/libunwind/src/x86/Lget_proc_info.c | 0 .../pal/src/libunwind/src/x86/Lget_save_loc.c | 0 .../pal/src/libunwind/src/x86/Lglobal.c | 0 .../pal/src/libunwind/src/x86/Linit.c | 0 .../pal/src/libunwind/src/x86/Linit_local.c | 0 .../pal/src/libunwind/src/x86/Linit_remote.c | 0 .../pal/src/libunwind/src/x86/Los-freebsd.c | 0 .../pal/src/libunwind/src/x86/Los-linux.c | 0 .../libunwind/src/x86/Lreg_states_iterate.c | 0 .../pal/src/libunwind/src/x86/Lregs.c | 0 .../pal/src/libunwind/src/x86/Lresume.c | 0 .../pal/src/libunwind/src/x86/Lstep.c | 0 .../libunwind/src/x86/getcontext-freebsd.S | 0 .../src/libunwind/src/x86/getcontext-linux.S | 0 .../pal/src/libunwind/src/x86/init.h | 0 .../pal/src/libunwind/src/x86/is_fpreg.c | 0 .../pal/src/libunwind/src/x86/longjmp.S | 0 .../pal/src/libunwind/src/x86/offsets.h | 0 .../pal/src/libunwind/src/x86/regname.c | 0 .../pal/src/libunwind/src/x86/siglongjmp.S | 0 .../pal/src/libunwind/src/x86/unwind_i.h | 0 .../libunwind/src/x86_64/Gapply_reg_state.c | 0 .../libunwind/src/x86_64/Gcreate_addr_space.c | 0 .../src/libunwind/src/x86_64/Gget_proc_info.c | 0 .../src/libunwind/src/x86_64/Gget_save_loc.c | 0 .../pal/src/libunwind/src/x86_64/Gglobal.c | 0 .../pal/src/libunwind/src/x86_64/Ginit.c | 0 .../src/libunwind/src/x86_64/Ginit_local.c | 0 .../src/libunwind/src/x86_64/Ginit_remote.c | 0 .../src/libunwind/src/x86_64/Gos-freebsd.c | 0 .../pal/src/libunwind/src/x86_64/Gos-linux.c | 0 .../src/libunwind/src/x86_64/Gos-solaris.c | 0 .../src/x86_64/Greg_states_iterate.c | 0 .../pal/src/libunwind/src/x86_64/Gregs.c | 0 .../pal/src/libunwind/src/x86_64/Gresume.c | 0 .../src/libunwind/src/x86_64/Gstash_frame.c | 0 .../pal/src/libunwind/src/x86_64/Gstep.c | 0 .../pal/src/libunwind/src/x86_64/Gtrace.c | 0 .../libunwind/src/x86_64/Lapply_reg_state.c | 0 .../libunwind/src/x86_64/Lcreate_addr_space.c | 0 .../src/libunwind/src/x86_64/Lget_proc_info.c | 0 .../src/libunwind/src/x86_64/Lget_save_loc.c | 0 .../pal/src/libunwind/src/x86_64/Lglobal.c | 0 .../pal/src/libunwind/src/x86_64/Linit.c | 0 .../src/libunwind/src/x86_64/Linit_local.c | 0 .../src/libunwind/src/x86_64/Linit_remote.c | 0 .../src/libunwind/src/x86_64/Los-freebsd.c | 0 .../pal/src/libunwind/src/x86_64/Los-linux.c | 0 .../src/libunwind/src/x86_64/Los-solaris.c | 0 .../src/x86_64/Lreg_states_iterate.c | 0 .../pal/src/libunwind/src/x86_64/Lregs.c | 0 .../pal/src/libunwind/src/x86_64/Lresume.c | 0 .../src/libunwind/src/x86_64/Lstash_frame.c | 0 .../pal/src/libunwind/src/x86_64/Lstep.c | 0 .../pal/src/libunwind/src/x86_64/Ltrace.c | 0 .../pal/src/libunwind/src/x86_64/getcontext.S | 0 .../pal/src/libunwind/src/x86_64/init.h | 0 .../pal/src/libunwind/src/x86_64/is_fpreg.c | 0 .../pal/src/libunwind/src/x86_64/longjmp.S | 0 .../pal/src/libunwind/src/x86_64/offsets.h | 0 .../pal/src/libunwind/src/x86_64/regname.c | 0 .../pal/src/libunwind/src/x86_64/setcontext.S | 0 .../pal/src/libunwind/src/x86_64/siglongjmp.S | 0 .../pal/src/libunwind/src/x86_64/ucontext_i.h | 0 .../pal/src/libunwind/src/x86_64/unwind_i.h | 0 .../pal/src/libunwind/tests/Gia64-test-nat.c | 0 .../pal/src/libunwind/tests/Gia64-test-rbs.c | 0 .../src/libunwind/tests/Gia64-test-readonly.c | 0 .../src/libunwind/tests/Gia64-test-stack.c | 0 .../pal/src/libunwind/tests/Gperf-simple.c | 0 .../pal/src/libunwind/tests/Gperf-trace.c | 0 .../pal/src/libunwind/tests/Gtest-bt.c | 0 .../src/libunwind/tests/Gtest-concurrent.c | 0 .../pal/src/libunwind/tests/Gtest-dyn1.c | 0 .../pal/src/libunwind/tests/Gtest-exc.c | 0 .../pal/src/libunwind/tests/Gtest-init.cxx | 0 .../pal/src/libunwind/tests/Gtest-nomalloc.c | 0 .../src/libunwind/tests/Gtest-resume-sig-rt.c | 0 .../src/libunwind/tests/Gtest-resume-sig.c | 0 .../pal/src/libunwind/tests/Gtest-trace.c | 0 .../tests/Gx64-test-dwarf-expressions.c | 0 .../pal/src/libunwind/tests/Lia64-test-nat.c | 0 .../pal/src/libunwind/tests/Lia64-test-rbs.c | 0 .../src/libunwind/tests/Lia64-test-readonly.c | 0 .../src/libunwind/tests/Lia64-test-stack.c | 0 .../pal/src/libunwind/tests/Lperf-simple.c | 0 .../pal/src/libunwind/tests/Lperf-trace.c | 0 .../pal/src/libunwind/tests/Lrs-race.c | 0 .../pal/src/libunwind/tests/Ltest-bt.c | 0 .../src/libunwind/tests/Ltest-concurrent.c | 0 .../libunwind/tests/Ltest-cxx-exceptions.cxx | 0 .../pal/src/libunwind/tests/Ltest-dyn1.c | 0 .../pal/src/libunwind/tests/Ltest-exc.c | 0 .../tests/Ltest-init-local-signal-lib.c | 0 .../libunwind/tests/Ltest-init-local-signal.c | 0 .../pal/src/libunwind/tests/Ltest-init.cxx | 0 .../src/libunwind/tests/Ltest-mem-validate.c | 0 .../pal/src/libunwind/tests/Ltest-nocalloc.c | 0 .../pal/src/libunwind/tests/Ltest-nomalloc.c | 0 .../src/libunwind/tests/Ltest-resume-sig-rt.c | 0 .../src/libunwind/tests/Ltest-resume-sig.c | 0 .../pal/src/libunwind/tests/Ltest-trace.c | 0 .../pal/src/libunwind/tests/Ltest-varargs.c | 0 .../tests/Lx64-test-dwarf-expressions.c | 0 .../pal/src/libunwind/tests/Makefile.am | 0 .../src/libunwind/tests/check-namespace.sh.in | 0 .../pal/src/libunwind/tests/crasher.c | 0 .../pal/src/libunwind/tests/flush-cache.S | 0 .../pal/src/libunwind/tests/flush-cache.h | 0 .../pal/src/libunwind/tests/forker.c | 0 .../pal/src/libunwind/tests/ia64-dyn-asm.S | 0 .../pal/src/libunwind/tests/ia64-test-dyn1.c | 0 .../src/libunwind/tests/ia64-test-nat-asm.S | 0 .../src/libunwind/tests/ia64-test-rbs-asm.S | 0 .../pal/src/libunwind/tests/ia64-test-rbs.h | 0 .../libunwind/tests/ia64-test-readonly-asm.S | 0 .../src/libunwind/tests/ia64-test-setjmp.c | 0 .../pal/src/libunwind/tests/ia64-test-sig.c | 0 .../src/libunwind/tests/ia64-test-stack-asm.S | 0 .../pal/src/libunwind/tests/ia64-test-stack.h | 0 .../{src => }/pal/src/libunwind/tests/ident.c | 0 .../pal/src/libunwind/tests/mapper.c | 0 .../pal/src/libunwind/tests/perf-startup | 0 .../tests/ppc64-test-altivec-utils.c | 0 .../src/libunwind/tests/ppc64-test-altivec.c | 0 .../src/libunwind/tests/run-check-namespace | 0 .../src/libunwind/tests/run-coredump-unwind | 0 .../libunwind/tests/run-coredump-unwind-mdi | 0 .../src/libunwind/tests/run-ia64-test-dyn1 | 0 .../pal/src/libunwind/tests/run-ptrace-mapper | 0 .../pal/src/libunwind/tests/run-ptrace-misc | 0 .../pal/src/libunwind/tests/test-async-sig.c | 0 .../libunwind/tests/test-coredump-unwind.c | 0 .../src/libunwind/tests/test-flush-cache.c | 0 .../src/libunwind/tests/test-init-remote.c | 0 .../pal/src/libunwind/tests/test-mem.c | 0 .../pal/src/libunwind/tests/test-proc-info.c | 0 .../src/libunwind/tests/test-ptrace-misc.c | 0 .../pal/src/libunwind/tests/test-ptrace.c | 0 .../pal/src/libunwind/tests/test-reg-state.c | 0 .../pal/src/libunwind/tests/test-setjmp.c | 0 .../libunwind/tests/test-static-link-gen.c | 0 .../libunwind/tests/test-static-link-loc.c | 0 .../pal/src/libunwind/tests/test-strerror.c | 0 .../tests/x64-test-dwarf-expressions.S | 0 .../tests/x64-unwind-badjmp-signal-frame.c | 0 .../pal/src/libunwind_mac/include/elf.h | 0 .../pal/src/libunwind_mac/include/endian.h | 0 .../libunwind_mac/include/fakestdalign.h.in | 0 .../libunwind_mac/include/fakestdatomic.h.in | 0 .../src/libunwind_mac/include/freebsd-elf32.h | 0 .../src/libunwind_mac/include/freebsd-elf64.h | 0 .../include/freebsd-elf_common.h | 0 .../pal/src/libunwind_mac/include/ucontext.h | 0 .../src/libunwind_mac/src/missing-functions.c | 0 .../{src => }/pal/src/loader/module.cpp | 0 .../{src => }/pal/src/loader/modulename.cpp | 0 .../{src => }/pal/src/locale/unicode.cpp | 0 .../{src => }/pal/src/locale/unicodedata.cpp | 0 .../{src => }/pal/src/locale/unicodedata.cs | 0 src/coreclr/{src => }/pal/src/locale/utf8.cpp | 0 src/coreclr/{src => }/pal/src/map/common.cpp | 0 src/coreclr/{src => }/pal/src/map/common.h | 0 src/coreclr/{src => }/pal/src/map/map.cpp | 0 src/coreclr/{src => }/pal/src/map/virtual.cpp | 0 .../{src => }/pal/src/memory/local.cpp | 0 src/coreclr/{src => }/pal/src/misc/cgroup.cpp | 0 src/coreclr/{src => }/pal/src/misc/dbgmsg.cpp | 0 .../{src => }/pal/src/misc/environ.cpp | 0 src/coreclr/{src => }/pal/src/misc/error.cpp | 0 .../{src => }/pal/src/misc/errorstrings.cpp | 0 .../{src => }/pal/src/misc/errorstrings.h | 0 .../{src => }/pal/src/misc/fmtmessage.cpp | 0 .../{src => }/pal/src/misc/jitsupport.cpp | 0 .../{src => }/pal/src/misc/miscpalapi.cpp | 0 src/coreclr/{src => }/pal/src/misc/msgbox.cpp | 0 .../{src => }/pal/src/misc/perfjitdump.cpp | 0 .../{src => }/pal/src/misc/perftrace.cpp | 0 .../{src => }/pal/src/misc/strutil.cpp | 0 .../{src => }/pal/src/misc/sysinfo.cpp | 0 src/coreclr/{src => }/pal/src/misc/time.cpp | 0 .../pal/src/misc/tracepointprovider.cpp | 0 src/coreclr/{src => }/pal/src/misc/utils.cpp | 0 src/coreclr/{src => }/pal/src/numa/numa.cpp | 0 src/coreclr/{src => }/pal/src/numa/numashim.h | 0 .../{src => }/pal/src/objmgr/palobjbase.cpp | 0 .../{src => }/pal/src/objmgr/palobjbase.hpp | 0 .../{src => }/pal/src/objmgr/shmobject.cpp | 0 .../{src => }/pal/src/objmgr/shmobject.hpp | 0 .../pal/src/objmgr/shmobjectmanager.cpp | 0 .../pal/src/objmgr/shmobjectmanager.hpp | 0 .../{src => }/pal/src/safecrt/cruntime.h | 0 .../{src => }/pal/src/safecrt/input.inl | 0 .../{src => }/pal/src/safecrt/internal.h | 0 .../pal/src/safecrt/internal_securecrt.h | 0 .../{src => }/pal/src/safecrt/makepath_s.cpp | 0 .../{src => }/pal/src/safecrt/mbusafecrt.cpp | 0 .../pal/src/safecrt/mbusafecrt_internal.h | 0 .../{src => }/pal/src/safecrt/memcpy_s.cpp | 0 .../{src => }/pal/src/safecrt/memmove_s.cpp | 0 .../{src => }/pal/src/safecrt/output.inl | 0 .../pal/src/safecrt/safecrt_input_s.cpp | 0 .../pal/src/safecrt/safecrt_output_l.cpp | 0 .../pal/src/safecrt/safecrt_output_s.cpp | 0 .../pal/src/safecrt/safecrt_winput_s.cpp | 0 .../pal/src/safecrt/safecrt_woutput_s.cpp | 0 .../{src => }/pal/src/safecrt/splitpath_s.cpp | 0 .../{src => }/pal/src/safecrt/sprintf_s.cpp | 0 .../{src => }/pal/src/safecrt/sscanf_s.cpp | 0 .../{src => }/pal/src/safecrt/strcat_s.cpp | 0 .../{src => }/pal/src/safecrt/strcpy_s.cpp | 0 .../{src => }/pal/src/safecrt/strlen_s.cpp | 0 .../{src => }/pal/src/safecrt/strncat_s.cpp | 0 .../{src => }/pal/src/safecrt/strncpy_s.cpp | 0 .../{src => }/pal/src/safecrt/strtok_s.cpp | 0 .../{src => }/pal/src/safecrt/swprintf.cpp | 0 .../{src => }/pal/src/safecrt/tcscat_s.inl | 0 .../{src => }/pal/src/safecrt/tcscpy_s.inl | 0 .../{src => }/pal/src/safecrt/tcsncat_s.inl | 0 .../{src => }/pal/src/safecrt/tcsncpy_s.inl | 0 .../{src => }/pal/src/safecrt/tcstok_s.inl | 0 .../{src => }/pal/src/safecrt/tmakepath_s.inl | 0 .../pal/src/safecrt/tsplitpath_s.inl | 0 .../{src => }/pal/src/safecrt/vsprintf.cpp | 0 .../{src => }/pal/src/safecrt/vswprint.cpp | 0 .../{src => }/pal/src/safecrt/wcscat_s.cpp | 0 .../{src => }/pal/src/safecrt/wcscpy_s.cpp | 0 .../{src => }/pal/src/safecrt/wcslen_s.cpp | 0 .../{src => }/pal/src/safecrt/wcslwr_s.cpp | 0 .../{src => }/pal/src/safecrt/wcsncat_s.cpp | 0 .../{src => }/pal/src/safecrt/wcsncpy_s.cpp | 0 .../{src => }/pal/src/safecrt/wcstok_s.cpp | 0 .../{src => }/pal/src/safecrt/wmakepath_s.cpp | 0 .../pal/src/safecrt/wsplitpath_s.cpp | 0 .../{src => }/pal/src/safecrt/xtoa_s.cpp | 0 .../{src => }/pal/src/safecrt/xtow_s.cpp | 0 .../{src => }/pal/src/safecrt/xtox_s.inl | 0 .../pal/src/sharedmemory/sharedmemory.cpp | 0 .../{src => }/pal/src/shmemory/shmemory.cpp | 0 src/coreclr/{src => }/pal/src/sync/cs.cpp | 0 .../pal/src/synchmgr/synchcontrollers.cpp | 0 .../pal/src/synchmgr/synchmanager.cpp | 0 .../pal/src/synchmgr/synchmanager.hpp | 0 .../{src => }/pal/src/synchmgr/wait.cpp | 0 .../{src => }/pal/src/synchobj/event.cpp | 0 .../{src => }/pal/src/synchobj/mutex.cpp | 0 .../{src => }/pal/src/synchobj/semaphore.cpp | 0 .../{src => }/pal/src/thread/context.cpp | 0 .../{src => }/pal/src/thread/process.cpp | 0 .../{src => }/pal/src/thread/procprivate.hpp | 0 .../{src => }/pal/src/thread/thread.cpp | 0 .../{src => }/pal/src/thread/threadsusp.cpp | 0 .../{src => }/pal/tests/CMakeLists.txt | 0 .../pal/tests/palsuite/CMakeLists.txt | 0 .../pal/tests/palsuite/DisabledTests.txt | 0 .../{src => }/pal/tests/palsuite/README.txt | 0 .../c_runtime/__iscsym/test1/__iscsym.cpp | 0 .../c_runtime/_alloca/test1/test1.cpp | 0 .../c_runtime/_fdopen/test1/test1.cpp | 0 .../c_runtime/_finite/test1/test1.cpp | 0 .../c_runtime/_finitef/test1/test1.cpp | 0 .../palsuite/c_runtime/_gcvt/test1/_gcvt.cpp | 0 .../palsuite/c_runtime/_gcvt/test2/test2.cpp | 0 .../palsuite/c_runtime/_isnan/test1/test1.cpp | 0 .../c_runtime/_isnanf/test1/test1.cpp | 0 .../palsuite/c_runtime/_itow/test1/test1.cpp | 0 .../c_runtime/_putenv/test1/test1.cpp | 0 .../c_runtime/_putenv/test2/test2.cpp | 0 .../c_runtime/_putenv/test3/test3.cpp | 0 .../c_runtime/_putenv/test4/test4.cpp | 0 .../palsuite/c_runtime/_rotl/test1/test1.cpp | 0 .../palsuite/c_runtime/_rotr/test1/test1.cpp | 0 .../c_runtime/_snprintf_s/_snprintf_s.h | 0 .../c_runtime/_snprintf_s/test1/test1.cpp | 0 .../c_runtime/_snprintf_s/test10/test10.cpp | 0 .../c_runtime/_snprintf_s/test11/test11.cpp | 0 .../c_runtime/_snprintf_s/test12/test12.cpp | 0 .../c_runtime/_snprintf_s/test13/test13.cpp | 0 .../c_runtime/_snprintf_s/test14/test14.cpp | 0 .../c_runtime/_snprintf_s/test15/test15.cpp | 0 .../c_runtime/_snprintf_s/test16/test16.cpp | 0 .../c_runtime/_snprintf_s/test17/test17.cpp | 0 .../c_runtime/_snprintf_s/test18/test18.cpp | 0 .../c_runtime/_snprintf_s/test19/test19.cpp | 0 .../c_runtime/_snprintf_s/test2/test2.cpp | 0 .../c_runtime/_snprintf_s/test3/test3.cpp | 0 .../c_runtime/_snprintf_s/test4/test4.cpp | 0 .../c_runtime/_snprintf_s/test6/test6.cpp | 0 .../c_runtime/_snprintf_s/test7/test7.cpp | 0 .../c_runtime/_snprintf_s/test8/test8.cpp | 0 .../c_runtime/_snprintf_s/test9/test9.cpp | 0 .../c_runtime/_snwprintf_s/_snwprintf_s.h | 0 .../c_runtime/_snwprintf_s/test1/test1.cpp | 0 .../c_runtime/_snwprintf_s/test10/test10.cpp | 0 .../c_runtime/_snwprintf_s/test11/test11.cpp | 0 .../c_runtime/_snwprintf_s/test12/test12.cpp | 0 .../c_runtime/_snwprintf_s/test13/test13.cpp | 0 .../c_runtime/_snwprintf_s/test14/test14.cpp | 0 .../c_runtime/_snwprintf_s/test15/test15.cpp | 0 .../c_runtime/_snwprintf_s/test16/test16.cpp | 0 .../c_runtime/_snwprintf_s/test17/test17.cpp | 0 .../c_runtime/_snwprintf_s/test18/test18.cpp | 0 .../c_runtime/_snwprintf_s/test19/test19.cpp | 0 .../c_runtime/_snwprintf_s/test2/test2.cpp | 0 .../c_runtime/_snwprintf_s/test3/test3.cpp | 0 .../c_runtime/_snwprintf_s/test4/test4.cpp | 0 .../c_runtime/_snwprintf_s/test6/test6.cpp | 0 .../c_runtime/_snwprintf_s/test7/test7.cpp | 0 .../c_runtime/_snwprintf_s/test8/test8.cpp | 0 .../c_runtime/_snwprintf_s/test9/test9.cpp | 0 .../c_runtime/_stricmp/test1/test1.cpp | 0 .../c_runtime/_strnicmp/test1/test1.cpp | 0 .../c_runtime/_vsnprintf_s/_vsnprintf_s.h | 0 .../c_runtime/_vsnprintf_s/test1/test1.cpp | 0 .../c_runtime/_vsnprintf_s/test10/test10.cpp | 0 .../c_runtime/_vsnprintf_s/test11/test11.cpp | 0 .../c_runtime/_vsnprintf_s/test12/test12.cpp | 0 .../c_runtime/_vsnprintf_s/test13/test13.cpp | 0 .../c_runtime/_vsnprintf_s/test14/test14.cpp | 0 .../c_runtime/_vsnprintf_s/test15/test15.cpp | 0 .../c_runtime/_vsnprintf_s/test16/test16.cpp | 0 .../c_runtime/_vsnprintf_s/test17/test17.cpp | 0 .../c_runtime/_vsnprintf_s/test18/test18.cpp | 0 .../c_runtime/_vsnprintf_s/test19/test19.cpp | 0 .../c_runtime/_vsnprintf_s/test2/test2.cpp | 0 .../c_runtime/_vsnprintf_s/test3/test3.cpp | 0 .../c_runtime/_vsnprintf_s/test4/test4.cpp | 0 .../c_runtime/_vsnprintf_s/test6/test6.cpp | 0 .../c_runtime/_vsnprintf_s/test7/test7.cpp | 0 .../c_runtime/_vsnprintf_s/test8/test8.cpp | 0 .../c_runtime/_vsnprintf_s/test9/test9.cpp | 0 .../c_runtime/_vsnwprintf_s/_vsnwprintf_s.h | 0 .../c_runtime/_vsnwprintf_s/test1/test1.cpp | 0 .../c_runtime/_vsnwprintf_s/test10/test10.cpp | 0 .../c_runtime/_vsnwprintf_s/test11/test11.cpp | 0 .../c_runtime/_vsnwprintf_s/test12/test12.cpp | 0 .../c_runtime/_vsnwprintf_s/test13/test13.cpp | 0 .../c_runtime/_vsnwprintf_s/test14/test14.cpp | 0 .../c_runtime/_vsnwprintf_s/test15/test15.cpp | 0 .../c_runtime/_vsnwprintf_s/test16/test16.cpp | 0 .../c_runtime/_vsnwprintf_s/test17/test17.cpp | 0 .../c_runtime/_vsnwprintf_s/test18/test18.cpp | 0 .../c_runtime/_vsnwprintf_s/test19/test19.cpp | 0 .../c_runtime/_vsnwprintf_s/test2/test2.cpp | 0 .../c_runtime/_vsnwprintf_s/test3/test3.cpp | 0 .../c_runtime/_vsnwprintf_s/test4/test4.cpp | 0 .../c_runtime/_vsnwprintf_s/test6/test6.cpp | 0 .../c_runtime/_vsnwprintf_s/test7/test7.cpp | 0 .../c_runtime/_vsnwprintf_s/test8/test8.cpp | 0 .../c_runtime/_vsnwprintf_s/test9/test9.cpp | 0 .../c_runtime/_wcsicmp/test1/test1.cpp | 0 .../c_runtime/_wcslwr_s/test1/test1.cpp | 0 .../c_runtime/_wcsnicmp/test1/test1.cpp | 0 .../c_runtime/_wfopen/test1/test1.cpp | 0 .../c_runtime/_wfopen/test2/test2.cpp | 0 .../c_runtime/_wfopen/test3/test3.cpp | 0 .../c_runtime/_wfopen/test4/test4.cpp | 0 .../c_runtime/_wfopen/test5/test5.cpp | 0 .../c_runtime/_wfopen/test6/test6.cpp | 0 .../c_runtime/_wfopen/test7/test7.cpp | 0 .../palsuite/c_runtime/_wtoi/test1/test1.cpp | 0 .../palsuite/c_runtime/abs/test1/abs.cpp | 0 .../palsuite/c_runtime/acos/test1/test1.cpp | 0 .../palsuite/c_runtime/acosf/test1/test1.cpp | 0 .../palsuite/c_runtime/acosh/test1/test1.cpp | 0 .../palsuite/c_runtime/acoshf/test1/test1.cpp | 0 .../palsuite/c_runtime/asin/test1/test1.cpp | 0 .../palsuite/c_runtime/asinf/test1/test1.cpp | 0 .../palsuite/c_runtime/asinh/test1/test1.cpp | 0 .../palsuite/c_runtime/asinhf/test1/test1.cpp | 0 .../palsuite/c_runtime/atan/test1/test1.cpp | 0 .../palsuite/c_runtime/atan2/test1/test1.cpp | 0 .../palsuite/c_runtime/atan2f/test1/test1.cpp | 0 .../palsuite/c_runtime/atanf/test1/test1.cpp | 0 .../palsuite/c_runtime/atanh/test1/test1.cpp | 0 .../palsuite/c_runtime/atanhf/test1/test1.cpp | 0 .../palsuite/c_runtime/atof/test1/test1.cpp | 0 .../palsuite/c_runtime/atoi/test1/test1.cpp | 0 .../c_runtime/bsearch/test1/test1.cpp | 0 .../c_runtime/bsearch/test2/test2.cpp | 0 .../palsuite/c_runtime/cbrt/test1/test1.cpp | 0 .../palsuite/c_runtime/cbrtf/test1/test1.cpp | 0 .../palsuite/c_runtime/ceil/test1/test1.cpp | 0 .../palsuite/c_runtime/ceilf/test1/test1.cpp | 0 .../palsuite/c_runtime/cos/test1/test1.cpp | 0 .../palsuite/c_runtime/cosf/test1/test1.cpp | 0 .../palsuite/c_runtime/cosh/test1/test1.cpp | 0 .../palsuite/c_runtime/coshf/test1/test1.cpp | 0 .../palsuite/c_runtime/errno/test1/test1.cpp | 0 .../palsuite/c_runtime/errno/test2/test2.cpp | 0 .../palsuite/c_runtime/exit/test1/test1.cpp | 0 .../palsuite/c_runtime/exit/test2/test2.cpp | 0 .../palsuite/c_runtime/exp/test1/test1.cpp | 0 .../palsuite/c_runtime/expf/test1/test1.cpp | 0 .../palsuite/c_runtime/fabs/test1/test1.cpp | 0 .../palsuite/c_runtime/fabsf/test1/test1.cpp | 0 .../palsuite/c_runtime/fclose/test1/test1.cpp | 0 .../palsuite/c_runtime/fclose/test2/test2.cpp | 0 .../palsuite/c_runtime/ferror/test1/test1.cpp | 0 .../palsuite/c_runtime/ferror/test1/testfile | 0 .../palsuite/c_runtime/ferror/test2/test2.cpp | 0 .../palsuite/c_runtime/ferror/test2/testfile | 0 .../palsuite/c_runtime/fflush/test1/test1.cpp | 0 .../palsuite/c_runtime/fgets/test1/test1.cpp | 0 .../palsuite/c_runtime/fgets/test2/test2.cpp | 0 .../palsuite/c_runtime/fgets/test3/test3.cpp | 0 .../palsuite/c_runtime/floor/test1/test1.cpp | 0 .../palsuite/c_runtime/floorf/test1/test1.cpp | 0 .../palsuite/c_runtime/fma/test1/test1.cpp | 0 .../palsuite/c_runtime/fmaf/test1/test1.cpp | 0 .../palsuite/c_runtime/fmod/test1/test1.cpp | 0 .../palsuite/c_runtime/fmodf/test1/test1.cpp | 0 .../palsuite/c_runtime/fopen/test1/test1.cpp | 0 .../palsuite/c_runtime/fopen/test2/test2.cpp | 0 .../palsuite/c_runtime/fopen/test3/test3.cpp | 0 .../palsuite/c_runtime/fopen/test4/test4.cpp | 0 .../palsuite/c_runtime/fopen/test5/test5.cpp | 0 .../palsuite/c_runtime/fopen/test6/test6.cpp | 0 .../palsuite/c_runtime/fopen/test7/test7.cpp | 0 .../palsuite/c_runtime/fprintf/fprintf.h | 0 .../c_runtime/fprintf/test1/test1.cpp | 0 .../c_runtime/fprintf/test10/test10.cpp | 0 .../c_runtime/fprintf/test11/test11.cpp | 0 .../c_runtime/fprintf/test12/test12.cpp | 0 .../c_runtime/fprintf/test13/test13.cpp | 0 .../c_runtime/fprintf/test14/test14.cpp | 0 .../c_runtime/fprintf/test15/test15.cpp | 0 .../c_runtime/fprintf/test16/test16.cpp | 0 .../c_runtime/fprintf/test17/test17.cpp | 0 .../c_runtime/fprintf/test18/test18.cpp | 0 .../c_runtime/fprintf/test19/test19.cpp | 0 .../c_runtime/fprintf/test2/test2.cpp | 0 .../c_runtime/fprintf/test3/test3.cpp | 0 .../c_runtime/fprintf/test4/test4.cpp | 0 .../c_runtime/fprintf/test5/test5.cpp | 0 .../c_runtime/fprintf/test6/test6.cpp | 0 .../c_runtime/fprintf/test7/test7.cpp | 0 .../c_runtime/fprintf/test8/test8.cpp | 0 .../c_runtime/fprintf/test9/test9.cpp | 0 .../palsuite/c_runtime/fputs/test1/test1.cpp | 0 .../palsuite/c_runtime/fputs/test2/test2.cpp | 0 .../palsuite/c_runtime/fread/test1/test1.cpp | 0 .../palsuite/c_runtime/fread/test1/testfile | 0 .../palsuite/c_runtime/fread/test2/test2.cpp | 0 .../palsuite/c_runtime/fread/test2/testfile | 0 .../palsuite/c_runtime/fread/test3/test3.cpp | 0 .../palsuite/c_runtime/fread/test3/testfile | 0 .../palsuite/c_runtime/free/test1/test1.cpp | 0 .../palsuite/c_runtime/fseek/test1/test1.cpp | 0 .../palsuite/c_runtime/ftell/test1/ftell.cpp | 0 .../c_runtime/ftell/test1/testfile.txt | 0 .../palsuite/c_runtime/fwprintf/fwprintf.h | 0 .../c_runtime/fwprintf/test1/test1.cpp | 0 .../c_runtime/fwprintf/test10/test10.cpp | 0 .../c_runtime/fwprintf/test11/test11.cpp | 0 .../c_runtime/fwprintf/test12/test12.cpp | 0 .../c_runtime/fwprintf/test13/test13.cpp | 0 .../c_runtime/fwprintf/test14/test14.cpp | 0 .../c_runtime/fwprintf/test15/test15.cpp | 0 .../c_runtime/fwprintf/test16/test16.cpp | 0 .../c_runtime/fwprintf/test17/test17.cpp | 0 .../c_runtime/fwprintf/test18/test18.cpp | 0 .../c_runtime/fwprintf/test19/test19.cpp | 0 .../c_runtime/fwprintf/test2/test2.cpp | 0 .../c_runtime/fwprintf/test3/test3.cpp | 0 .../c_runtime/fwprintf/test4/test4.cpp | 0 .../c_runtime/fwprintf/test5/test5.cpp | 0 .../c_runtime/fwprintf/test6/test6.cpp | 0 .../c_runtime/fwprintf/test7/test7.cpp | 0 .../c_runtime/fwprintf/test8/test8.cpp | 0 .../c_runtime/fwprintf/test9/test9.cpp | 0 .../palsuite/c_runtime/fwrite/test1/test1.cpp | 0 .../palsuite/c_runtime/getenv/test1/test1.cpp | 0 .../palsuite/c_runtime/getenv/test2/test2.cpp | 0 .../palsuite/c_runtime/getenv/test3/test3.cpp | 0 .../palsuite/c_runtime/ilogb/test1/test1.cpp | 0 .../palsuite/c_runtime/ilogbf/test1/test1.cpp | 0 .../c_runtime/isalnum/test1/test1.cpp | 0 .../c_runtime/isalpha/test1/test1.cpp | 0 .../c_runtime/isdigit/test1/test1.cpp | 0 .../c_runtime/islower/test1/test1.cpp | 0 .../c_runtime/isprint/test1/isprint.cpp | 0 .../c_runtime/isprint/test2/test2.cpp | 0 .../c_runtime/isspace/test1/test1.cpp | 0 .../c_runtime/isupper/test1/test1.cpp | 0 .../c_runtime/iswdigit/test1/test1.cpp | 0 .../c_runtime/iswprint/test1/test1.cpp | 0 .../c_runtime/iswspace/test1/test1.cpp | 0 .../c_runtime/iswupper/test1/test1.cpp | 0 .../c_runtime/isxdigit/test1/test1.cpp | 0 .../palsuite/c_runtime/llabs/test1/test1.cpp | 0 .../palsuite/c_runtime/log/test1/test1.cpp | 0 .../palsuite/c_runtime/log10/test1/test1.cpp | 0 .../palsuite/c_runtime/log10f/test1/test1.cpp | 0 .../palsuite/c_runtime/log2/test1/test1.cpp | 0 .../palsuite/c_runtime/log2f/test1/test1.cpp | 0 .../palsuite/c_runtime/logf/test1/test1.cpp | 0 .../palsuite/c_runtime/malloc/test1/test1.cpp | 0 .../palsuite/c_runtime/malloc/test2/test2.cpp | 0 .../palsuite/c_runtime/memchr/test1/test1.cpp | 0 .../palsuite/c_runtime/memcmp/test1/test1.cpp | 0 .../palsuite/c_runtime/memcpy/test1/test1.cpp | 0 .../c_runtime/memmove/test1/test1.cpp | 0 .../palsuite/c_runtime/memset/test1/test1.cpp | 0 .../palsuite/c_runtime/modf/test1/test1.cpp | 0 .../palsuite/c_runtime/modff/test1/test1.cpp | 0 .../palsuite/c_runtime/pow/test1/test1.cpp | 0 .../palsuite/c_runtime/powf/test1/test1.cpp | 0 .../tests/palsuite/c_runtime/printf/printf.h | 0 .../palsuite/c_runtime/printf/test1/test1.cpp | 0 .../c_runtime/printf/test10/test10.cpp | 0 .../c_runtime/printf/test11/test11.cpp | 0 .../c_runtime/printf/test12/test12.cpp | 0 .../c_runtime/printf/test13/test13.cpp | 0 .../c_runtime/printf/test14/test14.cpp | 0 .../c_runtime/printf/test15/test15.cpp | 0 .../c_runtime/printf/test16/test16.cpp | 0 .../c_runtime/printf/test17/test17.cpp | 0 .../c_runtime/printf/test18/test18.cpp | 0 .../c_runtime/printf/test19/test19.cpp | 0 .../palsuite/c_runtime/printf/test2/test2.cpp | 0 .../palsuite/c_runtime/printf/test3/test3.cpp | 0 .../palsuite/c_runtime/printf/test4/test4.cpp | 0 .../palsuite/c_runtime/printf/test5/test5.cpp | 0 .../palsuite/c_runtime/printf/test6/test6.cpp | 0 .../palsuite/c_runtime/printf/test7/test7.cpp | 0 .../palsuite/c_runtime/printf/test8/test8.cpp | 0 .../palsuite/c_runtime/printf/test9/test9.cpp | 0 .../palsuite/c_runtime/qsort/test1/test1.cpp | 0 .../palsuite/c_runtime/qsort/test2/test2.cpp | 0 .../c_runtime/rand_srand/test1/test1.cpp | 0 .../c_runtime/realloc/test1/test1.cpp | 0 .../palsuite/c_runtime/scalbn/test1/test1.cpp | 0 .../c_runtime/scalbnf/test1/test1.cpp | 0 .../palsuite/c_runtime/sin/test1/test1.cpp | 0 .../palsuite/c_runtime/sinf/test1/test1.cpp | 0 .../palsuite/c_runtime/sinh/test1/test1.cpp | 0 .../palsuite/c_runtime/sinhf/test1/test1.cpp | 0 .../palsuite/c_runtime/sprintf_s/sprintf_s.h | 0 .../c_runtime/sprintf_s/test1/test1.cpp | 0 .../c_runtime/sprintf_s/test10/test10.cpp | 0 .../c_runtime/sprintf_s/test11/test11.cpp | 0 .../c_runtime/sprintf_s/test12/test12.cpp | 0 .../c_runtime/sprintf_s/test13/test13.cpp | 0 .../c_runtime/sprintf_s/test14/test14.cpp | 0 .../c_runtime/sprintf_s/test15/test15.cpp | 0 .../c_runtime/sprintf_s/test16/test16.cpp | 0 .../c_runtime/sprintf_s/test17/test17.cpp | 0 .../c_runtime/sprintf_s/test18/test18.cpp | 0 .../c_runtime/sprintf_s/test19/test19.cpp | 0 .../c_runtime/sprintf_s/test2/test2.cpp | 0 .../c_runtime/sprintf_s/test3/test3.cpp | 0 .../c_runtime/sprintf_s/test4/test4.cpp | 0 .../c_runtime/sprintf_s/test6/test6.cpp | 0 .../c_runtime/sprintf_s/test7/test7.cpp | 0 .../c_runtime/sprintf_s/test8/test8.cpp | 0 .../c_runtime/sprintf_s/test9/test9.cpp | 0 .../palsuite/c_runtime/sqrt/test1/test1.cpp | 0 .../palsuite/c_runtime/sqrtf/test1/test1.cpp | 0 .../palsuite/c_runtime/sscanf_s/sscanf_s.h | 0 .../c_runtime/sscanf_s/test1/test1.cpp | 0 .../c_runtime/sscanf_s/test10/test10.cpp | 0 .../c_runtime/sscanf_s/test11/test11.cpp | 0 .../c_runtime/sscanf_s/test12/test12.cpp | 0 .../c_runtime/sscanf_s/test13/test13.cpp | 0 .../c_runtime/sscanf_s/test14/test14.cpp | 0 .../c_runtime/sscanf_s/test15/test15.cpp | 0 .../c_runtime/sscanf_s/test16/test16.cpp | 0 .../c_runtime/sscanf_s/test17/test17.cpp | 0 .../c_runtime/sscanf_s/test2/test2.cpp | 0 .../c_runtime/sscanf_s/test3/test3.cpp | 0 .../c_runtime/sscanf_s/test4/test4.cpp | 0 .../c_runtime/sscanf_s/test5/test5.cpp | 0 .../c_runtime/sscanf_s/test6/test6.cpp | 0 .../c_runtime/sscanf_s/test7/test7.cpp | 0 .../c_runtime/sscanf_s/test8/test8.cpp | 0 .../c_runtime/sscanf_s/test9/test9.cpp | 0 .../palsuite/c_runtime/strcat/test1/test1.cpp | 0 .../palsuite/c_runtime/strchr/test1/test1.cpp | 0 .../palsuite/c_runtime/strcmp/test1/test1.cpp | 0 .../palsuite/c_runtime/strcpy/test1/test1.cpp | 0 .../c_runtime/strcspn/test1/test1.cpp | 0 .../palsuite/c_runtime/strlen/test1/test1.cpp | 0 .../c_runtime/strncat/test1/test1.cpp | 0 .../c_runtime/strncmp/test1/test1.cpp | 0 .../c_runtime/strncpy/test1/test1.cpp | 0 .../c_runtime/strpbrk/test1/test1.cpp | 0 .../c_runtime/strrchr/test1/test1.cpp | 0 .../palsuite/c_runtime/strspn/test1/test1.cpp | 0 .../palsuite/c_runtime/strstr/test1/test1.cpp | 0 .../palsuite/c_runtime/strtod/test1/test1.cpp | 0 .../palsuite/c_runtime/strtod/test2/test2.cpp | 0 .../palsuite/c_runtime/strtok/test1/test1.cpp | 0 .../c_runtime/strtoul/test1/test1.cpp | 0 .../palsuite/c_runtime/swprintf/swprintf.h | 0 .../c_runtime/swprintf/test1/test1.cpp | 0 .../c_runtime/swprintf/test10/test10.cpp | 0 .../c_runtime/swprintf/test11/test11.cpp | 0 .../c_runtime/swprintf/test12/test12.cpp | 0 .../c_runtime/swprintf/test13/test13.cpp | 0 .../c_runtime/swprintf/test14/test14.cpp | 0 .../c_runtime/swprintf/test15/test15.cpp | 0 .../c_runtime/swprintf/test16/test16.cpp | 0 .../c_runtime/swprintf/test17/test17.cpp | 0 .../c_runtime/swprintf/test18/test18.cpp | 0 .../c_runtime/swprintf/test19/test19.cpp | 0 .../c_runtime/swprintf/test2/test2.cpp | 0 .../c_runtime/swprintf/test3/test3.cpp | 0 .../c_runtime/swprintf/test4/test4.cpp | 0 .../c_runtime/swprintf/test6/test6.cpp | 0 .../c_runtime/swprintf/test7/test7.cpp | 0 .../c_runtime/swprintf/test8/test8.cpp | 0 .../c_runtime/swprintf/test9/test9.cpp | 0 .../palsuite/c_runtime/swscanf/swscanf.h | 0 .../c_runtime/swscanf/test1/test1.cpp | 0 .../c_runtime/swscanf/test10/test10.cpp | 0 .../c_runtime/swscanf/test11/test11.cpp | 0 .../c_runtime/swscanf/test12/test12.cpp | 0 .../c_runtime/swscanf/test13/test13.cpp | 0 .../c_runtime/swscanf/test14/test14.cpp | 0 .../c_runtime/swscanf/test15/test15.cpp | 0 .../c_runtime/swscanf/test16/test16.cpp | 0 .../c_runtime/swscanf/test17/test17.cpp | 0 .../c_runtime/swscanf/test2/test2.cpp | 0 .../c_runtime/swscanf/test3/test3.cpp | 0 .../c_runtime/swscanf/test4/test4.cpp | 0 .../c_runtime/swscanf/test5/test5.cpp | 0 .../c_runtime/swscanf/test6/test6.cpp | 0 .../c_runtime/swscanf/test7/test7.cpp | 0 .../c_runtime/swscanf/test8/test8.cpp | 0 .../c_runtime/swscanf/test9/test9.cpp | 0 .../palsuite/c_runtime/tan/test1/test1.cpp | 0 .../palsuite/c_runtime/tanf/test1/test1.cpp | 0 .../palsuite/c_runtime/tanh/test1/test1.cpp | 0 .../palsuite/c_runtime/tanhf/test1/test1.cpp | 0 .../palsuite/c_runtime/time/test1/test1.cpp | 0 .../c_runtime/tolower/test1/test1.cpp | 0 .../c_runtime/toupper/test1/test1.cpp | 0 .../c_runtime/towlower/test1/test1.cpp | 0 .../c_runtime/towupper/test1/test1.cpp | 0 .../c_runtime/vfprintf/test1/test1.cpp | 0 .../c_runtime/vfprintf/test10/test10.cpp | 0 .../c_runtime/vfprintf/test11/test11.cpp | 0 .../c_runtime/vfprintf/test12/test12.cpp | 0 .../c_runtime/vfprintf/test13/test13.cpp | 0 .../c_runtime/vfprintf/test14/test14.cpp | 0 .../c_runtime/vfprintf/test15/test15.cpp | 0 .../c_runtime/vfprintf/test16/test16.cpp | 0 .../c_runtime/vfprintf/test17/test17.cpp | 0 .../c_runtime/vfprintf/test18/test18.cpp | 0 .../c_runtime/vfprintf/test19/test19.cpp | 0 .../c_runtime/vfprintf/test2/test2.cpp | 0 .../c_runtime/vfprintf/test3/test3.cpp | 0 .../c_runtime/vfprintf/test4/test4.cpp | 0 .../c_runtime/vfprintf/test5/test5.cpp | 0 .../c_runtime/vfprintf/test6/test6.cpp | 0 .../c_runtime/vfprintf/test7/test7.cpp | 0 .../c_runtime/vfprintf/test8/test8.cpp | 0 .../c_runtime/vfprintf/test9/test9.cpp | 0 .../palsuite/c_runtime/vfprintf/vfprintf.h | 0 .../c_runtime/vprintf/test1/test1.cpp | 0 .../c_runtime/vprintf/test10/test10.cpp | 0 .../c_runtime/vprintf/test11/test11.cpp | 0 .../c_runtime/vprintf/test12/test12.cpp | 0 .../c_runtime/vprintf/test13/test13.cpp | 0 .../c_runtime/vprintf/test14/test14.cpp | 0 .../c_runtime/vprintf/test15/test15.cpp | 0 .../c_runtime/vprintf/test16/test16.cpp | 0 .../c_runtime/vprintf/test17/test17.cpp | 0 .../c_runtime/vprintf/test18/test18.cpp | 0 .../c_runtime/vprintf/test19/test19.cpp | 0 .../c_runtime/vprintf/test2/test2.cpp | 0 .../c_runtime/vprintf/test3/test3.cpp | 0 .../c_runtime/vprintf/test4/test4.cpp | 0 .../c_runtime/vprintf/test5/test5.cpp | 0 .../c_runtime/vprintf/test6/test6.cpp | 0 .../c_runtime/vprintf/test7/test7.cpp | 0 .../c_runtime/vprintf/test8/test8.cpp | 0 .../c_runtime/vprintf/test9/test9.cpp | 0 .../palsuite/c_runtime/vprintf/vprintf.h | 0 .../c_runtime/vsprintf/test1/test1.cpp | 0 .../c_runtime/vsprintf/test10/test10.cpp | 0 .../c_runtime/vsprintf/test11/test11.cpp | 0 .../c_runtime/vsprintf/test12/test12.cpp | 0 .../c_runtime/vsprintf/test13/test13.cpp | 0 .../c_runtime/vsprintf/test14/test14.cpp | 0 .../c_runtime/vsprintf/test15/test15.cpp | 0 .../c_runtime/vsprintf/test16/test16.cpp | 0 .../c_runtime/vsprintf/test17/test17.cpp | 0 .../c_runtime/vsprintf/test18/test18.cpp | 0 .../c_runtime/vsprintf/test19/test19.cpp | 0 .../c_runtime/vsprintf/test2/test2.cpp | 0 .../c_runtime/vsprintf/test3/test3.cpp | 0 .../c_runtime/vsprintf/test4/test4.cpp | 0 .../c_runtime/vsprintf/test6/test6.cpp | 0 .../c_runtime/vsprintf/test7/test7.cpp | 0 .../c_runtime/vsprintf/test8/test8.cpp | 0 .../c_runtime/vsprintf/test9/test9.cpp | 0 .../palsuite/c_runtime/vsprintf/vsprintf.h | 0 .../c_runtime/vswprintf/test1/test1.cpp | 0 .../c_runtime/vswprintf/test10/test10.cpp | 0 .../c_runtime/vswprintf/test11/test11.cpp | 0 .../c_runtime/vswprintf/test12/test12.cpp | 0 .../c_runtime/vswprintf/test13/test13.cpp | 0 .../c_runtime/vswprintf/test14/test14.cpp | 0 .../c_runtime/vswprintf/test15/test15.cpp | 0 .../c_runtime/vswprintf/test16/test16.cpp | 0 .../c_runtime/vswprintf/test17/test17.cpp | 0 .../c_runtime/vswprintf/test18/test18.cpp | 0 .../c_runtime/vswprintf/test19/test19.cpp | 0 .../c_runtime/vswprintf/test2/test2.cpp | 0 .../c_runtime/vswprintf/test3/test3.cpp | 0 .../c_runtime/vswprintf/test4/test4.cpp | 0 .../c_runtime/vswprintf/test6/test6.cpp | 0 .../c_runtime/vswprintf/test7/test7.cpp | 0 .../c_runtime/vswprintf/test8/test8.cpp | 0 .../c_runtime/vswprintf/test9/test9.cpp | 0 .../palsuite/c_runtime/vswprintf/vswprintf.h | 0 .../palsuite/c_runtime/wcscat/test1/test1.cpp | 0 .../palsuite/c_runtime/wcschr/test1/test1.cpp | 0 .../palsuite/c_runtime/wcscmp/test1/test1.cpp | 0 .../palsuite/c_runtime/wcscpy/test1/test1.cpp | 0 .../palsuite/c_runtime/wcslen/test1/test1.cpp | 0 .../c_runtime/wcsncmp/test1/test1.cpp | 0 .../c_runtime/wcsncpy/test1/test1.cpp | 0 .../c_runtime/wcspbrk/test1/test1.cpp | 0 .../c_runtime/wcsrchr/test1/test1.cpp | 0 .../palsuite/c_runtime/wcsstr/test1/test1.cpp | 0 .../palsuite/c_runtime/wcstod/test1/test1.cpp | 0 .../palsuite/c_runtime/wcstod/test2/test2.cpp | 0 .../palsuite/c_runtime/wcstok/test1/test1.cpp | 0 .../c_runtime/wcstoul/test1/test1.cpp | 0 .../c_runtime/wcstoul/test2/test2.cpp | 0 .../c_runtime/wcstoul/test3/test3.cpp | 0 .../c_runtime/wcstoul/test4/test4.cpp | 0 .../c_runtime/wcstoul/test5/test5.cpp | 0 .../c_runtime/wcstoul/test6/test6.cpp | 0 .../c_runtime/wprintf/test1/test1.cpp | 0 .../c_runtime/wprintf/test2/test2.cpp | 0 .../palsuite/c_runtime/wprintf/wprintf.h | 0 .../pal/tests/palsuite/common/palsuite.cpp | 0 .../pal/tests/palsuite/common/palsuite.h | 0 .../pal/tests/palsuite/compilableTests.txt | 0 .../tests/palsuite/compileDisabledTests.txt | 0 .../event/nonshared/event.cpp | 0 .../event/nonshared/main.cpp | 0 .../object_management/event/shared/event.cpp | 0 .../object_management/event/shared/main.cpp | 0 .../mutex/nonshared/main.cpp | 0 .../mutex/nonshared/mutex.cpp | 0 .../object_management/mutex/shared/main.cpp | 0 .../object_management/mutex/shared/mutex.cpp | 0 .../composite/object_management/readme.txt | 0 .../semaphore/nonshared/main.cpp | 0 .../semaphore/nonshared/semaphore.cpp | 0 .../semaphore/shared/main.cpp | 0 .../semaphore/shared/semaphore.cpp | 0 .../criticalsection/criticalsection.cpp | 0 .../criticalsection/mainWrapper.cpp | 0 .../criticalsection/readme.txt | 0 .../nativecriticalsection/mtx_critsect.cpp | 0 .../nativecriticalsection/mtx_critsect.h | 0 .../pal_composite_native_cs.cpp | 0 .../nativecriticalsection/readme.txt | 0 .../nativecriticalsection/resultbuffer.cpp | 0 .../nativecriticalsection/resultbuffer.h | 0 .../nativecs_interlocked/hpitinterlock.s | 0 .../nativecs_interlocked/interlocked.cpp | 0 .../nativecs_interlocked/makefile | 0 .../nativecs_interlocked/mtx_critsect.cpp | 0 .../nativecs_interlocked/mtx_critsect.h | 0 .../nativecs_interlocked/notes.txt | 0 .../pal_composite_native_cs.cpp | 0 .../nativecs_interlocked/readme.txt | 0 .../nativecs_interlocked/resultbuffer.cpp | 0 .../nativecs_interlocked/resultbuffer.h | 0 .../nativecs_interlocked/sparcinterloc.s | 0 .../threadsuspension/mainWrapper.cpp | 0 .../threading/threadsuspension/readme.txt | 0 .../threadsuspension/threadsuspension.cpp | 0 .../mainWrapper.cpp | 0 .../threadsuspension_switchthread/readme.txt | 0 .../threadsuspension.cpp | 0 .../tests/palsuite/composite/wfmo/main.cpp | 0 .../tests/palsuite/composite/wfmo/mutex.cpp | 0 .../tests/palsuite/composite/wfmo/readme.txt | 0 .../debug_api/DebugBreak/test1/test1.cpp | 0 .../OutputDebugStringA/test1/helper.cpp | 0 .../OutputDebugStringA/test1/test1.cpp | 0 .../OutputDebugStringW/test1/test1.cpp | 0 .../WriteProcessMemory/test1/commonconsts.h | 0 .../WriteProcessMemory/test1/helper.cpp | 0 .../WriteProcessMemory/test1/test1.cpp | 0 .../WriteProcessMemory/test3/commonconsts.h | 0 .../WriteProcessMemory/test3/helper.cpp | 0 .../WriteProcessMemory/test3/test3.cpp | 0 .../WriteProcessMemory/test4/helper.cpp | 0 .../WriteProcessMemory/test4/test4.cpp | 0 .../palsuite/eventprovider/CMakeLists.txt | 2 +- .../eventprovider/EnableEventLogging.cpp | 0 .../test1/PAL_EXCEPT_FILTER.cpp | 0 .../test2/pal_except_filter.cpp | 0 .../test3/pal_except_filter.cpp | 0 .../test1/PAL_EXCEPT_FILTER_EX.cpp | 0 .../test2/pal_except_filter_ex.cpp | 0 .../test3/pal_except_filter.cpp | 0 .../PAL_TRY_EXCEPT/test1/PAL_TRY_EXCEPT.cpp | 0 .../PAL_TRY_EXCEPT/test2/PAL_TRY_EXCEPT.cpp | 0 .../test1/PAL_TRY_EXCEPT_EX.cpp | 0 .../test2/PAL_TRY_EXCEPT_EX.cpp | 0 .../test3/PAL_TRY_EXCEPT_EX.cpp | 0 .../test1/PAL_TRY_LEAVE_FINALLY.cpp | 0 .../RaiseException/test1/test1.cpp | 0 .../RaiseException/test2/test2.cpp | 0 .../RaiseException/test3/test.cpp | 0 .../pal_except/test1/test1.cpp | 0 .../pal_except/test2/test2.cpp | 0 .../pal_except/test3/test3.cpp | 0 .../pal_except/test4/test4.cpp | 0 .../pal_except/test5/test5.cpp | 0 .../pal_except/test6/test6.cpp | 0 .../pal_except/test7/test7.cpp | 0 .../pal_finally/test1/pal_finally.cpp | 0 .../pal_sxs/test1/CMakeLists.txt | 0 .../pal_sxs/test1/dlltest1.cpp | 0 .../pal_sxs/test1/dlltest1.src | 0 .../pal_sxs/test1/dlltest2.cpp | 0 .../pal_sxs/test1/dlltest2.src | 0 .../pal_sxs/test1/exceptionsxs.cpp | 0 .../pal_sxs/test1/testinfo.dat | 0 .../file_io/CopyFileA/test1/CopyFileA.cpp | 0 .../file_io/CopyFileA/test2/test2.cpp | 0 .../file_io/CopyFileA/test3/test3.cpp | 0 .../file_io/CopyFileA/test4/test4.cpp | 0 .../file_io/CopyFileW/test1/CopyFileW.cpp | 0 .../CopyFileW/test1/ExpectedResults.txt | 0 .../file_io/CopyFileW/test2/test2.cpp | 0 .../file_io/CopyFileW/test3/test3.cpp | 0 .../file_io/CreateFileA/test1/CreateFileA.cpp | 0 .../file_io/CreateFileA/test1/winoutput | 0 .../file_io/CreateFileW/test1/CreateFileW.cpp | 0 .../file_io/CreateFileW/test1/winoutput | 0 .../file_io/DeleteFileA/test1/DeleteFileA.cpp | 0 .../file_io/DeleteFileW/test1/DeleteFileW.cpp | 0 .../FILECanonicalizePath.cpp | 0 .../file_io/FindClose/test1/FindClose.cpp | 0 .../FindFirstFileA/test1/FindFirstFileA.cpp | 0 .../FindFirstFileW/test1/FindFirstFileW.cpp | 0 .../FindNextFileA/test1/FindNextFileA.cpp | 0 .../FindNextFileA/test2/findnextfilea.cpp | 0 .../FindNextFileW/test1/FindNextFileW.cpp | 0 .../FindNextFileW/test2/findnextfilew.cpp | 0 .../test1/FlushFileBuffers.cpp | 0 .../test1/GetConsoleOutputCP.cpp | 0 .../test1/GetCurrentDirectoryA.cpp | 0 .../test1/GetCurrentDirectoryW.cpp | 0 .../test1/.hidden_directory/keepme | 0 .../GetFileAttributesA/test1/.hidden_file | 0 .../test1/.hidden_ro_directory/keepme | 0 .../GetFileAttributesA/test1/.hidden_ro_file | 0 .../test1/GetFileAttributesA.cpp | 0 .../test1/no_directory/keepme | 0 .../file_io/GetFileAttributesA/test1/no_file | 0 .../test1/normal_test_directory/keepme | 0 .../GetFileAttributesA/test1/normal_test_file | 0 .../test1/ro_test_directory/keepme | 0 .../GetFileAttributesA/test1/ro_test_file | 0 .../test1/rw_directory/keepme | 0 .../file_io/GetFileAttributesA/test1/rw_file | 0 .../test1/.hidden_directory/anchor.txt | 0 .../GetFileAttributesExW/test1/.hidden_file | 0 .../test1/normal_test_directory/keepme | 0 .../test1/normal_test_file | 0 .../test1/ro_test_directory/keepme | 0 .../GetFileAttributesExW/test1/ro_test_file | 0 .../GetFileAttributesExW/test1/test1.cpp | 0 .../GetFileAttributesExW/test2/test2.cpp | 0 .../test1/.hidden_directory/keepme | 0 .../GetFileAttributesW/test1/.hidden_file | 0 .../test1/.hidden_ro_directory/keepme | 0 .../GetFileAttributesW/test1/.hidden_ro_file | 0 .../test1/GetFileAttributesW.cpp | 0 .../test1/no_directory/keepme | 0 .../file_io/GetFileAttributesW/test1/no_file | 0 .../test1/normal_test_directory/keepme | 0 .../GetFileAttributesW/test1/normal_test_file | 0 .../test1/ro_test_directory/keepme | 0 .../GetFileAttributesW/test1/ro_test_file | 0 .../file_io/GetFileAttributesW/test1/rw_file | 0 .../test1/rw_test_directory/keepme | 0 .../file_io/GetFileSize/test1/GetFileSize.cpp | 0 .../GetFileSizeEx/test1/GetFileSizeEx.cpp | 0 .../test1/GetFullPathNameA.cpp | 0 .../file_io/GetFullPathNameA/test2/test2.cpp | 0 .../file_io/GetFullPathNameA/test3/test3.cpp | 0 .../file_io/GetFullPathNameA/test4/test4.cpp | 0 .../test1/GetFullPathNameW.cpp | 0 .../file_io/GetFullPathNameW/test2/test2.cpp | 0 .../file_io/GetFullPathNameW/test3/test3.cpp | 0 .../file_io/GetFullPathNameW/test4/test4.cpp | 0 .../GetStdHandle/test1/GetStdHandle.cpp | 0 .../GetStdHandle/test2/GetStdHandle.cpp | 0 .../file_io/GetSystemTime/test1/test.cpp | 0 .../test1/GetSystemTimeAsFileTime.cpp | 0 .../test1/GetTempFileNameA.cpp | 0 .../test2/GetTempFileNameA.cpp | 0 .../test3/gettempfilenamea.cpp | 0 .../test1/GetTempFileNameW.cpp | 0 .../test2/GetTempFileNameW.cpp | 0 .../test3/gettempfilenamew.cpp | 0 .../GetTempPathW/test1/GetTempPathW.cpp | 0 .../MoveFileExA/test1/ExpectedResults.txt | 0 .../file_io/MoveFileExA/test1/MoveFileExA.cpp | 0 .../MoveFileExW/test1/ExpectedResults.txt | 0 .../file_io/MoveFileExW/test1/MoveFileExW.cpp | 0 .../ReadFile/test1/NonReadableFile.txt | 0 .../file_io/ReadFile/test1/ReadFile.cpp | 0 .../file_io/ReadFile/test2/ReadFile.cpp | 0 .../file_io/ReadFile/test3/ReadFile.cpp | 0 .../file_io/ReadFile/test4/readfile.cpp | 0 .../file_io/SearchPathW/test1/SearchPathW.cpp | 0 .../SetEndOfFile/test1/SetEndOfFile.cpp | 0 .../SetEndOfFile/test2/SetEndOfFile.cpp | 0 .../SetEndOfFile/test3/SetEndOfFile.cpp | 0 .../SetEndOfFile/test4/setendoffile.cpp | 0 .../file_io/SetEndOfFile/test5/test5.cpp | 0 .../SetFilePointer/test1/SetFilePointer.cpp | 0 .../SetFilePointer/test2/SetFilePointer.cpp | 0 .../SetFilePointer/test3/SetFilePointer.cpp | 0 .../SetFilePointer/test4/SetFilePointer.cpp | 0 .../SetFilePointer/test5/SetFilePointer.cpp | 0 .../SetFilePointer/test6/SetFilePointer.cpp | 0 .../SetFilePointer/test7/SetFilePointer.cpp | 0 .../file_io/WriteFile/test1/WriteFile.cpp | 0 .../file_io/WriteFile/test2/Results.txt | 0 .../file_io/WriteFile/test2/WriteFile.cpp | 0 .../file_io/WriteFile/test3/WriteFile.cpp | 0 .../file_io/WriteFile/test4/writefile.cpp | 0 .../file_io/WriteFile/test5/writefile.cpp | 0 .../file_io/errorpathnotfound/test1/test1.cpp | 0 .../file_io/errorpathnotfound/test2/test2.cpp | 0 .../gettemppatha/test1/gettemppatha.cpp | 0 .../CreateFileMapping_neg.cpp | 0 .../test1/CreateFileMappingW.cpp | 0 .../test2/CreateFileMappingW.cpp | 0 .../test3/CreateFileMappingW.cpp | 0 .../test4/CreateFileMappingW.cpp | 0 .../test5/CreateFileMappingW.cpp | 0 .../test6/CreateFileMappingW.cpp | 0 .../test7/createfilemapping.cpp | 0 .../test8/createfilemapping.cpp | 0 .../test9/createfilemapping.cpp | 0 .../FreeLibrary/test1/FreeLibrary.cpp | 0 .../FreeLibrary/test1/dlltest.cpp | 0 .../FreeLibrary/test2/test2.cpp | 0 .../test1/dlltest.cpp | 0 .../FreeLibraryAndExitThread/test1/test1.cpp | 0 .../test1/GetModuleFileNameA.cpp | 0 .../test2/GetModuleFileNameA.cpp | 0 .../test1/GetModuleFileNameW.cpp | 0 .../test2/GetModuleFileNameW.cpp | 0 .../GetProcAddress/test1/test1.cpp | 0 .../GetProcAddress/test1/testlib.cpp | 0 .../GetProcAddress/test2/test2.cpp | 0 .../GetProcAddress/test2/testlib.cpp | 0 .../LocalAlloc/test1/LocalAlloc.cpp | 0 .../LocalFree/test1/LocalFree.cpp | 0 .../LocalFree/test2/LocalFree.cpp | 0 .../MapViewOfFile/test1/MapViewOfFile.cpp | 0 .../MapViewOfFile/test2/MapViewOfFile.cpp | 0 .../MapViewOfFile/test3/MapViewOfFile.cpp | 0 .../MapViewOfFile/test4/mapviewoffile.cpp | 0 .../MapViewOfFile/test5/mapviewoffile.cpp | 0 .../MapViewOfFile/test6/mapviewoffile.cpp | 0 .../test1/OpenFileMappingW.cpp | 0 .../test2/OpenFileMappingW.cpp | 0 .../test3/OpenFileMappingW.cpp | 0 .../ProbeMemory_neg1/ProbeMemory_neg.cpp | 0 .../ProbeMemory/test1/ProbeMemory.cpp | 0 .../UnmapViewOfFile/test1/UnmapViewOfFile.cpp | 0 .../UnmapViewOfFile/test2/unmapviewoffile.cpp | 0 .../VirtualAlloc/test1/VirtualAlloc.cpp | 0 .../VirtualAlloc/test10/VirtualAlloc.cpp | 0 .../VirtualAlloc/test11/VirtualAlloc.cpp | 0 .../VirtualAlloc/test12/VirtualAlloc.cpp | 0 .../VirtualAlloc/test13/VirtualAlloc.cpp | 0 .../VirtualAlloc/test14/VirtualAlloc.cpp | 0 .../VirtualAlloc/test15/VirtualAlloc.cpp | 0 .../VirtualAlloc/test16/VirtualAlloc.cpp | 0 .../VirtualAlloc/test17/VirtualAlloc.cpp | 0 .../VirtualAlloc/test18/VirtualAlloc.cpp | 0 .../VirtualAlloc/test19/VirtualAlloc.cpp | 0 .../VirtualAlloc/test2/VirtualAlloc.cpp | 0 .../VirtualAlloc/test20/virtualalloc.cpp | 0 .../VirtualAlloc/test21/virtualalloc.cpp | 0 .../VirtualAlloc/test22/VirtualAlloc.cpp | 0 .../VirtualAlloc/test3/VirtualAlloc.cpp | 0 .../VirtualAlloc/test4/VirtualAlloc.cpp | 0 .../VirtualAlloc/test5/VirtualAlloc.cpp | 0 .../VirtualAlloc/test6/VirtualAlloc.cpp | 0 .../VirtualAlloc/test7/VirtualAlloc.cpp | 0 .../VirtualAlloc/test8/VirtualAlloc.cpp | 0 .../VirtualAlloc/test9/VirtualAlloc.cpp | 0 .../VirtualFree/test1/VirtualFree.cpp | 0 .../VirtualFree/test2/VirtualFree.cpp | 0 .../VirtualFree/test3/VirtualFree.cpp | 0 .../VirtualProtect/test1/VirtualProtect.cpp | 0 .../VirtualProtect/test2/VirtualProtect.cpp | 0 .../VirtualProtect/test3/VirtualProtect.cpp | 0 .../VirtualProtect/test4/VirtualProtect.cpp | 0 .../VirtualProtect/test6/VirtualProtect.cpp | 0 .../VirtualProtect/test7/VirtualProtect.cpp | 0 .../VirtualQuery/test1/VirtualQuery.cpp | 0 .../pal/tests/palsuite/issues.targets | 0 .../LoadLibraryA/test1/LoadLibraryA.cpp | 0 .../LoadLibraryA/test2/LoadLibraryA.cpp | 0 .../LoadLibraryA/test3/loadlibrarya.cpp | 0 .../LoadLibraryA/test5/loadlibrarya.cpp | 0 .../loader/LoadLibraryA/test6/dlltest.cpp | 0 .../LoadLibraryA/test6/loadlibrarya.cpp | 0 .../LoadLibraryA/test7/LoadLibraryA.cpp | 0 .../loader/LoadLibraryA/test8/dlltest.cpp | 0 .../LoadLibraryA/test8/loadlibrarya.cpp | 0 .../LoadLibraryW/test1/LoadLibraryW.cpp | 0 .../LoadLibraryW/test2/loadlibraryw.cpp | 0 .../LoadLibraryW/test3/loadlibraryw.cpp | 0 .../LoadLibraryW/test5/loadlibraryw.cpp | 0 .../CompareStringA/test1/test1.cpp | 0 .../CompareStringW/test1/test1.cpp | 0 .../locale_info/GetACP/test1/test1.cpp | 0 .../GetLocaleInfoW/test1/test1.cpp | 0 .../GetLocaleInfoW/test2/test2.cpp | 0 .../MultiByteToWideChar/test1/test1.cpp | 0 .../MultiByteToWideChar/test2/test2.cpp | 0 .../MultiByteToWideChar/test3/test3.cpp | 0 .../MultiByteToWideChar/test4/test4.cpp | 0 .../WideCharToMultiByte/test1/test1.cpp | 0 .../WideCharToMultiByte/test2/test2.cpp | 0 .../WideCharToMultiByte/test3/test3.cpp | 0 .../WideCharToMultiByte/test4/test4.cpp | 0 .../WideCharToMultiByte/test5/test5.cpp | 0 .../pal/tests/palsuite/manual-inspect.dat | 0 .../tests/palsuite/manual-unautomatable.dat | 0 .../miscellaneous/CGroup/test1/test.cpp | 0 .../miscellaneous/CloseHandle/test1/test.cpp | 0 .../miscellaneous/CloseHandle/test2/test.cpp | 0 .../miscellaneous/CreatePipe/test1/test1.cpp | 0 .../FlushInstructionCache/test1/test1.cpp | 0 .../FormatMessageW/test1/test.cpp | 0 .../FormatMessageW/test2/test.cpp | 0 .../FormatMessageW/test3/test.cpp | 0 .../FormatMessageW/test4/test.cpp | 0 .../FormatMessageW/test5/test.cpp | 0 .../FormatMessageW/test6/test.cpp | 0 .../FreeEnvironmentStringsW/test1/test.cpp | 0 .../FreeEnvironmentStringsW/test2/test.cpp | 0 .../GetCommandLineW/test1/test.cpp | 0 .../GetEnvironmentStringsW/test1/test.cpp | 0 .../GetEnvironmentVariableA/test1/test.cpp | 0 .../GetEnvironmentVariableA/test2/test.cpp | 0 .../GetEnvironmentVariableA/test3/test.cpp | 0 .../GetEnvironmentVariableA/test4/test.cpp | 0 .../GetEnvironmentVariableA/test5/test5.cpp | 0 .../GetEnvironmentVariableA/test6/test6.cpp | 0 .../GetEnvironmentVariableW/test1/test.cpp | 0 .../GetEnvironmentVariableW/test2/test.cpp | 0 .../GetEnvironmentVariableW/test3/test.cpp | 0 .../GetEnvironmentVariableW/test4/test.cpp | 0 .../GetEnvironmentVariableW/test5/test5.cpp | 0 .../GetEnvironmentVariableW/test6/test6.cpp | 0 .../miscellaneous/GetLastError/test1/test.cpp | 0 .../GetSystemInfo/test1/test.cpp | 0 .../miscellaneous/GetTickCount/test1/test.cpp | 0 .../GlobalMemoryStatusEx/test1/test.cpp | 0 .../InterLockedExchangeAdd/test1/test.cpp | 0 .../InterlockedBit/test1/test.cpp | 0 .../InterlockedBit/test2/test.cpp | 0 .../InterlockedCompareExchange/test1/test.cpp | 0 .../InterlockedCompareExchange/test2/test.cpp | 0 .../test1/test.cpp | 0 .../test2/test.cpp | 0 .../test1/test.cpp | 0 .../InterlockedDecrement/test1/test.cpp | 0 .../InterlockedDecrement/test2/test.cpp | 0 .../InterlockedDecrement64/test1/test.cpp | 0 .../InterlockedDecrement64/test2/test.cpp | 0 .../InterlockedExchange/test1/test.cpp | 0 .../InterlockedExchange64/test1/test.cpp | 0 .../test1/InterlockedExchangePointer.cpp | 0 .../InterlockedIncrement/test1/test.cpp | 0 .../InterlockedIncrement/test2/test.cpp | 0 .../InterlockedIncrement64/test1/test.cpp | 0 .../InterlockedIncrement64/test2/test.cpp | 0 .../IsBadCodePtr/test1/test1.cpp | 0 .../miscellaneous/IsBadReadPtr/test1/test.cpp | 0 .../IsBadWritePtr/test1/test.cpp | 0 .../IsBadWritePtr/test2/test2.cpp | 0 .../IsBadWritePtr/test3/test3.cpp | 0 .../miscellaneous/MessageBoxW/test1/test.cpp | 0 .../miscellaneous/MessageBoxW/test2/test.cpp | 0 .../SetEnvironmentVariableA/test1/test1.cpp | 0 .../SetEnvironmentVariableA/test2/test2.cpp | 0 .../SetEnvironmentVariableA/test3/test3.cpp | 0 .../SetEnvironmentVariableA/test4/test4.cpp | 0 .../SetEnvironmentVariableW/test1/test.cpp | 0 .../SetEnvironmentVariableW/test2/test.cpp | 0 .../SetEnvironmentVariableW/test3/test3.cpp | 0 .../SetEnvironmentVariableW/test4/test4.cpp | 0 .../miscellaneous/SetLastError/test1/test.cpp | 0 .../miscellaneous/_i64tow/test1/test1.cpp | 0 .../queryperformancecounter/test1/test1.cpp | 0 .../queryperformancefrequency/test1/test1.cpp | 0 .../test1/PAL_GetUserTempDirectoryW.cpp | 0 .../test1/PAL_Initialize_Terminate.cpp | 0 .../test2/pal_initialize_twice.cpp | 0 ...AL_RegisterLibraryW_UnregisterLibraryW.cpp | 0 .../test2_neg/reg_unreg_libraryw_neg.cpp | 0 .../PAL_errno/test1/PAL_errno.cpp | 0 .../PAL_get_stderr/test1/PAL_get_stderr.cpp | 0 .../PAL_get_stdin/test1/PAL_get_stdin.cpp | 0 .../PAL_get_stdout/test1/PAL_get_stdout.cpp | 0 .../pal/tests/palsuite/paltestlist.txt | 0 .../palsuite/paltestlist_to_be_reviewed.txt | 0 .../{src => }/pal/tests/palsuite/paltests.cpp | 0 .../tests/palsuite/producepaltestlist.proj | 0 .../pal/tests/palsuite/runpaltests.sh | 0 .../pal/tests/palsuite/runpaltestshelix.sh | 0 .../pal/tests/palsuite/samples/test1/test.cpp | 0 .../pal/tests/palsuite/samples/test2/test.cpp | 0 .../pal/tests/palsuite/smoketest.script | 0 .../pal/tests/palsuite/tests-manual.dat | 0 .../threading/CreateEventW/test1/test1.cpp | 0 .../threading/CreateEventW/test2/test2.cpp | 0 .../threading/CreateEventW/test3/test3.cpp | 0 .../test1/CreateMutexW.cpp | 0 .../test2/CreateMutexW.cpp | 0 .../CreateProcessW/test1/childProcess.cpp | 0 .../CreateProcessW/test1/parentProcess.cpp | 0 .../CreateProcessW/test2/childprocess.cpp | 0 .../CreateProcessW/test2/parentprocess.cpp | 0 .../threading/CreateProcessW/test2/test2.h | 0 .../test1/CreateSemaphore.cpp | 0 .../test2/CreateSemaphore.cpp | 0 .../test3/createsemaphore.cpp | 0 .../threading/CreateThread/test1/test1.cpp | 0 .../threading/CreateThread/test2/test2.cpp | 0 .../threading/CreateThread/test3/test3.cpp | 0 .../test1/InitializeCriticalSection.cpp | 0 .../CriticalSectionFunctions/test2/test2.cpp | 0 .../CriticalSectionFunctions/test3/test3.cpp | 0 .../CriticalSectionFunctions/test4/test4.cpp | 0 .../CriticalSectionFunctions/test5/test5.cpp | 0 .../CriticalSectionFunctions/test6/test6.cpp | 0 .../CriticalSectionFunctions/test7/test7.cpp | 0 .../CriticalSectionFunctions/test8/test8.cpp | 0 .../DisableThreadLibraryCalls/test1/test1.cpp | 0 .../test1/testinfo.dat | 0 .../test1/testlib.cpp | 0 .../DisableThreadLibraryCalls/test2/test2.cpp | 0 .../test2/testinfo.dat | 0 .../threading/DuplicateHandle/test1/test1.cpp | 0 .../DuplicateHandle/test10/test10.cpp | 0 .../DuplicateHandle/test11/childprocess.cpp | 0 .../DuplicateHandle/test11/myexitcode.h | 0 .../DuplicateHandle/test11/test11.cpp | 0 .../DuplicateHandle/test12/test12.cpp | 0 .../threading/DuplicateHandle/test2/test2.cpp | 0 .../threading/DuplicateHandle/test3/test3.cpp | 0 .../threading/DuplicateHandle/test4/test4.cpp | 0 .../threading/DuplicateHandle/test5/test5.cpp | 0 .../threading/DuplicateHandle/test6/test6.cpp | 0 .../threading/DuplicateHandle/test7/test7.cpp | 0 .../threading/DuplicateHandle/test8/test8.cpp | 0 .../threading/DuplicateHandle/test9/test9.cpp | 0 .../ExitProcess/test1/ExitProcess.cpp | 0 .../threading/ExitProcess/test2/test2.cpp | 0 .../threading/ExitProcess/test3/test3.cpp | 0 .../threading/ExitThread/test1/test1.cpp | 0 .../ExitThread/test2/childprocess.cpp | 0 .../threading/ExitThread/test2/myexitcode.h | 0 .../threading/ExitThread/test2/test2.cpp | 0 .../threading/ExitThread/test3/dllmain.cpp | 0 .../threading/ExitThread/test3/test3.cpp | 0 .../threading/ExitThread/test3/testinfo.dat | 0 .../GetCurrentProcess/test1/process.cpp | 0 .../GetCurrentProcessId/test1/processId.cpp | 0 .../GetCurrentThread/test1/thread.cpp | 0 .../GetCurrentThread/test2/test2.cpp | 0 .../GetCurrentThreadId/test1/threadId.cpp | 0 .../GetExitCodeProcess/test1/childProcess.cpp | 0 .../GetExitCodeProcess/test1/myexitcode.h | 0 .../GetExitCodeProcess/test1/test1.cpp | 0 .../threading/GetProcessTimes/test2/test2.cpp | 0 .../threading/GetThreadTimes/test1/test1.cpp | 0 .../threading/NamedMutex/test1/namedmutex.cpp | 0 .../threading/NamedMutex/test1/nopal.cpp | 0 .../threading/OpenEventW/test1/test1.cpp | 0 .../threading/OpenEventW/test2/test2.cpp | 0 .../OpenEventW/test3/childprocess.cpp | 0 .../threading/OpenEventW/test3/test3.cpp | 0 .../threading/OpenEventW/test4/test4.cpp | 0 .../threading/OpenEventW/test5/test5.cpp | 0 .../OpenProcess/test1/childProcess.cpp | 0 .../threading/OpenProcess/test1/myexitcode.h | 0 .../threading/OpenProcess/test1/test1.cpp | 0 .../QueryThreadCycleTime/test1/test1.cpp | 0 .../threading/QueueUserAPC/test1/test1.cpp | 0 .../threading/QueueUserAPC/test2/test2.cpp | 0 .../threading/QueueUserAPC/test3/test3.cpp | 0 .../threading/QueueUserAPC/test4/test4.cpp | 0 .../threading/QueueUserAPC/test5/test5.cpp | 0 .../threading/QueueUserAPC/test6/test6.cpp | 0 .../threading/QueueUserAPC/test7/test7.cpp | 0 .../ReleaseMutex/test3/ReleaseMutex.cpp | 0 .../threading/ResetEvent/test1/test1.cpp | 0 .../threading/ResetEvent/test2/test2.cpp | 0 .../threading/ResetEvent/test3/test3.cpp | 0 .../threading/ResetEvent/test4/test4.cpp | 0 .../threading/ResumeThread/test1/test1.cpp | 0 .../threading/SetErrorMode/test1/test1.cpp | 0 .../threading/SetEvent/test1/test1.cpp | 0 .../threading/SetEvent/test2/test2.cpp | 0 .../threading/SetEvent/test3/test3.cpp | 0 .../threading/SetEvent/test4/test4.cpp | 0 .../SignalObjectAndWaitTest.cpp | 0 .../palsuite/threading/Sleep/test1/Sleep.cpp | 0 .../palsuite/threading/Sleep/test2/sleep.cpp | 0 .../threading/SleepEx/test1/test1.cpp | 0 .../threading/SleepEx/test2/test2.cpp | 0 .../threading/SwitchToThread/test1/test1.cpp | 0 .../test1/TerminateProcess.cpp | 0 .../ThreadPriority/test1/ThreadPriority.cpp | 0 .../WaitForMultipleObjects/test1/test1.cpp | 0 .../WaitForMultipleObjectsEx/test1/test1.cpp | 0 .../WaitForMultipleObjectsEx/test2/test2.cpp | 0 .../WaitForMultipleObjectsEx/test3/test3.cpp | 0 .../WaitForMultipleObjectsEx/test4/test4.cpp | 0 .../test5/commonconsts.h | 0 .../WaitForMultipleObjectsEx/test5/helper.cpp | 0 .../WaitForMultipleObjectsEx/test5/test5.cpp | 0 .../WaitForMultipleObjectsEx/test6/child6.cpp | 0 .../WaitForMultipleObjectsEx/test6/test6.cpp | 0 .../WFSOExMutexTest/WFSOExMutexTest.cpp | 0 .../WFSOExSemaphoreTest.cpp | 0 .../WFSOExThreadTest/WFSOExThreadTest.cpp | 0 .../WFSOMutexTest/WFSOMutexTest.cpp | 0 .../WFSOProcessTest/ChildProcess.cpp | 0 .../WFSOProcessTest/WFSOProcessTest.cpp | 0 .../WFSOSemaphoreTest/WFSOSemaphoreTest.cpp | 0 .../WFSOThreadTest/WFSOThreadTest.cpp | 0 .../WaitForSingleObject/test1/test1.cpp | 0 .../threading/YieldProcessor/test1/test1.cpp | 0 .../threading/releasesemaphore/test1/test.cpp | 0 .../{src => }/pal/tools/gen-dactable-rva.sh | 0 src/coreclr/{src => }/pal/tools/preptests.sh | 0 .../{src => }/pal/tools/setup-ubuntuvm.sh | 0 src/coreclr/{src => }/pal/tools/smarty.sh | 0 src/coreclr/{src => }/palrt/CMakeLists.txt | 0 src/coreclr/{src => }/palrt/bstr.cpp | 0 src/coreclr/{src => }/palrt/coguid.cpp | 0 src/coreclr/{src => }/palrt/comem.cpp | 0 src/coreclr/{src => }/palrt/common.h | 0 src/coreclr/{src => }/palrt/guid.cpp | 0 src/coreclr/{src => }/palrt/memorystream.cpp | 0 src/coreclr/{src => }/palrt/path.cpp | 0 src/coreclr/{src => }/palrt/shlwapip.h | 0 src/coreclr/{src => }/palrt/variant.cpp | 0 .../{src => }/scripts/genDummyProvider.py | 0 .../{src => }/scripts/genEtwProvider.py | 0 src/coreclr/{src => }/scripts/genEventPipe.py | 0 src/coreclr/{src => }/scripts/genEventing.py | 0 .../{src => }/scripts/genEventingTests.py | 0 .../{src => }/scripts/genLttngProvider.py | 0 .../scripts/genRuntimeEventSources.py | 0 src/coreclr/{src => }/scripts/pgocheck.py | 0 src/coreclr/{src => }/scripts/scripts.pyproj | 0 src/coreclr/scripts/superpmi.py | 8 +- src/coreclr/{src => }/scripts/utilities.py | 0 src/coreclr/src/CMakeLists.txt | 102 ------------- src/coreclr/src/Directory.Build.props | 9 -- src/coreclr/src/Directory.Build.targets | 23 --- src/coreclr/{src => }/tools/CMakeLists.txt | 0 .../tools/Common/CommandLine/Argument.cs | 0 .../Common/CommandLine/ArgumentCommand.cs | 0 .../Common/CommandLine/ArgumentCommand_1.cs | 0 .../tools/Common/CommandLine/ArgumentLexer.cs | 0 .../Common/CommandLine/ArgumentList_1.cs | 0 .../Common/CommandLine/ArgumentParser.cs | 0 .../Common/CommandLine/ArgumentSyntax.cs | 0 .../CommandLine/ArgumentSyntaxException.cs | 0 .../CommandLine/ArgumentSyntax_Definers.cs | 0 .../tools/Common/CommandLine/ArgumentToken.cs | 0 .../tools/Common/CommandLine/Argument_1.cs | 0 .../CommandLine/CommandLineException.cs | 0 .../Common/CommandLine/CommandLineHelpers.cs | 0 .../tools/Common/CommandLine/Enumerable.cs | 0 .../Common/CommandLine/HelpTextGenerator.cs | 0 .../Common/CommandLine/Resources/Strings.resx | 0 .../Compiler/CodeGenerationFailedException.cs | 0 .../Common/Compiler/CompilationBuilder.cs | 0 .../Common/Compiler/CompilationModuleGroup.cs | 0 .../CompilerTypeSystemContext.Validation.cs | 0 .../Compiler/CompilerTypeSystemContext.cs | 0 .../Common/Compiler/CoreRTNameMangler.cs | 0 .../DependencyAnalysis/AssemblyStubNode.cs | 0 .../DependencyAnalysis/CompilerComparer.cs | 0 .../EmbeddedDataContainerNode.cs | 0 .../DependencyAnalysis/IMethodBodyNode.cs | 0 .../DependencyAnalysis/IMethodNode.cs | 0 .../DependencyAnalysis/INodeWithCodeInfo.cs | 0 .../INodeWithRuntimeDeterminedDependencies.cs | 0 .../DependencyAnalysis/ISortableNode.cs | 0 .../DependencyAnalysis/ISymbolNode.cs | 0 .../MethodReadOnlyDataNode.cs | 0 .../ObjectAndOffsetSymbolNode.cs | 0 .../DependencyAnalysis/ObjectDataBuilder.cs | 0 .../Compiler/DependencyAnalysis/ObjectNode.cs | 0 .../DependencyAnalysis/ObjectNodeSection.cs | 0 .../Compiler/DependencyAnalysis/Relocation.cs | 0 .../ShadowConcreteMethodNode.cs | 0 .../SortableDependencyNode.cs | 0 .../Target_ARM/ARMEmitter.cs | 0 .../DependencyAnalysis/Target_ARM/Register.cs | 0 .../Target_ARM/TargetRegisterMap.cs | 0 .../Target_ARM64/ARM64Emitter.cs | 0 .../Target_ARM64/AddrMode.cs | 0 .../Target_ARM64/Register.cs | 0 .../Target_ARM64/TargetRegisterMap.cs | 0 .../DependencyAnalysis/Target_X64/AddrMode.cs | 0 .../DependencyAnalysis/Target_X64/Register.cs | 0 .../Target_X64/TargetRegisterMap.cs | 0 .../Target_X64/X64Emitter.cs | 0 .../DependencyAnalysis/Target_X86/AddrMode.cs | 0 .../DependencyAnalysis/Target_X86/Register.cs | 0 .../Target_X86/TargetRegisterMap.cs | 0 .../Target_X86/X86Emitter.cs | 0 .../Compiler/DependencyTrackingLevel.cs | 0 .../Compiler/DevirtualizationManager.cs | 0 .../Compiler/HardwareIntrinsicHelpers.cs | 0 .../Compiler/ICompilationRootProvider.cs | 0 .../Common/Compiler/InstructionSetSupport.cs | 0 .../InternalCompilerErrorException.cs | 0 .../{src => }/tools/Common/Compiler/Logger.cs | 0 .../tools/Common/Compiler/NameMangler.cs | 0 .../Compiler/SingleMethodRootProvider.cs | 0 .../tools/Common/Compiler/TypeExtensions.cs | 0 .../Compiler/VectorFieldLayoutAlgorithm.cs | 0 .../Internal/NativeFormat/NativeFormat.cs | 0 .../NativeFormatWriter.Primitives.cs | 0 .../NativeFormat/NativeFormatWriter.cs | 0 .../Common/Internal/Runtime/CorConstants.cs | 0 .../Common/Internal/Runtime/ModuleHeaders.cs | 0 .../Internal/Runtime/ReadyToRunConstants.cs | 0 .../Runtime/ReadyToRunInstructionSet.cs | 0 .../Runtime/ReadyToRunInstructionSetHelper.cs | 0 .../tools/Common/Internal/Text/Utf8String.cs | 0 .../Common/Internal/Text/Utf8StringBuilder.cs | 0 .../tools/Common/JitInterface/CorInfoBase.cs | 0 .../Common/JitInterface/CorInfoHelpFunc.cs | 0 .../JitInterface/CorInfoImpl.Intrinsics.cs | 0 .../tools/Common/JitInterface/CorInfoImpl.cs | 0 .../JitInterface/CorInfoInstructionSet.cs | 0 .../JitInterface/CorInfoTypes.VarInfo.cs | 0 .../tools/Common/JitInterface/CorInfoTypes.cs | 0 .../Common/JitInterface/JitConfigProvider.cs | 0 .../tools/Common/JitInterface/MemoryHelper.cs | 0 .../SystemVStructClassificator.cs | 0 .../ThunkGenerator/InstructionSetDesc.txt | 0 .../ThunkGenerator/InstructionSetGenerator.cs | 0 .../JitInterface/ThunkGenerator/Program.cs | 0 .../ThunkGenerator/ThunkGenerator.csproj | 0 .../ThunkGenerator/ThunkInput.txt | 0 .../JitInterface/ThunkGenerator/gen.bat | 0 .../Common/JitInterface/ThunkGenerator/gen.sh | 0 .../tools/Common/JitInterface/TypeString.cs | 0 .../Common/JitInterface/UnboxingMethodDesc.cs | 0 .../tools/Common/Sorting/ArrayAccessor.cs | 0 .../Common/Sorting/ICompareAsEqualAction.cs | 0 .../Sorting/ISortableDataStructureAccessor.cs | 0 .../tools/Common/Sorting/ListAccessor.cs | 0 .../tools/Common/Sorting/MergeSort.cs | 0 .../tools/Common/Sorting/MergeSortCore.cs | 0 .../Collections/Generic/ArrayBuilder.cs | 0 .../tools/Common/System/FormattingHelpers.cs | 0 .../TypeSystem/Canon/ArrayType.Canon.cs | 0 .../TypeSystem/Canon/ByRefType.Canon.cs | 0 .../TypeSystem/Canon/CanonTypes.Diagnostic.cs | 0 .../TypeSystem/Canon/CanonTypes.Interop.cs | 0 .../TypeSystem/Canon/CanonTypes.Sorting.cs | 0 .../Common/TypeSystem/Canon/CanonTypes.cs | 0 .../Common/TypeSystem/Canon/DefType.Canon.cs | 0 .../Canon/FunctionPointerType.Canon.cs | 0 .../Canon/GenericParameterDesc.Canon.cs | 0 .../Canon/InstantiatedMethod.Canon.cs | 0 .../Canon/InstantiatedType.Canon.cs | 0 .../TypeSystem/Canon/MetadataType.Canon.cs | 0 .../TypeSystem/Canon/MethodDelegator.Canon.cs | 0 .../TypeSystem/Canon/MethodDesc.Canon.cs | 0 .../Canon/MethodForInstantiatedType.Canon.cs | 0 .../Canon/ParameterizedType.Canon.cs | 0 .../TypeSystem/Canon/PointerType.Canon.cs | 0 .../Canon/SignatureVariable.Canon.cs | 0 .../StandardCanonicalizationAlgorithm.cs | 0 .../Common/TypeSystem/Canon/TypeDesc.Canon.cs | 0 .../Canon/TypeSystemContext.Canon.cs | 0 .../TypeSystem/CodeGen/FieldDesc.CodeGen.cs | 0 .../CodeGen/MethodDelegator.CodeGen.cs | 0 .../TypeSystem/CodeGen/MethodDesc.CodeGen.cs | 0 .../CodeGen/TargetDetails.CodeGen.cs | 0 .../TypeSystem/CodeGen/TypeDesc.CodeGen.cs | 0 .../TypeSystem/Common/AlignmentHelper.cs | 0 .../Common/ArrayMethod.Diagnostic.cs | 0 .../ArrayOfTRuntimeInterfacesAlgorithm.cs | 0 .../Common/TypeSystem/Common/ArrayType.cs | 0 .../BaseTypeRuntimeInterfacesAlgorithm.cs | 0 .../Common/TypeSystem/Common/ByRefType.cs | 0 .../Common/TypeSystem/Common/CastingHelper.cs | 0 .../Common/ConstructedTypeRewritingHelpers.cs | 0 .../TypeSystem/Common/DefType.Diagnostic.cs | 0 .../Common/DefType.Dummy.Diagnostic.cs | 0 .../TypeSystem/Common/DefType.FieldLayout.cs | 0 .../tools/Common/TypeSystem/Common/DefType.cs | 0 .../TypeSystem/Common/ExceptionStringID.cs | 0 .../Common/ExplicitLayoutValidator.cs | 0 .../Common/FieldDesc.FieldLayout.cs | 0 .../TypeSystem/Common/FieldDesc.ToString.cs | 0 .../Common/TypeSystem/Common/FieldDesc.cs | 0 .../Common/FieldForInstantiatedType.cs | 0 .../TypeSystem/Common/FieldLayoutAlgorithm.cs | 0 .../TypeSystem/Common/FunctionPointerType.cs | 0 .../Common/GenericParameterDesc.Diagnostic.cs | 0 .../GenericParameterDesc.Dummy.Diagnostic.cs | 0 .../TypeSystem/Common/GenericParameterDesc.cs | 0 .../Common/TypeSystem/Common/IAssemblyDesc.cs | 0 .../TypeSystem/Common/IModuleResolver.cs | 0 .../Common/InstantiatedMethod.Diagnostic.cs | 0 .../TypeSystem/Common/InstantiatedMethod.cs | 0 .../Common/InstantiatedType.Diagnostic.cs | 0 .../Common/InstantiatedType.Interfaces.cs | 0 .../Common/InstantiatedType.MethodImpls.cs | 0 .../TypeSystem/Common/InstantiatedType.cs | 0 .../Common/TypeSystem/Common/Instantiation.cs | 0 .../Common/TypeSystem/Common/LayoutInt.cs | 0 .../Common/TypeSystem/Common/LinqPoison.cs | 0 .../Common/LocalVariableDefinition.cs | 0 .../Common/MetadataFieldLayoutAlgorithm.cs | 0 .../MetadataRuntimeInterfacesAlgorithm.cs | 0 .../Common/MetadataType.Interfaces.cs | 0 .../Common/MetadataType.MethodImpls.cs | 0 .../Common/TypeSystem/Common/MetadataType.cs | 0 .../Common/MetadataTypeSystemContext.cs | 0 .../Common/MetadataVirtualMethodAlgorithm.cs | 0 .../Common/MethodDelegator.Diagnostic.cs | 0 .../TypeSystem/Common/MethodDelegator.cs | 0 .../Common/MethodDesc.Diagnostic.cs | 0 .../Common/MethodDesc.Dummy.Diagnostic.cs | 0 .../TypeSystem/Common/MethodDesc.ToString.cs | 0 .../Common/TypeSystem/Common/MethodDesc.cs | 0 .../MethodForInstantiatedType.Diagnostic.cs | 0 .../Common/MethodForInstantiatedType.cs | 0 .../Common/TypeSystem/Common/ModuleDesc.cs | 0 .../TypeSystem/Common/ParameterizedType.cs | 0 .../Common/TypeSystem/Common/PointerType.cs | 0 .../Common/Properties/Resources.resx | 0 .../TypeSystem/Common/PropertySignature.cs | 0 .../Common/RuntimeInterfacesAlgorithm.cs | 0 .../TypeSystem/Common/SignatureVariable.cs | 0 .../Common/TargetDetails.ToString.cs | 0 .../Common/TypeSystem/Common/TargetDetails.cs | 0 .../TypeSystem/Common/ThreadSafeFlags.cs | 0 .../TypeSystem/Common/ThrowHelper.Common.cs | 0 .../Common/TypeSystem/Common/ThrowHelper.cs | 0 .../TypeSystem/Common/TypeDesc.Interfaces.cs | 0 .../TypeSystem/Common/TypeDesc.ToString.cs | 0 .../Common/TypeSystem/Common/TypeDesc.cs | 0 .../Common/TypeSystem/Common/TypeFlags.cs | 0 .../Common/TypeHashingAlgorithms.cs | 0 .../Common/TypeSystemConstraintsHelpers.cs | 0 .../TypeSystem/Common/TypeSystemContext.cs | 0 .../TypeSystem/Common/TypeSystemEntity.cs | 0 .../Common/TypeSystemException.Resources.cs | 0 .../TypeSystem/Common/TypeSystemException.cs | 0 .../TypeSystem/Common/TypeSystemHelpers.cs | 0 .../Common/UniversalCanonLayoutAlgorithm.cs | 0 .../CustomAttributeTypeNameFormatter.cs | 0 .../CustomAttributeTypeNameParser.cs | 0 .../Common/Utilities/DebugNameFormatter.cs | 0 .../ExceptionTypeNameFormatter.Metadata.cs | 0 .../Utilities/ExceptionTypeNameFormatter.cs | 0 .../Utilities/GCPointerMap.Algorithm.cs | 0 .../Common/Utilities/GCPointerMap.cs | 0 .../Utilities/LockFreeReaderHashtable.cs | 0 .../Common/Utilities/TypeNameFormatter.cs | 0 .../Common/VirtualMethodAlgorithm.cs | 0 .../Common/TypeSystem/Common/WellKnownType.cs | 0 .../Ecma/CachingMetadataStringDecoder.cs | 0 .../Ecma/CustomAttributeTypeProvider.cs | 0 .../TypeSystem/Ecma/EcmaAssembly.Symbols.cs | 0 .../Common/TypeSystem/Ecma/EcmaAssembly.cs | 0 .../TypeSystem/Ecma/EcmaField.CodeGen.cs | 0 .../Ecma/EcmaField.Serialization.cs | 0 .../TypeSystem/Ecma/EcmaField.Sorting.cs | 0 .../tools/Common/TypeSystem/Ecma/EcmaField.cs | 0 .../Ecma/EcmaGenericParameter.Diagnostic.cs | 0 .../Ecma/EcmaGenericParameter.Sorting.cs | 0 .../TypeSystem/Ecma/EcmaGenericParameter.cs | 0 .../TypeSystem/Ecma/EcmaMethod.Diagnostic.cs | 0 .../TypeSystem/Ecma/EcmaMethod.Sorting.cs | 0 .../Common/TypeSystem/Ecma/EcmaMethod.cs | 0 .../TypeSystem/Ecma/EcmaModule.Sorting.cs | 0 .../TypeSystem/Ecma/EcmaModule.Symbols.cs | 0 .../Common/TypeSystem/Ecma/EcmaModule.cs | 0 .../TypeSystem/Ecma/EcmaSignatureParser.cs | 0 .../TypeSystem/Ecma/EcmaType.Diagnostic.cs | 0 .../TypeSystem/Ecma/EcmaType.Interfaces.cs | 0 .../TypeSystem/Ecma/EcmaType.MethodImpls.cs | 0 .../TypeSystem/Ecma/EcmaType.Serialization.cs | 0 .../TypeSystem/Ecma/EcmaType.Sorting.cs | 0 .../tools/Common/TypeSystem/Ecma/EcmaType.cs | 0 .../Ecma/IMetadataStringDecoderProvider.cs | 0 .../TypeSystem/Ecma/MetadataExtensions.cs | 0 .../TypeSystem/Ecma/PrimitiveTypeProvider.cs | 0 .../Ecma/SymbolReader/PdbSymbolReader.cs | 0 .../SymbolReader/PortablePdbSymbolReader.cs | 0 .../SymbolReader/UnmanagedPdbSymbolReader.cs | 0 .../TypeSystem/IL/EcmaMethodIL.Symbols.cs | 0 .../Common/TypeSystem/IL/EcmaMethodIL.cs | 0 .../Common/TypeSystem/IL/HelperExtensions.cs | 0 .../Common/TypeSystem/IL/ILDisassembler.cs | 0 .../tools/Common/TypeSystem/IL/ILImporter.cs | 0 .../tools/Common/TypeSystem/IL/ILOpcode.cs | 0 .../Common/TypeSystem/IL/ILOpcodeHelper.cs | 0 .../tools/Common/TypeSystem/IL/ILProvider.cs | 0 .../Common/TypeSystem/IL/ILStackHelper.cs | 0 .../TypeSystem/IL/InstantiatedMethodIL.cs | 0 .../Common/TypeSystem/IL/MethodIL.Symbols.cs | 0 .../tools/Common/TypeSystem/IL/MethodIL.cs | 0 .../Common/TypeSystem/IL/MethodILDebugView.cs | 0 .../Common/TypeSystem/IL/StackValueKind.cs | 0 .../TypeSystem/IL/Stubs/ComparerIntrinsics.cs | 0 .../Common/TypeSystem/IL/Stubs/ILEmitter.cs | 0 .../IL/Stubs/InterlockedIntrinsics.cs | 0 .../IL/Stubs/MemoryMarshalIntrinsics.cs | 0 .../IL/Stubs/PInvokeILCodeStreams.cs | 0 .../PInvokeTargetNativeMethod.Diagnostic.cs | 0 .../PInvokeTargetNativeMethod.Mangling.cs | 0 .../PInvokeTargetNativeMethod.Sorting.cs | 0 .../IL/Stubs/PInvokeTargetNativeMethod.cs | 0 .../IL/Stubs/RuntimeHelpersIntrinsics.cs | 0 .../TypeSystem/IL/Stubs/UnsafeIntrinsics.cs | 0 .../TypeSystem/IL/Stubs/VolatileIntrinsics.cs | 0 .../TypeSystem/Interop/FieldDesc.Interop.cs | 0 .../TypeSystem/Interop/IL/MarshalHelpers.cs | 0 .../TypeSystem/Interop/IL/MarshalUtils.cs | 0 .../TypeSystem/Interop/IL/Marshaller.cs | 0 .../Interop/InstantiatedType.Interop.cs | 0 .../Common/TypeSystem/Interop/InteropTypes.cs | 0 .../TypeSystem/Interop/MarshalAsDescriptor.cs | 0 .../Interop/MetadataType.Interop.cs | 0 .../Interop/MethodDelegator.Interop.cs | 0 .../TypeSystem/Interop/MethodDesc.Interop.cs | 0 .../Mangling/IPrefixMangledMethod.cs | 0 .../Mangling/IPrefixMangledSignature.cs | 0 .../TypeSystem/Mangling/IPrefixMangledType.cs | 0 .../ArrayType.RuntimeDetermined.cs | 0 .../ByRefType.RuntimeDetermined.cs | 0 .../DefType.RuntimeDetermined.cs | 0 .../FieldDesc.RuntimeDetermined.cs | 0 .../FunctionPointerType.RuntimeDetermined.cs | 0 .../GenericParameterDesc.RuntimeDetermined.cs | 0 .../MethodDesc.RuntimeDetermined.cs | 0 ...thodForRuntimeDeterminedType.Diagnostic.cs | 0 .../MethodForRuntimeDeterminedType.Sorting.cs | 0 .../MethodForRuntimeDeterminedType.cs | 0 .../ParameterizedType.RuntimeDetermined.cs | 0 .../PointerType.RuntimeDetermined.cs | 0 ...timeDeterminedCanonicalizationAlgorithm.cs | 0 .../RuntimeDeterminedFieldLayoutAlgorithm.cs | 0 .../RuntimeDeterminedType.Diagnostic.cs | 0 .../RuntimeDeterminedType.Sorting.cs | 0 .../RuntimeDeterminedType.cs | 0 .../RuntimeDeterminedTypeUtilities.cs | 0 .../SignatureVariable.RuntimeDetermined.cs | 0 .../TypeDesc.RuntimeDetermined.cs | 0 .../TypeSystemContext.RuntimeDetermined.cs | 0 .../Serialization/FieldDesc.Serialization.cs | 0 .../Serialization/TypeDesc.Serialization.cs | 0 .../TypeSystem/Sorting/ArrayType.Sorting.cs | 0 .../TypeSystem/Sorting/ByRefType.Sorting.cs | 0 .../TypeSystem/Sorting/FieldDesc.Sorting.cs | 0 .../FieldForInstantiatedType.Sorting.cs | 0 .../Sorting/FunctionPointerType.Sorting.cs | 0 .../Sorting/InstantiatedMethod.Sorting.cs | 0 .../Sorting/InstantiatedType.Sorting.cs | 0 .../TypeSystem/Sorting/MethodDesc.Sorting.cs | 0 .../MethodForInstantiatedType.Sorting.cs | 0 .../Sorting/MethodSignature.Sorting.cs | 0 .../TypeSystem/Sorting/PointerType.Sorting.cs | 0 .../Sorting/SignatureVariable.Sorting.cs | 0 .../TypeSystem/Sorting/TypeDesc.Sorting.cs | 0 .../TypeSystem/Sorting/TypeSystemComparer.cs | 0 .../{src => }/tools/Directory.Build.props | 0 .../{src => }/tools/Directory.Build.targets | 0 .../{src => }/tools/GCLogParser/App.config | 0 .../GCLogParser/Properties/AssemblyInfo.cs | 0 .../tools/GCLogParser/parse-hb-log.cs | 0 .../tools/GCLogParser/parse-hb-log.csproj | 0 .../tools/GCLogParser/parse-hb-log.sln | 0 .../tools/GenClrDebugResource/CMakeLists.txt | 0 .../GenClrDebugResource.cpp | 0 .../tools/GenClrDebugResource/native.rc | 0 .../AccessVerificationHelpers.cs | 0 .../ILVerification/ILImporter.StackValue.cs | 0 .../tools/ILVerification/ILImporter.Verify.cs | 0 .../ILVerification/ILVerification.csproj | 0 .../ILVerification/ILVerification.projitems | 0 .../ILVerifyTypeSystemContext.cs | 0 .../tools/ILVerification/IResolver.cs | 0 .../InstantiatedGenericParameter.cs | 0 .../{src => }/tools/ILVerification/README.md | 0 ...impleArrayOfTRuntimeInterfacesAlgorithm.cs | 0 .../tools/ILVerification/Strings.resx | 0 .../tools/ILVerification/TypeSystemHelpers.cs | 0 .../tools/ILVerification/TypeVerifier.cs | 0 .../ILVerification/VerificationResult.cs | 0 .../tools/ILVerification/Verifier.cs | 0 .../tools/ILVerification/VerifierError.cs | 0 .../{src => }/tools/ILVerify/ILVerify.csproj | 0 .../{src => }/tools/ILVerify/Program.cs | 0 .../{src => }/tools/ILVerify/README.md | 0 .../tools/InjectResource/CMakeLists.txt | 0 .../tools/InjectResource/InjectResource.cpp | 0 .../{src => }/tools/InjectResource/native.rc | 0 .../ComputedStaticDependencyNode.cs | 0 .../DependencyAnalyzer.cs | 0 .../DependencyAnalyzerBase.cs | 0 .../DependencyNode.cs | 0 .../DependencyNodeCore.cs | 0 .../DgmlWriter.cs | 0 .../EventSourceLogStrategy.cs | 0 .../FirstMarkLogStrategy.cs | 0 .../FullGraphLogStrategy.cs | 0 .../IDependencyAnalysisMarkStrategy.cs | 0 .../IDependencyAnalyzerLogEdgeVisitor.cs | 0 .../IDependencyAnalyzerLogNodeVisitor.cs | 0 .../IDependencyNode.cs | 0 ...ompiler.DependencyAnalysisFramework.csproj | 0 .../NoLogStrategy.cs | 0 .../PerfEventSource.cs | 0 .../CodeGen/ReadyToRunObjectWriter.cs | 0 .../CompilationModuleGroup.ReadyToRun.cs | 0 .../Compiler/CryptographicHashProvider.cs | 0 .../AllMethodsOnTypeNode.cs | 0 .../ArrayOfEmbeddedDataNode.cs | 0 .../ArrayOfEmbeddedPointersNode.cs | 0 .../DependencyAnalysis/EmbeddedObjectNode.cs | 0 .../EmbeddedPointerIndirectionNode.cs | 0 .../ReadyToRun/ArgIterator.cs | 0 .../ReadyToRun/AssemblyTableNode.cs | 0 .../ReadyToRun/AttributePresenceFilterNode.cs | 0 .../ReadyToRun/ByteArrayComparer.cs | 0 .../ReadyToRun/CompilerIdentifierNode.cs | 0 .../ReadyToRun/CopiedCorHeaderNode.cs | 0 .../ReadyToRun/CopiedFieldRvaNode.cs | 0 .../ReadyToRun/CopiedManagedResourcesNode.cs | 0 .../ReadyToRun/CopiedMetadataBlobNode.cs | 0 .../ReadyToRun/CopiedMethodILNode.cs | 0 .../CopiedStrongNameSignatureNode.cs | 0 .../ReadyToRun/DebugDirectoryEntryNode.cs | 0 .../ReadyToRun/DebugDirectoryNode.cs | 0 .../ReadyToRun/DebugInfoTableNode.cs | 0 .../ReadyToRun/DelayLoadHelperImport.cs | 0 .../ReadyToRun/DelayLoadHelperMethodImport.cs | 0 .../DelayLoadMethodCallThunkNodeRange.cs | 0 .../ReadyToRun/DelayLoadMethodImport.cs | 0 .../ReadyToRun/DelegateCtorSignature.cs | 0 .../ReadyToRun/DevirtualizationManager.cs | 0 .../ExceptionInfoLookupTableNode.cs | 0 .../ReadyToRun/FieldFixupSignature.cs | 0 .../ReadyToRun/GCRefMapBuilder.cs | 0 .../ReadyToRun/GCRefMapNode.cs | 0 .../ReadyToRun/GenericLookupSignature.cs | 0 .../ReadyToRun/HeaderNode.cs | 0 .../DependencyAnalysis/ReadyToRun/Import.cs | 0 .../ReadyToRun/ImportSectionNode.cs | 0 .../ReadyToRun/ImportSectionsTableNode.cs | 0 .../ReadyToRun/ImportThunk.cs | 0 .../ReadyToRun/InliningInfoNode.cs | 0 .../ReadyToRun/InstanceEntryPointTableNode.cs | 0 .../ReadyToRun/ManifestMetadataTableNode.cs | 0 .../ReadyToRun/MethodEntryPointTableNode.cs | 0 .../ReadyToRun/MethodFixupSignature.cs | 0 .../ReadyToRun/MethodGCInfoNode.cs | 0 .../ReadyToRun/MethodWithGCInfo.cs | 0 .../ReadyToRun/ModuleToken.cs | 0 .../ReadyToRun/ModuleTokenResolver.cs | 0 .../ReadyToRun/NewArrayFixupSignature.cs | 0 .../ReadyToRun/NewObjectFixupSignature.cs | 0 .../ReadyToRun/NibbleWriter.cs | 0 .../OwnerCompositeExecutableNode.cs | 0 .../ReadyToRun/PrecodeHelperImport.cs | 0 .../ReadyToRun/PrecodeMethodImport.cs | 0 .../ReadyToRun/ProfileDataNode.cs | 0 .../ReadyToRun/ProfileDataSectionNode.cs | 0 .../ReadyToRun/ReadyToRunHelperSignature.cs | 0 ...eadyToRunInstructionSetSupportSignature.cs | 0 .../ReadyToRun/RuntimeFunctionsGCInfoNode.cs | 0 .../ReadyToRun/RuntimeFunctionsTableNode.cs | 0 .../ReadyToRun/Signature.cs | 0 .../ReadyToRun/SignatureBuilder.cs | 0 .../ReadyToRun/SignatureContext.cs | 0 ...SignatureEmbeddedPointerIndirectionNode.cs | 0 .../ReadyToRun/StringImport.cs | 0 .../ReadyToRun/StringImportSignature.cs | 0 .../ReadyToRun/Target_ARM/ImportThunk.cs | 0 .../ReadyToRun/Target_ARM64/ImportThunk.cs | 0 .../ReadyToRun/Target_X64/ImportThunk.cs | 0 .../ReadyToRun/Target_X86/ImportThunk.cs | 0 .../ReadyToRun/TransitionBlock.cs | 0 .../ReadyToRun/TypeFixupSignature.cs | 0 .../ReadyToRun/TypesTableNode.cs | 0 .../ReadyToRun/Win32ResourcesNode.cs | 0 .../ReadyToRunCodegenNodeFactory.cs | 0 .../ReadyToRunSymbolNodeFactory.cs | 0 .../SortableDependencyNodeCompilerSpecific.cs | 0 .../DependencyAnalysis/TypeAndMethod.cs | 0 .../Compiler/IRootingServiceProvider.cs | 0 .../Compiler/MethodExtensions.cs | 0 .../NoMethodsCompilationModuleGroup.cs | 0 .../Compiler/PerfEventSource.cs | 0 .../Compiler/ProfileData.cs | 0 .../Compiler/ReadyToRunCodegenCompilation.cs | 0 .../ReadyToRunCodegenCompilationBuilder.cs | 0 .../ReadyToRunCompilationModuleGroupBase.cs | 0 .../Compiler/ReadyToRunCompilerContext.cs | 0 .../Compiler/ReadyToRunFileLayoutOptimizer.cs | 0 .../Compiler/ReadyToRunHashCode.cs | 0 .../Compiler/ReadyToRunLibraryRootProvider.cs | 0 .../ReadyToRunMetadataFieldLayoutAlgorithm.cs | 0 ...RunSingleAssemblyCompilationModuleGroup.cs | 0 .../Compiler/ReadyToRunTableManager.cs | 0 .../Compiler/RuntimeDeterminedTypeHelper.cs | 0 .../SingleMethodCompilationModuleGroup.cs | 0 .../SystemObjectFieldLayoutAlgorithm.cs | 0 .../ILCompiler.ReadyToRun/IBC/IBCDataModel.cs | 0 .../IBC/IBCDataReader.cs | 0 .../IBC/IBCProfileData.cs | 0 .../IBC/IBCProfileParser.cs | 0 .../IBC/MIbcProfileParser.cs | 0 .../IBC/ReaderExtensions.cs | 0 .../IL/ReadyToRunILProvider.cs | 0 .../IL/Stubs/PInvokeILEmitter.cs | 0 .../ILCompiler.ReadyToRun.csproj | 0 .../Interop/IL/Marshaller.ReadyToRun.cs | 0 .../JitInterface/CorInfoImpl.ReadyToRun.cs | 0 .../JitInterface/UnboxingMethodDescFactory.cs | 0 .../ObjectWriter/MapFileBuilder.cs | 0 .../ObjectWriter/R2RPEBuilder.cs | 0 .../ObjectWriter/RelocationHelper.cs | 0 .../ObjectWriter/SectionBuilder.cs | 0 .../ObjectWriter/TargetExtensions.cs | 0 .../Win32Resources/ResourceData.Reader.cs | 0 .../ResourceData.ResourcesDataModel.cs | 0 .../ResourceData.UpdateResourceDataModel.cs | 0 .../ResourceData.Win32Structs.cs | 0 .../Win32Resources/ResourceData.cs | 0 .../Amd64/GcInfo.cs | 0 .../Amd64/GcSlotTable.cs | 0 .../Amd64/GcTransition.cs | 0 .../Amd64/Registers.cs | 0 .../Amd64/UnwindInfo.cs | 0 .../Arm/Registers.cs | 0 .../Arm/UnwindInfo.cs | 0 .../Arm64/Registers.cs | 0 .../Arm64/UnwindInfo.cs | 0 .../DebugInfo.cs | 0 .../DebugInfoTypes.cs | 0 .../DisassemblingTypeProvider.cs | 0 .../EHInfo.cs | 0 .../GCInfoTypes.cs | 0 .../GCRefMap.cs | 0 .../IAssemblyMetadata.cs | 0 .../IAssemblyResolver.cs | 0 .../ILCompiler.Reflection.ReadyToRun.csproj | 0 .../InliningInfoSection.cs | 0 .../InliningInfoSection2.cs | 0 .../NativeArray.cs | 0 .../NativeHashtable.cs | 0 .../NativeReader.cs | 0 .../NibbleReader.cs | 0 .../PEReaderExtensions.cs | 0 .../ReadyToRunHeader.cs | 0 .../ReadyToRunImportSection.cs | 0 .../ReadyToRunMethod.cs | 0 .../ReadyToRunReader.cs | 0 .../ReadyToRunSection.cs | 0 .../ReadyToRunSignature.cs | 0 .../StandaloneAssemblyMetadata.cs | 0 .../StringExtensions.cs | 0 .../TransitionBlock.cs | 0 .../x86/CallPattern.cs | 0 .../x86/GcInfo.cs | 0 .../x86/GcSlotTable.cs | 0 .../x86/GcTransition.cs | 0 .../x86/InfoHdr.cs | 0 .../x86/Registers.cs | 0 .../x86/UnwindInfo.cs | 0 .../ArchitectureSpecificFieldLayoutTests.cs | 0 .../CanonicalizationTests.cs | 0 .../CastingTests.cs | 0 .../ConstraintsValidationTest.cs | 0 .../CoreTestAssembly/Canonicalization.cs | 0 .../CoreTestAssembly/Casting.cs | 0 .../CoreTestAssembly/CoreTestAssembly.csproj | 0 .../CoreTestAssembly/GCPointerMap.cs | 0 .../CoreTestAssembly/GenericConstraints.cs | 0 .../CoreTestAssembly/GenericTypes.cs | 0 .../CoreTestAssembly/Hashcode.cs | 0 .../CoreTestAssembly/InstanceFieldLayout.cs | 0 .../CoreTestAssembly/InterfaceArrangements.cs | 0 .../CoreTestAssembly/Platform.cs | 0 .../CoreTestAssembly/StaticFieldLayout.cs | 0 .../SyntheticVirtualOverride.cs | 0 .../CoreTestAssembly/TypeNameParsing.cs | 0 .../ValueTypeShapeCharacteristics.cs | 0 .../VirtualFunctionOverride.cs | 0 .../ExceptionStringTests.cs | 0 .../GCPointerMapTests.cs | 0 .../GenericTypeAndMethodTests.cs | 0 .../HashcodeTests.cs | 0 ...ompiler.TypeSystem.ReadyToRun.Tests.csproj | 0 .../ILDisassemblerTests.cs | 0 .../ILTestAssembly/ILDisassembler.il | 0 .../ILTestAssembly/ILTestAssembly.ilproj | 0 .../ILTestAssembly/InstanceFieldLayout.il | 0 .../ILTestAssembly/Main.il | 0 .../ILTestAssembly/MethodImplOverride1.il | 0 .../ILTestAssembly/Signature.il | 0 .../ILTestAssembly/StaticFieldLayout.il | 0 .../ILTestAssembly/VirtualFunctionOverride.il | 0 .../InstanceFieldLayoutTests.cs | 0 .../InterfacesTests.cs | 0 .../RuntimeDeterminedTypesTests.cs | 0 .../SignatureTests.cs | 0 .../StaticFieldLayoutTests.cs | 0 ...eticVirtualOverrideTests.DiagnosticName.cs | 0 .../SyntheticVirtualOverrideTests.cs | 0 .../TestMetadataFieldLayoutAlgorithm.cs | 0 .../TestTypeSystemContext.cs | 0 .../TypeNameParsingTests.cs | 0 .../UniversalGenericFieldLayoutTests.cs | 0 .../ValueTypeShapeCharacteristicsTests.cs | 0 .../VirtualFunctionOverrideTests.cs | 0 .../WellKnownTypeTests.cs | 0 .../ILCompiler.TypeSystem.ReadyToRun.csproj | 0 src/coreclr/{src => }/tools/aot/crossgen2.sln | 0 .../tools/aot/crossgen2/CommandLineOptions.cs | 0 .../{src => }/tools/aot/crossgen2/Program.cs | 0 .../aot/crossgen2/Properties/Resources.resx | 0 .../tools/aot/crossgen2/crossgen2.csproj | 0 .../tools/aot/jitinterface/CMakeLists.txt | 0 .../aot/jitinterface/corinfoexception.cpp | 0 .../tools/aot/jitinterface/corinfoexception.h | 0 .../tools/aot/jitinterface/dllexport.h | 0 .../tools/aot/jitinterface/jithost.cpp | 0 .../tools/aot/jitinterface/jitinterface.cpp | 0 .../tools/aot/jitinterface/jitinterface.h | 0 .../tools/aot/jitinterface/jitwrapper.cpp | 0 .../{src => }/tools/crossgen/CMakeLists.txt | 0 .../{src => }/tools/crossgen/Native.rc | 0 .../{src => }/tools/crossgen/compare.bat | 0 .../{src => }/tools/crossgen/crossgen.cpp | 0 .../{src => }/tools/dotnet-pgo/Logger.cs | 0 .../JitTraceRuntime.cs | 0 .../tools/dotnet-pgo/ModuleLoadLogger.cs | 0 .../tools/dotnet-pgo/PgoTraceProcess.cs | 0 .../{src => }/tools/dotnet-pgo/Program.cs | 0 .../dotnet-pgo/R2RSignatureTypeProvider.cs | 0 .../{src => }/tools/dotnet-pgo/README.md | 0 .../TraceRuntimeDescToTypeSystemDesc.cs | 0 .../dotnet-pgo/TraceTypeSystemContext.cs | 0 .../dotnet-pgo/TypeSystemMetadataEmitter.cs | 0 .../tools/dotnet-pgo/dotnet-pgo-experiment.md | 0 .../tools/dotnet-pgo/dotnet-pgo.csproj | 0 .../{src => }/tools/dotnet-pgo/dotnet-pgo.sln | 0 .../{src => }/tools/metainfo/Native.rc | 0 .../{src => }/tools/metainfo/mdinfo.cpp | 0 src/coreclr/{src => }/tools/metainfo/mdinfo.h | 0 .../{src => }/tools/metainfo/mdobj.cpp | 0 .../tools/r2rdump/CommandLineOptions.cs | 0 .../{src => }/tools/r2rdump/CoreDisTools.cs | 0 .../{src => }/tools/r2rdump/Extensions.cs | 0 .../{src => }/tools/r2rdump/ISymNGenWriter.cs | 0 .../{src => }/tools/r2rdump/PdbWriter.cs | 0 .../{src => }/tools/r2rdump/R2RDiff.cs | 0 .../{src => }/tools/r2rdump/R2RDump.cs | 0 .../{src => }/tools/r2rdump/R2RDump.csproj | 0 .../{src => }/tools/r2rdump/R2RDump.sln | 0 .../{src => }/tools/r2rdump/R2RFormat.png | Bin src/coreclr/{src => }/tools/r2rdump/README.md | 0 .../{src => }/tools/r2rdump/TextDumper.cs | 0 .../{src => }/tools/r2rtest/Buckets.cs | 0 .../{src => }/tools/r2rtest/BuildFolder.cs | 0 .../{src => }/tools/r2rtest/BuildFolderSet.cs | 0 .../{src => }/tools/r2rtest/BuildOptions.cs | 0 .../tools/r2rtest/CommandLineOptions.cs | 0 .../Commands/CompileDirectoryCommand.cs | 0 .../Commands/CompileFrameworkCommand.cs | 0 .../r2rtest/Commands/CompileNugetCommand.cs | 0 .../r2rtest/Commands/CompileSerpCommand.cs | 0 .../r2rtest/Commands/CompileSubtreeCommand.cs | 0 .../{src => }/tools/r2rtest/CompilerRunner.cs | 0 .../tools/r2rtest/ComputeManagedAssemblies.cs | 0 .../tools/r2rtest/Crossgen2Runner.cs | 0 .../{src => }/tools/r2rtest/CrossgenRunner.cs | 0 .../{src => }/tools/r2rtest/DotnetCli.cs | 0 .../{src => }/tools/r2rtest/JitRunner.cs | 0 src/coreclr/{src => }/tools/r2rtest/Linux.cs | 0 .../{src => }/tools/r2rtest/ParallelRunner.cs | 0 .../{src => }/tools/r2rtest/PathHelpers.cs | 0 .../tools/r2rtest/PerfEventSourceListener.cs | 0 .../{src => }/tools/r2rtest/ProcessRunner.cs | 0 .../{src => }/tools/r2rtest/Program.cs | 0 .../{src => }/tools/r2rtest/R2RTest.csproj | 0 .../tools/r2rtest/ReadyToRunJittedMethods.cs | 0 .../{src => }/tools/r2rtest/TestExclusion.cs | 0 .../tools/runincontext/runincontext.cs | 0 .../tools/runincontext/runincontext.csproj | 0 .../{src => }/tools/util/consoleargs.cpp | 0 .../{src => }/tools/util/consoleargs.h | 0 src/coreclr/{src => }/tools/util/list.h | 0 src/coreclr/{src => }/tools/util/tree.h | 0 src/coreclr/{src => }/unwinder/CMakeLists.txt | 10 +- .../unwinder/amd64/dbs_stack_x64.cpp | 0 .../unwinder/amd64/unwinder_amd64.cpp | 0 .../{src => }/unwinder/amd64/unwinder_amd64.h | 0 .../{src => }/unwinder/arm/unwinder_arm.cpp | 0 .../{src => }/unwinder/arm/unwinder_arm.h | 0 .../unwinder/arm64/unwinder_arm64.cpp | 0 .../{src => }/unwinder/arm64/unwinder_arm64.h | 0 .../{src => }/unwinder/i386/unwinder_i386.cpp | 0 .../{src => }/unwinder/i386/unwinder_i386.h | 0 src/coreclr/{src => }/unwinder/stdafx.cpp | 0 src/coreclr/{src => }/unwinder/stdafx.h | 0 src/coreclr/{src => }/unwinder/unwinder.cpp | 0 src/coreclr/{src => }/unwinder/unwinder.h | 0 src/coreclr/{src => }/utilcode/CMakeLists.txt | 0 src/coreclr/{src => }/utilcode/arraylist.cpp | 0 src/coreclr/{src => }/utilcode/bitvector.cpp | 0 src/coreclr/{src => }/utilcode/ccomprc.cpp | 0 src/coreclr/{src => }/utilcode/check.cpp | 0 src/coreclr/{src => }/utilcode/clrconfig.cpp | 0 src/coreclr/{src => }/utilcode/clrhelpers.cpp | 0 src/coreclr/{src => }/utilcode/clrhost.cpp | 0 .../utilcode/clrhost_nodependencies.cpp | 0 .../{src => }/utilcode/collections.cpp | 0 src/coreclr/{src => }/utilcode/comex.cpp | 0 .../{src => }/utilcode/configuration.cpp | 0 src/coreclr/{src => }/utilcode/corimage.cpp | 0 src/coreclr/{src => }/utilcode/cycletimer.cpp | 0 src/coreclr/{src => }/utilcode/dacutil.cpp | 0 src/coreclr/{src => }/utilcode/debug.cpp | 0 src/coreclr/{src => }/utilcode/dlwrap.cpp | 0 src/coreclr/{src => }/utilcode/ex.cpp | 0 src/coreclr/{src => }/utilcode/format1.cpp | 0 src/coreclr/{src => }/utilcode/fstream.cpp | 0 src/coreclr/{src => }/utilcode/fstring.cpp | 0 .../{src => }/utilcode/guidfromname.cpp | 0 src/coreclr/{src => }/utilcode/hostimpl.cpp | 0 src/coreclr/{src => }/utilcode/iallocator.cpp | 0 .../{src => }/utilcode/ilformatter.cpp | 0 src/coreclr/{src => }/utilcode/loaderheap.cpp | 0 src/coreclr/{src => }/utilcode/log.cpp | 0 .../utilcode/longfilepathwrappers.cpp | 0 src/coreclr/{src => }/utilcode/makepath.cpp | 0 src/coreclr/{src => }/utilcode/md5.cpp | 0 src/coreclr/{src => }/utilcode/memorypool.cpp | 0 .../{src => }/utilcode/namespaceutil.cpp | 0 src/coreclr/{src => }/utilcode/opinfo.cpp | 0 src/coreclr/{src => }/utilcode/outstring.cpp | 0 src/coreclr/{src => }/utilcode/pedecoder.cpp | 0 .../{src => }/utilcode/peinformation.cpp | 0 src/coreclr/{src => }/utilcode/posterror.cpp | 0 .../{src => }/utilcode/prettyprintsig.cpp | 0 src/coreclr/{src => }/utilcode/regutil.cpp | 0 src/coreclr/{src => }/utilcode/safewrap.cpp | 0 src/coreclr/{src => }/utilcode/sbuffer.cpp | 0 .../{src => }/utilcode/securityutil.cpp | 0 .../{src => }/utilcode/securitywrapper.cpp | 0 src/coreclr/{src => }/utilcode/sha1.cpp | 0 src/coreclr/{src => }/utilcode/sigbuilder.cpp | 0 src/coreclr/{src => }/utilcode/sigparser.cpp | 0 src/coreclr/{src => }/utilcode/splitpath.cpp | 0 src/coreclr/{src => }/utilcode/sstring.cpp | 0 .../{src => }/utilcode/sstring_com.cpp | 0 src/coreclr/{src => }/utilcode/stacktrace.cpp | 0 src/coreclr/{src => }/utilcode/stdafx.h | 0 src/coreclr/{src => }/utilcode/stgpool.cpp | 0 src/coreclr/{src => }/utilcode/stgpooli.cpp | 0 .../{src => }/utilcode/stgpoolreadonly.cpp | 0 src/coreclr/{src => }/utilcode/stresslog.cpp | 0 src/coreclr/{src => }/utilcode/util.cpp | 0 .../utilcode/util_nodependencies.cpp | 0 .../{src => }/utilcode/utilmessagebox.cpp | 0 src/coreclr/{src => }/utilcode/utsem.cpp | 0 src/coreclr/{src => }/utilcode/winfix.cpp | 0 .../utilcode/yieldprocessornormalized.cpp | 0 .../vm/.vscode/c_cpp_properties.json | 0 src/coreclr/{src => }/vm/CMakeLists.txt | 0 src/coreclr/{src => }/vm/ClrEtwAll.man | 0 src/coreclr/{src => }/vm/ClrEtwAllMeta.lst | 0 src/coreclr/{src => }/vm/amd64/AsmHelpers.asm | 0 src/coreclr/{src => }/vm/amd64/AsmMacros.inc | 0 .../vm/amd64/CallDescrWorkerAMD64.asm | 0 .../{src => }/vm/amd64/ComCallPreStub.asm | 0 src/coreclr/{src => }/vm/amd64/CrtHelpers.asm | 0 .../vm/amd64/ExternalMethodFixupThunk.asm | 0 .../vm/amd64/GenericComCallStubs.asm | 0 .../vm/amd64/GenericComPlusCallStubs.asm | 0 .../{src => }/vm/amd64/JitHelpers_Fast.asm | 0 .../vm/amd64/JitHelpers_FastWriteBarriers.asm | 0 .../vm/amd64/JitHelpers_InlineGetThread.asm | 0 .../vm/amd64/JitHelpers_SingleAppDomain.asm | 0 .../{src => }/vm/amd64/JitHelpers_Slow.asm | 0 .../{src => }/vm/amd64/PInvokeStubs.asm | 0 .../vm/amd64/RedirectedHandledJITCase.asm | 0 .../{src => }/vm/amd64/ThePreStubAMD64.asm | 0 .../{src => }/vm/amd64/UMThunkStub.asm | 0 .../vm/amd64/VirtualCallStubAMD64.asm | 0 src/coreclr/{src => }/vm/amd64/asmconstants.h | 0 src/coreclr/{src => }/vm/amd64/asmhelpers.S | 0 .../{src => }/vm/amd64/calldescrworkeramd64.S | 0 src/coreclr/{src => }/vm/amd64/cgenamd64.cpp | 0 src/coreclr/{src => }/vm/amd64/cgencpu.h | 0 src/coreclr/{src => }/vm/amd64/crthelpers.S | 0 src/coreclr/{src => }/vm/amd64/excepamd64.cpp | 0 src/coreclr/{src => }/vm/amd64/excepcpu.h | 0 .../vm/amd64/externalmethodfixupthunk.S | 0 src/coreclr/{src => }/vm/amd64/getstate.S | 0 src/coreclr/{src => }/vm/amd64/getstate.asm | 0 src/coreclr/{src => }/vm/amd64/gmsamd64.cpp | 0 src/coreclr/{src => }/vm/amd64/gmscpu.h | 0 .../{src => }/vm/amd64/jithelpers_fast.S | 0 .../vm/amd64/jithelpers_fastwritebarriers.S | 0 .../vm/amd64/jithelpers_singleappdomain.S | 0 .../{src => }/vm/amd64/jithelpers_slow.S | 0 .../{src => }/vm/amd64/jitinterfaceamd64.cpp | 0 src/coreclr/{src => }/vm/amd64/pinvokestubs.S | 0 src/coreclr/{src => }/vm/amd64/profiler.cpp | 0 .../{src => }/vm/amd64/stublinkeramd64.cpp | 0 .../{src => }/vm/amd64/stublinkeramd64.h | 0 .../{src => }/vm/amd64/theprestubamd64.S | 0 src/coreclr/{src => }/vm/amd64/umthunkstub.S | 0 .../{src => }/vm/amd64/unixasmhelpers.S | 0 src/coreclr/{src => }/vm/amd64/unixstubs.cpp | 0 .../{src => }/vm/amd64/virtualcallstubamd64.S | 0 .../{src => }/vm/amd64/virtualcallstubcpu.hpp | 0 src/coreclr/{src => }/vm/amsi.cpp | 0 src/coreclr/{src => }/vm/amsi.h | 0 src/coreclr/{src => }/vm/appdomain.cpp | 0 src/coreclr/{src => }/vm/appdomain.hpp | 0 src/coreclr/{src => }/vm/appdomain.inl | 0 src/coreclr/{src => }/vm/appdomainnative.cpp | 0 src/coreclr/{src => }/vm/appdomainnative.hpp | 0 src/coreclr/{src => }/vm/argdestination.h | 0 src/coreclr/{src => }/vm/argslot.h | 0 src/coreclr/{src => }/vm/arm/CrtHelpers.asm | 0 src/coreclr/{src => }/vm/arm/PInvokeStubs.asm | 0 .../{src => }/vm/arm/armsinglestepper.cpp | 0 src/coreclr/{src => }/vm/arm/asmconstants.h | 0 src/coreclr/{src => }/vm/arm/asmhelpers.S | 0 src/coreclr/{src => }/vm/arm/asmhelpers.asm | 0 src/coreclr/{src => }/vm/arm/asmmacros.h | 0 src/coreclr/{src => }/vm/arm/cgencpu.h | 0 src/coreclr/{src => }/vm/arm/crthelpers.S | 0 src/coreclr/{src => }/vm/arm/ehhelpers.S | 0 src/coreclr/{src => }/vm/arm/ehhelpers.asm | 0 src/coreclr/{src => }/vm/arm/exceparm.cpp | 0 src/coreclr/{src => }/vm/arm/excepcpu.h | 0 src/coreclr/{src => }/vm/arm/gmscpu.h | 0 src/coreclr/{src => }/vm/arm/patchedcode.S | 0 src/coreclr/{src => }/vm/arm/patchedcode.asm | 0 src/coreclr/{src => }/vm/arm/pinvokestubs.S | 0 src/coreclr/{src => }/vm/arm/profiler.cpp | 0 src/coreclr/{src => }/vm/arm/stubs.cpp | 0 src/coreclr/{src => }/vm/arm/unixstubs.cpp | 0 .../{src => }/vm/arm/virtualcallstubcpu.hpp | 0 .../vm/arm64/CallDescrWorkerARM64.asm | 0 .../{src => }/vm/arm64/PInvokeStubs.asm | 0 .../{src => }/vm/arm64/arm64singlestepper.cpp | 0 src/coreclr/{src => }/vm/arm64/asmconstants.h | 0 src/coreclr/{src => }/vm/arm64/asmhelpers.S | 0 src/coreclr/{src => }/vm/arm64/asmhelpers.asm | 0 src/coreclr/{src => }/vm/arm64/asmmacros.h | 0 .../{src => }/vm/arm64/calldescrworkerarm64.S | 0 src/coreclr/{src => }/vm/arm64/cgencpu.h | 0 src/coreclr/{src => }/vm/arm64/crthelpers.S | 0 src/coreclr/{src => }/vm/arm64/crthelpers.asm | 0 src/coreclr/{src => }/vm/arm64/excepcpu.h | 0 src/coreclr/{src => }/vm/arm64/gmscpu.h | 0 src/coreclr/{src => }/vm/arm64/pinvokestubs.S | 0 src/coreclr/{src => }/vm/arm64/profiler.cpp | 0 src/coreclr/{src => }/vm/arm64/stubs.cpp | 0 src/coreclr/{src => }/vm/arm64/unixstubs.cpp | 0 .../{src => }/vm/arm64/virtualcallstubcpu.hpp | 0 src/coreclr/{src => }/vm/arm64singlestepper.h | 0 src/coreclr/{src => }/vm/armsinglestepper.h | 0 src/coreclr/{src => }/vm/array.cpp | 0 src/coreclr/{src => }/vm/array.h | 0 src/coreclr/{src => }/vm/assembly.cpp | 0 src/coreclr/{src => }/vm/assembly.hpp | 0 .../{src => }/vm/assemblyloadcontext.cpp | 0 .../{src => }/vm/assemblyloadcontext.h | 0 src/coreclr/{src => }/vm/assemblyname.cpp | 0 src/coreclr/{src => }/vm/assemblyname.hpp | 0 src/coreclr/{src => }/vm/assemblynative.cpp | 0 src/coreclr/{src => }/vm/assemblynative.hpp | 0 src/coreclr/{src => }/vm/assemblyspec.cpp | 0 src/coreclr/{src => }/vm/assemblyspec.hpp | 0 src/coreclr/{src => }/vm/assemblyspecbase.h | 0 src/coreclr/{src => }/vm/autotrace.cpp | 0 src/coreclr/{src => }/vm/autotrace.h | 0 src/coreclr/{src => }/vm/baseassemblyspec.cpp | 0 src/coreclr/{src => }/vm/baseassemblyspec.h | 0 src/coreclr/{src => }/vm/baseassemblyspec.inl | 0 src/coreclr/{src => }/vm/binder.cpp | 0 src/coreclr/{src => }/vm/binder.h | 0 src/coreclr/{src => }/vm/bundle.cpp | 0 src/coreclr/{src => }/vm/cachelinealloc.cpp | 0 src/coreclr/{src => }/vm/cachelinealloc.h | 0 src/coreclr/{src => }/vm/callcounting.cpp | 0 src/coreclr/{src => }/vm/callcounting.h | 0 src/coreclr/{src => }/vm/callhelpers.cpp | 0 src/coreclr/{src => }/vm/callhelpers.h | 0 src/coreclr/{src => }/vm/callingconvention.h | 0 src/coreclr/{src => }/vm/callsiteinspect.cpp | 0 src/coreclr/{src => }/vm/callsiteinspect.h | 0 src/coreclr/{src => }/vm/castcache.cpp | 0 src/coreclr/{src => }/vm/castcache.h | 0 src/coreclr/{src => }/vm/ceeload.cpp | 0 src/coreclr/{src => }/vm/ceeload.h | 0 src/coreclr/{src => }/vm/ceeload.inl | 0 src/coreclr/{src => }/vm/ceemain.cpp | 0 src/coreclr/{src => }/vm/ceemain.h | 0 src/coreclr/{src => }/vm/cgensys.h | 0 src/coreclr/{src => }/vm/class.cpp | 0 src/coreclr/{src => }/vm/class.h | 0 src/coreclr/{src => }/vm/class.inl | 0 src/coreclr/{src => }/vm/classcompat.cpp | 0 src/coreclr/{src => }/vm/classcompat.h | 0 src/coreclr/{src => }/vm/classhash.cpp | 0 src/coreclr/{src => }/vm/classhash.h | 0 src/coreclr/{src => }/vm/classhash.inl | 0 src/coreclr/{src => }/vm/classlayoutinfo.cpp | 0 src/coreclr/{src => }/vm/classloadlevel.h | 0 src/coreclr/{src => }/vm/classnames.h | 0 src/coreclr/{src => }/vm/clrconfignative.cpp | 0 src/coreclr/{src => }/vm/clrconfignative.h | 0 src/coreclr/{src => }/vm/clrex.cpp | 0 src/coreclr/{src => }/vm/clrex.h | 0 src/coreclr/{src => }/vm/clrex.inl | 0 src/coreclr/{src => }/vm/clrtocomcall.cpp | 0 src/coreclr/{src => }/vm/clrtocomcall.h | 0 src/coreclr/{src => }/vm/clrtracelogging.cpp | 0 src/coreclr/{src => }/vm/clrvarargs.cpp | 0 src/coreclr/{src => }/vm/clrvarargs.h | 0 src/coreclr/{src => }/vm/clsload.cpp | 0 src/coreclr/{src => }/vm/clsload.hpp | 0 src/coreclr/{src => }/vm/clsload.inl | 0 src/coreclr/{src => }/vm/codeman.cpp | 0 src/coreclr/{src => }/vm/codeman.h | 0 src/coreclr/{src => }/vm/codeman.inl | 0 .../{src => }/vm/codepitchingmanager.cpp | 0 src/coreclr/{src => }/vm/codeversion.cpp | 0 src/coreclr/{src => }/vm/codeversion.h | 0 src/coreclr/{src => }/vm/comcache.cpp | 0 src/coreclr/{src => }/vm/comcache.h | 0 .../{src => }/vm/comcallablewrapper.cpp | 0 src/coreclr/{src => }/vm/comcallablewrapper.h | 0 .../{src => }/vm/comconnectionpoints.cpp | 0 .../{src => }/vm/comconnectionpoints.h | 0 src/coreclr/{src => }/vm/comdatetime.cpp | 0 src/coreclr/{src => }/vm/comdatetime.h | 0 src/coreclr/{src => }/vm/comdelegate.cpp | 0 src/coreclr/{src => }/vm/comdelegate.h | 0 .../{src => }/vm/comdependenthandle.cpp | 0 src/coreclr/{src => }/vm/comdependenthandle.h | 0 src/coreclr/{src => }/vm/comdynamic.cpp | 0 src/coreclr/{src => }/vm/comdynamic.h | 0 .../{src => }/vm/cominterfacemarshaler.cpp | 0 .../{src => }/vm/cominterfacemarshaler.h | 0 src/coreclr/{src => }/vm/commodule.cpp | 0 src/coreclr/{src => }/vm/commodule.h | 0 src/coreclr/{src => }/vm/common.h | 0 .../{src => }/vm/commtmemberinfomap.cpp | 0 src/coreclr/{src => }/vm/commtmemberinfomap.h | 0 .../{src => }/vm/compatibilityswitch.cpp | 0 .../{src => }/vm/compatibilityswitch.h | 0 src/coreclr/{src => }/vm/compile.cpp | 0 src/coreclr/{src => }/vm/compile.h | 0 .../{src => }/vm/comreflectioncache.hpp | 0 .../{src => }/vm/comreflectioncache.inl | 0 .../{src => }/vm/comsynchronizable.cpp | 0 src/coreclr/{src => }/vm/comsynchronizable.h | 0 src/coreclr/{src => }/vm/comthreadpool.cpp | 0 src/coreclr/{src => }/vm/comthreadpool.h | 0 src/coreclr/{src => }/vm/comtoclrcall.cpp | 0 src/coreclr/{src => }/vm/comtoclrcall.h | 0 src/coreclr/{src => }/vm/comutilnative.cpp | 0 src/coreclr/{src => }/vm/comutilnative.h | 0 src/coreclr/{src => }/vm/comwaithandle.cpp | 0 src/coreclr/{src => }/vm/comwaithandle.h | 0 src/coreclr/{src => }/vm/contractimpl.cpp | 0 src/coreclr/{src => }/vm/contractimpl.h | 0 src/coreclr/{src => }/vm/coreassemblyspec.cpp | 0 src/coreclr/{src => }/vm/corebindresult.cpp | 0 .../{src => }/vm/coreclr/corebindresult.h | 0 .../{src => }/vm/coreclr/corebindresult.inl | 0 src/coreclr/{src => }/vm/corelib.cpp | 0 src/coreclr/{src => }/vm/corelib.h | 0 src/coreclr/{src => }/vm/corhost.cpp | 0 .../{src => }/vm/crossgen/CMakeLists.txt | 2 +- src/coreclr/{src => }/vm/crossgencompile.cpp | 0 .../{src => }/vm/crossloaderallocatorhash.h | 0 .../{src => }/vm/crossloaderallocatorhash.inl | 0 src/coreclr/{src => }/vm/crst.cpp | 0 src/coreclr/{src => }/vm/crst.h | 0 src/coreclr/{src => }/vm/ctxtcall.h | 0 src/coreclr/{src => }/vm/customattribute.cpp | 0 src/coreclr/{src => }/vm/customattribute.h | 0 .../{src => }/vm/custommarshalerinfo.cpp | 0 .../{src => }/vm/custommarshalerinfo.h | 0 src/coreclr/{src => }/vm/dataimage.cpp | 0 src/coreclr/{src => }/vm/dataimage.h | 0 src/coreclr/{src => }/vm/dataimagesection.h | 0 src/coreclr/{src => }/vm/dbginterface.h | 0 src/coreclr/{src => }/vm/debugdebugger.cpp | 0 src/coreclr/{src => }/vm/debugdebugger.h | 0 src/coreclr/{src => }/vm/debughelp.cpp | 0 src/coreclr/{src => }/vm/debuginfostore.cpp | 0 src/coreclr/{src => }/vm/debuginfostore.h | 0 src/coreclr/{src => }/vm/decodemd.cpp | 0 src/coreclr/{src => }/vm/decodemd.h | 0 src/coreclr/{src => }/vm/delegateinfo.h | 0 src/coreclr/{src => }/vm/diagnosticserver.cpp | 0 src/coreclr/{src => }/vm/diagnosticserver.h | 0 .../{src => }/vm/diagnosticsprotocol.h | 0 src/coreclr/{src => }/vm/disassembler.cpp | 0 src/coreclr/{src => }/vm/disassembler.h | 0 src/coreclr/{src => }/vm/dispatchinfo.cpp | 0 src/coreclr/{src => }/vm/dispatchinfo.h | 0 .../{src => }/vm/dispparammarshaler.cpp | 0 src/coreclr/{src => }/vm/dispparammarshaler.h | 0 src/coreclr/{src => }/vm/dllimport.cpp | 0 src/coreclr/{src => }/vm/dllimport.h | 0 .../{src => }/vm/dllimportcallback.cpp | 0 src/coreclr/{src => }/vm/dllimportcallback.h | 0 src/coreclr/{src => }/vm/domainfile.cpp | 0 src/coreclr/{src => }/vm/domainfile.h | 0 src/coreclr/{src => }/vm/domainfile.inl | 0 .../vm/dumpdiagnosticprotocolhelper.cpp | 0 .../vm/dumpdiagnosticprotocolhelper.h | 0 src/coreclr/{src => }/vm/dwbucketmanager.hpp | 0 src/coreclr/{src => }/vm/dwreport.cpp | 0 src/coreclr/{src => }/vm/dwreport.h | 0 .../{src => }/vm/dynamicinterfacecastable.cpp | 0 .../{src => }/vm/dynamicinterfacecastable.h | 0 src/coreclr/{src => }/vm/dynamicmethod.cpp | 0 src/coreclr/{src => }/vm/dynamicmethod.h | 0 src/coreclr/{src => }/vm/ecall.cpp | 0 src/coreclr/{src => }/vm/ecall.h | 0 src/coreclr/{src => }/vm/ecalllist.h | 0 src/coreclr/{src => }/vm/eeconfig.cpp | 0 src/coreclr/{src => }/vm/eeconfig.h | 0 src/coreclr/{src => }/vm/eecontract.cpp | 0 src/coreclr/{src => }/vm/eecontract.h | 0 src/coreclr/{src => }/vm/eedbginterface.h | 0 .../{src => }/vm/eedbginterfaceimpl.cpp | 0 src/coreclr/{src => }/vm/eedbginterfaceimpl.h | 0 .../{src => }/vm/eedbginterfaceimpl.inl | 0 src/coreclr/{src => }/vm/eehash.cpp | 0 src/coreclr/{src => }/vm/eehash.h | 0 src/coreclr/{src => }/vm/eehash.inl | 0 src/coreclr/{src => }/vm/eemessagebox.cpp | 0 src/coreclr/{src => }/vm/eemessagebox.h | 0 src/coreclr/{src => }/vm/eepolicy.cpp | 0 src/coreclr/{src => }/vm/eepolicy.h | 0 src/coreclr/{src => }/vm/eeprofinterfaces.h | 0 src/coreclr/{src => }/vm/eeprofinterfaces.inl | 0 .../{src => }/vm/eetoprofinterfaceimpl.cpp | 0 .../{src => }/vm/eetoprofinterfaceimpl.h | 0 .../{src => }/vm/eetoprofinterfaceimpl.inl | 0 .../{src => }/vm/eetoprofinterfacewrapper.inl | 0 src/coreclr/{src => }/vm/eetwain.cpp | 0 src/coreclr/{src => }/vm/encee.cpp | 0 src/coreclr/{src => }/vm/encee.h | 0 .../{src => }/vm/eventing/CMakeLists.txt | 2 +- .../vm/eventing/EtwProvider/CMakeLists.txt | 2 +- .../vm/eventing/eventpipe/CMakeLists.txt | 2 +- src/coreclr/{src => }/vm/eventpipe.cpp | 0 src/coreclr/{src => }/vm/eventpipe.h | 0 src/coreclr/{src => }/vm/eventpipeblock.cpp | 0 src/coreclr/{src => }/vm/eventpipeblock.h | 0 src/coreclr/{src => }/vm/eventpipebuffer.cpp | 0 src/coreclr/{src => }/vm/eventpipebuffer.h | 0 .../{src => }/vm/eventpipebuffermanager.cpp | 0 .../{src => }/vm/eventpipebuffermanager.h | 0 .../{src => }/vm/eventpipecommontypes.cpp | 0 .../{src => }/vm/eventpipecommontypes.h | 0 .../{src => }/vm/eventpipeconfiguration.cpp | 0 .../{src => }/vm/eventpipeconfiguration.h | 0 src/coreclr/{src => }/vm/eventpipeevent.cpp | 0 src/coreclr/{src => }/vm/eventpipeevent.h | 0 .../{src => }/vm/eventpipeeventinstance.cpp | 0 .../{src => }/vm/eventpipeeventinstance.h | 0 .../{src => }/vm/eventpipeeventpayload.cpp | 0 .../{src => }/vm/eventpipeeventpayload.h | 0 .../{src => }/vm/eventpipeeventsource.cpp | 0 .../{src => }/vm/eventpipeeventsource.h | 0 src/coreclr/{src => }/vm/eventpipefile.cpp | 0 src/coreclr/{src => }/vm/eventpipefile.h | 0 .../{src => }/vm/eventpipeinternal.cpp | 0 src/coreclr/{src => }/vm/eventpipeinternal.h | 0 .../{src => }/vm/eventpipejsonfile.cpp | 0 src/coreclr/{src => }/vm/eventpipejsonfile.h | 0 .../vm/eventpipemetadatagenerator.cpp | 0 .../{src => }/vm/eventpipemetadatagenerator.h | 0 .../{src => }/vm/eventpipeprotocolhelper.cpp | 0 .../{src => }/vm/eventpipeprotocolhelper.h | 0 .../{src => }/vm/eventpipeprovider.cpp | 0 src/coreclr/{src => }/vm/eventpipeprovider.h | 0 src/coreclr/{src => }/vm/eventpipesession.cpp | 0 src/coreclr/{src => }/vm/eventpipesession.h | 0 .../{src => }/vm/eventpipesessionprovider.cpp | 0 .../{src => }/vm/eventpipesessionprovider.h | 0 src/coreclr/{src => }/vm/eventpipethread.cpp | 0 src/coreclr/{src => }/vm/eventpipethread.h | 0 src/coreclr/{src => }/vm/eventreporter.cpp | 0 src/coreclr/{src => }/vm/eventreporter.h | 0 src/coreclr/{src => }/vm/eventstore.cpp | 0 src/coreclr/{src => }/vm/eventstore.hpp | 0 src/coreclr/{src => }/vm/eventtrace.cpp | 0 src/coreclr/{src => }/vm/eventtrace.inl | 0 src/coreclr/{src => }/vm/eventtracepriv.h | 0 src/coreclr/{src => }/vm/excep.cpp | 0 src/coreclr/{src => }/vm/excep.h | 0 .../{src => }/vm/exceptionhandling.cpp | 0 src/coreclr/{src => }/vm/exceptionhandling.h | 0 src/coreclr/{src => }/vm/exceptmacros.h | 0 src/coreclr/{src => }/vm/exinfo.cpp | 0 src/coreclr/{src => }/vm/exinfo.h | 0 src/coreclr/{src => }/vm/exstate.cpp | 0 src/coreclr/{src => }/vm/exstate.h | 0 src/coreclr/{src => }/vm/exstatecommon.h | 0 .../{src => }/vm/fastserializableobject.h | 0 src/coreclr/{src => }/vm/fastserializer.cpp | 0 src/coreclr/{src => }/vm/fastserializer.h | 0 src/coreclr/{src => }/vm/fcall.cpp | 0 src/coreclr/{src => }/vm/fcall.h | 0 src/coreclr/{src => }/vm/field.cpp | 0 src/coreclr/{src => }/vm/field.h | 0 src/coreclr/{src => }/vm/fieldmarshaler.cpp | 0 src/coreclr/{src => }/vm/fieldmarshaler.h | 0 src/coreclr/{src => }/vm/finalizerthread.cpp | 0 src/coreclr/{src => }/vm/finalizerthread.h | 0 src/coreclr/{src => }/vm/formattype.cpp | 0 src/coreclr/{src => }/vm/fptrstubs.cpp | 0 src/coreclr/{src => }/vm/fptrstubs.h | 0 src/coreclr/{src => }/vm/frames.cpp | 0 src/coreclr/{src => }/vm/frames.h | 0 src/coreclr/{src => }/vm/gccover.cpp | 0 src/coreclr/{src => }/vm/gccover.h | 0 src/coreclr/{src => }/vm/gcdecode.cpp | 0 src/coreclr/{src => }/vm/gcdesc.h | 0 src/coreclr/{src => }/vm/gcenv.ee.common.cpp | 0 src/coreclr/{src => }/vm/gcenv.ee.cpp | 0 src/coreclr/{src => }/vm/gcenv.ee.h | 0 .../{src => }/vm/gcenv.ee.standalone.cpp | 0 src/coreclr/{src => }/vm/gcenv.ee.static.cpp | 0 src/coreclr/{src => }/vm/gcenv.h | 0 src/coreclr/{src => }/vm/gcenv.interlocked.h | 0 .../{src => }/vm/gcenv.interlocked.inl | 0 src/coreclr/{src => }/vm/gcenv.os.cpp | 0 src/coreclr/{src => }/vm/gcenv.os.h | 0 src/coreclr/{src => }/vm/gcenv.unix.inl | 0 src/coreclr/{src => }/vm/gcenv.windows.inl | 0 .../{src => }/vm/gchandleutilities.cpp | 0 src/coreclr/{src => }/vm/gchandleutilities.h | 0 src/coreclr/{src => }/vm/gcheaphashtable.h | 0 src/coreclr/{src => }/vm/gcheaphashtable.inl | 0 src/coreclr/{src => }/vm/gcheaputilities.cpp | 0 src/coreclr/{src => }/vm/gcheaputilities.h | 0 src/coreclr/{src => }/vm/gchelpers.cpp | 0 src/coreclr/{src => }/vm/gchelpers.h | 0 src/coreclr/{src => }/vm/gchelpers.inl | 0 src/coreclr/{src => }/vm/gcinfodecoder.cpp | 0 src/coreclr/{src => }/vm/gcinterface.h | 0 src/coreclr/{src => }/vm/gcstress.h | 0 src/coreclr/{src => }/vm/gctoclreventsink.cpp | 0 src/coreclr/{src => }/vm/gctoclreventsink.h | 0 src/coreclr/{src => }/vm/gdbjit.cpp | 0 src/coreclr/{src => }/vm/gdbjit.h | 0 src/coreclr/{src => }/vm/gdbjithelpers.h | 0 src/coreclr/{src => }/vm/genanalysis.cpp | 0 src/coreclr/{src => }/vm/genanalysis.h | 0 src/coreclr/{src => }/vm/genericdict.cpp | 0 src/coreclr/{src => }/vm/genericdict.h | 0 src/coreclr/{src => }/vm/generics.cpp | 0 src/coreclr/{src => }/vm/generics.h | 0 src/coreclr/{src => }/vm/genmeth.cpp | 0 src/coreclr/{src => }/vm/gms.h | 0 src/coreclr/{src => }/vm/h2inc.pl | 0 src/coreclr/{src => }/vm/h2inc.ps1 | 0 src/coreclr/{src => }/vm/hash.cpp | 0 src/coreclr/{src => }/vm/hash.h | 0 src/coreclr/{src => }/vm/hillclimbing.cpp | 0 src/coreclr/{src => }/vm/hillclimbing.h | 0 src/coreclr/{src => }/vm/hosting.cpp | 0 src/coreclr/{src => }/vm/i386/AsmMacros.inc | 0 .../{src => }/vm/i386/PInvokeStubs.asm | 0 .../vm/i386/RedirectedHandledJITCase.asm | 0 src/coreclr/{src => }/vm/i386/asmconstants.h | 0 src/coreclr/{src => }/vm/i386/asmhelpers.S | 0 src/coreclr/{src => }/vm/i386/asmhelpers.asm | 0 src/coreclr/{src => }/vm/i386/cgencpu.h | 0 src/coreclr/{src => }/vm/i386/cgenx86.cpp | 0 src/coreclr/{src => }/vm/i386/ehhelpers.S | 0 src/coreclr/{src => }/vm/i386/excepcpu.h | 0 src/coreclr/{src => }/vm/i386/excepx86.cpp | 0 src/coreclr/{src => }/vm/i386/gmsasm.S | 0 src/coreclr/{src => }/vm/i386/gmsasm.asm | 0 src/coreclr/{src => }/vm/i386/gmscpu.h | 0 src/coreclr/{src => }/vm/i386/gmsx86.cpp | 0 src/coreclr/{src => }/vm/i386/jithelp.S | 0 src/coreclr/{src => }/vm/i386/jithelp.asm | 0 .../{src => }/vm/i386/jitinterfacex86.cpp | 0 src/coreclr/{src => }/vm/i386/pinvokestubs.S | 0 src/coreclr/{src => }/vm/i386/profiler.cpp | 0 .../{src => }/vm/i386/stublinkerx86.cpp | 0 src/coreclr/{src => }/vm/i386/stublinkerx86.h | 0 src/coreclr/{src => }/vm/i386/umthunkstub.S | 0 src/coreclr/{src => }/vm/i386/unixstubs.cpp | 0 .../{src => }/vm/i386/virtualcallstubcpu.hpp | 0 src/coreclr/{src => }/vm/ibclogger.cpp | 0 src/coreclr/{src => }/vm/ibclogger.h | 0 src/coreclr/{src => }/vm/ildump.h | 0 .../{src => }/vm/ilinstrumentation.cpp | 0 src/coreclr/{src => }/vm/ilinstrumentation.h | 0 src/coreclr/{src => }/vm/ilmarshalers.cpp | 0 src/coreclr/{src => }/vm/ilmarshalers.h | 0 src/coreclr/{src => }/vm/ilstubcache.cpp | 0 src/coreclr/{src => }/vm/ilstubcache.h | 0 src/coreclr/{src => }/vm/ilstubresolver.cpp | 0 src/coreclr/{src => }/vm/ilstubresolver.h | 0 src/coreclr/{src => }/vm/inlinetracking.cpp | 0 src/coreclr/{src => }/vm/inlinetracking.h | 0 src/coreclr/{src => }/vm/instmethhash.cpp | 0 src/coreclr/{src => }/vm/instmethhash.h | 0 src/coreclr/{src => }/vm/interopconverter.cpp | 0 src/coreclr/{src => }/vm/interopconverter.h | 0 .../{src => }/vm/interoplibinterface.cpp | 0 .../{src => }/vm/interoplibinterface.h | 0 src/coreclr/{src => }/vm/interoputil.cpp | 0 src/coreclr/{src => }/vm/interoputil.h | 0 src/coreclr/{src => }/vm/interoputil.inl | 0 src/coreclr/{src => }/vm/interpreter.cpp | 0 src/coreclr/{src => }/vm/interpreter.h | 0 src/coreclr/{src => }/vm/interpreter.hpp | 0 src/coreclr/{src => }/vm/invokeutil.cpp | 0 src/coreclr/{src => }/vm/invokeutil.h | 0 src/coreclr/{src => }/vm/ipcstreamfactory.cpp | 0 src/coreclr/{src => }/vm/ipcstreamfactory.h | 0 src/coreclr/{src => }/vm/iterator_util.h | 0 src/coreclr/{src => }/vm/jithelpers.cpp | 0 src/coreclr/{src => }/vm/jithost.cpp | 0 src/coreclr/{src => }/vm/jithost.h | 0 src/coreclr/{src => }/vm/jitinterface.cpp | 0 src/coreclr/{src => }/vm/jitinterface.h | 0 src/coreclr/{src => }/vm/jitinterfacegen.cpp | 0 src/coreclr/{src => }/vm/listlock.h | 0 src/coreclr/{src => }/vm/loaderallocator.cpp | 0 src/coreclr/{src => }/vm/loaderallocator.hpp | 0 src/coreclr/{src => }/vm/loaderallocator.inl | 0 src/coreclr/{src => }/vm/lockedrangelist.h | 0 src/coreclr/{src => }/vm/managedmdimport.cpp | 0 src/coreclr/{src => }/vm/managedmdimport.hpp | 0 src/coreclr/{src => }/vm/marshalnative.cpp | 0 src/coreclr/{src => }/vm/marshalnative.h | 0 src/coreclr/{src => }/vm/memberload.cpp | 0 src/coreclr/{src => }/vm/memberload.h | 0 src/coreclr/{src => }/vm/metasig.h | 0 src/coreclr/{src => }/vm/method.cpp | 0 src/coreclr/{src => }/vm/method.hpp | 0 src/coreclr/{src => }/vm/method.inl | 0 .../{src => }/vm/methoddescbackpatchinfo.cpp | 0 .../{src => }/vm/methoddescbackpatchinfo.h | 0 src/coreclr/{src => }/vm/methodimpl.cpp | 0 src/coreclr/{src => }/vm/methodimpl.h | 0 src/coreclr/{src => }/vm/methoditer.cpp | 0 src/coreclr/{src => }/vm/methoditer.h | 0 src/coreclr/{src => }/vm/methodtable.cpp | 0 src/coreclr/{src => }/vm/methodtable.h | 0 src/coreclr/{src => }/vm/methodtable.inl | 0 .../{src => }/vm/methodtablebuilder.cpp | 0 src/coreclr/{src => }/vm/methodtablebuilder.h | 0 .../{src => }/vm/methodtablebuilder.inl | 0 src/coreclr/{src => }/vm/mlinfo.cpp | 0 src/coreclr/{src => }/vm/mlinfo.h | 0 src/coreclr/{src => }/vm/mngstdinterfaces.cpp | 0 src/coreclr/{src => }/vm/mngstdinterfaces.h | 0 src/coreclr/{src => }/vm/mngstditflist.h | 0 src/coreclr/{src => }/vm/mtypes.h | 0 src/coreclr/{src => }/vm/multicorejit.cpp | 0 src/coreclr/{src => }/vm/multicorejit.h | 0 src/coreclr/{src => }/vm/multicorejitimpl.h | 0 .../{src => }/vm/multicorejitplayer.cpp | 0 src/coreclr/{src => }/vm/namespace.h | 0 .../{src => }/vm/nativeeventsource.cpp | 0 src/coreclr/{src => }/vm/nativeeventsource.h | 0 src/coreclr/{src => }/vm/nativeformatreader.h | 0 src/coreclr/{src => }/vm/nativeimage.cpp | 0 src/coreclr/{src => }/vm/nativeimage.h | 0 .../{src => }/vm/nativelibrarynative.cpp | 0 .../{src => }/vm/nativelibrarynative.h | 0 src/coreclr/{src => }/vm/nativeoverlapped.cpp | 0 src/coreclr/{src => }/vm/nativeoverlapped.h | 0 src/coreclr/{src => }/vm/ngenhash.h | 0 src/coreclr/{src => }/vm/ngenhash.inl | 0 src/coreclr/{src => }/vm/notifyexternals.cpp | 0 src/coreclr/{src => }/vm/notifyexternals.h | 0 src/coreclr/{src => }/vm/object.cpp | 0 src/coreclr/{src => }/vm/object.h | 0 src/coreclr/{src => }/vm/object.inl | 0 src/coreclr/{src => }/vm/objectlist.cpp | 0 src/coreclr/{src => }/vm/objectlist.h | 0 .../{src => }/vm/olecontexthelpers.cpp | 0 src/coreclr/{src => }/vm/olecontexthelpers.h | 0 src/coreclr/{src => }/vm/oletls.h | 0 src/coreclr/{src => }/vm/olevariant.cpp | 0 src/coreclr/{src => }/vm/olevariant.h | 0 .../{src => }/vm/onstackreplacement.cpp | 0 src/coreclr/{src => }/vm/onstackreplacement.h | 0 src/coreclr/{src => }/vm/packedfields.inl | 0 src/coreclr/{src => }/vm/pefile.cpp | 0 src/coreclr/{src => }/vm/pefile.h | 0 src/coreclr/{src => }/vm/pefile.inl | 0 src/coreclr/{src => }/vm/peimage.cpp | 0 src/coreclr/{src => }/vm/peimage.h | 0 src/coreclr/{src => }/vm/peimage.inl | 0 src/coreclr/{src => }/vm/peimagelayout.cpp | 0 src/coreclr/{src => }/vm/peimagelayout.h | 0 src/coreclr/{src => }/vm/peimagelayout.inl | 0 src/coreclr/{src => }/vm/pendingload.cpp | 0 src/coreclr/{src => }/vm/pendingload.h | 0 src/coreclr/{src => }/vm/perfinfo.cpp | 0 src/coreclr/{src => }/vm/perfinfo.h | 0 src/coreclr/{src => }/vm/perfmap.cpp | 0 src/coreclr/{src => }/vm/perfmap.h | 0 src/coreclr/{src => }/vm/pgo.cpp | 0 src/coreclr/{src => }/vm/pgo.h | 0 src/coreclr/{src => }/vm/pinvokeoverride.cpp | 0 src/coreclr/{src => }/vm/precode.cpp | 0 src/coreclr/{src => }/vm/precode.h | 0 src/coreclr/{src => }/vm/prestub.cpp | 0 .../vm/processdiagnosticsprotocolhelper.cpp | 0 .../vm/processdiagnosticsprotocolhelper.h | 0 src/coreclr/{src => }/vm/profdetach.cpp | 0 src/coreclr/{src => }/vm/profdetach.h | 0 .../vm/profilerdiagnosticprotocolhelper.cpp | 0 .../vm/profilerdiagnosticprotocolhelper.h | 0 .../vm/profilermetadataemitvalidator.cpp | 0 .../vm/profilermetadataemitvalidator.h | 0 .../{src => }/vm/profilingenumerators.cpp | 0 .../{src => }/vm/profilingenumerators.h | 0 src/coreclr/{src => }/vm/profilinghelper.cpp | 0 src/coreclr/{src => }/vm/profilinghelper.h | 0 src/coreclr/{src => }/vm/profilinghelper.inl | 0 .../{src => }/vm/proftoeeinterfaceimpl.cpp | 0 .../{src => }/vm/proftoeeinterfaceimpl.h | 0 .../{src => }/vm/proftoeeinterfaceimpl.inl | 0 src/coreclr/{src => }/vm/qcall.cpp | 0 src/coreclr/{src => }/vm/qcall.h | 0 src/coreclr/{src => }/vm/rcwrefcache.cpp | 0 src/coreclr/{src => }/vm/rcwrefcache.h | 0 src/coreclr/{src => }/vm/readytoruninfo.cpp | 0 src/coreclr/{src => }/vm/readytoruninfo.h | 0 .../{src => }/vm/reflectclasswriter.cpp | 0 src/coreclr/{src => }/vm/reflectclasswriter.h | 0 .../{src => }/vm/reflectioninvocation.cpp | 0 .../{src => }/vm/reflectioninvocation.h | 0 src/coreclr/{src => }/vm/rejit.cpp | 0 src/coreclr/{src => }/vm/rejit.h | 0 src/coreclr/{src => }/vm/rejit.inl | 0 src/coreclr/{src => }/vm/rexcep.h | 0 src/coreclr/{src => }/vm/rtlfunctions.cpp | 0 src/coreclr/{src => }/vm/rtlfunctions.h | 0 .../{src => }/vm/runtimecallablewrapper.cpp | 0 .../{src => }/vm/runtimecallablewrapper.h | 0 .../{src => }/vm/runtimeexceptionkind.h | 0 src/coreclr/{src => }/vm/runtimehandles.cpp | 0 src/coreclr/{src => }/vm/runtimehandles.h | 0 src/coreclr/{src => }/vm/safehandle.cpp | 0 src/coreclr/{src => }/vm/sampleprofiler.cpp | 0 src/coreclr/{src => }/vm/sampleprofiler.h | 0 src/coreclr/{src => }/vm/sigformat.cpp | 0 src/coreclr/{src => }/vm/sigformat.h | 0 src/coreclr/{src => }/vm/siginfo.cpp | 0 src/coreclr/{src => }/vm/siginfo.hpp | 0 src/coreclr/{src => }/vm/simplerwlock.cpp | 0 src/coreclr/{src => }/vm/simplerwlock.hpp | 0 src/coreclr/{src => }/vm/sourceline.cpp | 0 src/coreclr/{src => }/vm/sourceline.h | 0 src/coreclr/{src => }/vm/specialstatics.h | 0 src/coreclr/{src => }/vm/spinlock.cpp | 0 src/coreclr/{src => }/vm/spinlock.h | 0 src/coreclr/{src => }/vm/stackcontents.h | 0 .../{src => }/vm/stackingallocator.cpp | 0 src/coreclr/{src => }/vm/stackingallocator.h | 0 src/coreclr/{src => }/vm/stacksampler.cpp | 0 src/coreclr/{src => }/vm/stacksampler.h | 0 src/coreclr/{src => }/vm/stackwalk.cpp | 0 src/coreclr/{src => }/vm/stackwalk.h | 0 src/coreclr/{src => }/vm/stackwalktypes.h | 0 .../{src => }/vm/staticallocationhelpers.inl | 0 src/coreclr/{src => }/vm/stdinterfaces.cpp | 0 src/coreclr/{src => }/vm/stdinterfaces.h | 0 .../{src => }/vm/stdinterfaces_internal.h | 0 .../{src => }/vm/stdinterfaces_wrapper.cpp | 0 src/coreclr/{src => }/vm/stringliteralmap.cpp | 0 src/coreclr/{src => }/vm/stringliteralmap.h | 0 src/coreclr/{src => }/vm/stubcache.cpp | 0 src/coreclr/{src => }/vm/stubcache.h | 0 src/coreclr/{src => }/vm/stubgen.cpp | 0 src/coreclr/{src => }/vm/stubgen.h | 0 src/coreclr/{src => }/vm/stubhelpers.cpp | 0 src/coreclr/{src => }/vm/stubhelpers.h | 0 src/coreclr/{src => }/vm/stublink.cpp | 0 src/coreclr/{src => }/vm/stublink.h | 0 src/coreclr/{src => }/vm/stublink.inl | 0 src/coreclr/{src => }/vm/stubmgr.cpp | 0 src/coreclr/{src => }/vm/stubmgr.h | 0 src/coreclr/{src => }/vm/syncblk.cpp | 0 src/coreclr/{src => }/vm/syncblk.h | 0 src/coreclr/{src => }/vm/syncblk.inl | 0 src/coreclr/{src => }/vm/syncclean.cpp | 0 src/coreclr/{src => }/vm/syncclean.hpp | 0 src/coreclr/{src => }/vm/synch.cpp | 0 src/coreclr/{src => }/vm/synch.h | 0 src/coreclr/{src => }/vm/tailcallhelp.cpp | 0 src/coreclr/{src => }/vm/tailcallhelp.h | 0 .../{src => }/vm/threaddebugblockinginfo.cpp | 0 .../{src => }/vm/threaddebugblockinginfo.h | 0 .../{src => }/vm/threadpoolrequest.cpp | 0 src/coreclr/{src => }/vm/threadpoolrequest.h | 0 src/coreclr/{src => }/vm/threads.cpp | 0 src/coreclr/{src => }/vm/threads.h | 0 src/coreclr/{src => }/vm/threads.inl | 0 src/coreclr/{src => }/vm/threadstatics.cpp | 0 src/coreclr/{src => }/vm/threadstatics.h | 0 src/coreclr/{src => }/vm/threadsuspend.cpp | 0 src/coreclr/{src => }/vm/threadsuspend.h | 0 .../{src => }/vm/tieredcompilation.cpp | 0 src/coreclr/{src => }/vm/tieredcompilation.h | 0 src/coreclr/{src => }/vm/typectxt.cpp | 0 src/coreclr/{src => }/vm/typectxt.h | 0 src/coreclr/{src => }/vm/typedesc.cpp | 0 src/coreclr/{src => }/vm/typedesc.h | 0 src/coreclr/{src => }/vm/typedesc.inl | 0 .../{src => }/vm/typeequivalencehash.cpp | 0 .../{src => }/vm/typeequivalencehash.hpp | 0 src/coreclr/{src => }/vm/typehandle.cpp | 0 src/coreclr/{src => }/vm/typehandle.h | 0 src/coreclr/{src => }/vm/typehandle.inl | 0 src/coreclr/{src => }/vm/typehash.cpp | 0 src/coreclr/{src => }/vm/typehash.h | 0 .../{src => }/vm/typehashingalgorithms.h | 0 src/coreclr/{src => }/vm/typekey.h | 0 src/coreclr/{src => }/vm/typeparse.cpp | 0 src/coreclr/{src => }/vm/typeparse.h | 0 src/coreclr/{src => }/vm/typestring.cpp | 0 src/coreclr/{src => }/vm/typestring.h | 0 src/coreclr/{src => }/vm/util.cpp | 0 src/coreclr/{src => }/vm/util.hpp | 0 src/coreclr/{src => }/vm/vars.cpp | 0 src/coreclr/{src => }/vm/vars.hpp | 0 .../{src => }/vm/versionresilienthashcode.cpp | 0 .../{src => }/vm/versionresilienthashcode.h | 0 src/coreclr/{src => }/vm/virtualcallstub.cpp | 0 src/coreclr/{src => }/vm/virtualcallstub.h | 0 src/coreclr/{src => }/vm/vmholder.h | 0 .../{src => }/vm/weakreferencenative.cpp | 0 .../{src => }/vm/weakreferencenative.h | 0 .../{src => }/vm/wellknownattributes.h | 0 src/coreclr/{src => }/vm/win32threadpool.cpp | 0 src/coreclr/{src => }/vm/win32threadpool.h | 0 src/coreclr/{src => }/vm/wks/CMakeLists.txt | 0 src/coreclr/{src => }/vm/wrappers.h | 0 .../{src => }/vm/yieldprocessornormalized.cpp | 0 src/coreclr/{src => }/vm/zapsig.cpp | 0 src/coreclr/{src => }/vm/zapsig.h | 0 src/coreclr/{src => }/zap/CMakeLists.txt | 0 src/coreclr/{src => }/zap/common.h | 0 .../{src => }/zap/nativeformatwriter.cpp | 0 .../{src => }/zap/nativeformatwriter.h | 0 src/coreclr/{src => }/zap/svcworker.cpp | 0 src/coreclr/{src => }/zap/zapcode.cpp | 0 src/coreclr/{src => }/zap/zapcode.h | 0 src/coreclr/{src => }/zap/zapheaders.cpp | 0 src/coreclr/{src => }/zap/zapheaders.h | 0 src/coreclr/{src => }/zap/zapimage.cpp | 0 src/coreclr/{src => }/zap/zapimage.h | 0 src/coreclr/{src => }/zap/zapimport.cpp | 0 src/coreclr/{src => }/zap/zapimport.h | 0 src/coreclr/{src => }/zap/zapinfo.cpp | 0 src/coreclr/{src => }/zap/zapinfo.h | 0 src/coreclr/{src => }/zap/zapinnerptr.cpp | 0 src/coreclr/{src => }/zap/zapinnerptr.h | 0 src/coreclr/{src => }/zap/zaplog.h | 0 src/coreclr/{src => }/zap/zapmetadata.cpp | 0 src/coreclr/{src => }/zap/zapmetadata.h | 0 src/coreclr/{src => }/zap/zapnodetype.h | 0 src/coreclr/{src => }/zap/zapper.cpp | 0 src/coreclr/{src => }/zap/zapperstats.cpp | 0 src/coreclr/{src => }/zap/zapperstats.h | 0 src/coreclr/{src => }/zap/zapreadytorun.cpp | 0 src/coreclr/{src => }/zap/zapreadytorun.h | 0 src/coreclr/{src => }/zap/zaprelocs.cpp | 0 src/coreclr/{src => }/zap/zaprelocs.h | 0 src/coreclr/{src => }/zap/zapwrapper.cpp | 0 src/coreclr/{src => }/zap/zapwrapper.h | 0 src/coreclr/{src => }/zap/zapwriter.cpp | 0 src/coreclr/{src => }/zap/zapwriter.h | 0 src/tests/CMakeLists.txt | 2 +- src/tests/Common/scripts/format.py | 2 +- .../ilverify/ILVerification.Tests.csproj | 2 +- src/tests/profiler/native/CMakeLists.txt | 4 +- 5169 files changed, 207 insertions(+), 216 deletions(-) rename src/coreclr/{src => }/.nuget/Directory.Build.props (100%) rename src/coreclr/{src => }/.nuget/Directory.Build.targets (100%) rename src/coreclr/{src => }/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.pkgproj (100%) rename src/coreclr/{src => }/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.proj (100%) rename src/coreclr/{src => }/.nuget/Microsoft.ILVerification/Microsoft.ILVerification.pkgproj (100%) rename src/coreclr/{src => }/.nuget/Microsoft.NET.Sdk.IL/Microsoft.NET.Sdk.IL.pkgproj (100%) rename src/coreclr/{src => }/.nuget/Microsoft.NET.Sdk.IL/sdk/Sdk.props (100%) rename src/coreclr/{src => }/.nuget/Microsoft.NET.Sdk.IL/sdk/Sdk.targets (100%) rename src/coreclr/{src => }/.nuget/Microsoft.NET.Sdk.IL/targets/Microsoft.NET.Sdk.IL.Common.targets (100%) rename src/coreclr/{src => }/.nuget/Microsoft.NET.Sdk.IL/targets/Microsoft.NET.Sdk.IL.targets (100%) rename src/coreclr/{src => }/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.pkgproj (100%) rename src/coreclr/{src => }/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.proj (100%) rename src/coreclr/{src => }/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.pkgproj (100%) rename src/coreclr/{src => }/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.proj (100%) rename src/coreclr/{src => }/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.pkgproj (100%) rename src/coreclr/{src => }/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.proj (100%) rename src/coreclr/{src => }/.nuget/_.pdb (100%) rename src/coreclr/{src => }/.nuget/builds.targets (100%) rename src/coreclr/{src => }/.nuget/coreclr-packages.proj (100%) rename src/coreclr/{src => }/.nuget/descriptions.json (100%) rename src/coreclr/{src => }/.nuget/dotnet-ilverify/DotnetToolSettings.xml (100%) rename src/coreclr/{src => }/.nuget/dotnet-ilverify/dotnet-ilverify.pkgproj (100%) rename src/coreclr/{src => }/.nuget/optdata/Directory.Build.props (100%) rename src/coreclr/{src => }/.nuget/optdata/Directory.Build.targets (100%) rename src/coreclr/{src => }/.nuget/optdata/optdata.csproj (100%) rename src/coreclr/{src => }/.nuget/packageIndex.json (100%) rename src/coreclr/{src => }/.nuget/packaging.props (100%) rename src/coreclr/{src => }/.nuget/versioning.targets (100%) rename src/coreclr/{src => }/System.Private.CoreLib/CreateRuntimeRootILLinkDescriptorFile.targets (100%) rename src/coreclr/{src => }/System.Private.CoreLib/MembersMustExist.AnalyzerData (100%) rename src/coreclr/{src => }/System.Private.CoreLib/System.Private.CoreLib.csproj (98%) rename src/coreclr/{src => }/System.Private.CoreLib/System.Private.CoreLib.sln (100%) rename src/coreclr/{src => }/System.Private.CoreLib/Tools/GenUnicodeProp/CategoryCasingInfo.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/Tools/GenUnicodeProp/DataTable.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/Tools/GenUnicodeProp/GenUnicodeProp.csproj (100%) rename src/coreclr/{src => }/System.Private.CoreLib/Tools/GenUnicodeProp/NumericGraphemeInfo.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/Tools/GenUnicodeProp/Program.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/Tools/GenUnicodeProp/Readme.md (100%) rename src/coreclr/{src => }/System.Private.CoreLib/Tools/GenUnicodeProp/StrongBidiCategory.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/Tools/GenUnicodeProp/TableLevels.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/ILLink/ILLinkTrim.xml (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/Internal/Runtime/InteropServices/ComActivator.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/Internal/Runtime/InteropServices/ComponentActivator.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/Internal/Runtime/InteropServices/InMemoryAssemblyLoader.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/Internal/Runtime/InteropServices/IsolatedComponentLoadContext.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/Interop/Unix/Interop.Libraries.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/Microsoft/Win32/OAVariantLib.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/ArgIterator.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Array.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Attribute.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/BadImageFormatException.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Buffer.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/CLRConfig.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Collections/EmptyReadOnlyDictionaryInternal.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Collections/Generic/ArraySortHelper.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Collections/Generic/Comparer.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Collections/Generic/ComparerHelpers.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Collections/Generic/EqualityComparer.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Collections/ObjectModel/ReadOnlyDictionary.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Currency.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/DateTime.Unix.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/DateTime.Windows.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Delegate.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Diagnostics/Debugger.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Diagnostics/EditAndContinueHelper.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Diagnostics/Eventing/EventPipe.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Diagnostics/ICustomDebuggerNotification.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Diagnostics/StackFrame.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Diagnostics/StackFrameHelper.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Diagnostics/StackTrace.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Diagnostics/SymbolStore/ISymWriter.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Diagnostics/SymbolStore/SymAddressKind.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Diagnostics/SymbolStore/Token.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Enum.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Environment.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Exception.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/GC.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/IO/FileLoadException.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/IO/FileNotFoundException.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/IO/Stream.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Math.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/MathF.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/MissingMemberException.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/MulticastDelegate.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Object.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/OleAutBinder.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Assembly.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/AssemblyName.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Associates.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/ConstructorInfo.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/CustomAttribute.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/AssemblyBuilder.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/AssemblyBuilderData.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/ConstructorBuilder.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/CustomAttributeBuilder.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/DynamicILGenerator.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/EnumBuilder.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/EventBuilder.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/FieldBuilder.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/GenericTypeParameterBuilder.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/ILGenerator.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/ISymWrapperCore.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/LocalBuilder.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/MethodBuilder.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/MethodBuilderInstantiation.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/ModuleBuilder.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/ModuleBuilderData.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/ParameterBuilder.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/PropertyBuilder.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/SignatureHelper.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/SymbolMethod.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/SymbolType.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilder.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilderInstantiation.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Emit/XXXOnTypeBuilderInstantiation.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/FieldInfo.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/INVOCATION_FLAGS.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/LoaderAllocator.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/MdConstant.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/MdFieldInfo.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/MdImport.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/MemberInfo.Internal.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/Metadata/AssemblyExtensions.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/MethodBase.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/RtFieldInfo.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/RuntimeConstructorInfo.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/RuntimeEventInfo.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/RuntimeExceptionHandlingClause.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/RuntimeLocalVariableInfo.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/RuntimeMethodBody.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/RuntimeModule.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/RuntimeParameterInfo.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Reflection/RuntimePropertyInfo.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Resources/ManifestBasedResourceGroveler.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/CompilerServices/CastHelpers.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/CompilerServices/CrossLoaderAllocatorHashHelpers.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/CompilerServices/DependentHandle.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/CompilerServices/GCHeapHash.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/CompilerServices/ICastableHelpers.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeFeature.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeHelpers.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/CompilerServices/TypeDependencyAttribute.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/GCSettings.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/ComEventsHelper.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/ComEventsInfo.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/ComTypes/IEnumerable.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/ComTypes/IEnumerator.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/ComWrappers.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/ComDataHelpers.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumVariantViewOfEnumerator.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumerableToDispatchMarshaler.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumerableViewOfDispatch.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumeratorToEnumVariantMarshaler.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumeratorViewOfEnumVariant.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/ExpandoToDispatchExMarshaler.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/TypeToTypeInfoMarshaler.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/DynamicInterfaceCastableHelpers.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/GCHandle.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/IException.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/Marshal.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/InteropServices/NativeLibrary.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/X86Base.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/Loader/AssemblyLoadContext.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Runtime/Versioning/CompatibilitySwitch.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/RuntimeArgumentHandle.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/RuntimeHandles.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/RuntimeType.ActivatorCache.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/RuntimeType.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Security/DynamicSecurityMethodAttribute.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/StartupHookProvider.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/String.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/StubHelpers.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Text/StringBuilder.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandle.Unix.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandle.Windows.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandle.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandleOverlapped.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Threading/ClrThreadPoolPreAllocatedOverlapped.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Threading/Interlocked.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Threading/LowLevelLifoSemaphore.Unix.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Threading/Monitor.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Threading/Overlapped.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Threading/ProcessorIdCache.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Threading/StackCrawlMark.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Threading/SynchronizationContext.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Threading/Thread.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Threading/ThreadPool.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Threading/Timer.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Threading/WaitHandle.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Type.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/TypeLoadException.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/TypeNameParser.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/TypedReference.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/ValueType.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/Variant.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/WeakReference.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/WeakReference.T.CoreCLR.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/__Canon.cs (100%) rename src/coreclr/{src => }/System.Private.CoreLib/src/System/__ComObject.cs (100%) rename src/coreclr/{src => }/ToolBox/CMakeLists.txt (100%) rename src/coreclr/{src => }/ToolBox/SOS/CMakeLists.txt (100%) rename src/coreclr/{src => }/ToolBox/SOS/DIALib/DIALib.il (100%) rename src/coreclr/{src => }/ToolBox/SOS/DIALib/DIALib.ilproj (100%) rename src/coreclr/{src => }/ToolBox/SOS/DacTableGen/DacTableGen.csproj (100%) rename src/coreclr/{src => }/ToolBox/SOS/DacTableGen/MapSymbolProvider.cs (100%) rename src/coreclr/{src => }/ToolBox/SOS/DacTableGen/cvconst.cs (100%) rename src/coreclr/{src => }/ToolBox/SOS/DacTableGen/diautil.cs (100%) rename src/coreclr/{src => }/ToolBox/SOS/DacTableGen/main.cs (100%) rename src/coreclr/{src => }/ToolBox/SOS/Directory.Build.props (100%) rename src/coreclr/{src => }/ToolBox/SOS/SOS_README.md (100%) rename src/coreclr/{src => }/ToolBox/superpmi/.clang-format (100%) rename src/coreclr/{src => }/ToolBox/superpmi/CMakeLists.txt (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/CMakeLists.txt (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/commandline.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/commandline.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/mcs.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/mcs.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/removedup.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/removedup.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbasmdump.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbasmdump.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbconcat.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbconcat.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbdump.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbdump.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbdumpmap.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbdumpmap.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbdumptoc.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbdumptoc.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbfracture.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbfracture.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbildump.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbildump.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbinteg.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbinteg.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbmerge.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbmerge.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbprintjiteeversion.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbprintjiteeversion.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbremovedup.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbremovedup.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbstat.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbstat.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbstrip.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbstrip.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbtoc.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/mcs/verbtoc.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/readme.md (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/asmdumper.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/asmdumper.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/callutils.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/callutils.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/compileresult.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/compileresult.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/crlwmlist.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/errorhandling.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/errorhandling.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/hash.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/hash.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/icorjitcompilerimpl.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/icorjithostimpl.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/lightweightmap.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/logging.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/logging.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/lwmlist.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/mclist.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/mclist.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/methodcontext.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/methodcontext.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/methodcontextiterator.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/methodcontextiterator.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/methodcontextreader.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/methodcontextreader.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/runtimedetails.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/simpletimer.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/simpletimer.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/spmidumphelper.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/spmidumphelper.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/spmirecordhelper.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/spmiutil.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/spmiutil.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/standardpch.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/tocfile.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/tocfile.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/typeutils.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shared/typeutils.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-collector/CMakeLists.txt (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-collector/icorjitcompiler.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-collector/icorjitcompiler.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-collector/jithost.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-collector/jithost.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-collector/superpmi-shim-collector.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-collector/superpmi-shim-collector.def (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-collector/superpmi-shim-collector.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-counter/CMakeLists.txt (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-counter/icorjitcompiler.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-counter/icorjitcompiler.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-counter/jithost.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-counter/jithost.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-counter/methodcallsummarizer.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-counter/methodcallsummarizer.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-counter/superpmi-shim-counter.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-counter/superpmi-shim-counter.def (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-counter/superpmi-shim-counter.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-simple/CMakeLists.txt (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-simple/icorjitcompiler.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-simple/icorjitcompiler.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-simple/jithost.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-simple/jithost.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-simple/superpmi-shim-simple.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-simple/superpmi-shim-simple.def (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi-shim-simple/superpmi-shim-simple.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/CMakeLists.txt (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/commandline.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/commandline.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/cycletimer.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/cycletimer.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/icorjitinfo.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/icorjitinfo.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/jitdebugger.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/jitdebugger.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/jithost.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/jithost.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/jitinstance.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/jitinstance.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/methodstatsemitter.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/methodstatsemitter.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/neardiffer.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/neardiffer.h (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/parallelsuperpmi.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/superpmi.cpp (100%) rename src/coreclr/{src => }/ToolBox/superpmi/superpmi/superpmi.h (100%) rename src/coreclr/{src => }/binder/CMakeLists.txt (100%) rename src/coreclr/{src => }/binder/activitytracker.cpp (100%) rename src/coreclr/{src => }/binder/applicationcontext.cpp (100%) rename src/coreclr/{src => }/binder/assembly.cpp (100%) rename src/coreclr/{src => }/binder/assemblybinder.cpp (100%) rename src/coreclr/{src => }/binder/assemblyidentitycache.cpp (100%) rename src/coreclr/{src => }/binder/assemblyname.cpp (100%) rename src/coreclr/{src => }/binder/bindertracing.cpp (100%) rename src/coreclr/{src => }/binder/clrprivbinderassemblyloadcontext.cpp (100%) rename src/coreclr/{src => }/binder/clrprivbindercoreclr.cpp (100%) rename src/coreclr/{src => }/binder/coreclrbindercommon.cpp (100%) rename src/coreclr/{src => }/binder/failurecache.cpp (100%) rename src/coreclr/{src => }/binder/fusionassemblyname.cpp (100%) rename src/coreclr/{src => }/binder/inc/activitytracker.h (100%) rename src/coreclr/{src => }/binder/inc/applicationcontext.hpp (100%) rename src/coreclr/{src => }/binder/inc/applicationcontext.inl (100%) rename src/coreclr/{src => }/binder/inc/assembly.hpp (100%) rename src/coreclr/{src => }/binder/inc/assembly.inl (100%) rename src/coreclr/{src => }/binder/inc/assemblybinder.hpp (100%) rename src/coreclr/{src => }/binder/inc/assemblyentry.hpp (100%) rename src/coreclr/{src => }/binder/inc/assemblyhashtraits.hpp (100%) rename src/coreclr/{src => }/binder/inc/assemblyidentity.hpp (100%) rename src/coreclr/{src => }/binder/inc/assemblyidentitycache.hpp (100%) rename src/coreclr/{src => }/binder/inc/assemblyname.hpp (100%) rename src/coreclr/{src => }/binder/inc/assemblyname.inl (100%) rename src/coreclr/{src => }/binder/inc/assemblyversion.hpp (100%) rename src/coreclr/{src => }/binder/inc/assemblyversion.inl (100%) rename src/coreclr/{src => }/binder/inc/bindertracing.h (100%) rename src/coreclr/{src => }/binder/inc/bindertypes.hpp (100%) rename src/coreclr/{src => }/binder/inc/bindresult.hpp (100%) rename src/coreclr/{src => }/binder/inc/bindresult.inl (100%) rename src/coreclr/{src => }/binder/inc/clrprivbinderassemblyloadcontext.h (100%) rename src/coreclr/{src => }/binder/inc/clrprivbindercoreclr.h (100%) rename src/coreclr/{src => }/binder/inc/contextentry.hpp (100%) rename src/coreclr/{src => }/binder/inc/coreclrbindercommon.h (100%) rename src/coreclr/{src => }/binder/inc/failurecache.hpp (100%) rename src/coreclr/{src => }/binder/inc/failurecachehashtraits.hpp (100%) rename src/coreclr/{src => }/binder/inc/fusionassemblyname.hpp (100%) rename src/coreclr/{src => }/binder/inc/fusionhelpers.hpp (100%) rename src/coreclr/{src => }/binder/inc/loadcontext.hpp (100%) rename src/coreclr/{src => }/binder/inc/loadcontext.inl (100%) rename src/coreclr/{src => }/binder/inc/stringlexer.hpp (100%) rename src/coreclr/{src => }/binder/inc/stringlexer.inl (100%) rename src/coreclr/{src => }/binder/inc/textualidentityparser.hpp (100%) rename src/coreclr/{src => }/binder/inc/utils.hpp (100%) rename src/coreclr/{src => }/binder/inc/variables.hpp (100%) rename src/coreclr/{src => }/binder/stringlexer.cpp (100%) rename src/coreclr/{src => }/binder/textualidentityparser.cpp (100%) rename src/coreclr/{src => }/binder/utils.cpp (100%) rename src/coreclr/{src => }/binder/variables.cpp (100%) rename src/coreclr/{src => }/classlibnative/CMakeLists.txt (100%) rename src/coreclr/{src => }/classlibnative/bcltype/CMakeLists.txt (100%) rename src/coreclr/{src => }/classlibnative/bcltype/arraynative.cpp (100%) rename src/coreclr/{src => }/classlibnative/bcltype/arraynative.h (100%) rename src/coreclr/{src => }/classlibnative/bcltype/arraynative.inl (100%) rename src/coreclr/{src => }/classlibnative/bcltype/oavariant.cpp (100%) rename src/coreclr/{src => }/classlibnative/bcltype/oavariant.h (100%) rename src/coreclr/{src => }/classlibnative/bcltype/objectnative.cpp (100%) rename src/coreclr/{src => }/classlibnative/bcltype/objectnative.h (100%) rename src/coreclr/{src => }/classlibnative/bcltype/stringnative.cpp (100%) rename src/coreclr/{src => }/classlibnative/bcltype/stringnative.h (100%) rename src/coreclr/{src => }/classlibnative/bcltype/system.cpp (100%) rename src/coreclr/{src => }/classlibnative/bcltype/system.h (100%) rename src/coreclr/{src => }/classlibnative/bcltype/varargsnative.cpp (100%) rename src/coreclr/{src => }/classlibnative/bcltype/varargsnative.h (100%) rename src/coreclr/{src => }/classlibnative/bcltype/variant.cpp (100%) rename src/coreclr/{src => }/classlibnative/bcltype/variant.h (100%) rename src/coreclr/{src => }/classlibnative/float/CMakeLists.txt (100%) rename src/coreclr/{src => }/classlibnative/float/floatdouble.cpp (100%) rename src/coreclr/{src => }/classlibnative/float/floatsingle.cpp (100%) rename src/coreclr/{src => }/classlibnative/inc/floatdouble.h (100%) rename src/coreclr/{src => }/classlibnative/inc/floatsingle.h (100%) rename src/coreclr/{src => }/classlibnative/inc/nls.h (100%) rename src/coreclr/{src => }/cpp.hint (100%) rename src/coreclr/{src => }/debug/CMakeLists.txt (100%) rename src/coreclr/{src => }/debug/createdump/CMakeLists.txt (97%) rename src/coreclr/{src => }/debug/createdump/config.h.in (100%) rename src/coreclr/{src => }/debug/createdump/configure.cmake (100%) rename src/coreclr/{src => }/debug/createdump/crashinfo.cpp (100%) rename src/coreclr/{src => }/debug/createdump/crashinfo.h (100%) rename src/coreclr/{src => }/debug/createdump/crashinfomac.cpp (100%) rename src/coreclr/{src => }/debug/createdump/crashinfounix.cpp (100%) rename src/coreclr/{src => }/debug/createdump/createdump.h (100%) rename src/coreclr/{src => }/debug/createdump/createdump.rc (100%) rename src/coreclr/{src => }/debug/createdump/createdumpunix.cpp (100%) rename src/coreclr/{src => }/debug/createdump/createdumpwindows.cpp (100%) rename src/coreclr/{src => }/debug/createdump/datatarget.cpp (100%) rename src/coreclr/{src => }/debug/createdump/datatarget.h (100%) rename src/coreclr/{src => }/debug/createdump/dumpname.cpp (100%) rename src/coreclr/{src => }/debug/createdump/dumpwriter.cpp (100%) rename src/coreclr/{src => }/debug/createdump/dumpwriter.h (100%) rename src/coreclr/{src => }/debug/createdump/mac.h (100%) rename src/coreclr/{src => }/debug/createdump/main.cpp (100%) rename src/coreclr/{src => }/debug/createdump/memoryregion.h (100%) rename src/coreclr/{src => }/debug/createdump/threadinfo.cpp (100%) rename src/coreclr/{src => }/debug/createdump/threadinfo.h (100%) rename src/coreclr/{src => }/debug/createdump/threadinfomac.cpp (100%) rename src/coreclr/{src => }/debug/createdump/threadinfounix.cpp (100%) rename src/coreclr/{src => }/debug/daccess/CMakeLists.txt (89%) rename src/coreclr/{src => }/debug/daccess/amd64/primitives.cpp (100%) rename src/coreclr/{src => }/debug/daccess/arm/primitives.cpp (100%) rename src/coreclr/{src => }/debug/daccess/arm64/primitives.cpp (100%) rename src/coreclr/{src => }/debug/daccess/daccess.cpp (100%) rename src/coreclr/{src => }/debug/daccess/dacdbiimpl.cpp (100%) rename src/coreclr/{src => }/debug/daccess/dacdbiimpl.h (100%) rename src/coreclr/{src => }/debug/daccess/dacdbiimpl.inl (100%) rename src/coreclr/{src => }/debug/daccess/dacdbiimpllocks.cpp (100%) rename src/coreclr/{src => }/debug/daccess/dacdbiimplstackwalk.cpp (100%) rename src/coreclr/{src => }/debug/daccess/dacfn.cpp (100%) rename src/coreclr/{src => }/debug/daccess/dacimpl.h (100%) rename src/coreclr/{src => }/debug/daccess/datatargetadapter.cpp (100%) rename src/coreclr/{src => }/debug/daccess/datatargetadapter.h (100%) rename src/coreclr/{src => }/debug/daccess/enummem.cpp (100%) rename src/coreclr/{src => }/debug/daccess/fntableaccess.cpp (100%) rename src/coreclr/{src => }/debug/daccess/fntableaccess.h (100%) rename src/coreclr/{src => }/debug/daccess/gcinterface.dac.h (100%) rename src/coreclr/{src => }/debug/daccess/i386/primitives.cpp (100%) rename src/coreclr/{src => }/debug/daccess/inspect.cpp (100%) rename src/coreclr/{src => }/debug/daccess/nidump.cpp (100%) rename src/coreclr/{src => }/debug/daccess/nidump.h (100%) rename src/coreclr/{src => }/debug/daccess/nidump.inl (100%) rename src/coreclr/{src => }/debug/daccess/reimpl.cpp (100%) rename src/coreclr/{src => }/debug/daccess/request.cpp (100%) rename src/coreclr/{src => }/debug/daccess/request_common.h (100%) rename src/coreclr/{src => }/debug/daccess/request_svr.cpp (100%) rename src/coreclr/{src => }/debug/daccess/stack.cpp (100%) rename src/coreclr/{src => }/debug/daccess/stdafx.h (100%) rename src/coreclr/{src => }/debug/daccess/task.cpp (100%) rename src/coreclr/{src => }/debug/dbgutil/CMakeLists.txt (93%) rename src/coreclr/{src => }/debug/dbgutil/dbgutil.cpp (100%) rename src/coreclr/{src => }/debug/dbgutil/elfreader.cpp (100%) rename src/coreclr/{src => }/debug/dbgutil/elfreader.h (100%) rename src/coreclr/{src => }/debug/dbgutil/machoreader.cpp (100%) rename src/coreclr/{src => }/debug/dbgutil/machoreader.h (100%) rename src/coreclr/{src => }/debug/debug-pal/CMakeLists.txt (100%) rename src/coreclr/{src => }/debug/debug-pal/dummy/twowaypipe.cpp (100%) rename src/coreclr/{src => }/debug/debug-pal/unix/diagnosticsipc.cpp (100%) rename src/coreclr/{src => }/debug/debug-pal/unix/processdescriptor.cpp (100%) rename src/coreclr/{src => }/debug/debug-pal/unix/twowaypipe.cpp (100%) rename src/coreclr/{src => }/debug/debug-pal/win/diagnosticsipc.cpp (100%) rename src/coreclr/{src => }/debug/debug-pal/win/processdescriptor.cpp (100%) rename src/coreclr/{src => }/debug/debug-pal/win/twowaypipe.cpp (100%) rename src/coreclr/{src => }/debug/di/CMakeLists.txt (100%) rename src/coreclr/{src => }/debug/di/ICorDebugValueTypes.vsd (100%) rename src/coreclr/{src => }/debug/di/amd64/FloatConversion.asm (100%) rename src/coreclr/{src => }/debug/di/amd64/cordbregisterset.cpp (100%) rename src/coreclr/{src => }/debug/di/amd64/floatconversion.S (100%) rename src/coreclr/{src => }/debug/di/amd64/primitives.cpp (100%) rename src/coreclr/{src => }/debug/di/arm/cordbregisterset.cpp (100%) rename src/coreclr/{src => }/debug/di/arm/floatconversion.S (100%) rename src/coreclr/{src => }/debug/di/arm/floatconversion.asm (100%) rename src/coreclr/{src => }/debug/di/arm/primitives.cpp (100%) rename src/coreclr/{src => }/debug/di/arm64/cordbregisterset.cpp (100%) rename src/coreclr/{src => }/debug/di/arm64/floatconversion.S (100%) rename src/coreclr/{src => }/debug/di/arm64/floatconversion.asm (100%) rename src/coreclr/{src => }/debug/di/arm64/primitives.cpp (100%) rename src/coreclr/{src => }/debug/di/breakpoint.cpp (100%) rename src/coreclr/{src => }/debug/di/classfactory.h (100%) rename src/coreclr/{src => }/debug/di/cordb.cpp (100%) rename src/coreclr/{src => }/debug/di/dbgtransportmanager.cpp (100%) rename src/coreclr/{src => }/debug/di/dbgtransportmanager.h (100%) rename src/coreclr/{src => }/debug/di/dbgtransportpipeline.cpp (100%) rename src/coreclr/{src => }/debug/di/divalue.cpp (100%) rename src/coreclr/{src => }/debug/di/eventchannel.h (100%) rename src/coreclr/{src => }/debug/di/eventredirectionpipeline.cpp (100%) rename src/coreclr/{src => }/debug/di/eventredirectionpipeline.h (100%) rename src/coreclr/{src => }/debug/di/hash.cpp (100%) rename src/coreclr/{src => }/debug/di/helpers.h (100%) rename src/coreclr/{src => }/debug/di/i386/cordbregisterset.cpp (100%) rename src/coreclr/{src => }/debug/di/i386/primitives.cpp (100%) rename src/coreclr/{src => }/debug/di/localeventchannel.cpp (100%) rename src/coreclr/{src => }/debug/di/module.cpp (100%) rename src/coreclr/{src => }/debug/di/nativepipeline.cpp (100%) rename src/coreclr/{src => }/debug/di/nativepipeline.h (100%) rename src/coreclr/{src => }/debug/di/platformspecific.cpp (100%) rename src/coreclr/{src => }/debug/di/process.cpp (100%) rename src/coreclr/{src => }/debug/di/publish.cpp (100%) rename src/coreclr/{src => }/debug/di/remoteeventchannel.cpp (100%) rename src/coreclr/{src => }/debug/di/rsappdomain.cpp (100%) rename src/coreclr/{src => }/debug/di/rsassembly.cpp (100%) rename src/coreclr/{src => }/debug/di/rsclass.cpp (100%) rename src/coreclr/{src => }/debug/di/rsenumerator.hpp (100%) rename src/coreclr/{src => }/debug/di/rsfunction.cpp (100%) rename src/coreclr/{src => }/debug/di/rsmain.cpp (100%) rename src/coreclr/{src => }/debug/di/rsmda.cpp (100%) rename src/coreclr/{src => }/debug/di/rspriv.h (100%) rename src/coreclr/{src => }/debug/di/rspriv.inl (100%) rename src/coreclr/{src => }/debug/di/rsregsetcommon.cpp (100%) rename src/coreclr/{src => }/debug/di/rsstackwalk.cpp (100%) rename src/coreclr/{src => }/debug/di/rsthread.cpp (100%) rename src/coreclr/{src => }/debug/di/rstype.cpp (100%) rename src/coreclr/{src => }/debug/di/shared.cpp (100%) rename src/coreclr/{src => }/debug/di/shimcallback.cpp (100%) rename src/coreclr/{src => }/debug/di/shimdatatarget.cpp (100%) rename src/coreclr/{src => }/debug/di/shimdatatarget.h (100%) rename src/coreclr/{src => }/debug/di/shimevents.cpp (100%) rename src/coreclr/{src => }/debug/di/shimlocaldatatarget.cpp (100%) rename src/coreclr/{src => }/debug/di/shimpriv.h (100%) rename src/coreclr/{src => }/debug/di/shimprocess.cpp (100%) rename src/coreclr/{src => }/debug/di/shimremotedatatarget.cpp (100%) rename src/coreclr/{src => }/debug/di/shimstackwalk.cpp (100%) rename src/coreclr/{src => }/debug/di/stdafx.h (100%) rename src/coreclr/{src => }/debug/di/symbolinfo.cpp (100%) rename src/coreclr/{src => }/debug/di/symbolinfo.h (100%) rename src/coreclr/{src => }/debug/di/valuehome.cpp (100%) rename src/coreclr/{src => }/debug/di/windowspipeline.cpp (100%) rename src/coreclr/{src => }/debug/ee/CMakeLists.txt (100%) rename src/coreclr/{src => }/debug/ee/amd64/amd64InstrDecode.h (100%) rename src/coreclr/{src => }/debug/ee/amd64/amd64walker.cpp (100%) rename src/coreclr/{src => }/debug/ee/amd64/dbghelpers.S (100%) rename src/coreclr/{src => }/debug/ee/amd64/dbghelpers.asm (100%) rename src/coreclr/{src => }/debug/ee/amd64/debuggerregdisplayhelper.cpp (100%) rename src/coreclr/{src => }/debug/ee/amd64/gen_amd64InstrDecode/Amd64InstructionTableGenerator.cs (100%) rename src/coreclr/{src => }/debug/ee/amd64/gen_amd64InstrDecode/Amd64InstructionTableGenerator.csproj (100%) rename src/coreclr/{src => }/debug/ee/amd64/gen_amd64InstrDecode/README.md (100%) rename src/coreclr/{src => }/debug/ee/amd64/gen_amd64InstrDecode/createOpcodes.cpp (100%) rename src/coreclr/{src => }/debug/ee/amd64/primitives.cpp (100%) rename src/coreclr/{src => }/debug/ee/arm/armwalker.cpp (100%) rename src/coreclr/{src => }/debug/ee/arm/dbghelpers.S (100%) rename src/coreclr/{src => }/debug/ee/arm/dbghelpers.asm (100%) rename src/coreclr/{src => }/debug/ee/arm/primitives.cpp (100%) rename src/coreclr/{src => }/debug/ee/arm64/arm64walker.cpp (100%) rename src/coreclr/{src => }/debug/ee/arm64/dbghelpers.S (100%) rename src/coreclr/{src => }/debug/ee/arm64/dbghelpers.asm (100%) rename src/coreclr/{src => }/debug/ee/arm64/primitives.cpp (100%) rename src/coreclr/{src => }/debug/ee/canary.cpp (100%) rename src/coreclr/{src => }/debug/ee/canary.h (100%) rename src/coreclr/{src => }/debug/ee/controller.cpp (100%) rename src/coreclr/{src => }/debug/ee/controller.h (100%) rename src/coreclr/{src => }/debug/ee/controller.inl (100%) rename src/coreclr/{src => }/debug/ee/dac/CMakeLists.txt (100%) rename src/coreclr/{src => }/debug/ee/dactable.cpp (100%) rename src/coreclr/{src => }/debug/ee/datatest.h (100%) rename src/coreclr/{src => }/debug/ee/debugger.cpp (100%) rename src/coreclr/{src => }/debug/ee/debugger.h (100%) rename src/coreclr/{src => }/debug/ee/debugger.inl (100%) rename src/coreclr/{src => }/debug/ee/debuggermodule.cpp (100%) rename src/coreclr/{src => }/debug/ee/frameinfo.cpp (100%) rename src/coreclr/{src => }/debug/ee/frameinfo.h (100%) rename src/coreclr/{src => }/debug/ee/funceval.cpp (100%) rename src/coreclr/{src => }/debug/ee/functioninfo.cpp (100%) rename src/coreclr/{src => }/debug/ee/i386/dbghelpers.S (100%) rename src/coreclr/{src => }/debug/ee/i386/dbghelpers.asm (100%) rename src/coreclr/{src => }/debug/ee/i386/debuggerregdisplayhelper.cpp (100%) rename src/coreclr/{src => }/debug/ee/i386/primitives.cpp (100%) rename src/coreclr/{src => }/debug/ee/i386/x86walker.cpp (100%) rename src/coreclr/{src => }/debug/ee/rcthread.cpp (100%) rename src/coreclr/{src => }/debug/ee/shared.cpp (100%) rename src/coreclr/{src => }/debug/ee/stdafx.h (100%) rename src/coreclr/{src => }/debug/ee/walker.h (100%) rename src/coreclr/{src => }/debug/ee/wks/CMakeLists.txt (100%) rename src/coreclr/{src => }/debug/ildbsymlib/CMakeLists.txt (100%) rename src/coreclr/{src => }/debug/ildbsymlib/classfactory.h (100%) rename src/coreclr/{src => }/debug/ildbsymlib/ildbsymbols.cpp (100%) rename src/coreclr/{src => }/debug/ildbsymlib/pch.h (100%) rename src/coreclr/{src => }/debug/ildbsymlib/pdbdata.h (100%) rename src/coreclr/{src => }/debug/ildbsymlib/symbinder.cpp (100%) rename src/coreclr/{src => }/debug/ildbsymlib/symbinder.h (100%) rename src/coreclr/{src => }/debug/ildbsymlib/symread.cpp (100%) rename src/coreclr/{src => }/debug/ildbsymlib/symread.h (100%) rename src/coreclr/{src => }/debug/ildbsymlib/symwrite.cpp (100%) rename src/coreclr/{src => }/debug/ildbsymlib/symwrite.h (100%) rename src/coreclr/{src => }/debug/ildbsymlib/umisc.h (100%) rename src/coreclr/{src => }/debug/inc/amd64/primitives.h (100%) rename src/coreclr/{src => }/debug/inc/arm/primitives.h (100%) rename src/coreclr/{src => }/debug/inc/arm64/primitives.h (100%) rename src/coreclr/{src => }/debug/inc/arm_primitives.h (100%) rename src/coreclr/{src => }/debug/inc/common.h (100%) rename src/coreclr/{src => }/debug/inc/coreclrremotedebugginginterfaces.h (100%) rename src/coreclr/{src => }/debug/inc/dacdbiinterface.h (100%) rename src/coreclr/{src => }/debug/inc/dacdbistructures.h (100%) rename src/coreclr/{src => }/debug/inc/dacdbistructures.inl (100%) rename src/coreclr/{src => }/debug/inc/dbgappdomain.h (100%) rename src/coreclr/{src => }/debug/inc/dbgipcevents.h (100%) rename src/coreclr/{src => }/debug/inc/dbgipceventtypes.h (100%) rename src/coreclr/{src => }/debug/inc/dbgtargetcontext.h (100%) rename src/coreclr/{src => }/debug/inc/dbgtransportsession.h (100%) rename src/coreclr/{src => }/debug/inc/dbgutil.h (100%) rename src/coreclr/{src => }/debug/inc/ddmarshalutil.h (100%) rename src/coreclr/{src => }/debug/inc/diagnosticsipc.h (100%) rename src/coreclr/{src => }/debug/inc/dump/dumpcommon.h (100%) rename src/coreclr/{src => }/debug/inc/eventredirection.h (100%) rename src/coreclr/{src => }/debug/inc/i386/primitives.h (100%) rename src/coreclr/{src => }/debug/inc/processdescriptor.h (100%) rename src/coreclr/{src => }/debug/inc/readonlydatatargetfacade.h (100%) rename src/coreclr/{src => }/debug/inc/readonlydatatargetfacade.inl (100%) rename src/coreclr/{src => }/debug/inc/runtimeinfo.h (100%) rename src/coreclr/{src => }/debug/inc/stringcopyholder.h (100%) rename src/coreclr/{src => }/debug/inc/twowaypipe.h (100%) rename src/coreclr/{src => }/debug/runtimeinfo/CMakeLists.txt (100%) rename src/coreclr/{src => }/debug/runtimeinfo/runtimeinfo.cpp (100%) rename src/coreclr/{src => }/debug/shared/amd64/primitives.cpp (100%) rename src/coreclr/{src => }/debug/shared/arm/primitives.cpp (100%) rename src/coreclr/{src => }/debug/shared/arm64/primitives.cpp (100%) rename src/coreclr/{src => }/debug/shared/dbgtransportsession.cpp (100%) rename src/coreclr/{src => }/debug/shared/i386/primitives.cpp (100%) rename src/coreclr/{src => }/debug/shared/stringcopyholder.cpp (100%) rename src/coreclr/{src => }/debug/shared/utils.cpp (100%) rename src/coreclr/{src => }/debug/shim/CMakeLists.txt (100%) rename src/coreclr/{src => }/debug/shim/debugshim.cpp (100%) rename src/coreclr/{src => }/debug/shim/debugshim.h (100%) rename src/coreclr/{src => }/dlls/CMakeLists.txt (100%) rename src/coreclr/{src => }/dlls/clretwrc/CMakeLists.txt (100%) rename src/coreclr/{src => }/dlls/clretwrc/clretwrc.rc (100%) rename src/coreclr/{src => }/dlls/dbgshim/CMakeLists.txt (98%) rename src/coreclr/{src => }/dlls/dbgshim/dbgshim.cpp (100%) rename src/coreclr/{src => }/dlls/dbgshim/dbgshim.h (100%) rename src/coreclr/{src => }/dlls/dbgshim/dbgshim.ntdef (100%) rename src/coreclr/{src => }/dlls/dbgshim/dbgshim.rc (100%) rename src/coreclr/{src => }/dlls/dbgshim/dbgshim_unixexports.src (100%) rename src/coreclr/{src => }/dlls/mscordac/CMakeLists.txt (100%) rename src/coreclr/{src => }/dlls/mscordac/Native.rc (100%) rename src/coreclr/{src => }/dlls/mscordac/libredefines.S (100%) rename src/coreclr/{src => }/dlls/mscordac/mscordac.cpp (100%) rename src/coreclr/{src => }/dlls/mscordac/mscordac.src (100%) rename src/coreclr/{src => }/dlls/mscordac/mscordac_unixexports.src (100%) rename src/coreclr/{src => }/dlls/mscordac/palredefines.S (100%) rename src/coreclr/{src => }/dlls/mscordac/update.pl (100%) rename src/coreclr/{src => }/dlls/mscordbi/CMakeLists.txt (100%) rename src/coreclr/{src => }/dlls/mscordbi/Native.rc (100%) rename src/coreclr/{src => }/dlls/mscordbi/mscordbi.cpp (100%) rename src/coreclr/{src => }/dlls/mscordbi/mscordbi.src (100%) rename src/coreclr/{src => }/dlls/mscordbi/mscordbi_unixexports.src (100%) rename src/coreclr/{src => }/dlls/mscordbi/stdafx.h (100%) rename src/coreclr/{src => }/dlls/mscoree/CMakeLists.txt (100%) rename src/coreclr/{src => }/dlls/mscoree/Native.rc (100%) rename src/coreclr/{src => }/dlls/mscoree/coreclr/CMakeLists.txt (97%) rename src/coreclr/{src => }/dlls/mscoree/coreclr/README.md (100%) rename src/coreclr/{src => }/dlls/mscoree/coreclr/dump_helper_resource.bin (100%) rename src/coreclr/{src => }/dlls/mscoree/delayloadhook.cpp (100%) rename src/coreclr/{src => }/dlls/mscoree/gdbjit_unixexports.src (100%) rename src/coreclr/{src => }/dlls/mscoree/mscoree.cpp (100%) rename src/coreclr/{src => }/dlls/mscoree/mscorwks_ntdef.src (100%) rename src/coreclr/{src => }/dlls/mscoree/mscorwks_unixexports.src (100%) rename src/coreclr/{src => }/dlls/mscoree/stdafx.cpp (100%) rename src/coreclr/{src => }/dlls/mscoree/stdafx.h (100%) rename src/coreclr/{src => }/dlls/mscoree/unixinterface.cpp (100%) rename src/coreclr/{src => }/dlls/mscorpe/CMakeLists.txt (100%) rename src/coreclr/{src => }/dlls/mscorpe/ceefilegenwriter.cpp (100%) rename src/coreclr/{src => }/dlls/mscorpe/ceefilegenwritertokens.cpp (100%) rename src/coreclr/{src => }/dlls/mscorpe/iceefilegen.cpp (100%) rename src/coreclr/{src => }/dlls/mscorpe/pewriter.cpp (100%) rename src/coreclr/{src => }/dlls/mscorpe/pewriter.h (100%) rename src/coreclr/{src => }/dlls/mscorpe/stdafx.cpp (100%) rename src/coreclr/{src => }/dlls/mscorpe/stdafx.h (100%) rename src/coreclr/{src => }/dlls/mscorrc/CMakeLists.txt (100%) rename src/coreclr/{src => }/dlls/mscorrc/include.rc (100%) rename src/coreclr/{src => }/dlls/mscorrc/mscorrc.common.rc (100%) rename src/coreclr/{src => }/dlls/mscorrc/mscorrc.rc (100%) rename src/coreclr/{src => }/dlls/mscorrc/resource.h (100%) rename src/coreclr/{src => }/gc/CMakeLists.txt (100%) rename src/coreclr/{src => }/gc/env/common.cpp (100%) rename src/coreclr/{src => }/gc/env/common.h (100%) rename src/coreclr/{src => }/gc/env/etmdummy.h (100%) rename src/coreclr/{src => }/gc/env/gcenv.base.h (100%) rename src/coreclr/{src => }/gc/env/gcenv.ee.h (100%) rename src/coreclr/{src => }/gc/env/gcenv.h (100%) rename src/coreclr/{src => }/gc/env/gcenv.interlocked.h (100%) rename src/coreclr/{src => }/gc/env/gcenv.interlocked.inl (100%) rename src/coreclr/{src => }/gc/env/gcenv.object.h (100%) rename src/coreclr/{src => }/gc/env/gcenv.os.h (100%) rename src/coreclr/{src => }/gc/env/gcenv.structs.h (100%) rename src/coreclr/{src => }/gc/env/gcenv.sync.h (100%) rename src/coreclr/{src => }/gc/env/gcenv.unix.inl (100%) rename src/coreclr/{src => }/gc/env/gcenv.windows.inl (100%) rename src/coreclr/{src => }/gc/env/volatile.h (100%) rename src/coreclr/{src => }/gc/gc.cpp (100%) rename src/coreclr/{src => }/gc/gc.h (100%) rename src/coreclr/{src => }/gc/gccommon.cpp (100%) rename src/coreclr/{src => }/gc/gcconfig.cpp (100%) rename src/coreclr/{src => }/gc/gcconfig.h (100%) rename src/coreclr/{src => }/gc/gcdesc.h (100%) rename src/coreclr/{src => }/gc/gcee.cpp (100%) rename src/coreclr/{src => }/gc/gceesvr.cpp (100%) rename src/coreclr/{src => }/gc/gceewks.cpp (100%) rename src/coreclr/{src => }/gc/gcenv.ee.standalone.inl (100%) rename src/coreclr/{src => }/gc/gcenv.inl (100%) rename src/coreclr/{src => }/gc/gcevent_serializers.h (100%) rename src/coreclr/{src => }/gc/gcevents.h (100%) rename src/coreclr/{src => }/gc/gceventstatus.cpp (100%) rename src/coreclr/{src => }/gc/gceventstatus.h (100%) rename src/coreclr/{src => }/gc/gchandletable.cpp (100%) rename src/coreclr/{src => }/gc/gchandletableimpl.h (100%) rename src/coreclr/{src => }/gc/gcimpl.h (100%) rename src/coreclr/{src => }/gc/gcinterface.dac.h (100%) rename src/coreclr/{src => }/gc/gcinterface.dacvars.def (100%) rename src/coreclr/{src => }/gc/gcinterface.ee.h (100%) rename src/coreclr/{src => }/gc/gcinterface.h (100%) rename src/coreclr/{src => }/gc/gcload.cpp (100%) rename src/coreclr/{src => }/gc/gcpriv.h (100%) rename src/coreclr/{src => }/gc/gcrecord.h (100%) rename src/coreclr/{src => }/gc/gcscan.cpp (100%) rename src/coreclr/{src => }/gc/gcscan.h (100%) rename src/coreclr/{src => }/gc/gcsvr.cpp (100%) rename src/coreclr/{src => }/gc/gcwks.cpp (100%) rename src/coreclr/{src => }/gc/handletable.cpp (100%) rename src/coreclr/{src => }/gc/handletable.h (100%) rename src/coreclr/{src => }/gc/handletable.inl (100%) rename src/coreclr/{src => }/gc/handletablecache.cpp (100%) rename src/coreclr/{src => }/gc/handletablecore.cpp (100%) rename src/coreclr/{src => }/gc/handletablepriv.h (100%) rename src/coreclr/{src => }/gc/handletablescan.cpp (100%) rename src/coreclr/{src => }/gc/objecthandle.cpp (100%) rename src/coreclr/{src => }/gc/objecthandle.h (100%) rename src/coreclr/{src => }/gc/sample/CMakeLists.txt (100%) rename src/coreclr/{src => }/gc/sample/GCSample.cpp (100%) rename src/coreclr/{src => }/gc/sample/GCSample.vcxproj (100%) rename src/coreclr/{src => }/gc/sample/GCSample.vcxproj.filters (100%) rename src/coreclr/{src => }/gc/sample/gcenv.ee.cpp (100%) rename src/coreclr/{src => }/gc/sample/gcenv.h (100%) rename src/coreclr/{src => }/gc/softwarewritewatch.cpp (100%) rename src/coreclr/{src => }/gc/softwarewritewatch.h (100%) rename src/coreclr/{src => }/gc/unix/CMakeLists.txt (100%) rename src/coreclr/{src => }/gc/unix/cgroup.cpp (100%) rename src/coreclr/{src => }/gc/unix/cgroup.h (100%) rename src/coreclr/{src => }/gc/unix/config.gc.h.in (100%) rename src/coreclr/{src => }/gc/unix/configure.cmake (100%) rename src/coreclr/{src => }/gc/unix/events.cpp (100%) rename src/coreclr/{src => }/gc/unix/gcenv.unix.cpp (100%) rename src/coreclr/{src => }/gc/unix/globals.h (100%) rename src/coreclr/{src => }/gc/vxsort/alignment.h (100%) rename src/coreclr/{src => }/gc/vxsort/defs.h (100%) rename src/coreclr/{src => }/gc/vxsort/do_vxsort.h (100%) rename src/coreclr/{src => }/gc/vxsort/do_vxsort_avx2.cpp (100%) rename src/coreclr/{src => }/gc/vxsort/do_vxsort_avx512.cpp (100%) rename src/coreclr/{src => }/gc/vxsort/isa_detection.cpp (100%) rename src/coreclr/{src => }/gc/vxsort/machine_traits.avx2.cpp (100%) rename src/coreclr/{src => }/gc/vxsort/machine_traits.avx2.h (100%) rename src/coreclr/{src => }/gc/vxsort/machine_traits.avx512.h (100%) rename src/coreclr/{src => }/gc/vxsort/machine_traits.h (100%) rename src/coreclr/{src => }/gc/vxsort/packer.h (100%) rename src/coreclr/{src => }/gc/vxsort/smallsort/avx2_load_mask_tables.cpp (100%) rename src/coreclr/{src => }/gc/vxsort/smallsort/bitonic_sort.AVX2.int32_t.generated.cpp (100%) rename src/coreclr/{src => }/gc/vxsort/smallsort/bitonic_sort.AVX2.int32_t.generated.h (100%) rename src/coreclr/{src => }/gc/vxsort/smallsort/bitonic_sort.AVX2.int64_t.generated.cpp (100%) rename src/coreclr/{src => }/gc/vxsort/smallsort/bitonic_sort.AVX2.int64_t.generated.h (100%) rename src/coreclr/{src => }/gc/vxsort/smallsort/bitonic_sort.AVX512.int32_t.generated.cpp (100%) rename src/coreclr/{src => }/gc/vxsort/smallsort/bitonic_sort.AVX512.int32_t.generated.h (100%) rename src/coreclr/{src => }/gc/vxsort/smallsort/bitonic_sort.AVX512.int64_t.generated.cpp (100%) rename src/coreclr/{src => }/gc/vxsort/smallsort/bitonic_sort.AVX512.int64_t.generated.h (100%) rename src/coreclr/{src => }/gc/vxsort/smallsort/bitonic_sort.h (100%) rename src/coreclr/{src => }/gc/vxsort/smallsort/codegen/avx2.py (100%) rename src/coreclr/{src => }/gc/vxsort/smallsort/codegen/avx512.py (100%) rename src/coreclr/{src => }/gc/vxsort/smallsort/codegen/bitonic_gen.py (100%) rename src/coreclr/{src => }/gc/vxsort/smallsort/codegen/bitonic_isa.py (100%) rename src/coreclr/{src => }/gc/vxsort/smallsort/codegen/utils.py (100%) rename src/coreclr/{src => }/gc/vxsort/vxsort.h (100%) rename src/coreclr/{src => }/gc/vxsort/vxsort_targets_disable.h (100%) rename src/coreclr/{src => }/gc/vxsort/vxsort_targets_enable_avx2.h (100%) rename src/coreclr/{src => }/gc/vxsort/vxsort_targets_enable_avx512.h (100%) rename src/coreclr/{src => }/gc/windows/gcenv.windows.cpp (100%) rename src/coreclr/{src => }/gcdump/gcdump.cpp (100%) rename src/coreclr/{src => }/gcdump/gcdumpnonx86.cpp (100%) rename src/coreclr/{src => }/gcdump/i386/gcdumpx86.cpp (100%) rename src/coreclr/{src => }/gcinfo/CMakeLists.txt (100%) rename src/coreclr/{src => }/gcinfo/arraylist.cpp (100%) rename src/coreclr/{src => }/gcinfo/gcinfodumper.cpp (100%) rename src/coreclr/{src => }/gcinfo/gcinfoencoder.cpp (100%) rename src/coreclr/{src => }/gcinfo/simplerhash.cpp (100%) rename src/coreclr/{src => }/hosts/CMakeLists.txt (100%) rename src/coreclr/{src => }/hosts/applydefines.pl (100%) rename src/coreclr/{src => }/hosts/corerun/CMakeLists.txt (100%) rename src/coreclr/{src => }/hosts/corerun/corerun.cpp (100%) rename src/coreclr/{src => }/hosts/corerun/logger.cpp (100%) rename src/coreclr/{src => }/hosts/corerun/logger.h (100%) rename src/coreclr/{src => }/hosts/corerun/native.rc (100%) rename src/coreclr/{src => }/hosts/corerun/test.txt (100%) rename src/coreclr/{src => }/hosts/coreshim/CMakeLists.txt (100%) rename src/coreclr/{src => }/hosts/coreshim/ComActivation.cpp (100%) rename src/coreclr/{src => }/hosts/coreshim/CoreShim.cpp (100%) rename src/coreclr/{src => }/hosts/coreshim/CoreShim.h (100%) rename src/coreclr/{src => }/hosts/coreshim/Exports.def (100%) rename src/coreclr/{src => }/hosts/inc/coreclrhost.h (100%) rename src/coreclr/{src => }/hosts/unixcorerun/CMakeLists.txt (100%) rename src/coreclr/{src => }/hosts/unixcorerun/config.h.in (100%) rename src/coreclr/{src => }/hosts/unixcorerun/configure.cmake (100%) rename src/coreclr/{src => }/hosts/unixcorerun/corerun.cpp (100%) rename src/coreclr/{src => }/ilasm/CMakeLists.txt (100%) rename src/coreclr/{src => }/ilasm/Native.rc (100%) rename src/coreclr/{src => }/ilasm/asmenum.h (100%) rename src/coreclr/{src => }/ilasm/asmman.cpp (100%) rename src/coreclr/{src => }/ilasm/asmman.hpp (100%) rename src/coreclr/{src => }/ilasm/asmparse.h (100%) rename src/coreclr/{src => }/ilasm/asmparse.y (100%) rename src/coreclr/{src => }/ilasm/asmtemplates.h (100%) rename src/coreclr/{src => }/ilasm/assem.cpp (100%) rename src/coreclr/{src => }/ilasm/assembler.cpp (100%) rename src/coreclr/{src => }/ilasm/assembler.h (100%) rename src/coreclr/{src => }/ilasm/binstr.h (100%) rename src/coreclr/{src => }/ilasm/class.hpp (100%) rename src/coreclr/{src => }/ilasm/extractGrammar.pl (100%) rename src/coreclr/{src => }/ilasm/grammar_after.cpp (100%) rename src/coreclr/{src => }/ilasm/grammar_before.cpp (100%) rename src/coreclr/{src => }/ilasm/ilasmpch.h (100%) rename src/coreclr/{src => }/ilasm/main.cpp (100%) rename src/coreclr/{src => }/ilasm/method.cpp (100%) rename src/coreclr/{src => }/ilasm/method.hpp (100%) rename src/coreclr/{src => }/ilasm/nvpair.h (100%) rename src/coreclr/{src => }/ilasm/portable_pdb.cpp (100%) rename src/coreclr/{src => }/ilasm/portable_pdb.h (100%) rename src/coreclr/{src => }/ilasm/prebuilt/asmparse.cpp (100%) rename src/coreclr/{src => }/ilasm/prebuilt/asmparse.grammar (100%) rename src/coreclr/{src => }/ilasm/typar.hpp (100%) rename src/coreclr/{src => }/ilasm/writer.cpp (100%) rename src/coreclr/{src => }/ilasm/writer_enc.cpp (100%) rename src/coreclr/{src => }/ildasm/CMakeLists.txt (100%) rename src/coreclr/{src => }/ildasm/ceeload.cpp (100%) rename src/coreclr/{src => }/ildasm/ceeload.h (100%) rename src/coreclr/{src => }/ildasm/dasm.cpp (100%) rename src/coreclr/{src => }/ildasm/dasm.rc (100%) rename src/coreclr/{src => }/ildasm/dasm_formattype.cpp (100%) rename src/coreclr/{src => }/ildasm/dasm_mi.cpp (100%) rename src/coreclr/{src => }/ildasm/dasm_sz.cpp (100%) rename src/coreclr/{src => }/ildasm/dasm_sz.h (100%) rename src/coreclr/{src => }/ildasm/dasmenum.hpp (100%) rename src/coreclr/{src => }/ildasm/dis.cpp (100%) rename src/coreclr/{src => }/ildasm/dis.h (100%) rename src/coreclr/{src => }/ildasm/dman.cpp (100%) rename src/coreclr/{src => }/ildasm/dres.cpp (100%) rename src/coreclr/{src => }/ildasm/dynamicarray.h (100%) rename src/coreclr/{src => }/ildasm/exe/CMakeLists.txt (100%) rename src/coreclr/{src => }/ildasm/ildasmpch.cpp (100%) rename src/coreclr/{src => }/ildasm/ildasmpch.h (100%) rename src/coreclr/{src => }/ildasm/resource.h (100%) rename src/coreclr/{src => }/ildasm/util.hpp (100%) rename src/coreclr/{src => }/ildasm/windasm.cpp (100%) rename src/coreclr/{src => }/inc/CMakeLists.txt (100%) rename src/coreclr/{src => }/inc/CrstTypeTool.cs (100%) rename src/coreclr/{src => }/inc/CrstTypes.def (100%) rename src/coreclr/{src => }/inc/MSCOREE.IDL (100%) rename src/coreclr/{src => }/inc/OpCodeGen.pl (100%) rename src/coreclr/{src => }/inc/allocacheck.h (100%) rename src/coreclr/{src => }/inc/arrayholder.h (100%) rename src/coreclr/{src => }/inc/arraylist.h (100%) rename src/coreclr/{src => }/inc/bbsweep.h (100%) rename src/coreclr/{src => }/inc/bitmask.h (100%) rename src/coreclr/{src => }/inc/bitmask.inl (100%) rename src/coreclr/{src => }/inc/bitposition.h (100%) rename src/coreclr/{src => }/inc/bitvector.h (100%) rename src/coreclr/{src => }/inc/blobfetcher.h (100%) rename src/coreclr/{src => }/inc/bundle.h (100%) rename src/coreclr/{src => }/inc/cahlpr.h (100%) rename src/coreclr/{src => }/inc/caparser.h (100%) rename src/coreclr/{src => }/inc/ceefilegenwriter.h (100%) rename src/coreclr/{src => }/inc/ceegen.h (100%) rename src/coreclr/{src => }/inc/ceegentokenmapper.h (100%) rename src/coreclr/{src => }/inc/ceesectionstring.h (100%) rename src/coreclr/{src => }/inc/cfi.h (100%) rename src/coreclr/{src => }/inc/check.h (100%) rename src/coreclr/{src => }/inc/check.inl (100%) rename src/coreclr/{src => }/inc/clr/fs.h (100%) rename src/coreclr/{src => }/inc/clr/fs/path.h (100%) rename src/coreclr/{src => }/inc/clr/stack.h (100%) rename src/coreclr/{src => }/inc/clr/str.h (100%) rename src/coreclr/{src => }/inc/clr/win32.h (100%) rename src/coreclr/{src => }/inc/clr_std/algorithm (100%) rename src/coreclr/{src => }/inc/clr_std/string (100%) rename src/coreclr/{src => }/inc/clr_std/type_traits (100%) rename src/coreclr/{src => }/inc/clr_std/utility (100%) rename src/coreclr/{src => }/inc/clr_std/vector (100%) rename src/coreclr/{src => }/inc/clrconfig.h (100%) rename src/coreclr/{src => }/inc/clrconfigvalues.h (100%) rename src/coreclr/{src => }/inc/clrdata.idl (100%) rename src/coreclr/{src => }/inc/clrhost.h (100%) rename src/coreclr/{src => }/inc/clrinternal.idl (100%) rename src/coreclr/{src => }/inc/clrnt.h (100%) rename src/coreclr/{src => }/inc/clrprivbinderutil.h (100%) rename src/coreclr/{src => }/inc/clrprivbinding.idl (100%) rename src/coreclr/{src => }/inc/clrtypes.h (100%) rename src/coreclr/{src => }/inc/clrversion.h (100%) rename src/coreclr/{src => }/inc/complex.h (100%) rename src/coreclr/{src => }/inc/configuration.h (100%) rename src/coreclr/{src => }/inc/contract.h (100%) rename src/coreclr/{src => }/inc/contract.inl (100%) rename src/coreclr/{src => }/inc/contxt.h (100%) rename src/coreclr/{src => }/inc/cor.h (100%) rename src/coreclr/{src => }/inc/corbbtprof.h (100%) rename src/coreclr/{src => }/inc/corcompile.h (100%) rename src/coreclr/{src => }/inc/cordbpriv.h (100%) rename src/coreclr/{src => }/inc/cordebug.idl (100%) rename src/coreclr/{src => }/inc/cordebuginfo.h (100%) rename src/coreclr/{src => }/inc/coredistools.h (100%) rename src/coreclr/{src => }/inc/coregen.h (100%) rename src/coreclr/{src => }/inc/corerror.xml (100%) rename src/coreclr/{src => }/inc/corexcep.h (100%) rename src/coreclr/{src => }/inc/corhdr.h (100%) rename src/coreclr/{src => }/inc/corhlpr.cpp (100%) rename src/coreclr/{src => }/inc/corhlpr.h (100%) rename src/coreclr/{src => }/inc/corhlprpriv.cpp (100%) rename src/coreclr/{src => }/inc/corhlprpriv.h (100%) rename src/coreclr/{src => }/inc/corhost.h (100%) rename src/coreclr/{src => }/inc/corimage.h (100%) rename src/coreclr/{src => }/inc/corinfo.h (100%) rename src/coreclr/{src => }/inc/corinfoinstructionset.h (100%) rename src/coreclr/{src => }/inc/corjit.h (100%) rename src/coreclr/{src => }/inc/corjitflags.h (100%) rename src/coreclr/{src => }/inc/corjithost.h (100%) rename src/coreclr/{src => }/inc/corpriv.h (100%) rename src/coreclr/{src => }/inc/corprof.idl (100%) rename src/coreclr/{src => }/inc/corpub.idl (100%) rename src/coreclr/{src => }/inc/corsym.idl (100%) rename src/coreclr/{src => }/inc/cortypeinfo.h (100%) rename src/coreclr/{src => }/inc/crosscomp.h (100%) rename src/coreclr/{src => }/inc/crsttypes.h (100%) rename src/coreclr/{src => }/inc/crtwrap.h (100%) rename src/coreclr/{src => }/inc/cvconst.h (100%) rename src/coreclr/{src => }/inc/cvinfo.h (100%) rename src/coreclr/{src => }/inc/cycletimer.h (100%) rename src/coreclr/{src => }/inc/daccess.h (100%) rename src/coreclr/{src => }/inc/dacprivate.h (100%) rename src/coreclr/{src => }/inc/dacvars.h (100%) rename src/coreclr/{src => }/inc/dbgenginemetrics.h (100%) rename src/coreclr/{src => }/inc/dbgmeta.h (100%) rename src/coreclr/{src => }/inc/dbgportable.h (100%) rename src/coreclr/{src => }/inc/debugmacros.h (100%) rename src/coreclr/{src => }/inc/debugmacrosext.h (100%) rename src/coreclr/{src => }/inc/debugreturn.h (100%) rename src/coreclr/{src => }/inc/defaultallocator.h (100%) rename src/coreclr/{src => }/inc/dlwrap.h (100%) rename src/coreclr/{src => }/inc/ecmakey.h (100%) rename src/coreclr/{src => }/inc/eetwain.h (100%) rename src/coreclr/{src => }/inc/eexcp.h (100%) rename src/coreclr/{src => }/inc/entrypoints.h (100%) rename src/coreclr/{src => }/inc/eventtrace.h (100%) rename src/coreclr/{src => }/inc/eventtracebase.h (100%) rename src/coreclr/{src => }/inc/ex.h (100%) rename src/coreclr/{src => }/inc/factory.h (100%) rename src/coreclr/{src => }/inc/factory.inl (100%) rename src/coreclr/{src => }/inc/fixuppointer.h (100%) rename src/coreclr/{src => }/inc/formattype.cpp (100%) rename src/coreclr/{src => }/inc/formattype.h (100%) rename src/coreclr/{src => }/inc/fstream.h (100%) rename src/coreclr/{src => }/inc/fstring.h (100%) rename src/coreclr/{src => }/inc/fusion.idl (100%) rename src/coreclr/{src => }/inc/gcdecoder.cpp (100%) rename src/coreclr/{src => }/inc/gcdump.h (100%) rename src/coreclr/{src => }/inc/gcinfo.h (100%) rename src/coreclr/{src => }/inc/gcinfoarraylist.h (100%) rename src/coreclr/{src => }/inc/gcinfodecoder.h (100%) rename src/coreclr/{src => }/inc/gcinfodumper.h (100%) rename src/coreclr/{src => }/inc/gcinfoencoder.h (100%) rename src/coreclr/{src => }/inc/gcinfotypes.h (100%) rename src/coreclr/{src => }/inc/gcrefmap.h (100%) rename src/coreclr/{src => }/inc/genheaders.cs (100%) rename src/coreclr/{src => }/inc/genrops.pl (100%) rename src/coreclr/{src => }/inc/getproductversionnumber.h (100%) rename src/coreclr/{src => }/inc/guidfromname.h (100%) rename src/coreclr/{src => }/inc/holder.h (100%) rename src/coreclr/{src => }/inc/holderinst.h (100%) rename src/coreclr/{src => }/inc/iallocator.h (100%) rename src/coreclr/{src => }/inc/iceefilegen.h (100%) rename src/coreclr/{src => }/inc/il_kywd.h (100%) rename src/coreclr/{src => }/inc/ildbsymlib.h (100%) rename src/coreclr/{src => }/inc/ilformatter.h (100%) rename src/coreclr/{src => }/inc/internalunknownimpl.h (100%) rename src/coreclr/{src => }/inc/intrinsic.h (100%) rename src/coreclr/{src => }/inc/iterator.h (100%) rename src/coreclr/{src => }/inc/jiteeversionguid.h (100%) rename src/coreclr/{src => }/inc/jithelpers.h (100%) rename src/coreclr/{src => }/inc/livedatatarget.h (100%) rename src/coreclr/{src => }/inc/llvm/Dwarf.def (100%) rename src/coreclr/{src => }/inc/llvm/Dwarf.h (100%) rename src/coreclr/{src => }/inc/llvm/ELF.h (100%) rename src/coreclr/{src => }/inc/loaderheap.h (100%) rename src/coreclr/{src => }/inc/log.h (100%) rename src/coreclr/{src => }/inc/loglf.h (100%) rename src/coreclr/{src => }/inc/longfilepathwrappers.h (100%) rename src/coreclr/{src => }/inc/md5.h (100%) rename src/coreclr/{src => }/inc/mdcommon.h (100%) rename src/coreclr/{src => }/inc/mdfileformat.h (100%) rename src/coreclr/{src => }/inc/memorypool.h (100%) rename src/coreclr/{src => }/inc/memoryrange.h (100%) rename src/coreclr/{src => }/inc/metadata.h (100%) rename src/coreclr/{src => }/inc/metadataexports.h (100%) rename src/coreclr/{src => }/inc/metadatatracker.h (100%) rename src/coreclr/{src => }/inc/metahost.idl (100%) rename src/coreclr/{src => }/inc/metamodelpub.h (100%) rename src/coreclr/{src => }/inc/mpl/type_list (100%) rename src/coreclr/{src => }/inc/mscorsvc.idl (100%) rename src/coreclr/{src => }/inc/msodw.h (100%) rename src/coreclr/{src => }/inc/msodwwrap.h (100%) rename src/coreclr/{src => }/inc/nativevaraccessors.h (100%) rename src/coreclr/{src => }/inc/new.hpp (100%) rename src/coreclr/{src => }/inc/ngen.h (100%) rename src/coreclr/{src => }/inc/nibblemapmacros.h (100%) rename src/coreclr/{src => }/inc/nibblestream.h (100%) rename src/coreclr/{src => }/inc/nsutilpriv.h (100%) rename src/coreclr/{src => }/inc/obj/i386/dummy (100%) rename src/coreclr/{src => }/inc/opcode.def (100%) rename src/coreclr/{src => }/inc/openum.h (100%) rename src/coreclr/{src => }/inc/opinfo.h (100%) rename src/coreclr/{src => }/inc/optdefault.h (100%) rename src/coreclr/{src => }/inc/optsmallperfcritical.h (100%) rename src/coreclr/{src => }/inc/ostype.h (100%) rename src/coreclr/{src => }/inc/outstring.h (100%) rename src/coreclr/{src => }/inc/palclr.h (100%) rename src/coreclr/{src => }/inc/palclr_win.h (100%) rename src/coreclr/{src => }/inc/patchpointinfo.h (100%) rename src/coreclr/{src => }/inc/pedecoder.h (100%) rename src/coreclr/{src => }/inc/pedecoder.inl (100%) rename src/coreclr/{src => }/inc/peinformation.h (100%) rename src/coreclr/{src => }/inc/pesectionman.h (100%) rename src/coreclr/{src => }/inc/pinvokeoverride.h (100%) rename src/coreclr/{src => }/inc/posterror.h (100%) rename src/coreclr/{src => }/inc/predeftlsslot.h (100%) rename src/coreclr/{src => }/inc/prettyprintsig.h (100%) rename src/coreclr/{src => }/inc/profilepriv.h (100%) rename src/coreclr/{src => }/inc/profilepriv.inl (100%) rename src/coreclr/{src => }/inc/random.h (100%) rename src/coreclr/{src => }/inc/readme.md (100%) rename src/coreclr/{src => }/inc/readytorun.h (100%) rename src/coreclr/{src => }/inc/readytorunhelpers.h (100%) rename src/coreclr/{src => }/inc/readytoruninstructionset.h (100%) rename src/coreclr/{src => }/inc/regdisp.h (100%) rename src/coreclr/{src => }/inc/regex_base.h (100%) rename src/coreclr/{src => }/inc/regex_util.h (100%) rename src/coreclr/{src => }/inc/registrywrapper.h (100%) rename src/coreclr/{src => }/inc/releaseholder.h (100%) rename src/coreclr/{src => }/inc/safemath.h (100%) rename src/coreclr/{src => }/inc/safewrap.h (100%) rename src/coreclr/{src => }/inc/sarray.h (100%) rename src/coreclr/{src => }/inc/sarray.inl (100%) rename src/coreclr/{src => }/inc/sbuffer.h (100%) rename src/coreclr/{src => }/inc/sbuffer.inl (100%) rename src/coreclr/{src => }/inc/securityutil.h (100%) rename src/coreclr/{src => }/inc/securitywrapper.h (100%) rename src/coreclr/{src => }/inc/sha1.h (100%) rename src/coreclr/{src => }/inc/shash.h (100%) rename src/coreclr/{src => }/inc/shash.inl (100%) rename src/coreclr/{src => }/inc/shimload.h (100%) rename src/coreclr/{src => }/inc/sigbuilder.h (100%) rename src/coreclr/{src => }/inc/sigparser.h (100%) rename src/coreclr/{src => }/inc/simplerhash.h (100%) rename src/coreclr/{src => }/inc/simplerhash.inl (100%) rename src/coreclr/{src => }/inc/slist.h (100%) rename src/coreclr/{src => }/inc/sospriv.idl (100%) rename src/coreclr/{src => }/inc/sstring.h (100%) rename src/coreclr/{src => }/inc/sstring.inl (100%) rename src/coreclr/{src => }/inc/stack.h (100%) rename src/coreclr/{src => }/inc/stackframe.h (100%) rename src/coreclr/{src => }/inc/stacktrace.h (100%) rename src/coreclr/{src => }/inc/static_assert.h (100%) rename src/coreclr/{src => }/inc/staticcontract.h (100%) rename src/coreclr/{src => }/inc/stdmacros.h (100%) rename src/coreclr/{src => }/inc/stgpool.h (100%) rename src/coreclr/{src => }/inc/stgpooli.h (100%) rename src/coreclr/{src => }/inc/stresslog.h (100%) rename src/coreclr/{src => }/inc/stringarraylist.h (100%) rename src/coreclr/{src => }/inc/stringarraylist.inl (100%) rename src/coreclr/{src => }/inc/strongnameholders.h (100%) rename src/coreclr/{src => }/inc/strongnameinternal.h (100%) rename src/coreclr/{src => }/inc/switches.h (100%) rename src/coreclr/{src => }/inc/thekey.h (100%) rename src/coreclr/{src => }/inc/tls.h (100%) rename src/coreclr/{src => }/inc/unreachable.h (100%) rename src/coreclr/{src => }/inc/utilcode.h (100%) rename src/coreclr/{src => }/inc/utsem.h (100%) rename src/coreclr/{src => }/inc/volatile.h (100%) rename src/coreclr/{src => }/inc/vptr_list.h (100%) rename src/coreclr/{src => }/inc/win64unwind.h (100%) rename src/coreclr/{src => }/inc/winwrap.h (100%) rename src/coreclr/{src => }/inc/xclrdata.idl (100%) rename src/coreclr/{src => }/inc/xcordebug.idl (100%) rename src/coreclr/{src => }/inc/yieldprocessornormalized.h (100%) rename src/coreclr/{src => }/inc/zapper.h (100%) rename src/coreclr/{src => }/interop/CMakeLists.txt (100%) rename src/coreclr/{src => }/interop/comwrappers.cpp (100%) rename src/coreclr/{src => }/interop/comwrappers.hpp (100%) rename src/coreclr/{src => }/interop/inc/interoplib.h (100%) rename src/coreclr/{src => }/interop/inc/interoplibabi.h (100%) rename src/coreclr/{src => }/interop/inc/interoplibimports.h (100%) rename src/coreclr/{src => }/interop/interoplib.cpp (100%) rename src/coreclr/{src => }/interop/platform.h (100%) rename src/coreclr/{src => }/interop/referencetrackertypes.hpp (100%) rename src/coreclr/{src => }/interop/trackerobjectmanager.cpp (100%) rename src/coreclr/{src => }/jit/.clang-format (100%) rename src/coreclr/{src => }/jit/CMakeLists.txt (100%) rename src/coreclr/{src => }/jit/ClrJit.PAL.exports (100%) rename src/coreclr/{src => }/jit/ClrJit.exports (100%) rename src/coreclr/{src => }/jit/ICorJitInfo_API_names.h (100%) rename src/coreclr/{src => }/jit/ICorJitInfo_API_wrapper.hpp (100%) rename src/coreclr/{src => }/jit/Native.rc (100%) rename src/coreclr/{src => }/jit/_typeinfo.h (100%) rename src/coreclr/{src => }/jit/alloc.cpp (100%) rename src/coreclr/{src => }/jit/alloc.h (100%) rename src/coreclr/{src => }/jit/arraystack.h (100%) rename src/coreclr/{src => }/jit/assertionprop.cpp (100%) rename src/coreclr/{src => }/jit/bitset.cpp (100%) rename src/coreclr/{src => }/jit/bitset.h (100%) rename src/coreclr/{src => }/jit/bitsetasshortlong.h (100%) rename src/coreclr/{src => }/jit/bitsetasuint64.h (100%) rename src/coreclr/{src => }/jit/bitsetasuint64inclass.h (100%) rename src/coreclr/{src => }/jit/bitsetops.h (100%) rename src/coreclr/{src => }/jit/bitvec.h (100%) rename src/coreclr/{src => }/jit/block.cpp (100%) rename src/coreclr/{src => }/jit/block.h (100%) rename src/coreclr/{src => }/jit/blockset.h (100%) rename src/coreclr/{src => }/jit/codegen.h (100%) rename src/coreclr/{src => }/jit/codegenarm.cpp (100%) rename src/coreclr/{src => }/jit/codegenarm64.cpp (100%) rename src/coreclr/{src => }/jit/codegenarmarch.cpp (100%) rename src/coreclr/{src => }/jit/codegencommon.cpp (100%) rename src/coreclr/{src => }/jit/codegeninterface.h (100%) rename src/coreclr/{src => }/jit/codegenlinear.cpp (100%) rename src/coreclr/{src => }/jit/codegenxarch.cpp (100%) rename src/coreclr/{src => }/jit/compiler.cpp (100%) rename src/coreclr/{src => }/jit/compiler.h (100%) rename src/coreclr/{src => }/jit/compiler.hpp (100%) rename src/coreclr/{src => }/jit/compilerbitsettraits.h (100%) rename src/coreclr/{src => }/jit/compilerbitsettraits.hpp (100%) rename src/coreclr/{src => }/jit/compmemkind.h (100%) rename src/coreclr/{src => }/jit/compphases.h (100%) rename src/coreclr/{src => }/jit/conventions.txt (100%) rename src/coreclr/{src => }/jit/copyprop.cpp (100%) rename src/coreclr/{src => }/jit/cpp.hint (100%) rename src/coreclr/{src => }/jit/crossgen/CMakeLists.txt (100%) rename src/coreclr/{src => }/jit/dataflow.h (100%) rename src/coreclr/{src => }/jit/decomposelongs.cpp (100%) rename src/coreclr/{src => }/jit/decomposelongs.h (100%) rename src/coreclr/{src => }/jit/disasm.cpp (100%) rename src/coreclr/{src => }/jit/disasm.h (100%) rename src/coreclr/{src => }/jit/dllmain.cpp (100%) rename src/coreclr/{src => }/jit/earlyprop.cpp (100%) rename src/coreclr/{src => }/jit/ee_il_dll.cpp (100%) rename src/coreclr/{src => }/jit/ee_il_dll.hpp (100%) rename src/coreclr/{src => }/jit/eeinterface.cpp (100%) rename src/coreclr/{src => }/jit/emit.cpp (100%) rename src/coreclr/{src => }/jit/emit.h (100%) rename src/coreclr/{src => }/jit/emitarm.cpp (100%) rename src/coreclr/{src => }/jit/emitarm.h (100%) rename src/coreclr/{src => }/jit/emitarm64.cpp (100%) rename src/coreclr/{src => }/jit/emitarm64.h (100%) rename src/coreclr/{src => }/jit/emitdef.h (100%) rename src/coreclr/{src => }/jit/emitfmts.h (100%) rename src/coreclr/{src => }/jit/emitfmtsarm.h (100%) rename src/coreclr/{src => }/jit/emitfmtsarm64.h (100%) rename src/coreclr/{src => }/jit/emitfmtsxarch.h (100%) rename src/coreclr/{src => }/jit/emitinl.h (100%) rename src/coreclr/{src => }/jit/emitjmps.h (100%) rename src/coreclr/{src => }/jit/emitpub.h (100%) rename src/coreclr/{src => }/jit/emitxarch.cpp (100%) rename src/coreclr/{src => }/jit/emitxarch.h (100%) rename src/coreclr/{src => }/jit/error.cpp (100%) rename src/coreclr/{src => }/jit/error.h (100%) rename src/coreclr/{src => }/jit/flowgraph.cpp (100%) rename src/coreclr/{src => }/jit/gcdecode.cpp (100%) rename src/coreclr/{src => }/jit/gcencode.cpp (100%) rename src/coreclr/{src => }/jit/gcinfo.cpp (100%) rename src/coreclr/{src => }/jit/gentree.cpp (100%) rename src/coreclr/{src => }/jit/gentree.h (100%) rename src/coreclr/{src => }/jit/gschecks.cpp (100%) rename src/coreclr/{src => }/jit/gtlist.h (100%) rename src/coreclr/{src => }/jit/gtstructs.h (100%) rename src/coreclr/{src => }/jit/hashbv.cpp (100%) rename src/coreclr/{src => }/jit/hashbv.h (100%) rename src/coreclr/{src => }/jit/host.h (100%) rename src/coreclr/{src => }/jit/hostallocator.cpp (100%) rename src/coreclr/{src => }/jit/hostallocator.h (100%) rename src/coreclr/{src => }/jit/hwintrinsic.cpp (100%) rename src/coreclr/{src => }/jit/hwintrinsic.h (100%) rename src/coreclr/{src => }/jit/hwintrinsicarm64.cpp (100%) rename src/coreclr/{src => }/jit/hwintrinsiccodegenarm64.cpp (100%) rename src/coreclr/{src => }/jit/hwintrinsiccodegenxarch.cpp (100%) rename src/coreclr/{src => }/jit/hwintrinsiclistarm64.h (100%) rename src/coreclr/{src => }/jit/hwintrinsiclistxarch.h (100%) rename src/coreclr/{src => }/jit/hwintrinsicxarch.cpp (100%) rename src/coreclr/{src => }/jit/importer.cpp (100%) rename src/coreclr/{src => }/jit/indirectcalltransformer.cpp (100%) rename src/coreclr/{src => }/jit/inline.cpp (100%) rename src/coreclr/{src => }/jit/inline.def (100%) rename src/coreclr/{src => }/jit/inline.h (100%) rename src/coreclr/{src => }/jit/inlinepolicy.cpp (100%) rename src/coreclr/{src => }/jit/inlinepolicy.h (100%) rename src/coreclr/{src => }/jit/instr.cpp (100%) rename src/coreclr/{src => }/jit/instr.h (100%) rename src/coreclr/{src => }/jit/instrs.h (100%) rename src/coreclr/{src => }/jit/instrsarm.h (100%) rename src/coreclr/{src => }/jit/instrsarm64.h (100%) rename src/coreclr/{src => }/jit/instrsxarch.h (100%) rename src/coreclr/{src => }/jit/jit.h (100%) rename src/coreclr/{src => }/jit/jitconfig.cpp (100%) rename src/coreclr/{src => }/jit/jitconfig.h (100%) rename src/coreclr/{src => }/jit/jitconfigvalues.h (100%) rename src/coreclr/{src => }/jit/jitee.h (100%) rename src/coreclr/{src => }/jit/jiteh.cpp (100%) rename src/coreclr/{src => }/jit/jiteh.h (100%) rename src/coreclr/{src => }/jit/jitexpandarray.h (100%) rename src/coreclr/{src => }/jit/jitgcinfo.h (100%) rename src/coreclr/{src => }/jit/jithashtable.cpp (100%) rename src/coreclr/{src => }/jit/jithashtable.h (100%) rename src/coreclr/{src => }/jit/jitpch.h (100%) rename src/coreclr/{src => }/jit/jitstd.h (100%) rename src/coreclr/{src => }/jit/jitstd/algorithm.h (100%) rename src/coreclr/{src => }/jit/jitstd/allocator.h (100%) rename src/coreclr/{src => }/jit/jitstd/functional.h (100%) rename src/coreclr/{src => }/jit/jitstd/iterator.h (100%) rename src/coreclr/{src => }/jit/jitstd/list.h (100%) rename src/coreclr/{src => }/jit/jitstd/new.h (100%) rename src/coreclr/{src => }/jit/jitstd/utility.h (100%) rename src/coreclr/{src => }/jit/jitstd/vector.h (100%) rename src/coreclr/{src => }/jit/jittelemetry.cpp (100%) rename src/coreclr/{src => }/jit/jittelemetry.h (100%) rename src/coreclr/{src => }/jit/layout.cpp (100%) rename src/coreclr/{src => }/jit/layout.h (100%) rename src/coreclr/{src => }/jit/lclmorph.cpp (100%) rename src/coreclr/{src => }/jit/lclvars.cpp (100%) rename src/coreclr/{src => }/jit/lir.cpp (100%) rename src/coreclr/{src => }/jit/lir.h (100%) rename src/coreclr/{src => }/jit/liveness.cpp (100%) rename src/coreclr/{src => }/jit/loopcloning.cpp (100%) rename src/coreclr/{src => }/jit/loopcloning.h (100%) rename src/coreclr/{src => }/jit/loopcloningopts.h (100%) rename src/coreclr/{src => }/jit/lower.cpp (100%) rename src/coreclr/{src => }/jit/lower.h (100%) rename src/coreclr/{src => }/jit/lowerarmarch.cpp (100%) rename src/coreclr/{src => }/jit/lowerxarch.cpp (100%) rename src/coreclr/{src => }/jit/lsra.cpp (100%) rename src/coreclr/{src => }/jit/lsra.h (100%) rename src/coreclr/{src => }/jit/lsra_reftypes.h (100%) rename src/coreclr/{src => }/jit/lsraarm.cpp (100%) rename src/coreclr/{src => }/jit/lsraarm64.cpp (100%) rename src/coreclr/{src => }/jit/lsraarmarch.cpp (100%) rename src/coreclr/{src => }/jit/lsrabuild.cpp (100%) rename src/coreclr/{src => }/jit/lsraxarch.cpp (100%) rename src/coreclr/{src => }/jit/morph.cpp (100%) rename src/coreclr/{src => }/jit/namedintrinsiclist.h (100%) rename src/coreclr/{src => }/jit/objectalloc.cpp (100%) rename src/coreclr/{src => }/jit/objectalloc.h (100%) rename src/coreclr/{src => }/jit/opcode.h (100%) rename src/coreclr/{src => }/jit/optcse.cpp (100%) rename src/coreclr/{src => }/jit/optimizer.cpp (100%) rename src/coreclr/{src => }/jit/patchpoint.cpp (100%) rename src/coreclr/{src => }/jit/phase.cpp (100%) rename src/coreclr/{src => }/jit/phase.h (100%) rename src/coreclr/{src => }/jit/rangecheck.cpp (100%) rename src/coreclr/{src => }/jit/rangecheck.h (100%) rename src/coreclr/{src => }/jit/rationalize.cpp (100%) rename src/coreclr/{src => }/jit/rationalize.h (100%) rename src/coreclr/{src => }/jit/regalloc.cpp (100%) rename src/coreclr/{src => }/jit/regalloc.h (100%) rename src/coreclr/{src => }/jit/register.h (100%) rename src/coreclr/{src => }/jit/register_arg_convention.cpp (100%) rename src/coreclr/{src => }/jit/register_arg_convention.h (100%) rename src/coreclr/{src => }/jit/registerarm.h (100%) rename src/coreclr/{src => }/jit/registerarm64.h (100%) rename src/coreclr/{src => }/jit/reglist.h (100%) rename src/coreclr/{src => }/jit/regset.cpp (100%) rename src/coreclr/{src => }/jit/regset.h (100%) rename src/coreclr/{src => }/jit/scopeinfo.cpp (100%) rename src/coreclr/{src => }/jit/sideeffects.cpp (100%) rename src/coreclr/{src => }/jit/sideeffects.h (100%) rename src/coreclr/{src => }/jit/simd.cpp (100%) rename src/coreclr/{src => }/jit/simd.h (100%) rename src/coreclr/{src => }/jit/simdashwintrinsic.cpp (100%) rename src/coreclr/{src => }/jit/simdashwintrinsic.h (100%) rename src/coreclr/{src => }/jit/simdashwintrinsiclistarm64.h (100%) rename src/coreclr/{src => }/jit/simdashwintrinsiclistxarch.h (100%) rename src/coreclr/{src => }/jit/simdcodegenxarch.cpp (100%) rename src/coreclr/{src => }/jit/simdintrinsiclist.h (100%) rename src/coreclr/{src => }/jit/sm.cpp (100%) rename src/coreclr/{src => }/jit/sm.h (100%) rename src/coreclr/{src => }/jit/smallhash.h (100%) rename src/coreclr/{src => }/jit/smcommon.cpp (100%) rename src/coreclr/{src => }/jit/smcommon.h (100%) rename src/coreclr/{src => }/jit/smdata.cpp (100%) rename src/coreclr/{src => }/jit/smopcode.def (100%) rename src/coreclr/{src => }/jit/smopcodemap.def (100%) rename src/coreclr/{src => }/jit/smopenum.h (100%) rename src/coreclr/{src => }/jit/smweights.cpp (100%) rename src/coreclr/{src => }/jit/ssabuilder.cpp (100%) rename src/coreclr/{src => }/jit/ssabuilder.h (100%) rename src/coreclr/{src => }/jit/ssaconfig.h (100%) rename src/coreclr/{src => }/jit/ssarenamestate.cpp (100%) rename src/coreclr/{src => }/jit/ssarenamestate.h (100%) rename src/coreclr/{src => }/jit/stacklevelsetter.cpp (100%) rename src/coreclr/{src => }/jit/stacklevelsetter.h (100%) rename src/coreclr/{src => }/jit/static/CMakeLists.txt (100%) rename src/coreclr/{src => }/jit/static/clrjit.def (100%) rename src/coreclr/{src => }/jit/target.h (100%) rename src/coreclr/{src => }/jit/targetamd64.cpp (100%) rename src/coreclr/{src => }/jit/targetarm.cpp (100%) rename src/coreclr/{src => }/jit/targetarm64.cpp (100%) rename src/coreclr/{src => }/jit/targetx86.cpp (100%) rename src/coreclr/{src => }/jit/tinyarray.h (100%) rename src/coreclr/{src => }/jit/titypes.h (100%) rename src/coreclr/{src => }/jit/treelifeupdater.cpp (100%) rename src/coreclr/{src => }/jit/treelifeupdater.h (100%) rename src/coreclr/{src => }/jit/typeinfo.cpp (100%) rename src/coreclr/{src => }/jit/typelist.h (100%) rename src/coreclr/{src => }/jit/unwind.cpp (100%) rename src/coreclr/{src => }/jit/unwind.h (100%) rename src/coreclr/{src => }/jit/unwindamd64.cpp (100%) rename src/coreclr/{src => }/jit/unwindarm.cpp (100%) rename src/coreclr/{src => }/jit/unwindarm64.cpp (100%) rename src/coreclr/{src => }/jit/unwindx86.cpp (100%) rename src/coreclr/{src => }/jit/utils.cpp (100%) rename src/coreclr/{src => }/jit/utils.h (100%) rename src/coreclr/{src => }/jit/valuenum.cpp (100%) rename src/coreclr/{src => }/jit/valuenum.h (100%) rename src/coreclr/{src => }/jit/valuenumfuncs.h (100%) rename src/coreclr/{src => }/jit/valuenumtype.h (100%) rename src/coreclr/{src => }/jit/varset.h (100%) rename src/coreclr/{src => }/jit/vartype.h (100%) rename src/coreclr/{src => }/md/CMakeLists.txt (100%) rename src/coreclr/{src => }/md/ceefilegen/CMakeLists.txt (100%) rename src/coreclr/{src => }/md/ceefilegen/blobfetcher.cpp (100%) rename src/coreclr/{src => }/md/ceefilegen/cceegen.cpp (100%) rename src/coreclr/{src => }/md/ceefilegen/ceegentokenmapper.cpp (100%) rename src/coreclr/{src => }/md/ceefilegen/ceesectionstring.cpp (100%) rename src/coreclr/{src => }/md/ceefilegen/pesectionman.cpp (100%) rename src/coreclr/{src => }/md/ceefilegen/stdafx.h (100%) rename src/coreclr/{src => }/md/compiler/CMakeLists.txt (100%) rename src/coreclr/{src => }/md/compiler/assemblymd.cpp (100%) rename src/coreclr/{src => }/md/compiler/assemblymd_emit.cpp (100%) rename src/coreclr/{src => }/md/compiler/classfactory.cpp (100%) rename src/coreclr/{src => }/md/compiler/classfactory.h (100%) rename src/coreclr/{src => }/md/compiler/custattr.h (100%) rename src/coreclr/{src => }/md/compiler/custattr_emit.cpp (100%) rename src/coreclr/{src => }/md/compiler/custattr_import.cpp (100%) rename src/coreclr/{src => }/md/compiler/disp.cpp (100%) rename src/coreclr/{src => }/md/compiler/disp.h (100%) rename src/coreclr/{src => }/md/compiler/emit.cpp (100%) rename src/coreclr/{src => }/md/compiler/filtermanager.cpp (100%) rename src/coreclr/{src => }/md/compiler/filtermanager.h (100%) rename src/coreclr/{src => }/md/compiler/helper.cpp (100%) rename src/coreclr/{src => }/md/compiler/import.cpp (100%) rename src/coreclr/{src => }/md/compiler/importhelper.cpp (100%) rename src/coreclr/{src => }/md/compiler/importhelper.h (100%) rename src/coreclr/{src => }/md/compiler/mdperf.cpp (100%) rename src/coreclr/{src => }/md/compiler/mdperf.h (100%) rename src/coreclr/{src => }/md/compiler/mdutil.cpp (100%) rename src/coreclr/{src => }/md/compiler/mdutil.h (100%) rename src/coreclr/{src => }/md/compiler/regmeta.cpp (100%) rename src/coreclr/{src => }/md/compiler/regmeta.h (100%) rename src/coreclr/{src => }/md/compiler/regmeta_compilersupport.cpp (100%) rename src/coreclr/{src => }/md/compiler/regmeta_emit.cpp (100%) rename src/coreclr/{src => }/md/compiler/regmeta_imetadatatables.cpp (100%) rename src/coreclr/{src => }/md/compiler/regmeta_import.cpp (100%) rename src/coreclr/{src => }/md/compiler/regmeta_vm.cpp (100%) rename src/coreclr/{src => }/md/compiler/stdafx.h (100%) rename src/coreclr/{src => }/md/compiler/verifylayouts.cpp (100%) rename src/coreclr/{src => }/md/compressedinteger.h (100%) rename src/coreclr/{src => }/md/compressedinteger.inl (100%) rename src/coreclr/{src => }/md/datablob.h (100%) rename src/coreclr/{src => }/md/datablob.inl (100%) rename src/coreclr/{src => }/md/databuffer.h (100%) rename src/coreclr/{src => }/md/databuffer.inl (100%) rename src/coreclr/{src => }/md/datasource/CMakeLists.txt (100%) rename src/coreclr/{src => }/md/datasource/api.cpp (100%) rename src/coreclr/{src => }/md/datasource/datatargetreader.cpp (100%) rename src/coreclr/{src => }/md/datasource/datatargetreader.h (100%) rename src/coreclr/{src => }/md/datasource/remotemdinternalrwsource.cpp (100%) rename src/coreclr/{src => }/md/datasource/remotemdinternalrwsource.h (100%) rename src/coreclr/{src => }/md/datasource/stdafx.h (100%) rename src/coreclr/{src => }/md/datasource/targettypes.cpp (100%) rename src/coreclr/{src => }/md/datasource/targettypes.h (100%) rename src/coreclr/{src => }/md/debug_metadata.h (100%) rename src/coreclr/{src => }/md/enc/CMakeLists.txt (100%) rename src/coreclr/{src => }/md/enc/liteweightstgdbrw.cpp (100%) rename src/coreclr/{src => }/md/enc/mdinternalrw.cpp (100%) rename src/coreclr/{src => }/md/enc/metamodelenc.cpp (100%) rename src/coreclr/{src => }/md/enc/metamodelrw.cpp (100%) rename src/coreclr/{src => }/md/enc/pdbheap.cpp (100%) rename src/coreclr/{src => }/md/enc/peparse.cpp (100%) rename src/coreclr/{src => }/md/enc/rwutil.cpp (100%) rename src/coreclr/{src => }/md/enc/stdafx.h (100%) rename src/coreclr/{src => }/md/enc/stgio.cpp (100%) rename src/coreclr/{src => }/md/enc/stgtiggerstorage.cpp (100%) rename src/coreclr/{src => }/md/enc/stgtiggerstream.cpp (100%) rename src/coreclr/{src => }/md/errors_metadata.h (100%) rename src/coreclr/{src => }/md/export.h (100%) rename src/coreclr/{src => }/md/external.h (100%) rename src/coreclr/{src => }/md/heaps/blobheap.h (100%) rename src/coreclr/{src => }/md/heaps/export.h (100%) rename src/coreclr/{src => }/md/heaps/external.h (100%) rename src/coreclr/{src => }/md/heaps/guidheap.h (100%) rename src/coreclr/{src => }/md/heaps/stringheap.h (100%) rename src/coreclr/{src => }/md/hotdata/CMakeLists.txt (100%) rename src/coreclr/{src => }/md/hotdata/export.h (100%) rename src/coreclr/{src => }/md/hotdata/external.h (100%) rename src/coreclr/{src => }/md/hotdata/heapindex.h (100%) rename src/coreclr/{src => }/md/hotdata/hotdataformat.h (100%) rename src/coreclr/{src => }/md/hotdata/hotheap.cpp (100%) rename src/coreclr/{src => }/md/hotdata/hotheap.h (100%) rename src/coreclr/{src => }/md/hotdata/hotheapsdirectoryiterator.cpp (100%) rename src/coreclr/{src => }/md/hotdata/hotheapsdirectoryiterator.h (100%) rename src/coreclr/{src => }/md/hotdata/hotheapwriter.cpp (100%) rename src/coreclr/{src => }/md/hotdata/hotheapwriter.h (100%) rename src/coreclr/{src => }/md/hotdata/hotmetadata.cpp (100%) rename src/coreclr/{src => }/md/hotdata/hotmetadata.h (100%) rename src/coreclr/{src => }/md/hotdata/hottable.cpp (100%) rename src/coreclr/{src => }/md/hotdata/hottable.h (100%) rename src/coreclr/{src => }/md/inc/VerifyLayouts.inc (100%) rename src/coreclr/{src => }/md/inc/assemblymdinternaldisp.h (100%) rename src/coreclr/{src => }/md/inc/cahlprinternal.h (100%) rename src/coreclr/{src => }/md/inc/liteweightstgdb.h (100%) rename src/coreclr/{src => }/md/inc/mdcolumndescriptors.h (100%) rename src/coreclr/{src => }/md/inc/mdinternalrw.h (100%) rename src/coreclr/{src => }/md/inc/mdlog.h (100%) rename src/coreclr/{src => }/md/inc/metadatahash.h (100%) rename src/coreclr/{src => }/md/inc/metamodel.h (100%) rename src/coreclr/{src => }/md/inc/metamodelro.h (100%) rename src/coreclr/{src => }/md/inc/metamodelrw.h (100%) rename src/coreclr/{src => }/md/inc/pdbheap.h (100%) rename src/coreclr/{src => }/md/inc/portablepdbmdds.h (100%) rename src/coreclr/{src => }/md/inc/portablepdbmdi.h (100%) rename src/coreclr/{src => }/md/inc/recordpool.h (100%) rename src/coreclr/{src => }/md/inc/rwutil.h (100%) rename src/coreclr/{src => }/md/inc/stgio.h (100%) rename src/coreclr/{src => }/md/inc/stgtiggerstorage.h (100%) rename src/coreclr/{src => }/md/inc/stgtiggerstream.h (100%) rename src/coreclr/{src => }/md/inc/streamutil.h (100%) rename src/coreclr/{src => }/md/inc/verifylayouts.h (100%) rename src/coreclr/{src => }/md/runtime/CMakeLists.txt (100%) rename src/coreclr/{src => }/md/runtime/liteweightstgdb.cpp (100%) rename src/coreclr/{src => }/md/runtime/mdcolumndescriptors.cpp (100%) rename src/coreclr/{src => }/md/runtime/mdfileformat.cpp (100%) rename src/coreclr/{src => }/md/runtime/mdinternaldisp.cpp (100%) rename src/coreclr/{src => }/md/runtime/mdinternaldisp.h (100%) rename src/coreclr/{src => }/md/runtime/mdinternalro.cpp (100%) rename src/coreclr/{src => }/md/runtime/mdinternalro.h (100%) rename src/coreclr/{src => }/md/runtime/metamodel.cpp (100%) rename src/coreclr/{src => }/md/runtime/metamodelcolumndefs.h (100%) rename src/coreclr/{src => }/md/runtime/metamodelro.cpp (100%) rename src/coreclr/{src => }/md/runtime/recordpool.cpp (100%) rename src/coreclr/{src => }/md/runtime/stdafx.h (100%) rename src/coreclr/{src => }/md/runtime/strongnameinternal.cpp (100%) rename src/coreclr/{src => }/md/staticmd/CMakeLists.txt (100%) rename src/coreclr/{src => }/md/staticmd/apis.cpp (100%) rename src/coreclr/{src => }/md/staticmd/stdafx.h (100%) rename src/coreclr/{src => }/md/tables/export.h (100%) rename src/coreclr/{src => }/md/tables/external.h (100%) rename src/coreclr/{src => }/md/tables/table.h (100%) rename src/coreclr/{src => }/nativeresources/CMakeLists.txt (100%) rename src/coreclr/{src => }/nativeresources/processrc.awk (100%) rename src/coreclr/{src => }/nativeresources/rctocpp.awk (100%) rename src/coreclr/{src => }/nativeresources/rctopo.awk (100%) rename src/coreclr/{src => }/nativeresources/resourcestring.cpp (100%) rename src/coreclr/{src => }/nativeresources/resourcestring.h (100%) rename src/coreclr/{src => }/pal/CMakeLists.txt (90%) rename src/coreclr/{src => }/pal/inc/mbusafecrt.h (100%) rename src/coreclr/{src => }/pal/inc/pal.h (100%) rename src/coreclr/{src => }/pal/inc/pal_assert.h (100%) rename src/coreclr/{src => }/pal/inc/pal_endian.h (100%) rename src/coreclr/{src => }/pal/inc/pal_error.h (100%) rename src/coreclr/{src => }/pal/inc/pal_mstypes.h (100%) rename src/coreclr/{src => }/pal/inc/palprivate.h (100%) rename src/coreclr/{src => }/pal/inc/rt/aclapi.h (100%) rename src/coreclr/{src => }/pal/inc/rt/commctrl.h (100%) rename src/coreclr/{src => }/pal/inc/rt/commdlg.h (100%) rename src/coreclr/{src => }/pal/inc/rt/conio.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/assert.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/cstdlib (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/ctype.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/emmintrin.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/fcntl.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/float.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/io.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/limits.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/malloc.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/math.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/memory.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/stdarg.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/stddef.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/stdint.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/stdio.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/stdlib.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/string.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/time.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/wchar.h (100%) rename src/coreclr/{src => }/pal/inc/rt/cpp/xmmintrin.h (100%) rename src/coreclr/{src => }/pal/inc/rt/crtdbg.h (100%) rename src/coreclr/{src => }/pal/inc/rt/dbghelp.h (100%) rename src/coreclr/{src => }/pal/inc/rt/eh.h (100%) rename src/coreclr/{src => }/pal/inc/rt/errorrep.h (100%) rename src/coreclr/{src => }/pal/inc/rt/guiddef.h (100%) rename src/coreclr/{src => }/pal/inc/rt/htmlhelp.h (100%) rename src/coreclr/{src => }/pal/inc/rt/imagehlp.h (100%) rename src/coreclr/{src => }/pal/inc/rt/intrin.h (100%) rename src/coreclr/{src => }/pal/inc/rt/intsafe.h (100%) rename src/coreclr/{src => }/pal/inc/rt/new.h (100%) rename src/coreclr/{src => }/pal/inc/rt/no_sal2.h (100%) rename src/coreclr/{src => }/pal/inc/rt/ntimage.h (100%) rename src/coreclr/{src => }/pal/inc/rt/oaidl.h (100%) rename src/coreclr/{src => }/pal/inc/rt/objbase.h (100%) rename src/coreclr/{src => }/pal/inc/rt/objidl.h (100%) rename src/coreclr/{src => }/pal/inc/rt/ocidl.h (100%) rename src/coreclr/{src => }/pal/inc/rt/ole2.h (100%) rename src/coreclr/{src => }/pal/inc/rt/oleauto.h (100%) rename src/coreclr/{src => }/pal/inc/rt/olectl.h (100%) rename src/coreclr/{src => }/pal/inc/rt/palrt.h (100%) rename src/coreclr/{src => }/pal/inc/rt/poppack.h (100%) rename src/coreclr/{src => }/pal/inc/rt/process.h (100%) rename src/coreclr/{src => }/pal/inc/rt/psapi.h (100%) rename src/coreclr/{src => }/pal/inc/rt/pshpack1.h (100%) rename src/coreclr/{src => }/pal/inc/rt/pshpack2.h (100%) rename src/coreclr/{src => }/pal/inc/rt/pshpack4.h (100%) rename src/coreclr/{src => }/pal/inc/rt/pshpack8.h (100%) rename src/coreclr/{src => }/pal/inc/rt/richedit.h (100%) rename src/coreclr/{src => }/pal/inc/rt/rpc.h (100%) rename src/coreclr/{src => }/pal/inc/rt/rpcndr.h (100%) rename src/coreclr/{src => }/pal/inc/rt/safecrt.h (100%) rename src/coreclr/{src => }/pal/inc/rt/sal.h (100%) rename src/coreclr/{src => }/pal/inc/rt/servprov.h (100%) rename src/coreclr/{src => }/pal/inc/rt/share.h (100%) rename src/coreclr/{src => }/pal/inc/rt/shellapi.h (100%) rename src/coreclr/{src => }/pal/inc/rt/shlobj.h (100%) rename src/coreclr/{src => }/pal/inc/rt/shlwapi.h (100%) rename src/coreclr/{src => }/pal/inc/rt/specstrings.h (100%) rename src/coreclr/{src => }/pal/inc/rt/specstrings_strict.h (100%) rename src/coreclr/{src => }/pal/inc/rt/specstrings_undef.h (100%) rename src/coreclr/{src => }/pal/inc/rt/tchar.h (100%) rename src/coreclr/{src => }/pal/inc/rt/tlhelp32.h (100%) rename src/coreclr/{src => }/pal/inc/rt/unknwn.h (100%) rename src/coreclr/{src => }/pal/inc/rt/urlmon.h (100%) rename src/coreclr/{src => }/pal/inc/rt/verrsrc.h (100%) rename src/coreclr/{src => }/pal/inc/rt/winapifamily.h (100%) rename src/coreclr/{src => }/pal/inc/rt/winbase.h (100%) rename src/coreclr/{src => }/pal/inc/rt/wincrypt.h (100%) rename src/coreclr/{src => }/pal/inc/rt/windef.h (100%) rename src/coreclr/{src => }/pal/inc/rt/windows.h (100%) rename src/coreclr/{src => }/pal/inc/rt/winerror.h (100%) rename src/coreclr/{src => }/pal/inc/rt/wininet.h (100%) rename src/coreclr/{src => }/pal/inc/rt/winnls.h (100%) rename src/coreclr/{src => }/pal/inc/rt/winnt.h (100%) rename src/coreclr/{src => }/pal/inc/rt/winresrc.h (100%) rename src/coreclr/{src => }/pal/inc/rt/winternl.h (100%) rename src/coreclr/{src => }/pal/inc/rt/winuser.h (100%) rename src/coreclr/{src => }/pal/inc/rt/winver.h (100%) rename src/coreclr/{src => }/pal/inc/rt/wtsapi32.h (100%) rename src/coreclr/{src => }/pal/inc/strsafe.h (100%) rename src/coreclr/{src => }/pal/inc/unixasmmacros.inc (100%) rename src/coreclr/{src => }/pal/inc/unixasmmacrosamd64.inc (100%) rename src/coreclr/{src => }/pal/inc/unixasmmacrosarm.inc (100%) rename src/coreclr/{src => }/pal/inc/unixasmmacrosarm64.inc (100%) rename src/coreclr/{src => }/pal/inc/unixasmmacrosx86.inc (100%) rename src/coreclr/{src => }/pal/prebuilt/corerror/makecorerror.bat (100%) rename src/coreclr/{src => }/pal/prebuilt/corerror/mscorurt.rc (100%) rename src/coreclr/{src => }/pal/prebuilt/corerror/readme.txt (100%) rename src/coreclr/{src => }/pal/prebuilt/idl/clrdata_i.cpp (100%) rename src/coreclr/{src => }/pal/prebuilt/idl/clrinternal_i.cpp (100%) rename src/coreclr/{src => }/pal/prebuilt/idl/clrprivappxhosting_i.cpp (100%) rename src/coreclr/{src => }/pal/prebuilt/idl/clrprivbinding_i.cpp (100%) rename src/coreclr/{src => }/pal/prebuilt/idl/cordebug_i.cpp (100%) rename src/coreclr/{src => }/pal/prebuilt/idl/corprof_i.cpp (100%) rename src/coreclr/{src => }/pal/prebuilt/idl/corpub_i.cpp (100%) rename src/coreclr/{src => }/pal/prebuilt/idl/corsym_i.cpp (100%) rename src/coreclr/{src => }/pal/prebuilt/idl/mscorsvc_i.cpp (100%) rename src/coreclr/{src => }/pal/prebuilt/idl/sospriv_i.cpp (100%) rename src/coreclr/{src => }/pal/prebuilt/idl/xclrdata_i.cpp (100%) rename src/coreclr/{src => }/pal/prebuilt/idl/xcordebug_i.cpp (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/CMakeLists.txt (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/clrdata.h (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/clrinternal.h (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/clrprivbinding.h (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/cordebug.h (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/corerror.h (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/corprof.h (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/corpub.h (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/corsym.h (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/fusion.h (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/fxver.h (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/fxver.rc (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/metahost.h (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/mscoree.h (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/mscorsvc.h (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/readme.txt (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/sospriv.h (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/xclrdata.h (100%) rename src/coreclr/{src => }/pal/prebuilt/inc/xcordebug.h (100%) rename src/coreclr/{src => }/pal/src/.tpattributes (100%) rename src/coreclr/{src => }/pal/src/CMakeLists.txt (100%) rename src/coreclr/{src => }/pal/src/arch/amd64/activationhandlerwrapper.S (100%) rename src/coreclr/{src => }/pal/src/arch/amd64/asmconstants.h (100%) rename src/coreclr/{src => }/pal/src/arch/amd64/callsignalhandlerwrapper.S (100%) rename src/coreclr/{src => }/pal/src/arch/amd64/context.S (100%) rename src/coreclr/{src => }/pal/src/arch/amd64/context2.S (100%) rename src/coreclr/{src => }/pal/src/arch/amd64/debugbreak.S (100%) rename src/coreclr/{src => }/pal/src/arch/amd64/dispatchexceptionwrapper.S (100%) rename src/coreclr/{src => }/pal/src/arch/amd64/exceptionhelper.S (100%) rename src/coreclr/{src => }/pal/src/arch/amd64/processor.cpp (100%) rename src/coreclr/{src => }/pal/src/arch/amd64/signalhandlerhelper.cpp (100%) rename src/coreclr/{src => }/pal/src/arch/arm/asmconstants.h (100%) rename src/coreclr/{src => }/pal/src/arch/arm/callsignalhandlerwrapper.S (100%) rename src/coreclr/{src => }/pal/src/arch/arm/context2.S (100%) rename src/coreclr/{src => }/pal/src/arch/arm/debugbreak.S (100%) rename src/coreclr/{src => }/pal/src/arch/arm/exceptionhelper.S (100%) rename src/coreclr/{src => }/pal/src/arch/arm/processor.cpp (100%) rename src/coreclr/{src => }/pal/src/arch/arm/signalhandlerhelper.cpp (100%) rename src/coreclr/{src => }/pal/src/arch/arm64/activationhandlerwrapper.S (100%) rename src/coreclr/{src => }/pal/src/arch/arm64/asmconstants.h (100%) rename src/coreclr/{src => }/pal/src/arch/arm64/callsignalhandlerwrapper.S (100%) rename src/coreclr/{src => }/pal/src/arch/arm64/context.S (100%) rename src/coreclr/{src => }/pal/src/arch/arm64/context2.S (100%) rename src/coreclr/{src => }/pal/src/arch/arm64/debugbreak.S (100%) rename src/coreclr/{src => }/pal/src/arch/arm64/dispatchexceptionwrapper.S (100%) rename src/coreclr/{src => }/pal/src/arch/arm64/exceptionhelper.S (100%) rename src/coreclr/{src => }/pal/src/arch/arm64/processor.cpp (100%) rename src/coreclr/{src => }/pal/src/arch/arm64/signalhandlerhelper.cpp (100%) rename src/coreclr/{src => }/pal/src/arch/i386/asmconstants.h (100%) rename src/coreclr/{src => }/pal/src/arch/i386/callsignalhandlerwrapper.S (100%) rename src/coreclr/{src => }/pal/src/arch/i386/context2.S (100%) rename src/coreclr/{src => }/pal/src/arch/i386/debugbreak.S (100%) rename src/coreclr/{src => }/pal/src/arch/i386/exceptionhelper.S (100%) rename src/coreclr/{src => }/pal/src/arch/i386/processor.cpp (100%) rename src/coreclr/{src => }/pal/src/arch/i386/signalhandlerhelper.cpp (100%) rename src/coreclr/{src => }/pal/src/build_tools/mdtool_dummy (100%) rename src/coreclr/{src => }/pal/src/build_tools/mdtool_gcc.in (100%) rename src/coreclr/{src => }/pal/src/config.h.in (100%) rename src/coreclr/{src => }/pal/src/configure.cmake (100%) rename src/coreclr/{src => }/pal/src/cruntime/file.cpp (100%) rename src/coreclr/{src => }/pal/src/cruntime/filecrt.cpp (100%) rename src/coreclr/{src => }/pal/src/cruntime/malloc.cpp (100%) rename src/coreclr/{src => }/pal/src/cruntime/math.cpp (100%) rename src/coreclr/{src => }/pal/src/cruntime/misc.cpp (100%) rename src/coreclr/{src => }/pal/src/cruntime/path.cpp (100%) rename src/coreclr/{src => }/pal/src/cruntime/printf.cpp (100%) rename src/coreclr/{src => }/pal/src/cruntime/printfcpp.cpp (100%) rename src/coreclr/{src => }/pal/src/cruntime/silent_printf.cpp (100%) rename src/coreclr/{src => }/pal/src/cruntime/string.cpp (100%) rename src/coreclr/{src => }/pal/src/cruntime/stringtls.cpp (100%) rename src/coreclr/{src => }/pal/src/cruntime/thread.cpp (100%) rename src/coreclr/{src => }/pal/src/cruntime/wchar.cpp (100%) rename src/coreclr/{src => }/pal/src/cruntime/wchartls.cpp (100%) rename src/coreclr/{src => }/pal/src/debug/debug.cpp (100%) rename src/coreclr/{src => }/pal/src/eventprovider/CMakeLists.txt (100%) rename src/coreclr/{src => }/pal/src/eventprovider/dummyprovider/CMakeLists.txt (95%) rename src/coreclr/{src => }/pal/src/eventprovider/lttngprovider/CMakeLists.txt (97%) rename src/coreclr/{src => }/pal/src/eventprovider/lttngprovider/eventproviderhelpers.cpp (100%) rename src/coreclr/{src => }/pal/src/exception/compact_unwind_encoding.h (100%) rename src/coreclr/{src => }/pal/src/exception/machexception.cpp (100%) rename src/coreclr/{src => }/pal/src/exception/machexception.h (100%) rename src/coreclr/{src => }/pal/src/exception/machmessage.cpp (100%) rename src/coreclr/{src => }/pal/src/exception/machmessage.h (100%) rename src/coreclr/{src => }/pal/src/exception/remote-unwind.cpp (100%) rename src/coreclr/{src => }/pal/src/exception/seh-unwind.cpp (100%) rename src/coreclr/{src => }/pal/src/exception/seh.cpp (100%) rename src/coreclr/{src => }/pal/src/exception/signal.cpp (100%) rename src/coreclr/{src => }/pal/src/file/directory.cpp (100%) rename src/coreclr/{src => }/pal/src/file/file.cpp (100%) rename src/coreclr/{src => }/pal/src/file/filetime.cpp (100%) rename src/coreclr/{src => }/pal/src/file/find.cpp (100%) rename src/coreclr/{src => }/pal/src/file/path.cpp (100%) rename src/coreclr/{src => }/pal/src/handlemgr/handleapi.cpp (100%) rename src/coreclr/{src => }/pal/src/handlemgr/handlemgr.cpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/cgroup.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/context.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/corunix.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/corunix.inl (100%) rename src/coreclr/{src => }/pal/src/include/pal/critsect.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/cruntime.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/cs.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/dbgmsg.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/debug.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/environ.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/event.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/fakepoll.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/file.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/file.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/filetime.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/handleapi.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/handlemgr.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/init.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/list.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/malloc.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/map.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/map.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/misc.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/module.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/modulename.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/mutex.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/numa.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/palinternal.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/perftrace.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/printfcpp.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/process.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/procobj.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/seh.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/semaphore.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/sharedmemory.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/sharedmemory.inl (100%) rename src/coreclr/{src => }/pal/src/include/pal/shm.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/shmemory.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/signal.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/stackstring.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/synchcache.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/synchobjects.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/thread.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/threadinfo.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/threadsusp.hpp (100%) rename src/coreclr/{src => }/pal/src/include/pal/unicodedata.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/utf8.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/utils.h (100%) rename src/coreclr/{src => }/pal/src/include/pal/virtual.h (100%) rename src/coreclr/{src => }/pal/src/init/pal.cpp (100%) rename src/coreclr/{src => }/pal/src/init/sxs.cpp (100%) rename src/coreclr/{src => }/pal/src/libunwind/.gitignore (100%) rename src/coreclr/{src => }/pal/src/libunwind/.travis.yml (100%) rename src/coreclr/{src => }/pal/src/libunwind/AUTHORS (100%) rename src/coreclr/{src => }/pal/src/libunwind/CMakeLists.txt (100%) rename src/coreclr/{src => }/pal/src/libunwind/COPYING (100%) rename src/coreclr/{src => }/pal/src/libunwind/ChangeLog (100%) rename src/coreclr/{src => }/pal/src/libunwind/LICENSE (100%) rename src/coreclr/{src => }/pal/src/libunwind/Makefile.am (100%) rename src/coreclr/{src => }/pal/src/libunwind/NEWS (100%) rename src/coreclr/{src => }/pal/src/libunwind/README (100%) rename src/coreclr/{src => }/pal/src/libunwind/README.md (100%) rename src/coreclr/{src => }/pal/src/libunwind/TODO (100%) rename src/coreclr/{src => }/pal/src/libunwind/acinclude.m4 (100%) rename src/coreclr/{src => }/pal/src/libunwind/autogen.sh (100%) rename src/coreclr/{src => }/pal/src/libunwind/config.h.in (100%) rename src/coreclr/{src => }/pal/src/libunwind/configure.ac (100%) rename src/coreclr/{src => }/pal/src/libunwind/configure.cmake (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/Makefile.am (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/NOTES (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/_U_dyn_cancel.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/_U_dyn_cancel.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/_U_dyn_register.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/_U_dyn_register.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/common.tex.in (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/libunwind-dynamic.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/libunwind-dynamic.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/libunwind-ia64.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/libunwind-ia64.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/libunwind-ptrace.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/libunwind-ptrace.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/libunwind-setjmp.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/libunwind-setjmp.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/libunwind.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/libunwind.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/libunwind.trans (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_apply_reg_state.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_apply_reg_state.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_backtrace.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_backtrace.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_create_addr_space.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_create_addr_space.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_destroy_addr_space.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_destroy_addr_space.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_flush_cache.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_flush_cache.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_get_accessors.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_get_accessors.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_get_fpreg.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_get_fpreg.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_get_proc_info.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_get_proc_info.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_get_proc_info_by_ip.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_get_proc_info_by_ip.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_get_proc_name.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_get_proc_name.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_get_reg.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_get_reg.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_getcontext.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_getcontext.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_init_local.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_init_local.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_init_local2.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_init_remote.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_init_remote.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_is_fpreg.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_is_fpreg.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_is_signal_frame.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_is_signal_frame.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_reg_states_iterate.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_reg_states_iterate.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_regname.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_regname.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_resume.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_resume.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_set_cache_size.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_set_cache_size.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_set_caching_policy.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_set_caching_policy.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_set_fpreg.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_set_fpreg.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_set_reg.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_set_reg.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_step.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_step.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_strerror.man (100%) rename src/coreclr/{src => }/pal/src/libunwind/doc/unw_strerror.tex (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/compiler.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/config.h.cmake.in (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/dwarf-eh.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/dwarf.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/dwarf_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind-aarch64.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind-arm.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind-common.h.in (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind-coredump.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind-dynamic.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind-hppa.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind-ia64.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind-mips.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind-ppc32.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind-ppc64.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind-ptrace.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind-s390x.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind-sh.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind-tilegx.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind-x86.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind-x86_64.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind.h.in (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/libunwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/mempool.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/remote.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-aarch64/dwarf-config.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-aarch64/jmpbuf.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-aarch64/libunwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-arm/dwarf-config.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-arm/ex_tables.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-arm/jmpbuf.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-arm/libunwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-hppa/dwarf-config.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-hppa/jmpbuf.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-hppa/libunwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-ia64/jmpbuf.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-ia64/libunwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-ia64/rse.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-ia64/script.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-mips/dwarf-config.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-mips/jmpbuf.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-mips/libunwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-ppc32/dwarf-config.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-ppc32/jmpbuf.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-ppc32/libunwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-ppc64/dwarf-config.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-ppc64/jmpbuf.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-ppc64/libunwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-s390x/dwarf-config.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-s390x/jmpbuf.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-s390x/libunwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-sh/dwarf-config.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-sh/jmpbuf.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-sh/libunwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-tilegx/dwarf-config.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-tilegx/jmpbuf.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-tilegx/libunwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-x86/dwarf-config.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-x86/jmpbuf.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-x86/libunwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-x86_64/dwarf-config.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-x86_64/jmpbuf.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep-x86_64/libunwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep/dwarf-config.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep/jmpbuf.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/tdep/libunwind_i.h.in (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/unwind.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/win/elf.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/win/endian.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/win/fakestdalign.h.in (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/win/fakestdatomic.h.in (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/win/freebsd-elf32.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/win/freebsd-elf64.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/win/freebsd-elf_common.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/win/pthread.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/win/signal.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/win/sys/mman.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/win/sys/syscall.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/win/sys/types.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/win/sys/ucontext.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/win/ucontext.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/win/unistd.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/include/x86/jmpbuf.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/libunwind-version.txt (100%) rename src/coreclr/{src => }/pal/src/libunwind/scripts/kernel-diff.sh (100%) rename src/coreclr/{src => }/pal/src/libunwind/scripts/kernel-files.txt (100%) rename src/coreclr/{src => }/pal/src/libunwind/scripts/make-L-files (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/CMakeLists.txt (98%) rename src/coreclr/{src => }/pal/src/libunwind/src/Makefile.am (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Gapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Gcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Gget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Gget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Gglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Ginit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Ginit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Ginit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Gis_signal_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Greg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Gregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Gresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Gstash_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Gstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Gtrace.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Lapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Lcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Lget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Lget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Lglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Linit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Linit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Linit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Lis_signal_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Lreg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Lregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Lresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Lstash_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Lstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/Ltrace.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/gen-offsets.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/getcontext.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/init.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/is_fpreg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/offsets.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/regname.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/siglongjmp.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/aarch64/unwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Gapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Gcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Gex_tables.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Gget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Gget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Gglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Ginit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Ginit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Ginit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Gos-freebsd.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Gos-linux.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Gos-other.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Greg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Gregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Gresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Gstash_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Gstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Gtrace.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Lapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Lcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Lex_tables.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Lget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Lget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Lglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Linit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Linit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Linit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Lis_signal_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Los-freebsd.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Los-linux.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Los-other.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Lreg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Lregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Lresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Lstash_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Lstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/Ltrace.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/gen-offsets.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/getcontext.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/init.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/is_fpreg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/offsets.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/regname.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/siglongjmp.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/arm/unwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/README (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/_UCD_access_mem.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/_UCD_access_reg_freebsd.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/_UCD_access_reg_linux.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/_UCD_accessors.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/_UCD_create.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/_UCD_destroy.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/_UCD_elf_map_image.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/_UCD_find_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/_UCD_get_proc_name.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/_UCD_internal.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/_UCD_lib.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/_UPT_access_fpreg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/_UPT_elf.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/_UPT_get_dyn_info_list_addr.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/_UPT_put_unwind_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/_UPT_resume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/coredump/libunwind-coredump.pc.in (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/dwarf/Gexpr.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/dwarf/Gfde.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/dwarf/Gfind_proc_info-lsb.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/dwarf/Gfind_unwind_table.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/dwarf/Gparser.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/dwarf/Gpe.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/dwarf/Lexpr.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/dwarf/Lfde.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/dwarf/Lfind_proc_info-lsb.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/dwarf/Lfind_unwind_table.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/dwarf/Lparser.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/dwarf/Lpe.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/dwarf/global.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/elf32.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/elf32.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/elf64.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/elf64.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/elfxx.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/elfxx.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Gapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Gcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Gget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Gget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Gglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Ginit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Ginit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Ginit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Gis_signal_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Greg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Gregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Gresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Gstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Lapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Lcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Lget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Lget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Lglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Linit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Linit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Linit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Lis_signal_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Lreg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Lregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Lresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/Lstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/get_accessors.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/getcontext.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/init.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/offsets.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/regname.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/setcontext.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/siglongjmp.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/tables.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/hppa/unwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Gapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Gcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Gfind_unwind_table.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Gget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Gget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Gglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Ginit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Ginit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Ginit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Ginstall_cursor.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Gis_signal_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Gparser.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Grbs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Greg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Gregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Gresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Gscript.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Gstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Gtables.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Lapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Lcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Lfind_unwind_table.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Lget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Lget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Lglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Linit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Linit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Linit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Linstall_cursor.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Lis_signal_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Lparser.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Lrbs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Lreg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Lregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Lresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Lscript.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Lstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/Ltables.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/NOTES (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/dyn_info_list.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/getcontext.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/init.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/longjmp.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/mk_cursor_i (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/offsets.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/regname.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/regs.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/setjmp.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/siglongjmp.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/sigsetjmp.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/ucontext_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/unwind_decoder.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ia64/unwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/libunwind-generic.pc.in (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Gdestroy_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Gdyn-extract.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Gdyn-remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Gfind_dynamic_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Gget_accessors.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Gget_fpreg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Gget_proc_info_by_ip.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Gget_proc_name.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Gget_reg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Gput_dynamic_unwind_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Gset_cache_size.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Gset_caching_policy.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Gset_fpreg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Gset_reg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Ldestroy_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Ldyn-extract.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Ldyn-remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Lfind_dynamic_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Lget_accessors.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Lget_fpreg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Lget_proc_info_by_ip.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Lget_proc_name.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Lget_reg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Lput_dynamic_unwind_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Lset_cache_size.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Lset_caching_policy.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Lset_fpreg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/Lset_reg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/_ReadSLEB.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/_ReadULEB.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/backtrace.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/dyn-cancel.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/dyn-info-list.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/dyn-register.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/flush_cache.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/init.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/mempool.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mi/strerror.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Gapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Gcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Gget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Gget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Gglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Ginit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Ginit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Ginit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Gis_signal_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Greg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Gregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Gresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Gstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Lapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Lcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Lget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Lget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Lglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Linit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Linit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Linit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Lis_signal_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Lreg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Lregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Lresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/Lstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/elfxx.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/gen-offsets.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/getcontext.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/init.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/is_fpreg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/offsets.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/regname.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/siglongjmp.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/mips/unwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/oop/_OOP_find_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/oop/_OOP_internal.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/os-freebsd.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/os-hpux.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/os-linux.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/os-linux.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/os-qnx.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/os-solaris.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc/Gapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc/Gget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc/Gget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc/Ginit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc/Ginit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc/Gis_signal_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc/Greg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc/Lapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc/Lget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc/Lget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc/Linit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc/Linit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc/Lis_signal_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc/Lreg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc/longjmp.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc/siglongjmp.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/Gapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/Gcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/Gglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/Ginit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/Greg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/Gregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/Gresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/Gstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/Lapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/Lcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/Lglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/Linit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/Lreg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/Lregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/Lresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/Lstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/Make-arch.in (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/get_func_addr.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/init.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/is_fpreg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/regname.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/setcontext.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/ucontext_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc32/unwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/Gapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/Gcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/Gglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/Ginit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/Greg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/Gregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/Gresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/Gstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/Lapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/Lcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/Lglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/Linit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/Lreg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/Lregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/Lresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/Lstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/get_func_addr.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/init.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/is_fpreg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/regname.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/setcontext.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/ucontext_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ppc64/unwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ptrace/_UPT_access_fpreg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ptrace/_UPT_access_mem.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ptrace/_UPT_access_reg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ptrace/_UPT_accessors.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ptrace/_UPT_create.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ptrace/_UPT_destroy.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ptrace/_UPT_elf.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ptrace/_UPT_find_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ptrace/_UPT_get_dyn_info_list_addr.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ptrace/_UPT_get_proc_name.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ptrace/_UPT_internal.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ptrace/_UPT_put_unwind_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ptrace/_UPT_reg_offset.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ptrace/_UPT_resume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/ptrace/libunwind-ptrace.pc.in (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Gapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Gcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Gget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Gget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Gglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Ginit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Ginit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Ginit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Gis_signal_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Greg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Gregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Gresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Gstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Lapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Lcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Lget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Lget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Lglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Linit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Linit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Linit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Lis_signal_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Lreg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Lregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Lresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/Lstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/getcontext.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/init.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/is_fpreg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/regname.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/setcontext.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/s390x/unwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/setjmp/libunwind-setjmp.pc.in (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/setjmp/longjmp.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/setjmp/setjmp.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/setjmp/setjmp_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/setjmp/siglongjmp.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/setjmp/sigsetjmp.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Gapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Gcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Gget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Gget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Gglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Ginit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Ginit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Ginit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Gis_signal_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Greg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Gregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Gresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Gstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Lapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Lcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Lget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Lget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Lglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Linit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Linit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Linit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Lis_signal_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Lreg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Lregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Lresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/Lstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/gen-offsets.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/init.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/is_fpreg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/offsets.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/regname.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/siglongjmp.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/sh/unwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Gapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Gcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Gget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Gget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Gglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Ginit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Ginit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Ginit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Gis_signal_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Greg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Gregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Gresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Gstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Lapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Lcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Lget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Lget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Lglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Linit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Linit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Linit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Lis_signal_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Lreg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Lregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Lresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/Lstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/elfxx.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/gen-offsets.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/getcontext.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/init.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/is_fpreg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/offsets.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/regname.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/siglongjmp.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/tilegx/unwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/Backtrace.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/DeleteException.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/FindEnclosingFunction.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/ForcedUnwind.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/GetBSP.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/GetCFA.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/GetDataRelBase.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/GetGR.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/GetIP.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/GetIPInfo.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/GetLanguageSpecificData.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/GetRegionStart.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/GetTextRelBase.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/RaiseException.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/Resume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/Resume_or_Rethrow.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/SetGR.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/SetIP.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/libunwind.pc.in (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/unwind/unwind-internal.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/win/pal-single-threaded.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Gapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Gcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Gget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Gget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Gglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Ginit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Ginit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Ginit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Gos-freebsd.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Gos-linux.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Greg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Gregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Gresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Gstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Lapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Lcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Lget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Lget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Lglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Linit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Linit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Linit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Los-freebsd.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Los-linux.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Lreg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Lregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Lresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/Lstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/getcontext-freebsd.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/getcontext-linux.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/init.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/is_fpreg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/longjmp.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/offsets.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/regname.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/siglongjmp.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86/unwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Gapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Gcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Gget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Gget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Gglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Ginit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Ginit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Ginit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Gos-freebsd.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Gos-linux.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Gos-solaris.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Greg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Gregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Gresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Gstash_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Gstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Gtrace.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Lapply_reg_state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Lcreate_addr_space.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Lget_proc_info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Lget_save_loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Lglobal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Linit.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Linit_local.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Linit_remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Los-freebsd.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Los-linux.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Los-solaris.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Lreg_states_iterate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Lregs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Lresume.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Lstash_frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Lstep.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/Ltrace.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/getcontext.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/init.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/is_fpreg.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/longjmp.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/offsets.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/regname.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/setcontext.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/siglongjmp.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/ucontext_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/src/x86_64/unwind_i.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Gia64-test-nat.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Gia64-test-rbs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Gia64-test-readonly.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Gia64-test-stack.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Gperf-simple.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Gperf-trace.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Gtest-bt.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Gtest-concurrent.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Gtest-dyn1.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Gtest-exc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Gtest-init.cxx (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Gtest-nomalloc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Gtest-resume-sig-rt.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Gtest-resume-sig.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Gtest-trace.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Gx64-test-dwarf-expressions.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Lia64-test-nat.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Lia64-test-rbs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Lia64-test-readonly.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Lia64-test-stack.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Lperf-simple.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Lperf-trace.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Lrs-race.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Ltest-bt.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Ltest-concurrent.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Ltest-cxx-exceptions.cxx (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Ltest-dyn1.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Ltest-exc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Ltest-init-local-signal-lib.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Ltest-init-local-signal.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Ltest-init.cxx (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Ltest-mem-validate.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Ltest-nocalloc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Ltest-nomalloc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Ltest-resume-sig-rt.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Ltest-resume-sig.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Ltest-trace.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Ltest-varargs.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Lx64-test-dwarf-expressions.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/Makefile.am (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/check-namespace.sh.in (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/crasher.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/flush-cache.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/flush-cache.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/forker.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/ia64-dyn-asm.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/ia64-test-dyn1.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/ia64-test-nat-asm.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/ia64-test-rbs-asm.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/ia64-test-rbs.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/ia64-test-readonly-asm.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/ia64-test-setjmp.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/ia64-test-sig.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/ia64-test-stack-asm.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/ia64-test-stack.h (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/ident.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/mapper.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/perf-startup (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/ppc64-test-altivec-utils.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/ppc64-test-altivec.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/run-check-namespace (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/run-coredump-unwind (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/run-coredump-unwind-mdi (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/run-ia64-test-dyn1 (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/run-ptrace-mapper (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/run-ptrace-misc (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/test-async-sig.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/test-coredump-unwind.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/test-flush-cache.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/test-init-remote.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/test-mem.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/test-proc-info.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/test-ptrace-misc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/test-ptrace.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/test-reg-state.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/test-setjmp.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/test-static-link-gen.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/test-static-link-loc.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/test-strerror.c (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/x64-test-dwarf-expressions.S (100%) rename src/coreclr/{src => }/pal/src/libunwind/tests/x64-unwind-badjmp-signal-frame.c (100%) rename src/coreclr/{src => }/pal/src/libunwind_mac/include/elf.h (100%) rename src/coreclr/{src => }/pal/src/libunwind_mac/include/endian.h (100%) rename src/coreclr/{src => }/pal/src/libunwind_mac/include/fakestdalign.h.in (100%) rename src/coreclr/{src => }/pal/src/libunwind_mac/include/fakestdatomic.h.in (100%) rename src/coreclr/{src => }/pal/src/libunwind_mac/include/freebsd-elf32.h (100%) rename src/coreclr/{src => }/pal/src/libunwind_mac/include/freebsd-elf64.h (100%) rename src/coreclr/{src => }/pal/src/libunwind_mac/include/freebsd-elf_common.h (100%) rename src/coreclr/{src => }/pal/src/libunwind_mac/include/ucontext.h (100%) rename src/coreclr/{src => }/pal/src/libunwind_mac/src/missing-functions.c (100%) rename src/coreclr/{src => }/pal/src/loader/module.cpp (100%) rename src/coreclr/{src => }/pal/src/loader/modulename.cpp (100%) rename src/coreclr/{src => }/pal/src/locale/unicode.cpp (100%) rename src/coreclr/{src => }/pal/src/locale/unicodedata.cpp (100%) rename src/coreclr/{src => }/pal/src/locale/unicodedata.cs (100%) rename src/coreclr/{src => }/pal/src/locale/utf8.cpp (100%) rename src/coreclr/{src => }/pal/src/map/common.cpp (100%) rename src/coreclr/{src => }/pal/src/map/common.h (100%) rename src/coreclr/{src => }/pal/src/map/map.cpp (100%) rename src/coreclr/{src => }/pal/src/map/virtual.cpp (100%) rename src/coreclr/{src => }/pal/src/memory/local.cpp (100%) rename src/coreclr/{src => }/pal/src/misc/cgroup.cpp (100%) rename src/coreclr/{src => }/pal/src/misc/dbgmsg.cpp (100%) rename src/coreclr/{src => }/pal/src/misc/environ.cpp (100%) rename src/coreclr/{src => }/pal/src/misc/error.cpp (100%) rename src/coreclr/{src => }/pal/src/misc/errorstrings.cpp (100%) rename src/coreclr/{src => }/pal/src/misc/errorstrings.h (100%) rename src/coreclr/{src => }/pal/src/misc/fmtmessage.cpp (100%) rename src/coreclr/{src => }/pal/src/misc/jitsupport.cpp (100%) rename src/coreclr/{src => }/pal/src/misc/miscpalapi.cpp (100%) rename src/coreclr/{src => }/pal/src/misc/msgbox.cpp (100%) rename src/coreclr/{src => }/pal/src/misc/perfjitdump.cpp (100%) rename src/coreclr/{src => }/pal/src/misc/perftrace.cpp (100%) rename src/coreclr/{src => }/pal/src/misc/strutil.cpp (100%) rename src/coreclr/{src => }/pal/src/misc/sysinfo.cpp (100%) rename src/coreclr/{src => }/pal/src/misc/time.cpp (100%) rename src/coreclr/{src => }/pal/src/misc/tracepointprovider.cpp (100%) rename src/coreclr/{src => }/pal/src/misc/utils.cpp (100%) rename src/coreclr/{src => }/pal/src/numa/numa.cpp (100%) rename src/coreclr/{src => }/pal/src/numa/numashim.h (100%) rename src/coreclr/{src => }/pal/src/objmgr/palobjbase.cpp (100%) rename src/coreclr/{src => }/pal/src/objmgr/palobjbase.hpp (100%) rename src/coreclr/{src => }/pal/src/objmgr/shmobject.cpp (100%) rename src/coreclr/{src => }/pal/src/objmgr/shmobject.hpp (100%) rename src/coreclr/{src => }/pal/src/objmgr/shmobjectmanager.cpp (100%) rename src/coreclr/{src => }/pal/src/objmgr/shmobjectmanager.hpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/cruntime.h (100%) rename src/coreclr/{src => }/pal/src/safecrt/input.inl (100%) rename src/coreclr/{src => }/pal/src/safecrt/internal.h (100%) rename src/coreclr/{src => }/pal/src/safecrt/internal_securecrt.h (100%) rename src/coreclr/{src => }/pal/src/safecrt/makepath_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/mbusafecrt.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/mbusafecrt_internal.h (100%) rename src/coreclr/{src => }/pal/src/safecrt/memcpy_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/memmove_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/output.inl (100%) rename src/coreclr/{src => }/pal/src/safecrt/safecrt_input_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/safecrt_output_l.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/safecrt_output_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/safecrt_winput_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/safecrt_woutput_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/splitpath_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/sprintf_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/sscanf_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/strcat_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/strcpy_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/strlen_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/strncat_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/strncpy_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/strtok_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/swprintf.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/tcscat_s.inl (100%) rename src/coreclr/{src => }/pal/src/safecrt/tcscpy_s.inl (100%) rename src/coreclr/{src => }/pal/src/safecrt/tcsncat_s.inl (100%) rename src/coreclr/{src => }/pal/src/safecrt/tcsncpy_s.inl (100%) rename src/coreclr/{src => }/pal/src/safecrt/tcstok_s.inl (100%) rename src/coreclr/{src => }/pal/src/safecrt/tmakepath_s.inl (100%) rename src/coreclr/{src => }/pal/src/safecrt/tsplitpath_s.inl (100%) rename src/coreclr/{src => }/pal/src/safecrt/vsprintf.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/vswprint.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/wcscat_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/wcscpy_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/wcslen_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/wcslwr_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/wcsncat_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/wcsncpy_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/wcstok_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/wmakepath_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/wsplitpath_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/xtoa_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/xtow_s.cpp (100%) rename src/coreclr/{src => }/pal/src/safecrt/xtox_s.inl (100%) rename src/coreclr/{src => }/pal/src/sharedmemory/sharedmemory.cpp (100%) rename src/coreclr/{src => }/pal/src/shmemory/shmemory.cpp (100%) rename src/coreclr/{src => }/pal/src/sync/cs.cpp (100%) rename src/coreclr/{src => }/pal/src/synchmgr/synchcontrollers.cpp (100%) rename src/coreclr/{src => }/pal/src/synchmgr/synchmanager.cpp (100%) rename src/coreclr/{src => }/pal/src/synchmgr/synchmanager.hpp (100%) rename src/coreclr/{src => }/pal/src/synchmgr/wait.cpp (100%) rename src/coreclr/{src => }/pal/src/synchobj/event.cpp (100%) rename src/coreclr/{src => }/pal/src/synchobj/mutex.cpp (100%) rename src/coreclr/{src => }/pal/src/synchobj/semaphore.cpp (100%) rename src/coreclr/{src => }/pal/src/thread/context.cpp (100%) rename src/coreclr/{src => }/pal/src/thread/process.cpp (100%) rename src/coreclr/{src => }/pal/src/thread/procprivate.hpp (100%) rename src/coreclr/{src => }/pal/src/thread/thread.cpp (100%) rename src/coreclr/{src => }/pal/src/thread/threadsusp.cpp (100%) rename src/coreclr/{src => }/pal/tests/CMakeLists.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/CMakeLists.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/DisabledTests.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/README.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/__iscsym/test1/__iscsym.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_alloca/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_fdopen/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_finite/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_finitef/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_gcvt/test1/_gcvt.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_gcvt/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_isnan/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_isnanf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_itow/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_putenv/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_putenv/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_putenv/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_putenv/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_rotl/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_rotr/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/_snprintf_s.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test10/test10.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test11/test11.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test12/test12.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test13/test13.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test14/test14.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test15/test15.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test16/test16.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test17/test17.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test18/test18.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test19/test19.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test8/test8.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snprintf_s/test9/test9.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/_snwprintf_s.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test10/test10.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test11/test11.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test12/test12.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test13/test13.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test14/test14.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test15/test15.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test16/test16.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test17/test17.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test18/test18.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test19/test19.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test8/test8.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_snwprintf_s/test9/test9.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_stricmp/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_strnicmp/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/_vsnprintf_s.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test10/test10.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test11/test11.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test12/test12.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test13/test13.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test14/test14.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test15/test15.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test16/test16.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test17/test17.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test18/test18.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test19/test19.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test8/test8.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnprintf_s/test9/test9.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/_vsnwprintf_s.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test10/test10.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test11/test11.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test12/test12.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test13/test13.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test14/test14.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test15/test15.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test16/test16.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test17/test17.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test18/test18.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test19/test19.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test8/test8.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test9/test9.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_wcsicmp/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_wcslwr_s/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_wcsnicmp/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_wfopen/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_wfopen/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_wfopen/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_wfopen/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_wfopen/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_wfopen/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_wfopen/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/_wtoi/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/abs/test1/abs.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/acos/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/acosf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/acosh/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/acoshf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/asin/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/asinf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/asinh/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/asinhf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/atan/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/atan2/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/atan2f/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/atanf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/atanh/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/atanhf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/atof/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/atoi/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/bsearch/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/bsearch/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/cbrt/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/cbrtf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/ceil/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/ceilf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/cos/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/cosf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/cosh/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/coshf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/errno/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/errno/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/exit/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/exit/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/exp/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/expf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fabs/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fabsf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fclose/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fclose/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/ferror/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/ferror/test1/testfile (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/ferror/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/ferror/test2/testfile (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fflush/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fgets/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fgets/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fgets/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/floor/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/floorf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fma/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fmaf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fmod/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fmodf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fopen/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fopen/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fopen/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fopen/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fopen/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fopen/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fopen/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/fprintf.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test10/test10.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test11/test11.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test12/test12.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test13/test13.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test14/test14.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test15/test15.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test16/test16.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test17/test17.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test18/test18.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test19/test19.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test8/test8.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fprintf/test9/test9.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fputs/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fputs/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fread/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fread/test1/testfile (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fread/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fread/test2/testfile (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fread/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fread/test3/testfile (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/free/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fseek/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/ftell/test1/ftell.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/ftell/test1/testfile.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/fwprintf.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test10/test10.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test11/test11.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test12/test12.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test13/test13.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test14/test14.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test15/test15.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test16/test16.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test17/test17.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test18/test18.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test19/test19.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test8/test8.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwprintf/test9/test9.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/fwrite/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/getenv/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/getenv/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/getenv/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/ilogb/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/ilogbf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/isalnum/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/isalpha/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/isdigit/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/islower/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/isprint/test1/isprint.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/isprint/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/isspace/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/isupper/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/iswdigit/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/iswprint/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/iswspace/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/iswupper/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/isxdigit/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/llabs/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/log/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/log10/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/log10f/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/log2/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/log2f/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/logf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/malloc/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/malloc/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/memchr/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/memcmp/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/memcpy/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/memmove/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/memset/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/modf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/modff/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/pow/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/powf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/printf.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test10/test10.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test11/test11.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test12/test12.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test13/test13.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test14/test14.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test15/test15.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test16/test16.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test17/test17.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test18/test18.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test19/test19.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test8/test8.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/printf/test9/test9.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/qsort/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/qsort/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/rand_srand/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/realloc/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/scalbn/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/scalbnf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sin/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sinf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sinh/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sinhf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/sprintf_s.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test10/test10.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test11/test11.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test12/test12.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test13/test13.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test14/test14.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test15/test15.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test16/test16.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test17/test17.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test18/test18.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test19/test19.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test8/test8.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sprintf_s/test9/test9.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sqrt/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sqrtf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/sscanf_s.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/test10/test10.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/test11/test11.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/test12/test12.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/test13/test13.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/test14/test14.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/test15/test15.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/test16/test16.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/test17/test17.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/test8/test8.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/sscanf_s/test9/test9.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/strcat/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/strchr/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/strcmp/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/strcpy/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/strcspn/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/strlen/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/strncat/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/strncmp/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/strncpy/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/strpbrk/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/strrchr/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/strspn/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/strstr/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/strtod/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/strtod/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/strtok/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/strtoul/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/swprintf.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test10/test10.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test11/test11.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test12/test12.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test13/test13.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test14/test14.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test15/test15.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test16/test16.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test17/test17.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test18/test18.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test19/test19.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test8/test8.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swprintf/test9/test9.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/swscanf.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/test10/test10.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/test11/test11.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/test12/test12.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/test13/test13.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/test14/test14.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/test15/test15.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/test16/test16.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/test17/test17.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/test8/test8.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/swscanf/test9/test9.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/tan/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/tanf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/tanh/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/tanhf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/time/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/tolower/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/toupper/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/towlower/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/towupper/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test10/test10.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test11/test11.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test12/test12.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test13/test13.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test14/test14.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test15/test15.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test16/test16.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test17/test17.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test18/test18.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test19/test19.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test8/test8.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/test9/test9.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vfprintf/vfprintf.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test10/test10.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test11/test11.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test12/test12.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test13/test13.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test14/test14.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test15/test15.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test16/test16.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test17/test17.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test18/test18.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test19/test19.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test8/test8.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/test9/test9.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vprintf/vprintf.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test10/test10.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test11/test11.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test12/test12.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test13/test13.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test14/test14.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test15/test15.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test16/test16.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test17/test17.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test18/test18.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test19/test19.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test8/test8.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/test9/test9.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vsprintf/vsprintf.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test10/test10.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test11/test11.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test12/test12.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test13/test13.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test14/test14.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test15/test15.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test16/test16.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test17/test17.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test18/test18.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test19/test19.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test8/test8.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/test9/test9.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/vswprintf/vswprintf.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcscat/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcschr/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcscmp/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcscpy/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcslen/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcsncmp/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcsncpy/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcspbrk/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcsrchr/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcsstr/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcstod/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcstod/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcstok/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcstoul/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcstoul/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcstoul/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcstoul/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcstoul/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wcstoul/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wprintf/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wprintf/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/c_runtime/wprintf/wprintf.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/common/palsuite.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/common/palsuite.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/compilableTests.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/compileDisabledTests.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/object_management/event/nonshared/event.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/object_management/event/nonshared/main.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/object_management/event/shared/event.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/object_management/event/shared/main.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/object_management/mutex/nonshared/main.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/object_management/mutex/nonshared/mutex.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/object_management/mutex/shared/main.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/object_management/mutex/shared/mutex.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/object_management/readme.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/object_management/semaphore/nonshared/main.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/object_management/semaphore/nonshared/semaphore.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/object_management/semaphore/shared/main.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/object_management/semaphore/shared/semaphore.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/criticalsection/criticalsection.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/criticalsection/mainWrapper.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/criticalsection/readme.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/nativecriticalsection/mtx_critsect.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/nativecriticalsection/mtx_critsect.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/nativecriticalsection/pal_composite_native_cs.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/nativecriticalsection/readme.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/nativecriticalsection/resultbuffer.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/nativecriticalsection/resultbuffer.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/hpitinterlock.s (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/interlocked.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/makefile (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/mtx_critsect.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/mtx_critsect.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/notes.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/pal_composite_native_cs.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/readme.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/resultbuffer.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/resultbuffer.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/sparcinterloc.s (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/threading/threadsuspension/mainWrapper.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/threading/threadsuspension/readme.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/threading/threadsuspension/threadsuspension.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/threading/threadsuspension_switchthread/mainWrapper.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/threading/threadsuspension_switchthread/readme.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/threading/threadsuspension_switchthread/threadsuspension.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/wfmo/main.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/wfmo/mutex.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/composite/wfmo/readme.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/debug_api/DebugBreak/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/debug_api/OutputDebugStringA/test1/helper.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/debug_api/OutputDebugStringA/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/debug_api/OutputDebugStringW/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/debug_api/WriteProcessMemory/test1/commonconsts.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/debug_api/WriteProcessMemory/test1/helper.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/debug_api/WriteProcessMemory/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/debug_api/WriteProcessMemory/test3/commonconsts.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/debug_api/WriteProcessMemory/test3/helper.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/debug_api/WriteProcessMemory/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/debug_api/WriteProcessMemory/test4/helper.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/debug_api/WriteProcessMemory/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/eventprovider/CMakeLists.txt (95%) rename src/coreclr/{src => }/pal/tests/palsuite/eventprovider/EnableEventLogging.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER/test1/PAL_EXCEPT_FILTER.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER/test2/pal_except_filter.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER/test3/pal_except_filter.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER_EX/test1/PAL_EXCEPT_FILTER_EX.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER_EX/test2/pal_except_filter_ex.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER_EX/test3/pal_except_filter.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT/test1/PAL_TRY_EXCEPT.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT/test2/PAL_TRY_EXCEPT.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT_EX/test1/PAL_TRY_EXCEPT_EX.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT_EX/test2/PAL_TRY_EXCEPT_EX.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT_EX/test3/PAL_TRY_EXCEPT_EX.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/PAL_TRY_LEAVE_FINALLY/test1/PAL_TRY_LEAVE_FINALLY.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/RaiseException/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/RaiseException/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/RaiseException/test3/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/pal_except/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/pal_except/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/pal_except/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/pal_except/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/pal_except/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/pal_except/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/pal_except/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/pal_finally/test1/pal_finally.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/pal_sxs/test1/CMakeLists.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest1.src (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest2.src (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/pal_sxs/test1/exceptionsxs.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/exception_handling/pal_sxs/test1/testinfo.dat (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/CopyFileA/test1/CopyFileA.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/CopyFileA/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/CopyFileA/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/CopyFileA/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/CopyFileW/test1/CopyFileW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/CopyFileW/test1/ExpectedResults.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/CopyFileW/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/CopyFileW/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/CreateFileA/test1/CreateFileA.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/CreateFileA/test1/winoutput (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/CreateFileW/test1/CreateFileW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/CreateFileW/test1/winoutput (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/DeleteFileA/test1/DeleteFileA.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/DeleteFileW/test1/DeleteFileW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/FILECanonicalizePath/FILECanonicalizePath.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/FindClose/test1/FindClose.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/FindFirstFileA/test1/FindFirstFileA.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/FindFirstFileW/test1/FindFirstFileW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/FindNextFileA/test1/FindNextFileA.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/FindNextFileA/test2/findnextfilea.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/FindNextFileW/test1/FindNextFileW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/FindNextFileW/test2/findnextfilew.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/FlushFileBuffers/test1/FlushFileBuffers.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetConsoleOutputCP/test1/GetConsoleOutputCP.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetCurrentDirectoryA/test1/GetCurrentDirectoryA.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetCurrentDirectoryW/test1/GetCurrentDirectoryW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_directory/keepme (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_file (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_ro_directory/keepme (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_ro_file (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesA/test1/GetFileAttributesA.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesA/test1/no_directory/keepme (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesA/test1/no_file (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesA/test1/normal_test_directory/keepme (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesA/test1/normal_test_file (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesA/test1/ro_test_directory/keepme (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesA/test1/ro_test_file (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesA/test1/rw_directory/keepme (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesA/test1/rw_file (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/.hidden_directory/anchor.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/.hidden_file (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/normal_test_directory/keepme (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/normal_test_file (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/ro_test_directory/keepme (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/ro_test_file (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesExW/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_directory/keepme (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_file (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_ro_directory/keepme (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_ro_file (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesW/test1/GetFileAttributesW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesW/test1/no_directory/keepme (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesW/test1/no_file (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesW/test1/normal_test_directory/keepme (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesW/test1/normal_test_file (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesW/test1/ro_test_directory/keepme (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesW/test1/ro_test_file (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesW/test1/rw_file (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileAttributesW/test1/rw_test_directory/keepme (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileSize/test1/GetFileSize.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFileSizeEx/test1/GetFileSizeEx.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFullPathNameA/test1/GetFullPathNameA.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFullPathNameA/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFullPathNameA/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFullPathNameA/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFullPathNameW/test1/GetFullPathNameW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFullPathNameW/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFullPathNameW/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetFullPathNameW/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetStdHandle/test1/GetStdHandle.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetStdHandle/test2/GetStdHandle.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetSystemTime/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetSystemTimeAsFileTime/test1/GetSystemTimeAsFileTime.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetTempFileNameA/test1/GetTempFileNameA.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetTempFileNameA/test2/GetTempFileNameA.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetTempFileNameA/test3/gettempfilenamea.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetTempFileNameW/test1/GetTempFileNameW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetTempFileNameW/test2/GetTempFileNameW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetTempFileNameW/test3/gettempfilenamew.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/GetTempPathW/test1/GetTempPathW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/MoveFileExA/test1/ExpectedResults.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/MoveFileExA/test1/MoveFileExA.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/MoveFileExW/test1/ExpectedResults.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/MoveFileExW/test1/MoveFileExW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/ReadFile/test1/NonReadableFile.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/ReadFile/test1/ReadFile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/ReadFile/test2/ReadFile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/ReadFile/test3/ReadFile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/ReadFile/test4/readfile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/SearchPathW/test1/SearchPathW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/SetEndOfFile/test1/SetEndOfFile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/SetEndOfFile/test2/SetEndOfFile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/SetEndOfFile/test3/SetEndOfFile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/SetEndOfFile/test4/setendoffile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/SetEndOfFile/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/SetFilePointer/test1/SetFilePointer.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/SetFilePointer/test2/SetFilePointer.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/SetFilePointer/test3/SetFilePointer.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/SetFilePointer/test4/SetFilePointer.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/SetFilePointer/test5/SetFilePointer.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/SetFilePointer/test6/SetFilePointer.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/SetFilePointer/test7/SetFilePointer.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/WriteFile/test1/WriteFile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/WriteFile/test2/Results.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/WriteFile/test2/WriteFile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/WriteFile/test3/WriteFile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/WriteFile/test4/writefile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/WriteFile/test5/writefile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/errorpathnotfound/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/errorpathnotfound/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/file_io/gettemppatha/test1/gettemppatha.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/CreateFileMapping_neg1/CreateFileMapping_neg.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test1/CreateFileMappingW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test2/CreateFileMappingW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test3/CreateFileMappingW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test4/CreateFileMappingW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test5/CreateFileMappingW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test6/CreateFileMappingW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test7/createfilemapping.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test8/createfilemapping.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test9/createfilemapping.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/FreeLibrary/test1/FreeLibrary.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/FreeLibrary/test1/dlltest.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/FreeLibrary/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/FreeLibraryAndExitThread/test1/dlltest.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/FreeLibraryAndExitThread/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameA/test1/GetModuleFileNameA.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameA/test2/GetModuleFileNameA.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameW/test1/GetModuleFileNameW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameW/test2/GetModuleFileNameW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test1/testlib.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test2/testlib.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/LocalAlloc/test1/LocalAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/LocalFree/test1/LocalFree.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/LocalFree/test2/LocalFree.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test1/MapViewOfFile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test2/MapViewOfFile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test3/MapViewOfFile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test4/mapviewoffile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test5/mapviewoffile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test6/mapviewoffile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/OpenFileMappingW/test1/OpenFileMappingW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/OpenFileMappingW/test2/OpenFileMappingW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/OpenFileMappingW/test3/OpenFileMappingW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/ProbeMemory/ProbeMemory_neg1/ProbeMemory_neg.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/ProbeMemory/test1/ProbeMemory.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/UnmapViewOfFile/test1/UnmapViewOfFile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/UnmapViewOfFile/test2/unmapviewoffile.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test1/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test10/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test11/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test12/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test13/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test14/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test15/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test16/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test17/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test18/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test19/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test2/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test20/virtualalloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test21/virtualalloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test22/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test3/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test4/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test5/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test6/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test7/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test8/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test9/VirtualAlloc.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualFree/test1/VirtualFree.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualFree/test2/VirtualFree.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualFree/test3/VirtualFree.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test1/VirtualProtect.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test2/VirtualProtect.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test3/VirtualProtect.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test4/VirtualProtect.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test6/VirtualProtect.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test7/VirtualProtect.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/filemapping_memmgt/VirtualQuery/test1/VirtualQuery.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/issues.targets (100%) rename src/coreclr/{src => }/pal/tests/palsuite/loader/LoadLibraryA/test1/LoadLibraryA.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/loader/LoadLibraryA/test2/LoadLibraryA.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/loader/LoadLibraryA/test3/loadlibrarya.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/loader/LoadLibraryA/test5/loadlibrarya.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/loader/LoadLibraryA/test6/dlltest.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/loader/LoadLibraryA/test6/loadlibrarya.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/loader/LoadLibraryA/test7/LoadLibraryA.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/loader/LoadLibraryA/test8/dlltest.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/loader/LoadLibraryA/test8/loadlibrarya.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/loader/LoadLibraryW/test1/LoadLibraryW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/loader/LoadLibraryW/test2/loadlibraryw.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/loader/LoadLibraryW/test3/loadlibraryw.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/loader/LoadLibraryW/test5/loadlibraryw.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/locale_info/CompareStringA/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/locale_info/CompareStringW/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/locale_info/GetACP/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/locale_info/GetLocaleInfoW/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/locale_info/GetLocaleInfoW/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/locale_info/MultiByteToWideChar/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/locale_info/MultiByteToWideChar/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/locale_info/MultiByteToWideChar/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/locale_info/MultiByteToWideChar/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/locale_info/WideCharToMultiByte/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/locale_info/WideCharToMultiByte/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/locale_info/WideCharToMultiByte/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/locale_info/WideCharToMultiByte/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/locale_info/WideCharToMultiByte/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/manual-inspect.dat (100%) rename src/coreclr/{src => }/pal/tests/palsuite/manual-unautomatable.dat (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/CGroup/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/CloseHandle/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/CloseHandle/test2/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/CreatePipe/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/FlushInstructionCache/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/FormatMessageW/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/FormatMessageW/test2/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/FormatMessageW/test3/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/FormatMessageW/test4/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/FormatMessageW/test5/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/FormatMessageW/test6/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/FreeEnvironmentStringsW/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/FreeEnvironmentStringsW/test2/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GetCommandLineW/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GetEnvironmentStringsW/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test2/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test3/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test4/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test2/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test3/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test4/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GetLastError/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GetSystemInfo/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GetTickCount/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/GlobalMemoryStatusEx/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterLockedExchangeAdd/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedBit/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedBit/test2/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange/test2/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange64/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange64/test2/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedCompareExchangePointer/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedDecrement/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedDecrement/test2/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedDecrement64/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedDecrement64/test2/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedExchange/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedExchange64/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedExchangePointer/test1/InterlockedExchangePointer.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedIncrement/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedIncrement/test2/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedIncrement64/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/InterlockedIncrement64/test2/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/IsBadCodePtr/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/IsBadReadPtr/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/IsBadWritePtr/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/IsBadWritePtr/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/IsBadWritePtr/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/MessageBoxW/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/MessageBoxW/test2/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test2/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/SetLastError/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/_i64tow/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/queryperformancecounter/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/miscellaneous/queryperformancefrequency/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/pal_specific/PAL_GetUserTempDirectoryW/test1/PAL_GetUserTempDirectoryW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/pal_specific/PAL_Initialize_Terminate/test1/PAL_Initialize_Terminate.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/pal_specific/PAL_Initialize_Terminate/test2/pal_initialize_twice.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/pal_specific/PAL_RegisterLibraryW_UnregisterLibraryW/test1/PAL_RegisterLibraryW_UnregisterLibraryW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/pal_specific/PAL_RegisterLibraryW_UnregisterLibraryW/test2_neg/reg_unreg_libraryw_neg.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/pal_specific/PAL_errno/test1/PAL_errno.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/pal_specific/PAL_get_stderr/test1/PAL_get_stderr.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/pal_specific/PAL_get_stdin/test1/PAL_get_stdin.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/pal_specific/PAL_get_stdout/test1/PAL_get_stdout.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/paltestlist.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/paltestlist_to_be_reviewed.txt (100%) rename src/coreclr/{src => }/pal/tests/palsuite/paltests.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/producepaltestlist.proj (100%) rename src/coreclr/{src => }/pal/tests/palsuite/runpaltests.sh (100%) rename src/coreclr/{src => }/pal/tests/palsuite/runpaltestshelix.sh (100%) rename src/coreclr/{src => }/pal/tests/palsuite/samples/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/samples/test2/test.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/smoketest.script (100%) rename src/coreclr/{src => }/pal/tests/palsuite/tests-manual.dat (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CreateEventW/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CreateEventW/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CreateEventW/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CreateMutexW_ReleaseMutex/test1/CreateMutexW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CreateMutexW_ReleaseMutex/test2/CreateMutexW.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CreateProcessW/test1/childProcess.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CreateProcessW/test1/parentProcess.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CreateProcessW/test2/childprocess.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CreateProcessW/test2/parentprocess.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CreateProcessW/test2/test2.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CreateSemaphoreW_ReleaseSemaphore/test1/CreateSemaphore.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CreateSemaphoreW_ReleaseSemaphore/test2/CreateSemaphore.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CreateSemaphoreW_ReleaseSemaphore/test3/createsemaphore.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CreateThread/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CreateThread/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CreateThread/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CriticalSectionFunctions/test1/InitializeCriticalSection.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CriticalSectionFunctions/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CriticalSectionFunctions/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CriticalSectionFunctions/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CriticalSectionFunctions/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CriticalSectionFunctions/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CriticalSectionFunctions/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/CriticalSectionFunctions/test8/test8.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test1/testinfo.dat (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test1/testlib.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test2/testinfo.dat (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DuplicateHandle/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DuplicateHandle/test10/test10.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DuplicateHandle/test11/childprocess.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DuplicateHandle/test11/myexitcode.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DuplicateHandle/test11/test11.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DuplicateHandle/test12/test12.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DuplicateHandle/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DuplicateHandle/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DuplicateHandle/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DuplicateHandle/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DuplicateHandle/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DuplicateHandle/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DuplicateHandle/test8/test8.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/DuplicateHandle/test9/test9.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/ExitProcess/test1/ExitProcess.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/ExitProcess/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/ExitProcess/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/ExitThread/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/ExitThread/test2/childprocess.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/ExitThread/test2/myexitcode.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/ExitThread/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/ExitThread/test3/dllmain.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/ExitThread/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/ExitThread/test3/testinfo.dat (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/GetCurrentProcess/test1/process.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/GetCurrentProcessId/test1/processId.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/GetCurrentThread/test1/thread.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/GetCurrentThread/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/GetCurrentThreadId/test1/threadId.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/GetExitCodeProcess/test1/childProcess.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/GetExitCodeProcess/test1/myexitcode.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/GetExitCodeProcess/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/GetProcessTimes/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/GetThreadTimes/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/NamedMutex/test1/namedmutex.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/NamedMutex/test1/nopal.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/OpenEventW/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/OpenEventW/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/OpenEventW/test3/childprocess.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/OpenEventW/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/OpenEventW/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/OpenEventW/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/OpenProcess/test1/childProcess.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/OpenProcess/test1/myexitcode.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/OpenProcess/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/QueryThreadCycleTime/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/QueueUserAPC/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/QueueUserAPC/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/QueueUserAPC/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/QueueUserAPC/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/QueueUserAPC/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/QueueUserAPC/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/QueueUserAPC/test7/test7.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/ReleaseMutex/test3/ReleaseMutex.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/ResetEvent/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/ResetEvent/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/ResetEvent/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/ResetEvent/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/ResumeThread/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/SetErrorMode/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/SetEvent/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/SetEvent/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/SetEvent/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/SetEvent/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/SignalObjectAndWait/SignalObjectAndWaitTest.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/Sleep/test1/Sleep.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/Sleep/test2/sleep.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/SleepEx/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/SleepEx/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/SwitchToThread/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/TerminateProcess/test1/TerminateProcess.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/ThreadPriority/test1/ThreadPriority.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForMultipleObjects/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test2/test2.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test3/test3.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test4/test4.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test5/commonconsts.h (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test5/helper.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test5/test5.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test6/child6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test6/test6.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForSingleObject/WFSOExMutexTest/WFSOExMutexTest.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForSingleObject/WFSOExSemaphoreTest/WFSOExSemaphoreTest.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForSingleObject/WFSOExThreadTest/WFSOExThreadTest.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForSingleObject/WFSOMutexTest/WFSOMutexTest.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForSingleObject/WFSOProcessTest/ChildProcess.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForSingleObject/WFSOProcessTest/WFSOProcessTest.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForSingleObject/WFSOSemaphoreTest/WFSOSemaphoreTest.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForSingleObject/WFSOThreadTest/WFSOThreadTest.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/WaitForSingleObject/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/YieldProcessor/test1/test1.cpp (100%) rename src/coreclr/{src => }/pal/tests/palsuite/threading/releasesemaphore/test1/test.cpp (100%) rename src/coreclr/{src => }/pal/tools/gen-dactable-rva.sh (100%) rename src/coreclr/{src => }/pal/tools/preptests.sh (100%) rename src/coreclr/{src => }/pal/tools/setup-ubuntuvm.sh (100%) rename src/coreclr/{src => }/pal/tools/smarty.sh (100%) rename src/coreclr/{src => }/palrt/CMakeLists.txt (100%) rename src/coreclr/{src => }/palrt/bstr.cpp (100%) rename src/coreclr/{src => }/palrt/coguid.cpp (100%) rename src/coreclr/{src => }/palrt/comem.cpp (100%) rename src/coreclr/{src => }/palrt/common.h (100%) rename src/coreclr/{src => }/palrt/guid.cpp (100%) rename src/coreclr/{src => }/palrt/memorystream.cpp (100%) rename src/coreclr/{src => }/palrt/path.cpp (100%) rename src/coreclr/{src => }/palrt/shlwapip.h (100%) rename src/coreclr/{src => }/palrt/variant.cpp (100%) rename src/coreclr/{src => }/scripts/genDummyProvider.py (100%) rename src/coreclr/{src => }/scripts/genEtwProvider.py (100%) rename src/coreclr/{src => }/scripts/genEventPipe.py (100%) rename src/coreclr/{src => }/scripts/genEventing.py (100%) rename src/coreclr/{src => }/scripts/genEventingTests.py (100%) rename src/coreclr/{src => }/scripts/genLttngProvider.py (100%) rename src/coreclr/{src => }/scripts/genRuntimeEventSources.py (100%) rename src/coreclr/{src => }/scripts/pgocheck.py (100%) rename src/coreclr/{src => }/scripts/scripts.pyproj (100%) rename src/coreclr/{src => }/scripts/utilities.py (100%) delete mode 100644 src/coreclr/src/CMakeLists.txt delete mode 100644 src/coreclr/src/Directory.Build.props delete mode 100644 src/coreclr/src/Directory.Build.targets rename src/coreclr/{src => }/tools/CMakeLists.txt (100%) rename src/coreclr/{src => }/tools/Common/CommandLine/Argument.cs (100%) rename src/coreclr/{src => }/tools/Common/CommandLine/ArgumentCommand.cs (100%) rename src/coreclr/{src => }/tools/Common/CommandLine/ArgumentCommand_1.cs (100%) rename src/coreclr/{src => }/tools/Common/CommandLine/ArgumentLexer.cs (100%) rename src/coreclr/{src => }/tools/Common/CommandLine/ArgumentList_1.cs (100%) rename src/coreclr/{src => }/tools/Common/CommandLine/ArgumentParser.cs (100%) rename src/coreclr/{src => }/tools/Common/CommandLine/ArgumentSyntax.cs (100%) rename src/coreclr/{src => }/tools/Common/CommandLine/ArgumentSyntaxException.cs (100%) rename src/coreclr/{src => }/tools/Common/CommandLine/ArgumentSyntax_Definers.cs (100%) rename src/coreclr/{src => }/tools/Common/CommandLine/ArgumentToken.cs (100%) rename src/coreclr/{src => }/tools/Common/CommandLine/Argument_1.cs (100%) rename src/coreclr/{src => }/tools/Common/CommandLine/CommandLineException.cs (100%) rename src/coreclr/{src => }/tools/Common/CommandLine/CommandLineHelpers.cs (100%) rename src/coreclr/{src => }/tools/Common/CommandLine/Enumerable.cs (100%) rename src/coreclr/{src => }/tools/Common/CommandLine/HelpTextGenerator.cs (100%) rename src/coreclr/{src => }/tools/Common/CommandLine/Resources/Strings.resx (100%) rename src/coreclr/{src => }/tools/Common/Compiler/CodeGenerationFailedException.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/CompilationBuilder.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/CompilationModuleGroup.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/CompilerTypeSystemContext.Validation.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/CompilerTypeSystemContext.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/CoreRTNameMangler.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/AssemblyStubNode.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/CompilerComparer.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/EmbeddedDataContainerNode.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/IMethodBodyNode.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/IMethodNode.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/INodeWithCodeInfo.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/INodeWithRuntimeDeterminedDependencies.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/ISortableNode.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/ISymbolNode.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/MethodReadOnlyDataNode.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/ObjectAndOffsetSymbolNode.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/ObjectDataBuilder.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/ObjectNode.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/ObjectNodeSection.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/Relocation.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/ShadowConcreteMethodNode.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/SortableDependencyNode.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/Target_ARM/ARMEmitter.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/Target_ARM/Register.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/Target_ARM/TargetRegisterMap.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/ARM64Emitter.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/AddrMode.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/Register.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/TargetRegisterMap.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/Target_X64/AddrMode.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/Target_X64/Register.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/Target_X64/TargetRegisterMap.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/Target_X64/X64Emitter.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/Target_X86/AddrMode.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/Target_X86/Register.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/Target_X86/TargetRegisterMap.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyAnalysis/Target_X86/X86Emitter.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DependencyTrackingLevel.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/DevirtualizationManager.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/HardwareIntrinsicHelpers.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/ICompilationRootProvider.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/InstructionSetSupport.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/InternalCompilerErrorException.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/Logger.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/NameMangler.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/SingleMethodRootProvider.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/TypeExtensions.cs (100%) rename src/coreclr/{src => }/tools/Common/Compiler/VectorFieldLayoutAlgorithm.cs (100%) rename src/coreclr/{src => }/tools/Common/Internal/NativeFormat/NativeFormat.cs (100%) rename src/coreclr/{src => }/tools/Common/Internal/NativeFormat/NativeFormatWriter.Primitives.cs (100%) rename src/coreclr/{src => }/tools/Common/Internal/NativeFormat/NativeFormatWriter.cs (100%) rename src/coreclr/{src => }/tools/Common/Internal/Runtime/CorConstants.cs (100%) rename src/coreclr/{src => }/tools/Common/Internal/Runtime/ModuleHeaders.cs (100%) rename src/coreclr/{src => }/tools/Common/Internal/Runtime/ReadyToRunConstants.cs (100%) rename src/coreclr/{src => }/tools/Common/Internal/Runtime/ReadyToRunInstructionSet.cs (100%) rename src/coreclr/{src => }/tools/Common/Internal/Runtime/ReadyToRunInstructionSetHelper.cs (100%) rename src/coreclr/{src => }/tools/Common/Internal/Text/Utf8String.cs (100%) rename src/coreclr/{src => }/tools/Common/Internal/Text/Utf8StringBuilder.cs (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/CorInfoBase.cs (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/CorInfoHelpFunc.cs (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/CorInfoImpl.Intrinsics.cs (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/CorInfoImpl.cs (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/CorInfoInstructionSet.cs (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/CorInfoTypes.VarInfo.cs (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/CorInfoTypes.cs (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/JitConfigProvider.cs (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/MemoryHelper.cs (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/SystemVStructClassificator.cs (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/ThunkGenerator/InstructionSetGenerator.cs (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/ThunkGenerator/Program.cs (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/ThunkGenerator/ThunkGenerator.csproj (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/ThunkGenerator/gen.bat (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/ThunkGenerator/gen.sh (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/TypeString.cs (100%) rename src/coreclr/{src => }/tools/Common/JitInterface/UnboxingMethodDesc.cs (100%) rename src/coreclr/{src => }/tools/Common/Sorting/ArrayAccessor.cs (100%) rename src/coreclr/{src => }/tools/Common/Sorting/ICompareAsEqualAction.cs (100%) rename src/coreclr/{src => }/tools/Common/Sorting/ISortableDataStructureAccessor.cs (100%) rename src/coreclr/{src => }/tools/Common/Sorting/ListAccessor.cs (100%) rename src/coreclr/{src => }/tools/Common/Sorting/MergeSort.cs (100%) rename src/coreclr/{src => }/tools/Common/Sorting/MergeSortCore.cs (100%) rename src/coreclr/{src => }/tools/Common/System/Collections/Generic/ArrayBuilder.cs (100%) rename src/coreclr/{src => }/tools/Common/System/FormattingHelpers.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/ArrayType.Canon.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/ByRefType.Canon.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/CanonTypes.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/CanonTypes.Interop.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/CanonTypes.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/CanonTypes.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/DefType.Canon.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/FunctionPointerType.Canon.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/GenericParameterDesc.Canon.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/InstantiatedMethod.Canon.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/InstantiatedType.Canon.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/MetadataType.Canon.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/MethodDelegator.Canon.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/MethodDesc.Canon.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/MethodForInstantiatedType.Canon.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/ParameterizedType.Canon.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/PointerType.Canon.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/SignatureVariable.Canon.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/StandardCanonicalizationAlgorithm.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/TypeDesc.Canon.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Canon/TypeSystemContext.Canon.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/CodeGen/FieldDesc.CodeGen.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/CodeGen/MethodDelegator.CodeGen.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/CodeGen/MethodDesc.CodeGen.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/CodeGen/TargetDetails.CodeGen.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/CodeGen/TypeDesc.CodeGen.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/AlignmentHelper.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/ArrayMethod.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/ArrayOfTRuntimeInterfacesAlgorithm.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/ArrayType.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/BaseTypeRuntimeInterfacesAlgorithm.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/ByRefType.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/CastingHelper.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/ConstructedTypeRewritingHelpers.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/DefType.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/DefType.Dummy.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/DefType.FieldLayout.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/DefType.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/ExceptionStringID.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/ExplicitLayoutValidator.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/FieldDesc.FieldLayout.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/FieldDesc.ToString.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/FieldDesc.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/FieldForInstantiatedType.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/FieldLayoutAlgorithm.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/FunctionPointerType.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/GenericParameterDesc.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/GenericParameterDesc.Dummy.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/GenericParameterDesc.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/IAssemblyDesc.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/IModuleResolver.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/InstantiatedMethod.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/InstantiatedMethod.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/InstantiatedType.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/InstantiatedType.Interfaces.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/InstantiatedType.MethodImpls.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/InstantiatedType.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/Instantiation.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/LayoutInt.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/LinqPoison.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/LocalVariableDefinition.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/MetadataFieldLayoutAlgorithm.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/MetadataRuntimeInterfacesAlgorithm.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/MetadataType.Interfaces.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/MetadataType.MethodImpls.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/MetadataType.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/MetadataTypeSystemContext.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/MetadataVirtualMethodAlgorithm.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/MethodDelegator.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/MethodDelegator.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/MethodDesc.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/MethodDesc.Dummy.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/MethodDesc.ToString.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/MethodDesc.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/MethodForInstantiatedType.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/MethodForInstantiatedType.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/ModuleDesc.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/ParameterizedType.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/PointerType.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/Properties/Resources.resx (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/PropertySignature.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/RuntimeInterfacesAlgorithm.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/SignatureVariable.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/TargetDetails.ToString.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/TargetDetails.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/ThreadSafeFlags.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/ThrowHelper.Common.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/ThrowHelper.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/TypeDesc.Interfaces.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/TypeDesc.ToString.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/TypeDesc.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/TypeFlags.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/TypeHashingAlgorithms.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/TypeSystemConstraintsHelpers.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/TypeSystemContext.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/TypeSystemEntity.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/TypeSystemException.Resources.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/TypeSystemException.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/TypeSystemHelpers.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/UniversalCanonLayoutAlgorithm.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/Utilities/CustomAttributeTypeNameFormatter.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/Utilities/CustomAttributeTypeNameParser.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/Utilities/DebugNameFormatter.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/Utilities/ExceptionTypeNameFormatter.Metadata.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/Utilities/ExceptionTypeNameFormatter.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/Utilities/GCPointerMap.Algorithm.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/Utilities/GCPointerMap.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/Utilities/LockFreeReaderHashtable.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/Utilities/TypeNameFormatter.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/VirtualMethodAlgorithm.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Common/WellKnownType.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/CachingMetadataStringDecoder.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/CustomAttributeTypeProvider.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaAssembly.Symbols.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaAssembly.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaField.CodeGen.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaField.Serialization.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaField.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaField.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaGenericParameter.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaGenericParameter.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaGenericParameter.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaMethod.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaMethod.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaMethod.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaModule.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaModule.Symbols.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaModule.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaSignatureParser.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaType.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaType.Interfaces.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaType.MethodImpls.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaType.Serialization.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaType.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/EcmaType.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/IMetadataStringDecoderProvider.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/MetadataExtensions.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/PrimitiveTypeProvider.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/SymbolReader/PdbSymbolReader.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/SymbolReader/PortablePdbSymbolReader.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Ecma/SymbolReader/UnmanagedPdbSymbolReader.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/EcmaMethodIL.Symbols.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/EcmaMethodIL.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/HelperExtensions.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/ILDisassembler.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/ILImporter.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/ILOpcode.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/ILOpcodeHelper.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/ILProvider.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/ILStackHelper.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/InstantiatedMethodIL.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/MethodIL.Symbols.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/MethodIL.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/MethodILDebugView.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/StackValueKind.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/Stubs/ComparerIntrinsics.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/Stubs/ILEmitter.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/Stubs/InterlockedIntrinsics.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/Stubs/MemoryMarshalIntrinsics.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/Stubs/PInvokeILCodeStreams.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.Mangling.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/Stubs/RuntimeHelpersIntrinsics.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/Stubs/UnsafeIntrinsics.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/IL/Stubs/VolatileIntrinsics.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Interop/FieldDesc.Interop.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Interop/IL/MarshalHelpers.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Interop/IL/MarshalUtils.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Interop/IL/Marshaller.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Interop/InstantiatedType.Interop.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Interop/InteropTypes.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Interop/MarshalAsDescriptor.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Interop/MetadataType.Interop.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Interop/MethodDelegator.Interop.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Interop/MethodDesc.Interop.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Mangling/IPrefixMangledMethod.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Mangling/IPrefixMangledSignature.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Mangling/IPrefixMangledType.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/ArrayType.RuntimeDetermined.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/ByRefType.RuntimeDetermined.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/DefType.RuntimeDetermined.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/FieldDesc.RuntimeDetermined.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/FunctionPointerType.RuntimeDetermined.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/GenericParameterDesc.RuntimeDetermined.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/MethodDesc.RuntimeDetermined.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/MethodForRuntimeDeterminedType.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/MethodForRuntimeDeterminedType.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/MethodForRuntimeDeterminedType.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/ParameterizedType.RuntimeDetermined.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/PointerType.RuntimeDetermined.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedCanonicalizationAlgorithm.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedFieldLayoutAlgorithm.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedType.Diagnostic.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedType.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedType.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedTypeUtilities.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/SignatureVariable.RuntimeDetermined.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/TypeDesc.RuntimeDetermined.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/RuntimeDetermined/TypeSystemContext.RuntimeDetermined.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Serialization/FieldDesc.Serialization.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Serialization/TypeDesc.Serialization.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Sorting/ArrayType.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Sorting/ByRefType.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Sorting/FieldDesc.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Sorting/FieldForInstantiatedType.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Sorting/FunctionPointerType.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Sorting/InstantiatedMethod.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Sorting/InstantiatedType.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Sorting/MethodDesc.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Sorting/MethodForInstantiatedType.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Sorting/MethodSignature.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Sorting/PointerType.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Sorting/SignatureVariable.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Sorting/TypeDesc.Sorting.cs (100%) rename src/coreclr/{src => }/tools/Common/TypeSystem/Sorting/TypeSystemComparer.cs (100%) rename src/coreclr/{src => }/tools/Directory.Build.props (100%) rename src/coreclr/{src => }/tools/Directory.Build.targets (100%) rename src/coreclr/{src => }/tools/GCLogParser/App.config (100%) rename src/coreclr/{src => }/tools/GCLogParser/Properties/AssemblyInfo.cs (100%) rename src/coreclr/{src => }/tools/GCLogParser/parse-hb-log.cs (100%) rename src/coreclr/{src => }/tools/GCLogParser/parse-hb-log.csproj (100%) rename src/coreclr/{src => }/tools/GCLogParser/parse-hb-log.sln (100%) rename src/coreclr/{src => }/tools/GenClrDebugResource/CMakeLists.txt (100%) rename src/coreclr/{src => }/tools/GenClrDebugResource/GenClrDebugResource.cpp (100%) rename src/coreclr/{src => }/tools/GenClrDebugResource/native.rc (100%) rename src/coreclr/{src => }/tools/ILVerification/AccessVerificationHelpers.cs (100%) rename src/coreclr/{src => }/tools/ILVerification/ILImporter.StackValue.cs (100%) rename src/coreclr/{src => }/tools/ILVerification/ILImporter.Verify.cs (100%) rename src/coreclr/{src => }/tools/ILVerification/ILVerification.csproj (100%) rename src/coreclr/{src => }/tools/ILVerification/ILVerification.projitems (100%) rename src/coreclr/{src => }/tools/ILVerification/ILVerifyTypeSystemContext.cs (100%) rename src/coreclr/{src => }/tools/ILVerification/IResolver.cs (100%) rename src/coreclr/{src => }/tools/ILVerification/InstantiatedGenericParameter.cs (100%) rename src/coreclr/{src => }/tools/ILVerification/README.md (100%) rename src/coreclr/{src => }/tools/ILVerification/SimpleArrayOfTRuntimeInterfacesAlgorithm.cs (100%) rename src/coreclr/{src => }/tools/ILVerification/Strings.resx (100%) rename src/coreclr/{src => }/tools/ILVerification/TypeSystemHelpers.cs (100%) rename src/coreclr/{src => }/tools/ILVerification/TypeVerifier.cs (100%) rename src/coreclr/{src => }/tools/ILVerification/VerificationResult.cs (100%) rename src/coreclr/{src => }/tools/ILVerification/Verifier.cs (100%) rename src/coreclr/{src => }/tools/ILVerification/VerifierError.cs (100%) rename src/coreclr/{src => }/tools/ILVerify/ILVerify.csproj (100%) rename src/coreclr/{src => }/tools/ILVerify/Program.cs (100%) rename src/coreclr/{src => }/tools/ILVerify/README.md (100%) rename src/coreclr/{src => }/tools/InjectResource/CMakeLists.txt (100%) rename src/coreclr/{src => }/tools/InjectResource/InjectResource.cpp (100%) rename src/coreclr/{src => }/tools/InjectResource/native.rc (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.DependencyAnalysisFramework/ComputedStaticDependencyNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyAnalyzer.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyAnalyzerBase.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyNodeCore.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.DependencyAnalysisFramework/DgmlWriter.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.DependencyAnalysisFramework/EventSourceLogStrategy.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.DependencyAnalysisFramework/FirstMarkLogStrategy.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.DependencyAnalysisFramework/FullGraphLogStrategy.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyAnalysisMarkStrategy.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyAnalyzerLogEdgeVisitor.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyAnalyzerLogNodeVisitor.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.DependencyAnalysisFramework/ILCompiler.DependencyAnalysisFramework.csproj (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.DependencyAnalysisFramework/NoLogStrategy.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.DependencyAnalysisFramework/PerfEventSource.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/CodeGen/ReadyToRunObjectWriter.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/CompilationModuleGroup.ReadyToRun.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/CryptographicHashProvider.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/AllMethodsOnTypeNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ArrayOfEmbeddedDataNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ArrayOfEmbeddedPointersNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/EmbeddedObjectNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/EmbeddedPointerIndirectionNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ArgIterator.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/AssemblyTableNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/AttributePresenceFilterNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ByteArrayComparer.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CompilerIdentifierNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedCorHeaderNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedFieldRvaNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedManagedResourcesNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedMetadataBlobNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedMethodILNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedStrongNameSignatureNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DebugDirectoryEntryNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DebugDirectoryNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DebugInfoTableNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadHelperImport.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadHelperMethodImport.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadMethodCallThunkNodeRange.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadMethodImport.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelegateCtorSignature.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DevirtualizationManager.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ExceptionInfoLookupTableNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/FieldFixupSignature.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GCRefMapBuilder.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GCRefMapNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GenericLookupSignature.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/HeaderNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Import.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ImportSectionNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ImportSectionsTableNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ImportThunk.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/InliningInfoNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/InstanceEntryPointTableNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ManifestMetadataTableNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodEntryPointTableNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodFixupSignature.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodGCInfoNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodWithGCInfo.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ModuleToken.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ModuleTokenResolver.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/NewArrayFixupSignature.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/NewObjectFixupSignature.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/NibbleWriter.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/OwnerCompositeExecutableNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/PrecodeHelperImport.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/PrecodeMethodImport.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ProfileDataNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ProfileDataSectionNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ReadyToRunHelperSignature.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ReadyToRunInstructionSetSupportSignature.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/RuntimeFunctionsGCInfoNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/RuntimeFunctionsTableNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Signature.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureBuilder.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureContext.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureEmbeddedPointerIndirectionNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/StringImport.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/StringImportSignature.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_ARM/ImportThunk.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_ARM64/ImportThunk.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_X64/ImportThunk.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_X86/ImportThunk.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TransitionBlock.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TypeFixupSignature.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TypesTableNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Win32ResourcesNode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRunCodegenNodeFactory.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRunSymbolNodeFactory.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/SortableDependencyNodeCompilerSpecific.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/TypeAndMethod.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/IRootingServiceProvider.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/MethodExtensions.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/NoMethodsCompilationModuleGroup.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/PerfEventSource.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/ProfileData.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCodegenCompilation.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCodegenCompilationBuilder.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCompilationModuleGroupBase.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCompilerContext.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunFileLayoutOptimizer.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunHashCode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunLibraryRootProvider.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunMetadataFieldLayoutAlgorithm.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunSingleAssemblyCompilationModuleGroup.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunTableManager.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/RuntimeDeterminedTypeHelper.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/SingleMethodCompilationModuleGroup.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Compiler/SystemObjectFieldLayoutAlgorithm.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/IBC/IBCDataModel.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/IBC/IBCDataReader.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileData.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileParser.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/IBC/MIbcProfileParser.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/IBC/ReaderExtensions.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/IL/ReadyToRunILProvider.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/IL/Stubs/PInvokeILEmitter.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/ILCompiler.ReadyToRun.csproj (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Interop/IL/Marshaller.ReadyToRun.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/JitInterface/UnboxingMethodDescFactory.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/MapFileBuilder.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/R2RPEBuilder.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/RelocationHelper.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/SectionBuilder.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/TargetExtensions.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.Reader.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.ResourcesDataModel.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.UpdateResourceDataModel.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.Win32Structs.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcInfo.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcSlotTable.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcTransition.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/Registers.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/UnwindInfo.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm/Registers.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm/UnwindInfo.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm64/Registers.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm64/UnwindInfo.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/DebugInfo.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/DebugInfoTypes.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/DisassemblingTypeProvider.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/EHInfo.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/GCInfoTypes.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/GCRefMap.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/IAssemblyMetadata.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/IAssemblyResolver.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/ILCompiler.Reflection.ReadyToRun.csproj (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/InliningInfoSection.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/InliningInfoSection2.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/NativeArray.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/NativeHashtable.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/NativeReader.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/NibbleReader.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/PEReaderExtensions.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunHeader.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunImportSection.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunMethod.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunReader.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunSection.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunSignature.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/StandaloneAssemblyMetadata.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/StringExtensions.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/TransitionBlock.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/CallPattern.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/GcInfo.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/GcSlotTable.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/GcTransition.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/InfoHdr.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/Registers.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/UnwindInfo.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ArchitectureSpecificFieldLayoutTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CanonicalizationTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CastingTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ConstraintsValidationTest.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Canonicalization.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Casting.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/CoreTestAssembly.csproj (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/GCPointerMap.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/GenericConstraints.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/GenericTypes.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Hashcode.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/InstanceFieldLayout.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/InterfaceArrangements.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Platform.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/StaticFieldLayout.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/SyntheticVirtualOverride.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/TypeNameParsing.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/ValueTypeShapeCharacteristics.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/VirtualFunctionOverride.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ExceptionStringTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/GCPointerMapTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/GenericTypeAndMethodTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/HashcodeTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILCompiler.TypeSystem.ReadyToRun.Tests.csproj (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILDisassemblerTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/ILDisassembler.il (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/ILTestAssembly.ilproj (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/InstanceFieldLayout.il (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/Main.il (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/MethodImplOverride1.il (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/Signature.il (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/StaticFieldLayout.il (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/VirtualFunctionOverride.il (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/InstanceFieldLayoutTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/InterfacesTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/RuntimeDeterminedTypesTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/SignatureTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/StaticFieldLayoutTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/SyntheticVirtualOverrideTests.DiagnosticName.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/SyntheticVirtualOverrideTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/TestMetadataFieldLayoutAlgorithm.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/TestTypeSystemContext.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/TypeNameParsingTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/UniversalGenericFieldLayoutTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ValueTypeShapeCharacteristicsTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/VirtualFunctionOverrideTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/WellKnownTypeTests.cs (100%) rename src/coreclr/{src => }/tools/aot/ILCompiler.TypeSystem.ReadyToRun/ILCompiler.TypeSystem.ReadyToRun.csproj (100%) rename src/coreclr/{src => }/tools/aot/crossgen2.sln (100%) rename src/coreclr/{src => }/tools/aot/crossgen2/CommandLineOptions.cs (100%) rename src/coreclr/{src => }/tools/aot/crossgen2/Program.cs (100%) rename src/coreclr/{src => }/tools/aot/crossgen2/Properties/Resources.resx (100%) rename src/coreclr/{src => }/tools/aot/crossgen2/crossgen2.csproj (100%) rename src/coreclr/{src => }/tools/aot/jitinterface/CMakeLists.txt (100%) rename src/coreclr/{src => }/tools/aot/jitinterface/corinfoexception.cpp (100%) rename src/coreclr/{src => }/tools/aot/jitinterface/corinfoexception.h (100%) rename src/coreclr/{src => }/tools/aot/jitinterface/dllexport.h (100%) rename src/coreclr/{src => }/tools/aot/jitinterface/jithost.cpp (100%) rename src/coreclr/{src => }/tools/aot/jitinterface/jitinterface.cpp (100%) rename src/coreclr/{src => }/tools/aot/jitinterface/jitinterface.h (100%) rename src/coreclr/{src => }/tools/aot/jitinterface/jitwrapper.cpp (100%) rename src/coreclr/{src => }/tools/crossgen/CMakeLists.txt (100%) rename src/coreclr/{src => }/tools/crossgen/Native.rc (100%) rename src/coreclr/{src => }/tools/crossgen/compare.bat (100%) rename src/coreclr/{src => }/tools/crossgen/crossgen.cpp (100%) rename src/coreclr/{src => }/tools/dotnet-pgo/Logger.cs (100%) rename src/coreclr/{src => }/tools/dotnet-pgo/Microsoft.Diagnostics.JitTrace/JitTraceRuntime.cs (100%) rename src/coreclr/{src => }/tools/dotnet-pgo/ModuleLoadLogger.cs (100%) rename src/coreclr/{src => }/tools/dotnet-pgo/PgoTraceProcess.cs (100%) rename src/coreclr/{src => }/tools/dotnet-pgo/Program.cs (100%) rename src/coreclr/{src => }/tools/dotnet-pgo/R2RSignatureTypeProvider.cs (100%) rename src/coreclr/{src => }/tools/dotnet-pgo/README.md (100%) rename src/coreclr/{src => }/tools/dotnet-pgo/TraceRuntimeDescToTypeSystemDesc.cs (100%) rename src/coreclr/{src => }/tools/dotnet-pgo/TraceTypeSystemContext.cs (100%) rename src/coreclr/{src => }/tools/dotnet-pgo/TypeSystemMetadataEmitter.cs (100%) rename src/coreclr/{src => }/tools/dotnet-pgo/dotnet-pgo-experiment.md (100%) rename src/coreclr/{src => }/tools/dotnet-pgo/dotnet-pgo.csproj (100%) rename src/coreclr/{src => }/tools/dotnet-pgo/dotnet-pgo.sln (100%) rename src/coreclr/{src => }/tools/metainfo/Native.rc (100%) rename src/coreclr/{src => }/tools/metainfo/mdinfo.cpp (100%) rename src/coreclr/{src => }/tools/metainfo/mdinfo.h (100%) rename src/coreclr/{src => }/tools/metainfo/mdobj.cpp (100%) rename src/coreclr/{src => }/tools/r2rdump/CommandLineOptions.cs (100%) rename src/coreclr/{src => }/tools/r2rdump/CoreDisTools.cs (100%) rename src/coreclr/{src => }/tools/r2rdump/Extensions.cs (100%) rename src/coreclr/{src => }/tools/r2rdump/ISymNGenWriter.cs (100%) rename src/coreclr/{src => }/tools/r2rdump/PdbWriter.cs (100%) rename src/coreclr/{src => }/tools/r2rdump/R2RDiff.cs (100%) rename src/coreclr/{src => }/tools/r2rdump/R2RDump.cs (100%) rename src/coreclr/{src => }/tools/r2rdump/R2RDump.csproj (100%) rename src/coreclr/{src => }/tools/r2rdump/R2RDump.sln (100%) rename src/coreclr/{src => }/tools/r2rdump/R2RFormat.png (100%) rename src/coreclr/{src => }/tools/r2rdump/README.md (100%) rename src/coreclr/{src => }/tools/r2rdump/TextDumper.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/Buckets.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/BuildFolder.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/BuildFolderSet.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/BuildOptions.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/CommandLineOptions.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/Commands/CompileDirectoryCommand.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/Commands/CompileFrameworkCommand.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/Commands/CompileNugetCommand.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/Commands/CompileSerpCommand.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/Commands/CompileSubtreeCommand.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/CompilerRunner.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/ComputeManagedAssemblies.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/Crossgen2Runner.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/CrossgenRunner.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/DotnetCli.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/JitRunner.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/Linux.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/ParallelRunner.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/PathHelpers.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/PerfEventSourceListener.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/ProcessRunner.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/Program.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/R2RTest.csproj (100%) rename src/coreclr/{src => }/tools/r2rtest/ReadyToRunJittedMethods.cs (100%) rename src/coreclr/{src => }/tools/r2rtest/TestExclusion.cs (100%) rename src/coreclr/{src => }/tools/runincontext/runincontext.cs (100%) rename src/coreclr/{src => }/tools/runincontext/runincontext.csproj (100%) rename src/coreclr/{src => }/tools/util/consoleargs.cpp (100%) rename src/coreclr/{src => }/tools/util/consoleargs.h (100%) rename src/coreclr/{src => }/tools/util/list.h (100%) rename src/coreclr/{src => }/tools/util/tree.h (100%) rename src/coreclr/{src => }/unwinder/CMakeLists.txt (81%) rename src/coreclr/{src => }/unwinder/amd64/dbs_stack_x64.cpp (100%) rename src/coreclr/{src => }/unwinder/amd64/unwinder_amd64.cpp (100%) rename src/coreclr/{src => }/unwinder/amd64/unwinder_amd64.h (100%) rename src/coreclr/{src => }/unwinder/arm/unwinder_arm.cpp (100%) rename src/coreclr/{src => }/unwinder/arm/unwinder_arm.h (100%) rename src/coreclr/{src => }/unwinder/arm64/unwinder_arm64.cpp (100%) rename src/coreclr/{src => }/unwinder/arm64/unwinder_arm64.h (100%) rename src/coreclr/{src => }/unwinder/i386/unwinder_i386.cpp (100%) rename src/coreclr/{src => }/unwinder/i386/unwinder_i386.h (100%) rename src/coreclr/{src => }/unwinder/stdafx.cpp (100%) rename src/coreclr/{src => }/unwinder/stdafx.h (100%) rename src/coreclr/{src => }/unwinder/unwinder.cpp (100%) rename src/coreclr/{src => }/unwinder/unwinder.h (100%) rename src/coreclr/{src => }/utilcode/CMakeLists.txt (100%) rename src/coreclr/{src => }/utilcode/arraylist.cpp (100%) rename src/coreclr/{src => }/utilcode/bitvector.cpp (100%) rename src/coreclr/{src => }/utilcode/ccomprc.cpp (100%) rename src/coreclr/{src => }/utilcode/check.cpp (100%) rename src/coreclr/{src => }/utilcode/clrconfig.cpp (100%) rename src/coreclr/{src => }/utilcode/clrhelpers.cpp (100%) rename src/coreclr/{src => }/utilcode/clrhost.cpp (100%) rename src/coreclr/{src => }/utilcode/clrhost_nodependencies.cpp (100%) rename src/coreclr/{src => }/utilcode/collections.cpp (100%) rename src/coreclr/{src => }/utilcode/comex.cpp (100%) rename src/coreclr/{src => }/utilcode/configuration.cpp (100%) rename src/coreclr/{src => }/utilcode/corimage.cpp (100%) rename src/coreclr/{src => }/utilcode/cycletimer.cpp (100%) rename src/coreclr/{src => }/utilcode/dacutil.cpp (100%) rename src/coreclr/{src => }/utilcode/debug.cpp (100%) rename src/coreclr/{src => }/utilcode/dlwrap.cpp (100%) rename src/coreclr/{src => }/utilcode/ex.cpp (100%) rename src/coreclr/{src => }/utilcode/format1.cpp (100%) rename src/coreclr/{src => }/utilcode/fstream.cpp (100%) rename src/coreclr/{src => }/utilcode/fstring.cpp (100%) rename src/coreclr/{src => }/utilcode/guidfromname.cpp (100%) rename src/coreclr/{src => }/utilcode/hostimpl.cpp (100%) rename src/coreclr/{src => }/utilcode/iallocator.cpp (100%) rename src/coreclr/{src => }/utilcode/ilformatter.cpp (100%) rename src/coreclr/{src => }/utilcode/loaderheap.cpp (100%) rename src/coreclr/{src => }/utilcode/log.cpp (100%) rename src/coreclr/{src => }/utilcode/longfilepathwrappers.cpp (100%) rename src/coreclr/{src => }/utilcode/makepath.cpp (100%) rename src/coreclr/{src => }/utilcode/md5.cpp (100%) rename src/coreclr/{src => }/utilcode/memorypool.cpp (100%) rename src/coreclr/{src => }/utilcode/namespaceutil.cpp (100%) rename src/coreclr/{src => }/utilcode/opinfo.cpp (100%) rename src/coreclr/{src => }/utilcode/outstring.cpp (100%) rename src/coreclr/{src => }/utilcode/pedecoder.cpp (100%) rename src/coreclr/{src => }/utilcode/peinformation.cpp (100%) rename src/coreclr/{src => }/utilcode/posterror.cpp (100%) rename src/coreclr/{src => }/utilcode/prettyprintsig.cpp (100%) rename src/coreclr/{src => }/utilcode/regutil.cpp (100%) rename src/coreclr/{src => }/utilcode/safewrap.cpp (100%) rename src/coreclr/{src => }/utilcode/sbuffer.cpp (100%) rename src/coreclr/{src => }/utilcode/securityutil.cpp (100%) rename src/coreclr/{src => }/utilcode/securitywrapper.cpp (100%) rename src/coreclr/{src => }/utilcode/sha1.cpp (100%) rename src/coreclr/{src => }/utilcode/sigbuilder.cpp (100%) rename src/coreclr/{src => }/utilcode/sigparser.cpp (100%) rename src/coreclr/{src => }/utilcode/splitpath.cpp (100%) rename src/coreclr/{src => }/utilcode/sstring.cpp (100%) rename src/coreclr/{src => }/utilcode/sstring_com.cpp (100%) rename src/coreclr/{src => }/utilcode/stacktrace.cpp (100%) rename src/coreclr/{src => }/utilcode/stdafx.h (100%) rename src/coreclr/{src => }/utilcode/stgpool.cpp (100%) rename src/coreclr/{src => }/utilcode/stgpooli.cpp (100%) rename src/coreclr/{src => }/utilcode/stgpoolreadonly.cpp (100%) rename src/coreclr/{src => }/utilcode/stresslog.cpp (100%) rename src/coreclr/{src => }/utilcode/util.cpp (100%) rename src/coreclr/{src => }/utilcode/util_nodependencies.cpp (100%) rename src/coreclr/{src => }/utilcode/utilmessagebox.cpp (100%) rename src/coreclr/{src => }/utilcode/utsem.cpp (100%) rename src/coreclr/{src => }/utilcode/winfix.cpp (100%) rename src/coreclr/{src => }/utilcode/yieldprocessornormalized.cpp (100%) rename src/coreclr/{src => }/vm/.vscode/c_cpp_properties.json (100%) rename src/coreclr/{src => }/vm/CMakeLists.txt (100%) rename src/coreclr/{src => }/vm/ClrEtwAll.man (100%) rename src/coreclr/{src => }/vm/ClrEtwAllMeta.lst (100%) rename src/coreclr/{src => }/vm/amd64/AsmHelpers.asm (100%) rename src/coreclr/{src => }/vm/amd64/AsmMacros.inc (100%) rename src/coreclr/{src => }/vm/amd64/CallDescrWorkerAMD64.asm (100%) rename src/coreclr/{src => }/vm/amd64/ComCallPreStub.asm (100%) rename src/coreclr/{src => }/vm/amd64/CrtHelpers.asm (100%) rename src/coreclr/{src => }/vm/amd64/ExternalMethodFixupThunk.asm (100%) rename src/coreclr/{src => }/vm/amd64/GenericComCallStubs.asm (100%) rename src/coreclr/{src => }/vm/amd64/GenericComPlusCallStubs.asm (100%) rename src/coreclr/{src => }/vm/amd64/JitHelpers_Fast.asm (100%) rename src/coreclr/{src => }/vm/amd64/JitHelpers_FastWriteBarriers.asm (100%) rename src/coreclr/{src => }/vm/amd64/JitHelpers_InlineGetThread.asm (100%) rename src/coreclr/{src => }/vm/amd64/JitHelpers_SingleAppDomain.asm (100%) rename src/coreclr/{src => }/vm/amd64/JitHelpers_Slow.asm (100%) rename src/coreclr/{src => }/vm/amd64/PInvokeStubs.asm (100%) rename src/coreclr/{src => }/vm/amd64/RedirectedHandledJITCase.asm (100%) rename src/coreclr/{src => }/vm/amd64/ThePreStubAMD64.asm (100%) rename src/coreclr/{src => }/vm/amd64/UMThunkStub.asm (100%) rename src/coreclr/{src => }/vm/amd64/VirtualCallStubAMD64.asm (100%) rename src/coreclr/{src => }/vm/amd64/asmconstants.h (100%) rename src/coreclr/{src => }/vm/amd64/asmhelpers.S (100%) rename src/coreclr/{src => }/vm/amd64/calldescrworkeramd64.S (100%) rename src/coreclr/{src => }/vm/amd64/cgenamd64.cpp (100%) rename src/coreclr/{src => }/vm/amd64/cgencpu.h (100%) rename src/coreclr/{src => }/vm/amd64/crthelpers.S (100%) rename src/coreclr/{src => }/vm/amd64/excepamd64.cpp (100%) rename src/coreclr/{src => }/vm/amd64/excepcpu.h (100%) rename src/coreclr/{src => }/vm/amd64/externalmethodfixupthunk.S (100%) rename src/coreclr/{src => }/vm/amd64/getstate.S (100%) rename src/coreclr/{src => }/vm/amd64/getstate.asm (100%) rename src/coreclr/{src => }/vm/amd64/gmsamd64.cpp (100%) rename src/coreclr/{src => }/vm/amd64/gmscpu.h (100%) rename src/coreclr/{src => }/vm/amd64/jithelpers_fast.S (100%) rename src/coreclr/{src => }/vm/amd64/jithelpers_fastwritebarriers.S (100%) rename src/coreclr/{src => }/vm/amd64/jithelpers_singleappdomain.S (100%) rename src/coreclr/{src => }/vm/amd64/jithelpers_slow.S (100%) rename src/coreclr/{src => }/vm/amd64/jitinterfaceamd64.cpp (100%) rename src/coreclr/{src => }/vm/amd64/pinvokestubs.S (100%) rename src/coreclr/{src => }/vm/amd64/profiler.cpp (100%) rename src/coreclr/{src => }/vm/amd64/stublinkeramd64.cpp (100%) rename src/coreclr/{src => }/vm/amd64/stublinkeramd64.h (100%) rename src/coreclr/{src => }/vm/amd64/theprestubamd64.S (100%) rename src/coreclr/{src => }/vm/amd64/umthunkstub.S (100%) rename src/coreclr/{src => }/vm/amd64/unixasmhelpers.S (100%) rename src/coreclr/{src => }/vm/amd64/unixstubs.cpp (100%) rename src/coreclr/{src => }/vm/amd64/virtualcallstubamd64.S (100%) rename src/coreclr/{src => }/vm/amd64/virtualcallstubcpu.hpp (100%) rename src/coreclr/{src => }/vm/amsi.cpp (100%) rename src/coreclr/{src => }/vm/amsi.h (100%) rename src/coreclr/{src => }/vm/appdomain.cpp (100%) rename src/coreclr/{src => }/vm/appdomain.hpp (100%) rename src/coreclr/{src => }/vm/appdomain.inl (100%) rename src/coreclr/{src => }/vm/appdomainnative.cpp (100%) rename src/coreclr/{src => }/vm/appdomainnative.hpp (100%) rename src/coreclr/{src => }/vm/argdestination.h (100%) rename src/coreclr/{src => }/vm/argslot.h (100%) rename src/coreclr/{src => }/vm/arm/CrtHelpers.asm (100%) rename src/coreclr/{src => }/vm/arm/PInvokeStubs.asm (100%) rename src/coreclr/{src => }/vm/arm/armsinglestepper.cpp (100%) rename src/coreclr/{src => }/vm/arm/asmconstants.h (100%) rename src/coreclr/{src => }/vm/arm/asmhelpers.S (100%) rename src/coreclr/{src => }/vm/arm/asmhelpers.asm (100%) rename src/coreclr/{src => }/vm/arm/asmmacros.h (100%) rename src/coreclr/{src => }/vm/arm/cgencpu.h (100%) rename src/coreclr/{src => }/vm/arm/crthelpers.S (100%) rename src/coreclr/{src => }/vm/arm/ehhelpers.S (100%) rename src/coreclr/{src => }/vm/arm/ehhelpers.asm (100%) rename src/coreclr/{src => }/vm/arm/exceparm.cpp (100%) rename src/coreclr/{src => }/vm/arm/excepcpu.h (100%) rename src/coreclr/{src => }/vm/arm/gmscpu.h (100%) rename src/coreclr/{src => }/vm/arm/patchedcode.S (100%) rename src/coreclr/{src => }/vm/arm/patchedcode.asm (100%) rename src/coreclr/{src => }/vm/arm/pinvokestubs.S (100%) rename src/coreclr/{src => }/vm/arm/profiler.cpp (100%) rename src/coreclr/{src => }/vm/arm/stubs.cpp (100%) rename src/coreclr/{src => }/vm/arm/unixstubs.cpp (100%) rename src/coreclr/{src => }/vm/arm/virtualcallstubcpu.hpp (100%) rename src/coreclr/{src => }/vm/arm64/CallDescrWorkerARM64.asm (100%) rename src/coreclr/{src => }/vm/arm64/PInvokeStubs.asm (100%) rename src/coreclr/{src => }/vm/arm64/arm64singlestepper.cpp (100%) rename src/coreclr/{src => }/vm/arm64/asmconstants.h (100%) rename src/coreclr/{src => }/vm/arm64/asmhelpers.S (100%) rename src/coreclr/{src => }/vm/arm64/asmhelpers.asm (100%) rename src/coreclr/{src => }/vm/arm64/asmmacros.h (100%) rename src/coreclr/{src => }/vm/arm64/calldescrworkerarm64.S (100%) rename src/coreclr/{src => }/vm/arm64/cgencpu.h (100%) rename src/coreclr/{src => }/vm/arm64/crthelpers.S (100%) rename src/coreclr/{src => }/vm/arm64/crthelpers.asm (100%) rename src/coreclr/{src => }/vm/arm64/excepcpu.h (100%) rename src/coreclr/{src => }/vm/arm64/gmscpu.h (100%) rename src/coreclr/{src => }/vm/arm64/pinvokestubs.S (100%) rename src/coreclr/{src => }/vm/arm64/profiler.cpp (100%) rename src/coreclr/{src => }/vm/arm64/stubs.cpp (100%) rename src/coreclr/{src => }/vm/arm64/unixstubs.cpp (100%) rename src/coreclr/{src => }/vm/arm64/virtualcallstubcpu.hpp (100%) rename src/coreclr/{src => }/vm/arm64singlestepper.h (100%) rename src/coreclr/{src => }/vm/armsinglestepper.h (100%) rename src/coreclr/{src => }/vm/array.cpp (100%) rename src/coreclr/{src => }/vm/array.h (100%) rename src/coreclr/{src => }/vm/assembly.cpp (100%) rename src/coreclr/{src => }/vm/assembly.hpp (100%) rename src/coreclr/{src => }/vm/assemblyloadcontext.cpp (100%) rename src/coreclr/{src => }/vm/assemblyloadcontext.h (100%) rename src/coreclr/{src => }/vm/assemblyname.cpp (100%) rename src/coreclr/{src => }/vm/assemblyname.hpp (100%) rename src/coreclr/{src => }/vm/assemblynative.cpp (100%) rename src/coreclr/{src => }/vm/assemblynative.hpp (100%) rename src/coreclr/{src => }/vm/assemblyspec.cpp (100%) rename src/coreclr/{src => }/vm/assemblyspec.hpp (100%) rename src/coreclr/{src => }/vm/assemblyspecbase.h (100%) rename src/coreclr/{src => }/vm/autotrace.cpp (100%) rename src/coreclr/{src => }/vm/autotrace.h (100%) rename src/coreclr/{src => }/vm/baseassemblyspec.cpp (100%) rename src/coreclr/{src => }/vm/baseassemblyspec.h (100%) rename src/coreclr/{src => }/vm/baseassemblyspec.inl (100%) rename src/coreclr/{src => }/vm/binder.cpp (100%) rename src/coreclr/{src => }/vm/binder.h (100%) rename src/coreclr/{src => }/vm/bundle.cpp (100%) rename src/coreclr/{src => }/vm/cachelinealloc.cpp (100%) rename src/coreclr/{src => }/vm/cachelinealloc.h (100%) rename src/coreclr/{src => }/vm/callcounting.cpp (100%) rename src/coreclr/{src => }/vm/callcounting.h (100%) rename src/coreclr/{src => }/vm/callhelpers.cpp (100%) rename src/coreclr/{src => }/vm/callhelpers.h (100%) rename src/coreclr/{src => }/vm/callingconvention.h (100%) rename src/coreclr/{src => }/vm/callsiteinspect.cpp (100%) rename src/coreclr/{src => }/vm/callsiteinspect.h (100%) rename src/coreclr/{src => }/vm/castcache.cpp (100%) rename src/coreclr/{src => }/vm/castcache.h (100%) rename src/coreclr/{src => }/vm/ceeload.cpp (100%) rename src/coreclr/{src => }/vm/ceeload.h (100%) rename src/coreclr/{src => }/vm/ceeload.inl (100%) rename src/coreclr/{src => }/vm/ceemain.cpp (100%) rename src/coreclr/{src => }/vm/ceemain.h (100%) rename src/coreclr/{src => }/vm/cgensys.h (100%) rename src/coreclr/{src => }/vm/class.cpp (100%) rename src/coreclr/{src => }/vm/class.h (100%) rename src/coreclr/{src => }/vm/class.inl (100%) rename src/coreclr/{src => }/vm/classcompat.cpp (100%) rename src/coreclr/{src => }/vm/classcompat.h (100%) rename src/coreclr/{src => }/vm/classhash.cpp (100%) rename src/coreclr/{src => }/vm/classhash.h (100%) rename src/coreclr/{src => }/vm/classhash.inl (100%) rename src/coreclr/{src => }/vm/classlayoutinfo.cpp (100%) rename src/coreclr/{src => }/vm/classloadlevel.h (100%) rename src/coreclr/{src => }/vm/classnames.h (100%) rename src/coreclr/{src => }/vm/clrconfignative.cpp (100%) rename src/coreclr/{src => }/vm/clrconfignative.h (100%) rename src/coreclr/{src => }/vm/clrex.cpp (100%) rename src/coreclr/{src => }/vm/clrex.h (100%) rename src/coreclr/{src => }/vm/clrex.inl (100%) rename src/coreclr/{src => }/vm/clrtocomcall.cpp (100%) rename src/coreclr/{src => }/vm/clrtocomcall.h (100%) rename src/coreclr/{src => }/vm/clrtracelogging.cpp (100%) rename src/coreclr/{src => }/vm/clrvarargs.cpp (100%) rename src/coreclr/{src => }/vm/clrvarargs.h (100%) rename src/coreclr/{src => }/vm/clsload.cpp (100%) rename src/coreclr/{src => }/vm/clsload.hpp (100%) rename src/coreclr/{src => }/vm/clsload.inl (100%) rename src/coreclr/{src => }/vm/codeman.cpp (100%) rename src/coreclr/{src => }/vm/codeman.h (100%) rename src/coreclr/{src => }/vm/codeman.inl (100%) rename src/coreclr/{src => }/vm/codepitchingmanager.cpp (100%) rename src/coreclr/{src => }/vm/codeversion.cpp (100%) rename src/coreclr/{src => }/vm/codeversion.h (100%) rename src/coreclr/{src => }/vm/comcache.cpp (100%) rename src/coreclr/{src => }/vm/comcache.h (100%) rename src/coreclr/{src => }/vm/comcallablewrapper.cpp (100%) rename src/coreclr/{src => }/vm/comcallablewrapper.h (100%) rename src/coreclr/{src => }/vm/comconnectionpoints.cpp (100%) rename src/coreclr/{src => }/vm/comconnectionpoints.h (100%) rename src/coreclr/{src => }/vm/comdatetime.cpp (100%) rename src/coreclr/{src => }/vm/comdatetime.h (100%) rename src/coreclr/{src => }/vm/comdelegate.cpp (100%) rename src/coreclr/{src => }/vm/comdelegate.h (100%) rename src/coreclr/{src => }/vm/comdependenthandle.cpp (100%) rename src/coreclr/{src => }/vm/comdependenthandle.h (100%) rename src/coreclr/{src => }/vm/comdynamic.cpp (100%) rename src/coreclr/{src => }/vm/comdynamic.h (100%) rename src/coreclr/{src => }/vm/cominterfacemarshaler.cpp (100%) rename src/coreclr/{src => }/vm/cominterfacemarshaler.h (100%) rename src/coreclr/{src => }/vm/commodule.cpp (100%) rename src/coreclr/{src => }/vm/commodule.h (100%) rename src/coreclr/{src => }/vm/common.h (100%) rename src/coreclr/{src => }/vm/commtmemberinfomap.cpp (100%) rename src/coreclr/{src => }/vm/commtmemberinfomap.h (100%) rename src/coreclr/{src => }/vm/compatibilityswitch.cpp (100%) rename src/coreclr/{src => }/vm/compatibilityswitch.h (100%) rename src/coreclr/{src => }/vm/compile.cpp (100%) rename src/coreclr/{src => }/vm/compile.h (100%) rename src/coreclr/{src => }/vm/comreflectioncache.hpp (100%) rename src/coreclr/{src => }/vm/comreflectioncache.inl (100%) rename src/coreclr/{src => }/vm/comsynchronizable.cpp (100%) rename src/coreclr/{src => }/vm/comsynchronizable.h (100%) rename src/coreclr/{src => }/vm/comthreadpool.cpp (100%) rename src/coreclr/{src => }/vm/comthreadpool.h (100%) rename src/coreclr/{src => }/vm/comtoclrcall.cpp (100%) rename src/coreclr/{src => }/vm/comtoclrcall.h (100%) rename src/coreclr/{src => }/vm/comutilnative.cpp (100%) rename src/coreclr/{src => }/vm/comutilnative.h (100%) rename src/coreclr/{src => }/vm/comwaithandle.cpp (100%) rename src/coreclr/{src => }/vm/comwaithandle.h (100%) rename src/coreclr/{src => }/vm/contractimpl.cpp (100%) rename src/coreclr/{src => }/vm/contractimpl.h (100%) rename src/coreclr/{src => }/vm/coreassemblyspec.cpp (100%) rename src/coreclr/{src => }/vm/corebindresult.cpp (100%) rename src/coreclr/{src => }/vm/coreclr/corebindresult.h (100%) rename src/coreclr/{src => }/vm/coreclr/corebindresult.inl (100%) rename src/coreclr/{src => }/vm/corelib.cpp (100%) rename src/coreclr/{src => }/vm/corelib.h (100%) rename src/coreclr/{src => }/vm/corhost.cpp (100%) rename src/coreclr/{src => }/vm/crossgen/CMakeLists.txt (99%) rename src/coreclr/{src => }/vm/crossgencompile.cpp (100%) rename src/coreclr/{src => }/vm/crossloaderallocatorhash.h (100%) rename src/coreclr/{src => }/vm/crossloaderallocatorhash.inl (100%) rename src/coreclr/{src => }/vm/crst.cpp (100%) rename src/coreclr/{src => }/vm/crst.h (100%) rename src/coreclr/{src => }/vm/ctxtcall.h (100%) rename src/coreclr/{src => }/vm/customattribute.cpp (100%) rename src/coreclr/{src => }/vm/customattribute.h (100%) rename src/coreclr/{src => }/vm/custommarshalerinfo.cpp (100%) rename src/coreclr/{src => }/vm/custommarshalerinfo.h (100%) rename src/coreclr/{src => }/vm/dataimage.cpp (100%) rename src/coreclr/{src => }/vm/dataimage.h (100%) rename src/coreclr/{src => }/vm/dataimagesection.h (100%) rename src/coreclr/{src => }/vm/dbginterface.h (100%) rename src/coreclr/{src => }/vm/debugdebugger.cpp (100%) rename src/coreclr/{src => }/vm/debugdebugger.h (100%) rename src/coreclr/{src => }/vm/debughelp.cpp (100%) rename src/coreclr/{src => }/vm/debuginfostore.cpp (100%) rename src/coreclr/{src => }/vm/debuginfostore.h (100%) rename src/coreclr/{src => }/vm/decodemd.cpp (100%) rename src/coreclr/{src => }/vm/decodemd.h (100%) rename src/coreclr/{src => }/vm/delegateinfo.h (100%) rename src/coreclr/{src => }/vm/diagnosticserver.cpp (100%) rename src/coreclr/{src => }/vm/diagnosticserver.h (100%) rename src/coreclr/{src => }/vm/diagnosticsprotocol.h (100%) rename src/coreclr/{src => }/vm/disassembler.cpp (100%) rename src/coreclr/{src => }/vm/disassembler.h (100%) rename src/coreclr/{src => }/vm/dispatchinfo.cpp (100%) rename src/coreclr/{src => }/vm/dispatchinfo.h (100%) rename src/coreclr/{src => }/vm/dispparammarshaler.cpp (100%) rename src/coreclr/{src => }/vm/dispparammarshaler.h (100%) rename src/coreclr/{src => }/vm/dllimport.cpp (100%) rename src/coreclr/{src => }/vm/dllimport.h (100%) rename src/coreclr/{src => }/vm/dllimportcallback.cpp (100%) rename src/coreclr/{src => }/vm/dllimportcallback.h (100%) rename src/coreclr/{src => }/vm/domainfile.cpp (100%) rename src/coreclr/{src => }/vm/domainfile.h (100%) rename src/coreclr/{src => }/vm/domainfile.inl (100%) rename src/coreclr/{src => }/vm/dumpdiagnosticprotocolhelper.cpp (100%) rename src/coreclr/{src => }/vm/dumpdiagnosticprotocolhelper.h (100%) rename src/coreclr/{src => }/vm/dwbucketmanager.hpp (100%) rename src/coreclr/{src => }/vm/dwreport.cpp (100%) rename src/coreclr/{src => }/vm/dwreport.h (100%) rename src/coreclr/{src => }/vm/dynamicinterfacecastable.cpp (100%) rename src/coreclr/{src => }/vm/dynamicinterfacecastable.h (100%) rename src/coreclr/{src => }/vm/dynamicmethod.cpp (100%) rename src/coreclr/{src => }/vm/dynamicmethod.h (100%) rename src/coreclr/{src => }/vm/ecall.cpp (100%) rename src/coreclr/{src => }/vm/ecall.h (100%) rename src/coreclr/{src => }/vm/ecalllist.h (100%) rename src/coreclr/{src => }/vm/eeconfig.cpp (100%) rename src/coreclr/{src => }/vm/eeconfig.h (100%) rename src/coreclr/{src => }/vm/eecontract.cpp (100%) rename src/coreclr/{src => }/vm/eecontract.h (100%) rename src/coreclr/{src => }/vm/eedbginterface.h (100%) rename src/coreclr/{src => }/vm/eedbginterfaceimpl.cpp (100%) rename src/coreclr/{src => }/vm/eedbginterfaceimpl.h (100%) rename src/coreclr/{src => }/vm/eedbginterfaceimpl.inl (100%) rename src/coreclr/{src => }/vm/eehash.cpp (100%) rename src/coreclr/{src => }/vm/eehash.h (100%) rename src/coreclr/{src => }/vm/eehash.inl (100%) rename src/coreclr/{src => }/vm/eemessagebox.cpp (100%) rename src/coreclr/{src => }/vm/eemessagebox.h (100%) rename src/coreclr/{src => }/vm/eepolicy.cpp (100%) rename src/coreclr/{src => }/vm/eepolicy.h (100%) rename src/coreclr/{src => }/vm/eeprofinterfaces.h (100%) rename src/coreclr/{src => }/vm/eeprofinterfaces.inl (100%) rename src/coreclr/{src => }/vm/eetoprofinterfaceimpl.cpp (100%) rename src/coreclr/{src => }/vm/eetoprofinterfaceimpl.h (100%) rename src/coreclr/{src => }/vm/eetoprofinterfaceimpl.inl (100%) rename src/coreclr/{src => }/vm/eetoprofinterfacewrapper.inl (100%) rename src/coreclr/{src => }/vm/eetwain.cpp (100%) rename src/coreclr/{src => }/vm/encee.cpp (100%) rename src/coreclr/{src => }/vm/encee.h (100%) rename src/coreclr/{src => }/vm/eventing/CMakeLists.txt (94%) rename src/coreclr/{src => }/vm/eventing/EtwProvider/CMakeLists.txt (90%) rename src/coreclr/{src => }/vm/eventing/eventpipe/CMakeLists.txt (95%) rename src/coreclr/{src => }/vm/eventpipe.cpp (100%) rename src/coreclr/{src => }/vm/eventpipe.h (100%) rename src/coreclr/{src => }/vm/eventpipeblock.cpp (100%) rename src/coreclr/{src => }/vm/eventpipeblock.h (100%) rename src/coreclr/{src => }/vm/eventpipebuffer.cpp (100%) rename src/coreclr/{src => }/vm/eventpipebuffer.h (100%) rename src/coreclr/{src => }/vm/eventpipebuffermanager.cpp (100%) rename src/coreclr/{src => }/vm/eventpipebuffermanager.h (100%) rename src/coreclr/{src => }/vm/eventpipecommontypes.cpp (100%) rename src/coreclr/{src => }/vm/eventpipecommontypes.h (100%) rename src/coreclr/{src => }/vm/eventpipeconfiguration.cpp (100%) rename src/coreclr/{src => }/vm/eventpipeconfiguration.h (100%) rename src/coreclr/{src => }/vm/eventpipeevent.cpp (100%) rename src/coreclr/{src => }/vm/eventpipeevent.h (100%) rename src/coreclr/{src => }/vm/eventpipeeventinstance.cpp (100%) rename src/coreclr/{src => }/vm/eventpipeeventinstance.h (100%) rename src/coreclr/{src => }/vm/eventpipeeventpayload.cpp (100%) rename src/coreclr/{src => }/vm/eventpipeeventpayload.h (100%) rename src/coreclr/{src => }/vm/eventpipeeventsource.cpp (100%) rename src/coreclr/{src => }/vm/eventpipeeventsource.h (100%) rename src/coreclr/{src => }/vm/eventpipefile.cpp (100%) rename src/coreclr/{src => }/vm/eventpipefile.h (100%) rename src/coreclr/{src => }/vm/eventpipeinternal.cpp (100%) rename src/coreclr/{src => }/vm/eventpipeinternal.h (100%) rename src/coreclr/{src => }/vm/eventpipejsonfile.cpp (100%) rename src/coreclr/{src => }/vm/eventpipejsonfile.h (100%) rename src/coreclr/{src => }/vm/eventpipemetadatagenerator.cpp (100%) rename src/coreclr/{src => }/vm/eventpipemetadatagenerator.h (100%) rename src/coreclr/{src => }/vm/eventpipeprotocolhelper.cpp (100%) rename src/coreclr/{src => }/vm/eventpipeprotocolhelper.h (100%) rename src/coreclr/{src => }/vm/eventpipeprovider.cpp (100%) rename src/coreclr/{src => }/vm/eventpipeprovider.h (100%) rename src/coreclr/{src => }/vm/eventpipesession.cpp (100%) rename src/coreclr/{src => }/vm/eventpipesession.h (100%) rename src/coreclr/{src => }/vm/eventpipesessionprovider.cpp (100%) rename src/coreclr/{src => }/vm/eventpipesessionprovider.h (100%) rename src/coreclr/{src => }/vm/eventpipethread.cpp (100%) rename src/coreclr/{src => }/vm/eventpipethread.h (100%) rename src/coreclr/{src => }/vm/eventreporter.cpp (100%) rename src/coreclr/{src => }/vm/eventreporter.h (100%) rename src/coreclr/{src => }/vm/eventstore.cpp (100%) rename src/coreclr/{src => }/vm/eventstore.hpp (100%) rename src/coreclr/{src => }/vm/eventtrace.cpp (100%) rename src/coreclr/{src => }/vm/eventtrace.inl (100%) rename src/coreclr/{src => }/vm/eventtracepriv.h (100%) rename src/coreclr/{src => }/vm/excep.cpp (100%) rename src/coreclr/{src => }/vm/excep.h (100%) rename src/coreclr/{src => }/vm/exceptionhandling.cpp (100%) rename src/coreclr/{src => }/vm/exceptionhandling.h (100%) rename src/coreclr/{src => }/vm/exceptmacros.h (100%) rename src/coreclr/{src => }/vm/exinfo.cpp (100%) rename src/coreclr/{src => }/vm/exinfo.h (100%) rename src/coreclr/{src => }/vm/exstate.cpp (100%) rename src/coreclr/{src => }/vm/exstate.h (100%) rename src/coreclr/{src => }/vm/exstatecommon.h (100%) rename src/coreclr/{src => }/vm/fastserializableobject.h (100%) rename src/coreclr/{src => }/vm/fastserializer.cpp (100%) rename src/coreclr/{src => }/vm/fastserializer.h (100%) rename src/coreclr/{src => }/vm/fcall.cpp (100%) rename src/coreclr/{src => }/vm/fcall.h (100%) rename src/coreclr/{src => }/vm/field.cpp (100%) rename src/coreclr/{src => }/vm/field.h (100%) rename src/coreclr/{src => }/vm/fieldmarshaler.cpp (100%) rename src/coreclr/{src => }/vm/fieldmarshaler.h (100%) rename src/coreclr/{src => }/vm/finalizerthread.cpp (100%) rename src/coreclr/{src => }/vm/finalizerthread.h (100%) rename src/coreclr/{src => }/vm/formattype.cpp (100%) rename src/coreclr/{src => }/vm/fptrstubs.cpp (100%) rename src/coreclr/{src => }/vm/fptrstubs.h (100%) rename src/coreclr/{src => }/vm/frames.cpp (100%) rename src/coreclr/{src => }/vm/frames.h (100%) rename src/coreclr/{src => }/vm/gccover.cpp (100%) rename src/coreclr/{src => }/vm/gccover.h (100%) rename src/coreclr/{src => }/vm/gcdecode.cpp (100%) rename src/coreclr/{src => }/vm/gcdesc.h (100%) rename src/coreclr/{src => }/vm/gcenv.ee.common.cpp (100%) rename src/coreclr/{src => }/vm/gcenv.ee.cpp (100%) rename src/coreclr/{src => }/vm/gcenv.ee.h (100%) rename src/coreclr/{src => }/vm/gcenv.ee.standalone.cpp (100%) rename src/coreclr/{src => }/vm/gcenv.ee.static.cpp (100%) rename src/coreclr/{src => }/vm/gcenv.h (100%) rename src/coreclr/{src => }/vm/gcenv.interlocked.h (100%) rename src/coreclr/{src => }/vm/gcenv.interlocked.inl (100%) rename src/coreclr/{src => }/vm/gcenv.os.cpp (100%) rename src/coreclr/{src => }/vm/gcenv.os.h (100%) rename src/coreclr/{src => }/vm/gcenv.unix.inl (100%) rename src/coreclr/{src => }/vm/gcenv.windows.inl (100%) rename src/coreclr/{src => }/vm/gchandleutilities.cpp (100%) rename src/coreclr/{src => }/vm/gchandleutilities.h (100%) rename src/coreclr/{src => }/vm/gcheaphashtable.h (100%) rename src/coreclr/{src => }/vm/gcheaphashtable.inl (100%) rename src/coreclr/{src => }/vm/gcheaputilities.cpp (100%) rename src/coreclr/{src => }/vm/gcheaputilities.h (100%) rename src/coreclr/{src => }/vm/gchelpers.cpp (100%) rename src/coreclr/{src => }/vm/gchelpers.h (100%) rename src/coreclr/{src => }/vm/gchelpers.inl (100%) rename src/coreclr/{src => }/vm/gcinfodecoder.cpp (100%) rename src/coreclr/{src => }/vm/gcinterface.h (100%) rename src/coreclr/{src => }/vm/gcstress.h (100%) rename src/coreclr/{src => }/vm/gctoclreventsink.cpp (100%) rename src/coreclr/{src => }/vm/gctoclreventsink.h (100%) rename src/coreclr/{src => }/vm/gdbjit.cpp (100%) rename src/coreclr/{src => }/vm/gdbjit.h (100%) rename src/coreclr/{src => }/vm/gdbjithelpers.h (100%) rename src/coreclr/{src => }/vm/genanalysis.cpp (100%) rename src/coreclr/{src => }/vm/genanalysis.h (100%) rename src/coreclr/{src => }/vm/genericdict.cpp (100%) rename src/coreclr/{src => }/vm/genericdict.h (100%) rename src/coreclr/{src => }/vm/generics.cpp (100%) rename src/coreclr/{src => }/vm/generics.h (100%) rename src/coreclr/{src => }/vm/genmeth.cpp (100%) rename src/coreclr/{src => }/vm/gms.h (100%) rename src/coreclr/{src => }/vm/h2inc.pl (100%) rename src/coreclr/{src => }/vm/h2inc.ps1 (100%) rename src/coreclr/{src => }/vm/hash.cpp (100%) rename src/coreclr/{src => }/vm/hash.h (100%) rename src/coreclr/{src => }/vm/hillclimbing.cpp (100%) rename src/coreclr/{src => }/vm/hillclimbing.h (100%) rename src/coreclr/{src => }/vm/hosting.cpp (100%) rename src/coreclr/{src => }/vm/i386/AsmMacros.inc (100%) rename src/coreclr/{src => }/vm/i386/PInvokeStubs.asm (100%) rename src/coreclr/{src => }/vm/i386/RedirectedHandledJITCase.asm (100%) rename src/coreclr/{src => }/vm/i386/asmconstants.h (100%) rename src/coreclr/{src => }/vm/i386/asmhelpers.S (100%) rename src/coreclr/{src => }/vm/i386/asmhelpers.asm (100%) rename src/coreclr/{src => }/vm/i386/cgencpu.h (100%) rename src/coreclr/{src => }/vm/i386/cgenx86.cpp (100%) rename src/coreclr/{src => }/vm/i386/ehhelpers.S (100%) rename src/coreclr/{src => }/vm/i386/excepcpu.h (100%) rename src/coreclr/{src => }/vm/i386/excepx86.cpp (100%) rename src/coreclr/{src => }/vm/i386/gmsasm.S (100%) rename src/coreclr/{src => }/vm/i386/gmsasm.asm (100%) rename src/coreclr/{src => }/vm/i386/gmscpu.h (100%) rename src/coreclr/{src => }/vm/i386/gmsx86.cpp (100%) rename src/coreclr/{src => }/vm/i386/jithelp.S (100%) rename src/coreclr/{src => }/vm/i386/jithelp.asm (100%) rename src/coreclr/{src => }/vm/i386/jitinterfacex86.cpp (100%) rename src/coreclr/{src => }/vm/i386/pinvokestubs.S (100%) rename src/coreclr/{src => }/vm/i386/profiler.cpp (100%) rename src/coreclr/{src => }/vm/i386/stublinkerx86.cpp (100%) rename src/coreclr/{src => }/vm/i386/stublinkerx86.h (100%) rename src/coreclr/{src => }/vm/i386/umthunkstub.S (100%) rename src/coreclr/{src => }/vm/i386/unixstubs.cpp (100%) rename src/coreclr/{src => }/vm/i386/virtualcallstubcpu.hpp (100%) rename src/coreclr/{src => }/vm/ibclogger.cpp (100%) rename src/coreclr/{src => }/vm/ibclogger.h (100%) rename src/coreclr/{src => }/vm/ildump.h (100%) rename src/coreclr/{src => }/vm/ilinstrumentation.cpp (100%) rename src/coreclr/{src => }/vm/ilinstrumentation.h (100%) rename src/coreclr/{src => }/vm/ilmarshalers.cpp (100%) rename src/coreclr/{src => }/vm/ilmarshalers.h (100%) rename src/coreclr/{src => }/vm/ilstubcache.cpp (100%) rename src/coreclr/{src => }/vm/ilstubcache.h (100%) rename src/coreclr/{src => }/vm/ilstubresolver.cpp (100%) rename src/coreclr/{src => }/vm/ilstubresolver.h (100%) rename src/coreclr/{src => }/vm/inlinetracking.cpp (100%) rename src/coreclr/{src => }/vm/inlinetracking.h (100%) rename src/coreclr/{src => }/vm/instmethhash.cpp (100%) rename src/coreclr/{src => }/vm/instmethhash.h (100%) rename src/coreclr/{src => }/vm/interopconverter.cpp (100%) rename src/coreclr/{src => }/vm/interopconverter.h (100%) rename src/coreclr/{src => }/vm/interoplibinterface.cpp (100%) rename src/coreclr/{src => }/vm/interoplibinterface.h (100%) rename src/coreclr/{src => }/vm/interoputil.cpp (100%) rename src/coreclr/{src => }/vm/interoputil.h (100%) rename src/coreclr/{src => }/vm/interoputil.inl (100%) rename src/coreclr/{src => }/vm/interpreter.cpp (100%) rename src/coreclr/{src => }/vm/interpreter.h (100%) rename src/coreclr/{src => }/vm/interpreter.hpp (100%) rename src/coreclr/{src => }/vm/invokeutil.cpp (100%) rename src/coreclr/{src => }/vm/invokeutil.h (100%) rename src/coreclr/{src => }/vm/ipcstreamfactory.cpp (100%) rename src/coreclr/{src => }/vm/ipcstreamfactory.h (100%) rename src/coreclr/{src => }/vm/iterator_util.h (100%) rename src/coreclr/{src => }/vm/jithelpers.cpp (100%) rename src/coreclr/{src => }/vm/jithost.cpp (100%) rename src/coreclr/{src => }/vm/jithost.h (100%) rename src/coreclr/{src => }/vm/jitinterface.cpp (100%) rename src/coreclr/{src => }/vm/jitinterface.h (100%) rename src/coreclr/{src => }/vm/jitinterfacegen.cpp (100%) rename src/coreclr/{src => }/vm/listlock.h (100%) rename src/coreclr/{src => }/vm/loaderallocator.cpp (100%) rename src/coreclr/{src => }/vm/loaderallocator.hpp (100%) rename src/coreclr/{src => }/vm/loaderallocator.inl (100%) rename src/coreclr/{src => }/vm/lockedrangelist.h (100%) rename src/coreclr/{src => }/vm/managedmdimport.cpp (100%) rename src/coreclr/{src => }/vm/managedmdimport.hpp (100%) rename src/coreclr/{src => }/vm/marshalnative.cpp (100%) rename src/coreclr/{src => }/vm/marshalnative.h (100%) rename src/coreclr/{src => }/vm/memberload.cpp (100%) rename src/coreclr/{src => }/vm/memberload.h (100%) rename src/coreclr/{src => }/vm/metasig.h (100%) rename src/coreclr/{src => }/vm/method.cpp (100%) rename src/coreclr/{src => }/vm/method.hpp (100%) rename src/coreclr/{src => }/vm/method.inl (100%) rename src/coreclr/{src => }/vm/methoddescbackpatchinfo.cpp (100%) rename src/coreclr/{src => }/vm/methoddescbackpatchinfo.h (100%) rename src/coreclr/{src => }/vm/methodimpl.cpp (100%) rename src/coreclr/{src => }/vm/methodimpl.h (100%) rename src/coreclr/{src => }/vm/methoditer.cpp (100%) rename src/coreclr/{src => }/vm/methoditer.h (100%) rename src/coreclr/{src => }/vm/methodtable.cpp (100%) rename src/coreclr/{src => }/vm/methodtable.h (100%) rename src/coreclr/{src => }/vm/methodtable.inl (100%) rename src/coreclr/{src => }/vm/methodtablebuilder.cpp (100%) rename src/coreclr/{src => }/vm/methodtablebuilder.h (100%) rename src/coreclr/{src => }/vm/methodtablebuilder.inl (100%) rename src/coreclr/{src => }/vm/mlinfo.cpp (100%) rename src/coreclr/{src => }/vm/mlinfo.h (100%) rename src/coreclr/{src => }/vm/mngstdinterfaces.cpp (100%) rename src/coreclr/{src => }/vm/mngstdinterfaces.h (100%) rename src/coreclr/{src => }/vm/mngstditflist.h (100%) rename src/coreclr/{src => }/vm/mtypes.h (100%) rename src/coreclr/{src => }/vm/multicorejit.cpp (100%) rename src/coreclr/{src => }/vm/multicorejit.h (100%) rename src/coreclr/{src => }/vm/multicorejitimpl.h (100%) rename src/coreclr/{src => }/vm/multicorejitplayer.cpp (100%) rename src/coreclr/{src => }/vm/namespace.h (100%) rename src/coreclr/{src => }/vm/nativeeventsource.cpp (100%) rename src/coreclr/{src => }/vm/nativeeventsource.h (100%) rename src/coreclr/{src => }/vm/nativeformatreader.h (100%) rename src/coreclr/{src => }/vm/nativeimage.cpp (100%) rename src/coreclr/{src => }/vm/nativeimage.h (100%) rename src/coreclr/{src => }/vm/nativelibrarynative.cpp (100%) rename src/coreclr/{src => }/vm/nativelibrarynative.h (100%) rename src/coreclr/{src => }/vm/nativeoverlapped.cpp (100%) rename src/coreclr/{src => }/vm/nativeoverlapped.h (100%) rename src/coreclr/{src => }/vm/ngenhash.h (100%) rename src/coreclr/{src => }/vm/ngenhash.inl (100%) rename src/coreclr/{src => }/vm/notifyexternals.cpp (100%) rename src/coreclr/{src => }/vm/notifyexternals.h (100%) rename src/coreclr/{src => }/vm/object.cpp (100%) rename src/coreclr/{src => }/vm/object.h (100%) rename src/coreclr/{src => }/vm/object.inl (100%) rename src/coreclr/{src => }/vm/objectlist.cpp (100%) rename src/coreclr/{src => }/vm/objectlist.h (100%) rename src/coreclr/{src => }/vm/olecontexthelpers.cpp (100%) rename src/coreclr/{src => }/vm/olecontexthelpers.h (100%) rename src/coreclr/{src => }/vm/oletls.h (100%) rename src/coreclr/{src => }/vm/olevariant.cpp (100%) rename src/coreclr/{src => }/vm/olevariant.h (100%) rename src/coreclr/{src => }/vm/onstackreplacement.cpp (100%) rename src/coreclr/{src => }/vm/onstackreplacement.h (100%) rename src/coreclr/{src => }/vm/packedfields.inl (100%) rename src/coreclr/{src => }/vm/pefile.cpp (100%) rename src/coreclr/{src => }/vm/pefile.h (100%) rename src/coreclr/{src => }/vm/pefile.inl (100%) rename src/coreclr/{src => }/vm/peimage.cpp (100%) rename src/coreclr/{src => }/vm/peimage.h (100%) rename src/coreclr/{src => }/vm/peimage.inl (100%) rename src/coreclr/{src => }/vm/peimagelayout.cpp (100%) rename src/coreclr/{src => }/vm/peimagelayout.h (100%) rename src/coreclr/{src => }/vm/peimagelayout.inl (100%) rename src/coreclr/{src => }/vm/pendingload.cpp (100%) rename src/coreclr/{src => }/vm/pendingload.h (100%) rename src/coreclr/{src => }/vm/perfinfo.cpp (100%) rename src/coreclr/{src => }/vm/perfinfo.h (100%) rename src/coreclr/{src => }/vm/perfmap.cpp (100%) rename src/coreclr/{src => }/vm/perfmap.h (100%) rename src/coreclr/{src => }/vm/pgo.cpp (100%) rename src/coreclr/{src => }/vm/pgo.h (100%) rename src/coreclr/{src => }/vm/pinvokeoverride.cpp (100%) rename src/coreclr/{src => }/vm/precode.cpp (100%) rename src/coreclr/{src => }/vm/precode.h (100%) rename src/coreclr/{src => }/vm/prestub.cpp (100%) rename src/coreclr/{src => }/vm/processdiagnosticsprotocolhelper.cpp (100%) rename src/coreclr/{src => }/vm/processdiagnosticsprotocolhelper.h (100%) rename src/coreclr/{src => }/vm/profdetach.cpp (100%) rename src/coreclr/{src => }/vm/profdetach.h (100%) rename src/coreclr/{src => }/vm/profilerdiagnosticprotocolhelper.cpp (100%) rename src/coreclr/{src => }/vm/profilerdiagnosticprotocolhelper.h (100%) rename src/coreclr/{src => }/vm/profilermetadataemitvalidator.cpp (100%) rename src/coreclr/{src => }/vm/profilermetadataemitvalidator.h (100%) rename src/coreclr/{src => }/vm/profilingenumerators.cpp (100%) rename src/coreclr/{src => }/vm/profilingenumerators.h (100%) rename src/coreclr/{src => }/vm/profilinghelper.cpp (100%) rename src/coreclr/{src => }/vm/profilinghelper.h (100%) rename src/coreclr/{src => }/vm/profilinghelper.inl (100%) rename src/coreclr/{src => }/vm/proftoeeinterfaceimpl.cpp (100%) rename src/coreclr/{src => }/vm/proftoeeinterfaceimpl.h (100%) rename src/coreclr/{src => }/vm/proftoeeinterfaceimpl.inl (100%) rename src/coreclr/{src => }/vm/qcall.cpp (100%) rename src/coreclr/{src => }/vm/qcall.h (100%) rename src/coreclr/{src => }/vm/rcwrefcache.cpp (100%) rename src/coreclr/{src => }/vm/rcwrefcache.h (100%) rename src/coreclr/{src => }/vm/readytoruninfo.cpp (100%) rename src/coreclr/{src => }/vm/readytoruninfo.h (100%) rename src/coreclr/{src => }/vm/reflectclasswriter.cpp (100%) rename src/coreclr/{src => }/vm/reflectclasswriter.h (100%) rename src/coreclr/{src => }/vm/reflectioninvocation.cpp (100%) rename src/coreclr/{src => }/vm/reflectioninvocation.h (100%) rename src/coreclr/{src => }/vm/rejit.cpp (100%) rename src/coreclr/{src => }/vm/rejit.h (100%) rename src/coreclr/{src => }/vm/rejit.inl (100%) rename src/coreclr/{src => }/vm/rexcep.h (100%) rename src/coreclr/{src => }/vm/rtlfunctions.cpp (100%) rename src/coreclr/{src => }/vm/rtlfunctions.h (100%) rename src/coreclr/{src => }/vm/runtimecallablewrapper.cpp (100%) rename src/coreclr/{src => }/vm/runtimecallablewrapper.h (100%) rename src/coreclr/{src => }/vm/runtimeexceptionkind.h (100%) rename src/coreclr/{src => }/vm/runtimehandles.cpp (100%) rename src/coreclr/{src => }/vm/runtimehandles.h (100%) rename src/coreclr/{src => }/vm/safehandle.cpp (100%) rename src/coreclr/{src => }/vm/sampleprofiler.cpp (100%) rename src/coreclr/{src => }/vm/sampleprofiler.h (100%) rename src/coreclr/{src => }/vm/sigformat.cpp (100%) rename src/coreclr/{src => }/vm/sigformat.h (100%) rename src/coreclr/{src => }/vm/siginfo.cpp (100%) rename src/coreclr/{src => }/vm/siginfo.hpp (100%) rename src/coreclr/{src => }/vm/simplerwlock.cpp (100%) rename src/coreclr/{src => }/vm/simplerwlock.hpp (100%) rename src/coreclr/{src => }/vm/sourceline.cpp (100%) rename src/coreclr/{src => }/vm/sourceline.h (100%) rename src/coreclr/{src => }/vm/specialstatics.h (100%) rename src/coreclr/{src => }/vm/spinlock.cpp (100%) rename src/coreclr/{src => }/vm/spinlock.h (100%) rename src/coreclr/{src => }/vm/stackcontents.h (100%) rename src/coreclr/{src => }/vm/stackingallocator.cpp (100%) rename src/coreclr/{src => }/vm/stackingallocator.h (100%) rename src/coreclr/{src => }/vm/stacksampler.cpp (100%) rename src/coreclr/{src => }/vm/stacksampler.h (100%) rename src/coreclr/{src => }/vm/stackwalk.cpp (100%) rename src/coreclr/{src => }/vm/stackwalk.h (100%) rename src/coreclr/{src => }/vm/stackwalktypes.h (100%) rename src/coreclr/{src => }/vm/staticallocationhelpers.inl (100%) rename src/coreclr/{src => }/vm/stdinterfaces.cpp (100%) rename src/coreclr/{src => }/vm/stdinterfaces.h (100%) rename src/coreclr/{src => }/vm/stdinterfaces_internal.h (100%) rename src/coreclr/{src => }/vm/stdinterfaces_wrapper.cpp (100%) rename src/coreclr/{src => }/vm/stringliteralmap.cpp (100%) rename src/coreclr/{src => }/vm/stringliteralmap.h (100%) rename src/coreclr/{src => }/vm/stubcache.cpp (100%) rename src/coreclr/{src => }/vm/stubcache.h (100%) rename src/coreclr/{src => }/vm/stubgen.cpp (100%) rename src/coreclr/{src => }/vm/stubgen.h (100%) rename src/coreclr/{src => }/vm/stubhelpers.cpp (100%) rename src/coreclr/{src => }/vm/stubhelpers.h (100%) rename src/coreclr/{src => }/vm/stublink.cpp (100%) rename src/coreclr/{src => }/vm/stublink.h (100%) rename src/coreclr/{src => }/vm/stublink.inl (100%) rename src/coreclr/{src => }/vm/stubmgr.cpp (100%) rename src/coreclr/{src => }/vm/stubmgr.h (100%) rename src/coreclr/{src => }/vm/syncblk.cpp (100%) rename src/coreclr/{src => }/vm/syncblk.h (100%) rename src/coreclr/{src => }/vm/syncblk.inl (100%) rename src/coreclr/{src => }/vm/syncclean.cpp (100%) rename src/coreclr/{src => }/vm/syncclean.hpp (100%) rename src/coreclr/{src => }/vm/synch.cpp (100%) rename src/coreclr/{src => }/vm/synch.h (100%) rename src/coreclr/{src => }/vm/tailcallhelp.cpp (100%) rename src/coreclr/{src => }/vm/tailcallhelp.h (100%) rename src/coreclr/{src => }/vm/threaddebugblockinginfo.cpp (100%) rename src/coreclr/{src => }/vm/threaddebugblockinginfo.h (100%) rename src/coreclr/{src => }/vm/threadpoolrequest.cpp (100%) rename src/coreclr/{src => }/vm/threadpoolrequest.h (100%) rename src/coreclr/{src => }/vm/threads.cpp (100%) rename src/coreclr/{src => }/vm/threads.h (100%) rename src/coreclr/{src => }/vm/threads.inl (100%) rename src/coreclr/{src => }/vm/threadstatics.cpp (100%) rename src/coreclr/{src => }/vm/threadstatics.h (100%) rename src/coreclr/{src => }/vm/threadsuspend.cpp (100%) rename src/coreclr/{src => }/vm/threadsuspend.h (100%) rename src/coreclr/{src => }/vm/tieredcompilation.cpp (100%) rename src/coreclr/{src => }/vm/tieredcompilation.h (100%) rename src/coreclr/{src => }/vm/typectxt.cpp (100%) rename src/coreclr/{src => }/vm/typectxt.h (100%) rename src/coreclr/{src => }/vm/typedesc.cpp (100%) rename src/coreclr/{src => }/vm/typedesc.h (100%) rename src/coreclr/{src => }/vm/typedesc.inl (100%) rename src/coreclr/{src => }/vm/typeequivalencehash.cpp (100%) rename src/coreclr/{src => }/vm/typeequivalencehash.hpp (100%) rename src/coreclr/{src => }/vm/typehandle.cpp (100%) rename src/coreclr/{src => }/vm/typehandle.h (100%) rename src/coreclr/{src => }/vm/typehandle.inl (100%) rename src/coreclr/{src => }/vm/typehash.cpp (100%) rename src/coreclr/{src => }/vm/typehash.h (100%) rename src/coreclr/{src => }/vm/typehashingalgorithms.h (100%) rename src/coreclr/{src => }/vm/typekey.h (100%) rename src/coreclr/{src => }/vm/typeparse.cpp (100%) rename src/coreclr/{src => }/vm/typeparse.h (100%) rename src/coreclr/{src => }/vm/typestring.cpp (100%) rename src/coreclr/{src => }/vm/typestring.h (100%) rename src/coreclr/{src => }/vm/util.cpp (100%) rename src/coreclr/{src => }/vm/util.hpp (100%) rename src/coreclr/{src => }/vm/vars.cpp (100%) rename src/coreclr/{src => }/vm/vars.hpp (100%) rename src/coreclr/{src => }/vm/versionresilienthashcode.cpp (100%) rename src/coreclr/{src => }/vm/versionresilienthashcode.h (100%) rename src/coreclr/{src => }/vm/virtualcallstub.cpp (100%) rename src/coreclr/{src => }/vm/virtualcallstub.h (100%) rename src/coreclr/{src => }/vm/vmholder.h (100%) rename src/coreclr/{src => }/vm/weakreferencenative.cpp (100%) rename src/coreclr/{src => }/vm/weakreferencenative.h (100%) rename src/coreclr/{src => }/vm/wellknownattributes.h (100%) rename src/coreclr/{src => }/vm/win32threadpool.cpp (100%) rename src/coreclr/{src => }/vm/win32threadpool.h (100%) rename src/coreclr/{src => }/vm/wks/CMakeLists.txt (100%) rename src/coreclr/{src => }/vm/wrappers.h (100%) rename src/coreclr/{src => }/vm/yieldprocessornormalized.cpp (100%) rename src/coreclr/{src => }/vm/zapsig.cpp (100%) rename src/coreclr/{src => }/vm/zapsig.h (100%) rename src/coreclr/{src => }/zap/CMakeLists.txt (100%) rename src/coreclr/{src => }/zap/common.h (100%) rename src/coreclr/{src => }/zap/nativeformatwriter.cpp (100%) rename src/coreclr/{src => }/zap/nativeformatwriter.h (100%) rename src/coreclr/{src => }/zap/svcworker.cpp (100%) rename src/coreclr/{src => }/zap/zapcode.cpp (100%) rename src/coreclr/{src => }/zap/zapcode.h (100%) rename src/coreclr/{src => }/zap/zapheaders.cpp (100%) rename src/coreclr/{src => }/zap/zapheaders.h (100%) rename src/coreclr/{src => }/zap/zapimage.cpp (100%) rename src/coreclr/{src => }/zap/zapimage.h (100%) rename src/coreclr/{src => }/zap/zapimport.cpp (100%) rename src/coreclr/{src => }/zap/zapimport.h (100%) rename src/coreclr/{src => }/zap/zapinfo.cpp (100%) rename src/coreclr/{src => }/zap/zapinfo.h (100%) rename src/coreclr/{src => }/zap/zapinnerptr.cpp (100%) rename src/coreclr/{src => }/zap/zapinnerptr.h (100%) rename src/coreclr/{src => }/zap/zaplog.h (100%) rename src/coreclr/{src => }/zap/zapmetadata.cpp (100%) rename src/coreclr/{src => }/zap/zapmetadata.h (100%) rename src/coreclr/{src => }/zap/zapnodetype.h (100%) rename src/coreclr/{src => }/zap/zapper.cpp (100%) rename src/coreclr/{src => }/zap/zapperstats.cpp (100%) rename src/coreclr/{src => }/zap/zapperstats.h (100%) rename src/coreclr/{src => }/zap/zapreadytorun.cpp (100%) rename src/coreclr/{src => }/zap/zapreadytorun.h (100%) rename src/coreclr/{src => }/zap/zaprelocs.cpp (100%) rename src/coreclr/{src => }/zap/zaprelocs.h (100%) rename src/coreclr/{src => }/zap/zapwrapper.cpp (100%) rename src/coreclr/{src => }/zap/zapwrapper.h (100%) rename src/coreclr/{src => }/zap/zapwriter.cpp (100%) rename src/coreclr/{src => }/zap/zapwriter.h (100%) diff --git a/.gitignore b/.gitignore index 15c6de9d52edf..4b8673b352a77 100644 --- a/.gitignore +++ b/.gitignore @@ -84,6 +84,9 @@ dlldata.c *.svclog *.scc +# Special file +!src/coreclr/.nuget/_.pdb + # Chutzpah Test files _Chutzpah* @@ -133,9 +136,6 @@ AutoTest.Net/ # Web workbench (sass) .sass-cache/ -# BenchmarkDotNet -BenchmarkDotNet.Artifacts/ - # Installshield output folder [Ee]xpress/ @@ -295,10 +295,10 @@ prime/ stage/ # CLR prebuilt generated files -!src/pal/prebuilt/idl/*_i.c +!pal/prebuilt/idl/*_i.c # Valid 'debug' folder, that contains CLR debugging code -!src/debug +!debug # Ignore folders created by the CLR test build TestWrappers_x64_[d|D]ebug @@ -313,7 +313,6 @@ TestWrappers_arm_[r|R]elease TestWrappers_arm64_[d|D]ebug TestWrappers_arm64_[c|C]hecked TestWrappers_arm64_[r|R]elease -tests/src/common/test_runtime/project.json Vagrantfile .vagrant @@ -333,7 +332,7 @@ cross/android-rootfs/* *.pyc # JIT32 files -src/jit32 +jit32 # performance testing sandbox sandbox @@ -344,17 +343,23 @@ linker # Symbolic link for the shared portion of CoreLib to make grep/findstr work for runtime devs # # On Windows, make your own by running these commands from the repo root: -# mklink /D src\coreclr\src\System.Private.CoreLib\shared %CD%\src\libraries\System.Private.CoreLib\src -# mklink /D src\coreclr\src\System.Private.CoreLib\common %CD%\src\libraries\Common\src +# mklink /D src\coreclr\System.Private.CoreLib\shared %CD%\src\libraries\System.Private.CoreLib\src +# mklink /D src\coreclr\System.Private.CoreLib\common %CD%\src\libraries\Common\src # # On Unix, make your own by running these commands from the repo root: -# ln -s $(pwd)/src/libraries/System.Private.CoreLib/src src/coreclr/src/System.Private.CoreLib/shared -# ln -s $(pwd)/src/libraries/Common/src src/coreclr/src/System.Private.CoreLib/common -src/coreclr/src/System.Private.CoreLib/shared -src/coreclr/src/System.Private.CoreLib/common +# ln -s $(pwd)/src/libraries/System.Private.CoreLib/src src/coreclr/System.Private.CoreLib/shared +# ln -s $(pwd)/src/libraries/Common/src src/coreclr/System.Private.CoreLib/common +src/coreclr/System.Private.CoreLib/shared +src/coreclr/System.Private.CoreLib/common # The debug directory should not be ignored -!src/coreclr/src/debug +!src/coreclr/debug + +# Exceptions to the exclusions +!src/coreclr/.nuget/_.pdb +!src/coreclr/inc/obj/ +!src/coreclr/vm/.vscode/ +!src/coreclr/vm/.vscode/c_cpp_properties.json # Mono Wasm-specific excludes src/mono/wasm/emsdk/ diff --git a/Directory.Build.props b/Directory.Build.props index de7d5e8edcf91..a6eccc0abe14a 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -47,7 +47,7 @@ $([MSBuild]::NormalizeDirectory('$(LibrariesProjectRoot)', 'System.Private.CoreLib', 'src')) - $([MSBuild]::NormalizePath('$(CoreClrProjectRoot)', 'src', 'System.Private.CoreLib', 'System.Private.CoreLib.csproj')) + $([MSBuild]::NormalizePath('$(CoreClrProjectRoot)', 'System.Private.CoreLib', 'System.Private.CoreLib.csproj')) $([MSBuild]::NormalizePath('$(MonoProjectRoot)', 'netcore', 'System.Private.CoreLib', 'System.Private.CoreLib.csproj')) diff --git a/eng/Subsets.props b/eng/Subsets.props index aa65f6771b223..f7ee9dc16d5db 100644 --- a/eng/Subsets.props +++ b/eng/Subsets.props @@ -136,12 +136,12 @@ - + - @@ -166,7 +166,7 @@ - + @@ -178,17 +178,17 @@ - + - + - @@ -197,7 +197,7 @@ - + diff --git a/src/coreclr/src/.nuget/Directory.Build.props b/src/coreclr/.nuget/Directory.Build.props similarity index 100% rename from src/coreclr/src/.nuget/Directory.Build.props rename to src/coreclr/.nuget/Directory.Build.props diff --git a/src/coreclr/src/.nuget/Directory.Build.targets b/src/coreclr/.nuget/Directory.Build.targets similarity index 100% rename from src/coreclr/src/.nuget/Directory.Build.targets rename to src/coreclr/.nuget/Directory.Build.targets diff --git a/src/coreclr/src/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.pkgproj b/src/coreclr/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.pkgproj similarity index 100% rename from src/coreclr/src/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.pkgproj rename to src/coreclr/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.pkgproj diff --git a/src/coreclr/src/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.proj b/src/coreclr/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.proj similarity index 100% rename from src/coreclr/src/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.proj rename to src/coreclr/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.proj diff --git a/src/coreclr/src/.nuget/Microsoft.ILVerification/Microsoft.ILVerification.pkgproj b/src/coreclr/.nuget/Microsoft.ILVerification/Microsoft.ILVerification.pkgproj similarity index 100% rename from src/coreclr/src/.nuget/Microsoft.ILVerification/Microsoft.ILVerification.pkgproj rename to src/coreclr/.nuget/Microsoft.ILVerification/Microsoft.ILVerification.pkgproj diff --git a/src/coreclr/src/.nuget/Microsoft.NET.Sdk.IL/Microsoft.NET.Sdk.IL.pkgproj b/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/Microsoft.NET.Sdk.IL.pkgproj similarity index 100% rename from src/coreclr/src/.nuget/Microsoft.NET.Sdk.IL/Microsoft.NET.Sdk.IL.pkgproj rename to src/coreclr/.nuget/Microsoft.NET.Sdk.IL/Microsoft.NET.Sdk.IL.pkgproj diff --git a/src/coreclr/src/.nuget/Microsoft.NET.Sdk.IL/sdk/Sdk.props b/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/sdk/Sdk.props similarity index 100% rename from src/coreclr/src/.nuget/Microsoft.NET.Sdk.IL/sdk/Sdk.props rename to src/coreclr/.nuget/Microsoft.NET.Sdk.IL/sdk/Sdk.props diff --git a/src/coreclr/src/.nuget/Microsoft.NET.Sdk.IL/sdk/Sdk.targets b/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/sdk/Sdk.targets similarity index 100% rename from src/coreclr/src/.nuget/Microsoft.NET.Sdk.IL/sdk/Sdk.targets rename to src/coreclr/.nuget/Microsoft.NET.Sdk.IL/sdk/Sdk.targets diff --git a/src/coreclr/src/.nuget/Microsoft.NET.Sdk.IL/targets/Microsoft.NET.Sdk.IL.Common.targets b/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/targets/Microsoft.NET.Sdk.IL.Common.targets similarity index 100% rename from src/coreclr/src/.nuget/Microsoft.NET.Sdk.IL/targets/Microsoft.NET.Sdk.IL.Common.targets rename to src/coreclr/.nuget/Microsoft.NET.Sdk.IL/targets/Microsoft.NET.Sdk.IL.Common.targets diff --git a/src/coreclr/src/.nuget/Microsoft.NET.Sdk.IL/targets/Microsoft.NET.Sdk.IL.targets b/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/targets/Microsoft.NET.Sdk.IL.targets similarity index 100% rename from src/coreclr/src/.nuget/Microsoft.NET.Sdk.IL/targets/Microsoft.NET.Sdk.IL.targets rename to src/coreclr/.nuget/Microsoft.NET.Sdk.IL/targets/Microsoft.NET.Sdk.IL.targets diff --git a/src/coreclr/src/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.pkgproj b/src/coreclr/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.pkgproj similarity index 100% rename from src/coreclr/src/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.pkgproj rename to src/coreclr/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.pkgproj diff --git a/src/coreclr/src/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.proj b/src/coreclr/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.proj similarity index 100% rename from src/coreclr/src/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.proj rename to src/coreclr/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.proj diff --git a/src/coreclr/src/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.pkgproj b/src/coreclr/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.pkgproj similarity index 100% rename from src/coreclr/src/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.pkgproj rename to src/coreclr/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.pkgproj diff --git a/src/coreclr/src/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.proj b/src/coreclr/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.proj similarity index 100% rename from src/coreclr/src/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.proj rename to src/coreclr/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.proj diff --git a/src/coreclr/src/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.pkgproj b/src/coreclr/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.pkgproj similarity index 100% rename from src/coreclr/src/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.pkgproj rename to src/coreclr/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.pkgproj diff --git a/src/coreclr/src/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.proj b/src/coreclr/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.proj similarity index 100% rename from src/coreclr/src/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.proj rename to src/coreclr/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.proj diff --git a/src/coreclr/src/.nuget/_.pdb b/src/coreclr/.nuget/_.pdb similarity index 100% rename from src/coreclr/src/.nuget/_.pdb rename to src/coreclr/.nuget/_.pdb diff --git a/src/coreclr/src/.nuget/builds.targets b/src/coreclr/.nuget/builds.targets similarity index 100% rename from src/coreclr/src/.nuget/builds.targets rename to src/coreclr/.nuget/builds.targets diff --git a/src/coreclr/src/.nuget/coreclr-packages.proj b/src/coreclr/.nuget/coreclr-packages.proj similarity index 100% rename from src/coreclr/src/.nuget/coreclr-packages.proj rename to src/coreclr/.nuget/coreclr-packages.proj diff --git a/src/coreclr/src/.nuget/descriptions.json b/src/coreclr/.nuget/descriptions.json similarity index 100% rename from src/coreclr/src/.nuget/descriptions.json rename to src/coreclr/.nuget/descriptions.json diff --git a/src/coreclr/src/.nuget/dotnet-ilverify/DotnetToolSettings.xml b/src/coreclr/.nuget/dotnet-ilverify/DotnetToolSettings.xml similarity index 100% rename from src/coreclr/src/.nuget/dotnet-ilverify/DotnetToolSettings.xml rename to src/coreclr/.nuget/dotnet-ilverify/DotnetToolSettings.xml diff --git a/src/coreclr/src/.nuget/dotnet-ilverify/dotnet-ilverify.pkgproj b/src/coreclr/.nuget/dotnet-ilverify/dotnet-ilverify.pkgproj similarity index 100% rename from src/coreclr/src/.nuget/dotnet-ilverify/dotnet-ilverify.pkgproj rename to src/coreclr/.nuget/dotnet-ilverify/dotnet-ilverify.pkgproj diff --git a/src/coreclr/src/.nuget/optdata/Directory.Build.props b/src/coreclr/.nuget/optdata/Directory.Build.props similarity index 100% rename from src/coreclr/src/.nuget/optdata/Directory.Build.props rename to src/coreclr/.nuget/optdata/Directory.Build.props diff --git a/src/coreclr/src/.nuget/optdata/Directory.Build.targets b/src/coreclr/.nuget/optdata/Directory.Build.targets similarity index 100% rename from src/coreclr/src/.nuget/optdata/Directory.Build.targets rename to src/coreclr/.nuget/optdata/Directory.Build.targets diff --git a/src/coreclr/src/.nuget/optdata/optdata.csproj b/src/coreclr/.nuget/optdata/optdata.csproj similarity index 100% rename from src/coreclr/src/.nuget/optdata/optdata.csproj rename to src/coreclr/.nuget/optdata/optdata.csproj diff --git a/src/coreclr/src/.nuget/packageIndex.json b/src/coreclr/.nuget/packageIndex.json similarity index 100% rename from src/coreclr/src/.nuget/packageIndex.json rename to src/coreclr/.nuget/packageIndex.json diff --git a/src/coreclr/src/.nuget/packaging.props b/src/coreclr/.nuget/packaging.props similarity index 100% rename from src/coreclr/src/.nuget/packaging.props rename to src/coreclr/.nuget/packaging.props diff --git a/src/coreclr/src/.nuget/versioning.targets b/src/coreclr/.nuget/versioning.targets similarity index 100% rename from src/coreclr/src/.nuget/versioning.targets rename to src/coreclr/.nuget/versioning.targets diff --git a/src/coreclr/CMakeLists.txt b/src/coreclr/CMakeLists.txt index b7cb9e93e69c1..2b0bf50d1c6b5 100644 --- a/src/coreclr/CMakeLists.txt +++ b/src/coreclr/CMakeLists.txt @@ -19,11 +19,11 @@ endif (MSVC) # Set commonly used directory names set(CLR_DIR ${CMAKE_CURRENT_SOURCE_DIR}) -set(VM_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/vm) -set(GENERATED_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/src/inc) +set(VM_DIR ${CMAKE_CURRENT_SOURCE_DIR}/vm) +set(GENERATED_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/inc) set(GENERATED_EVENTING_DIR ${CMAKE_CURRENT_BINARY_DIR}/Eventing) set(VERSION_FILE_PATH "${CMAKE_BINARY_DIR}/version.c") -set(PAL_REDEFINES_FILE ${CMAKE_CURRENT_SOURCE_DIR}/src/dlls/mscordac/palredefines.S) +set(PAL_REDEFINES_FILE ${CMAKE_CURRENT_SOURCE_DIR}/dlls/mscordac/palredefines.S) # Avoid logging when skipping up-to-date copies set(CMAKE_INSTALL_MESSAGE LAZY) @@ -79,24 +79,24 @@ if(CLR_CMAKE_HOST_UNIX) endif() endif() - add_subdirectory(src/pal) - add_subdirectory(src/hosts) + add_subdirectory(pal) + add_subdirectory(hosts) else(CLR_CMAKE_HOST_UNIX) if(CLR_CMAKE_TARGET_UNIX) - add_subdirectory(src/pal/src/libunwind) + add_subdirectory(pal/src/libunwind) endif(CLR_CMAKE_TARGET_UNIX) endif(CLR_CMAKE_HOST_UNIX) # Add this subdir. We install the headers for the jit. -add_subdirectory(src/pal/prebuilt/inc) +add_subdirectory(pal/prebuilt/inc) -add_subdirectory(src/debug/debug-pal) +add_subdirectory(debug/debug-pal) if(CLR_CMAKE_TARGET_WIN32 AND CLR_CMAKE_BUILD_SUBSET_RUNTIME) - add_subdirectory(src/gc/sample) + add_subdirectory(gc/sample) endif() -add_subdirectory(src/tools/aot/jitinterface) +add_subdirectory(tools/aot/jitinterface) # Above projects do not build with these compile options # All of the compiler options are specified in file compileoptions.cmake @@ -116,23 +116,123 @@ include(clrdefinitions.cmake) # Include directory directives #------------------------------------- # Include the basic prebuilt headers - required for getting fileversion resource details. -include_directories("src/pal/prebuilt/inc") +include_directories("pal/prebuilt/inc") include_directories("../../artifacts/obj/coreclr") if(FEATURE_STANDALONE_GC) add_definitions(-DFEATURE_STANDALONE_GC) if (CLR_CMAKE_BUILD_SUBSET_RUNTIME) - add_subdirectory(src/gc) + add_subdirectory(gc) endif (CLR_CMAKE_BUILD_SUBSET_RUNTIME) endif(FEATURE_STANDALONE_GC) if (CLR_CMAKE_HOST_UNIX) - include_directories("src/pal/inc") - include_directories("src/pal/inc/rt") - include_directories("src/pal/src/safecrt") + include_directories("pal/inc") + include_directories("pal/inc/rt") + include_directories("pal/src/safecrt") endif (CLR_CMAKE_HOST_UNIX) #------------------------------ -# Add Product Directory +# Add Product Directories #------------------------------ -add_subdirectory(src) +include_directories("inc") +include_directories("debug/inc") +include_directories("debug/inc/${ARCH_SOURCES_DIR}") +include_directories("debug/inc/dump") +include_directories("md/inc") +include_directories("classlibnative/bcltype") +include_directories("classlibnative/cryptography") +include_directories("classlibnative/inc") +include_directories("${GENERATED_INCLUDE_DIR}") +include_directories("hosts/inc") + +if(CLR_CMAKE_TARGET_WIN32 AND FEATURE_EVENT_TRACE) + include_directories("${GENERATED_INCLUDE_DIR}/etw") +endif(CLR_CMAKE_TARGET_WIN32 AND FEATURE_EVENT_TRACE) + +add_subdirectory(debug/dbgutil) + +if(CLR_CMAKE_HOST_UNIX) + if(CLR_CMAKE_BUILD_SUBSET_RUNTIME) + if(CLR_CMAKE_HOST_OSX OR (CLR_CMAKE_HOST_LINUX AND NOT CLR_CMAKE_HOST_UNIX_X86 AND NOT CLR_CMAKE_HOST_ANDROID)) + add_subdirectory(debug/createdump) + endif(CLR_CMAKE_HOST_OSX OR (CLR_CMAKE_HOST_LINUX AND NOT CLR_CMAKE_HOST_UNIX_X86 AND NOT CLR_CMAKE_HOST_ANDROID)) + endif(CLR_CMAKE_BUILD_SUBSET_RUNTIME) + + # Include the dummy c++ include files + include_directories("pal/inc/rt/cpp") + + # This prevents inclusion of standard C compiler headers + add_compile_options(-nostdinc) + + set (NATIVE_RESOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/nativeresources) + include_directories(${NATIVE_RESOURCE_DIR}) + set (RC_TO_CPP ${NATIVE_RESOURCE_DIR}/rctocpp.awk) + set (PROCESS_RC ${NATIVE_RESOURCE_DIR}/processrc.awk) + set (RESOURCE_STRING_HEADER_DIR ${NATIVE_RESOURCE_DIR}) + + # Create a command to create a C++ source file containing an array of + # NativeStringResource structs which represent the information from a + # given Windows .rc file. The target C++ file path is returned in the + # variable specified by the TARGET_FILE parameter. + function(build_resources SOURCE TARGET_NAME TARGET_FILE) + + set(PREPROCESSED_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}.rc.i) + + preprocess_file(${SOURCE} ${PREPROCESSED_SOURCE}) + + set(RESOURCE_ENTRY_ARRAY_CPP ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}.cpp) + + add_custom_command( + OUTPUT ${RESOURCE_ENTRY_ARRAY_CPP} + # Convert the preprocessed .rc file to a C++ file which will be used to make a static lib. + COMMAND ${AWK} -v name=${TARGET_NAME} -f ${RC_TO_CPP} -f ${PROCESS_RC} ${PREPROCESSED_SOURCE} >${RESOURCE_ENTRY_ARRAY_CPP} + DEPENDS ${PREPROCESSED_SOURCE} ${RC_TO_CPP} ${PROCESS_RC} + ) + + include_directories(${RESOURCE_STRING_HEADER_DIR}) + set(${TARGET_FILE} ${RESOURCE_ENTRY_ARRAY_CPP} PARENT_SCOPE) + + endfunction() + + add_subdirectory(nativeresources) +endif(CLR_CMAKE_HOST_UNIX) + +if ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 10.0)) + add_compile_options(-Wno-error=stringop-overflow=) +endif() + +add_subdirectory(utilcode) +add_subdirectory(gcinfo) +add_subdirectory(jit) +add_subdirectory(inc) + +if(CLR_CMAKE_HOST_UNIX) + add_subdirectory(palrt) +endif(CLR_CMAKE_HOST_UNIX) + +add_subdirectory(vm) +if (CLR_CMAKE_BUILD_SUBSET_RUNTIME) + add_subdirectory(md) + add_subdirectory(debug) + add_subdirectory(binder) + add_subdirectory(classlibnative) + add_subdirectory(dlls) + add_subdirectory(ToolBox) + add_subdirectory(tools) + add_subdirectory(unwinder) + add_subdirectory(ildasm) + add_subdirectory(ilasm) + add_subdirectory(interop) + + if(CLR_CMAKE_HOST_WIN32) + add_subdirectory(hosts) + endif(CLR_CMAKE_HOST_WIN32) +else() + if(CLR_CMAKE_HOST_UNIX) + # this is needed to compile the jit on unix platforms. + # When the runtime subset is compiled, the add_subdirectory(dlls) above + # brings the mscorrc library into the build graph + add_subdirectory(dlls/mscorrc) + endif(CLR_CMAKE_HOST_UNIX) +endif(CLR_CMAKE_BUILD_SUBSET_RUNTIME) diff --git a/src/coreclr/Directory.Build.targets b/src/coreclr/Directory.Build.targets index 9a0b6cfefe999..09081a3d6129f 100644 --- a/src/coreclr/Directory.Build.targets +++ b/src/coreclr/Directory.Build.targets @@ -12,4 +12,24 @@ $(ProductVersion) $(InformationalVersion)-$(VersionSuffix) + + + + + + + + + + + + + + + diff --git a/src/coreclr/src/System.Private.CoreLib/CreateRuntimeRootILLinkDescriptorFile.targets b/src/coreclr/System.Private.CoreLib/CreateRuntimeRootILLinkDescriptorFile.targets similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/CreateRuntimeRootILLinkDescriptorFile.targets rename to src/coreclr/System.Private.CoreLib/CreateRuntimeRootILLinkDescriptorFile.targets diff --git a/src/coreclr/src/System.Private.CoreLib/MembersMustExist.AnalyzerData b/src/coreclr/System.Private.CoreLib/MembersMustExist.AnalyzerData similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/MembersMustExist.AnalyzerData rename to src/coreclr/System.Private.CoreLib/MembersMustExist.AnalyzerData diff --git a/src/coreclr/src/System.Private.CoreLib/System.Private.CoreLib.csproj b/src/coreclr/System.Private.CoreLib/System.Private.CoreLib.csproj similarity index 98% rename from src/coreclr/src/System.Private.CoreLib/System.Private.CoreLib.csproj rename to src/coreclr/System.Private.CoreLib/System.Private.CoreLib.csproj index 1b227e0521ddb..06390a99641df 100644 --- a/src/coreclr/src/System.Private.CoreLib/System.Private.CoreLib.csproj +++ b/src/coreclr/System.Private.CoreLib/System.Private.CoreLib.csproj @@ -104,7 +104,7 @@ - + @@ -320,8 +320,8 @@ - - + + src\System\Diagnostics\Eventing\Generated\NativeRuntimeEventSource.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/System.Private.CoreLib.sln b/src/coreclr/System.Private.CoreLib/System.Private.CoreLib.sln similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/System.Private.CoreLib.sln rename to src/coreclr/System.Private.CoreLib/System.Private.CoreLib.sln diff --git a/src/coreclr/src/System.Private.CoreLib/Tools/GenUnicodeProp/CategoryCasingInfo.cs b/src/coreclr/System.Private.CoreLib/Tools/GenUnicodeProp/CategoryCasingInfo.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/Tools/GenUnicodeProp/CategoryCasingInfo.cs rename to src/coreclr/System.Private.CoreLib/Tools/GenUnicodeProp/CategoryCasingInfo.cs diff --git a/src/coreclr/src/System.Private.CoreLib/Tools/GenUnicodeProp/DataTable.cs b/src/coreclr/System.Private.CoreLib/Tools/GenUnicodeProp/DataTable.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/Tools/GenUnicodeProp/DataTable.cs rename to src/coreclr/System.Private.CoreLib/Tools/GenUnicodeProp/DataTable.cs diff --git a/src/coreclr/src/System.Private.CoreLib/Tools/GenUnicodeProp/GenUnicodeProp.csproj b/src/coreclr/System.Private.CoreLib/Tools/GenUnicodeProp/GenUnicodeProp.csproj similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/Tools/GenUnicodeProp/GenUnicodeProp.csproj rename to src/coreclr/System.Private.CoreLib/Tools/GenUnicodeProp/GenUnicodeProp.csproj diff --git a/src/coreclr/src/System.Private.CoreLib/Tools/GenUnicodeProp/NumericGraphemeInfo.cs b/src/coreclr/System.Private.CoreLib/Tools/GenUnicodeProp/NumericGraphemeInfo.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/Tools/GenUnicodeProp/NumericGraphemeInfo.cs rename to src/coreclr/System.Private.CoreLib/Tools/GenUnicodeProp/NumericGraphemeInfo.cs diff --git a/src/coreclr/src/System.Private.CoreLib/Tools/GenUnicodeProp/Program.cs b/src/coreclr/System.Private.CoreLib/Tools/GenUnicodeProp/Program.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/Tools/GenUnicodeProp/Program.cs rename to src/coreclr/System.Private.CoreLib/Tools/GenUnicodeProp/Program.cs diff --git a/src/coreclr/src/System.Private.CoreLib/Tools/GenUnicodeProp/Readme.md b/src/coreclr/System.Private.CoreLib/Tools/GenUnicodeProp/Readme.md similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/Tools/GenUnicodeProp/Readme.md rename to src/coreclr/System.Private.CoreLib/Tools/GenUnicodeProp/Readme.md diff --git a/src/coreclr/src/System.Private.CoreLib/Tools/GenUnicodeProp/StrongBidiCategory.cs b/src/coreclr/System.Private.CoreLib/Tools/GenUnicodeProp/StrongBidiCategory.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/Tools/GenUnicodeProp/StrongBidiCategory.cs rename to src/coreclr/System.Private.CoreLib/Tools/GenUnicodeProp/StrongBidiCategory.cs diff --git a/src/coreclr/src/System.Private.CoreLib/Tools/GenUnicodeProp/TableLevels.cs b/src/coreclr/System.Private.CoreLib/Tools/GenUnicodeProp/TableLevels.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/Tools/GenUnicodeProp/TableLevels.cs rename to src/coreclr/System.Private.CoreLib/Tools/GenUnicodeProp/TableLevels.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/ILLink/ILLinkTrim.xml b/src/coreclr/System.Private.CoreLib/src/ILLink/ILLinkTrim.xml similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/ILLink/ILLinkTrim.xml rename to src/coreclr/System.Private.CoreLib/src/ILLink/ILLinkTrim.xml diff --git a/src/coreclr/src/System.Private.CoreLib/src/Internal/Runtime/InteropServices/ComActivator.cs b/src/coreclr/System.Private.CoreLib/src/Internal/Runtime/InteropServices/ComActivator.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/Internal/Runtime/InteropServices/ComActivator.cs rename to src/coreclr/System.Private.CoreLib/src/Internal/Runtime/InteropServices/ComActivator.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/Internal/Runtime/InteropServices/ComponentActivator.cs b/src/coreclr/System.Private.CoreLib/src/Internal/Runtime/InteropServices/ComponentActivator.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/Internal/Runtime/InteropServices/ComponentActivator.cs rename to src/coreclr/System.Private.CoreLib/src/Internal/Runtime/InteropServices/ComponentActivator.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/Internal/Runtime/InteropServices/InMemoryAssemblyLoader.cs b/src/coreclr/System.Private.CoreLib/src/Internal/Runtime/InteropServices/InMemoryAssemblyLoader.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/Internal/Runtime/InteropServices/InMemoryAssemblyLoader.cs rename to src/coreclr/System.Private.CoreLib/src/Internal/Runtime/InteropServices/InMemoryAssemblyLoader.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/Internal/Runtime/InteropServices/IsolatedComponentLoadContext.cs b/src/coreclr/System.Private.CoreLib/src/Internal/Runtime/InteropServices/IsolatedComponentLoadContext.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/Internal/Runtime/InteropServices/IsolatedComponentLoadContext.cs rename to src/coreclr/System.Private.CoreLib/src/Internal/Runtime/InteropServices/IsolatedComponentLoadContext.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/Interop/Unix/Interop.Libraries.cs b/src/coreclr/System.Private.CoreLib/src/Interop/Unix/Interop.Libraries.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/Interop/Unix/Interop.Libraries.cs rename to src/coreclr/System.Private.CoreLib/src/Interop/Unix/Interop.Libraries.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/Microsoft/Win32/OAVariantLib.cs b/src/coreclr/System.Private.CoreLib/src/Microsoft/Win32/OAVariantLib.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/Microsoft/Win32/OAVariantLib.cs rename to src/coreclr/System.Private.CoreLib/src/Microsoft/Win32/OAVariantLib.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/ArgIterator.cs b/src/coreclr/System.Private.CoreLib/src/System/ArgIterator.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/ArgIterator.cs rename to src/coreclr/System.Private.CoreLib/src/System/ArgIterator.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Array.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Array.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Array.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Array.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Attribute.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Attribute.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Attribute.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Attribute.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/BadImageFormatException.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/BadImageFormatException.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/BadImageFormatException.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/BadImageFormatException.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Buffer.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Buffer.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Buffer.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Buffer.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/CLRConfig.cs b/src/coreclr/System.Private.CoreLib/src/System/CLRConfig.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/CLRConfig.cs rename to src/coreclr/System.Private.CoreLib/src/System/CLRConfig.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Collections/EmptyReadOnlyDictionaryInternal.cs b/src/coreclr/System.Private.CoreLib/src/System/Collections/EmptyReadOnlyDictionaryInternal.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Collections/EmptyReadOnlyDictionaryInternal.cs rename to src/coreclr/System.Private.CoreLib/src/System/Collections/EmptyReadOnlyDictionaryInternal.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Collections/Generic/ArraySortHelper.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Collections/Generic/ArraySortHelper.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Collections/Generic/ArraySortHelper.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Collections/Generic/ArraySortHelper.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Collections/Generic/Comparer.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Collections/Generic/Comparer.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Collections/Generic/Comparer.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Collections/Generic/Comparer.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Collections/Generic/ComparerHelpers.cs b/src/coreclr/System.Private.CoreLib/src/System/Collections/Generic/ComparerHelpers.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Collections/Generic/ComparerHelpers.cs rename to src/coreclr/System.Private.CoreLib/src/System/Collections/Generic/ComparerHelpers.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Collections/Generic/EqualityComparer.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Collections/Generic/EqualityComparer.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Collections/Generic/EqualityComparer.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Collections/Generic/EqualityComparer.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Collections/ObjectModel/ReadOnlyDictionary.cs b/src/coreclr/System.Private.CoreLib/src/System/Collections/ObjectModel/ReadOnlyDictionary.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Collections/ObjectModel/ReadOnlyDictionary.cs rename to src/coreclr/System.Private.CoreLib/src/System/Collections/ObjectModel/ReadOnlyDictionary.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Currency.cs b/src/coreclr/System.Private.CoreLib/src/System/Currency.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Currency.cs rename to src/coreclr/System.Private.CoreLib/src/System/Currency.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/DateTime.Unix.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/DateTime.Unix.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/DateTime.Unix.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/DateTime.Unix.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/DateTime.Windows.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/DateTime.Windows.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/DateTime.Windows.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/DateTime.Windows.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Delegate.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Delegate.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Delegate.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Delegate.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/Debugger.cs b/src/coreclr/System.Private.CoreLib/src/System/Diagnostics/Debugger.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/Debugger.cs rename to src/coreclr/System.Private.CoreLib/src/System/Diagnostics/Debugger.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/EditAndContinueHelper.cs b/src/coreclr/System.Private.CoreLib/src/System/Diagnostics/EditAndContinueHelper.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/EditAndContinueHelper.cs rename to src/coreclr/System.Private.CoreLib/src/System/Diagnostics/EditAndContinueHelper.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/Eventing/EventPipe.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Diagnostics/Eventing/EventPipe.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/Eventing/EventPipe.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Diagnostics/Eventing/EventPipe.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/ICustomDebuggerNotification.cs b/src/coreclr/System.Private.CoreLib/src/System/Diagnostics/ICustomDebuggerNotification.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/ICustomDebuggerNotification.cs rename to src/coreclr/System.Private.CoreLib/src/System/Diagnostics/ICustomDebuggerNotification.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/StackFrame.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Diagnostics/StackFrame.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/StackFrame.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Diagnostics/StackFrame.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/StackFrameHelper.cs b/src/coreclr/System.Private.CoreLib/src/System/Diagnostics/StackFrameHelper.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/StackFrameHelper.cs rename to src/coreclr/System.Private.CoreLib/src/System/Diagnostics/StackFrameHelper.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/StackTrace.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Diagnostics/StackTrace.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/StackTrace.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Diagnostics/StackTrace.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/SymbolStore/ISymWriter.cs b/src/coreclr/System.Private.CoreLib/src/System/Diagnostics/SymbolStore/ISymWriter.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/SymbolStore/ISymWriter.cs rename to src/coreclr/System.Private.CoreLib/src/System/Diagnostics/SymbolStore/ISymWriter.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/SymbolStore/SymAddressKind.cs b/src/coreclr/System.Private.CoreLib/src/System/Diagnostics/SymbolStore/SymAddressKind.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/SymbolStore/SymAddressKind.cs rename to src/coreclr/System.Private.CoreLib/src/System/Diagnostics/SymbolStore/SymAddressKind.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/SymbolStore/Token.cs b/src/coreclr/System.Private.CoreLib/src/System/Diagnostics/SymbolStore/Token.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Diagnostics/SymbolStore/Token.cs rename to src/coreclr/System.Private.CoreLib/src/System/Diagnostics/SymbolStore/Token.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Enum.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Enum.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Enum.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Enum.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Environment.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Environment.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Environment.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Environment.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Exception.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Exception.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Exception.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Exception.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/GC.cs b/src/coreclr/System.Private.CoreLib/src/System/GC.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/GC.cs rename to src/coreclr/System.Private.CoreLib/src/System/GC.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/IO/FileLoadException.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/IO/FileLoadException.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/IO/FileLoadException.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/IO/FileLoadException.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/IO/FileNotFoundException.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/IO/FileNotFoundException.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/IO/FileNotFoundException.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/IO/FileNotFoundException.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/IO/Stream.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/IO/Stream.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/IO/Stream.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/IO/Stream.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Math.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Math.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Math.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Math.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/MathF.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/MathF.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/MathF.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/MathF.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/MissingMemberException.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/MissingMemberException.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/MissingMemberException.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/MissingMemberException.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/MulticastDelegate.cs b/src/coreclr/System.Private.CoreLib/src/System/MulticastDelegate.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/MulticastDelegate.cs rename to src/coreclr/System.Private.CoreLib/src/System/MulticastDelegate.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Object.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Object.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Object.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Object.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/OleAutBinder.cs b/src/coreclr/System.Private.CoreLib/src/System/OleAutBinder.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/OleAutBinder.cs rename to src/coreclr/System.Private.CoreLib/src/System/OleAutBinder.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Assembly.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Assembly.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Assembly.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Assembly.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/AssemblyName.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/AssemblyName.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/AssemblyName.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/AssemblyName.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Associates.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Associates.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Associates.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Associates.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/ConstructorInfo.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/ConstructorInfo.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/ConstructorInfo.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/ConstructorInfo.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/CustomAttribute.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/CustomAttribute.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/CustomAttribute.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/CustomAttribute.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/AssemblyBuilder.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/AssemblyBuilder.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/AssemblyBuilder.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/AssemblyBuilder.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/AssemblyBuilderData.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/AssemblyBuilderData.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/AssemblyBuilderData.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/AssemblyBuilderData.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/ConstructorBuilder.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/ConstructorBuilder.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/ConstructorBuilder.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/ConstructorBuilder.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/CustomAttributeBuilder.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/CustomAttributeBuilder.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/CustomAttributeBuilder.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/CustomAttributeBuilder.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/DynamicILGenerator.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/DynamicILGenerator.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/DynamicILGenerator.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/DynamicILGenerator.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/EnumBuilder.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/EnumBuilder.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/EnumBuilder.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/EnumBuilder.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/EventBuilder.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/EventBuilder.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/EventBuilder.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/EventBuilder.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/FieldBuilder.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/FieldBuilder.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/FieldBuilder.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/FieldBuilder.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/GenericTypeParameterBuilder.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/GenericTypeParameterBuilder.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/GenericTypeParameterBuilder.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/GenericTypeParameterBuilder.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/ILGenerator.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/ILGenerator.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/ILGenerator.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/ILGenerator.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/ISymWrapperCore.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/ISymWrapperCore.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/ISymWrapperCore.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/ISymWrapperCore.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/LocalBuilder.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/LocalBuilder.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/LocalBuilder.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/LocalBuilder.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/MethodBuilder.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/MethodBuilder.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/MethodBuilder.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/MethodBuilder.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/MethodBuilderInstantiation.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/MethodBuilderInstantiation.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/MethodBuilderInstantiation.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/MethodBuilderInstantiation.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/ModuleBuilder.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/ModuleBuilder.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/ModuleBuilder.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/ModuleBuilder.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/ModuleBuilderData.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/ModuleBuilderData.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/ModuleBuilderData.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/ModuleBuilderData.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/ParameterBuilder.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/ParameterBuilder.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/ParameterBuilder.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/ParameterBuilder.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/PropertyBuilder.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/PropertyBuilder.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/PropertyBuilder.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/PropertyBuilder.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/SignatureHelper.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/SignatureHelper.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/SignatureHelper.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/SignatureHelper.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/SymbolMethod.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/SymbolMethod.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/SymbolMethod.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/SymbolMethod.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/SymbolType.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/SymbolType.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/SymbolType.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/SymbolType.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilder.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilder.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilder.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilder.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilderInstantiation.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilderInstantiation.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilderInstantiation.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilderInstantiation.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/XXXOnTypeBuilderInstantiation.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/XXXOnTypeBuilderInstantiation.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/XXXOnTypeBuilderInstantiation.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/XXXOnTypeBuilderInstantiation.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/FieldInfo.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/FieldInfo.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/FieldInfo.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/FieldInfo.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/INVOCATION_FLAGS.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/INVOCATION_FLAGS.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/INVOCATION_FLAGS.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/INVOCATION_FLAGS.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/LoaderAllocator.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/LoaderAllocator.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/LoaderAllocator.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/LoaderAllocator.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/MdConstant.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/MdConstant.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/MdConstant.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/MdConstant.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/MdFieldInfo.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/MdFieldInfo.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/MdFieldInfo.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/MdFieldInfo.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/MdImport.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/MdImport.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/MdImport.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/MdImport.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/MemberInfo.Internal.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/MemberInfo.Internal.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/MemberInfo.Internal.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/MemberInfo.Internal.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Metadata/AssemblyExtensions.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Metadata/AssemblyExtensions.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Metadata/AssemblyExtensions.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/Metadata/AssemblyExtensions.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/MethodBase.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/MethodBase.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/MethodBase.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/MethodBase.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RtFieldInfo.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/RtFieldInfo.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RtFieldInfo.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/RtFieldInfo.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeConstructorInfo.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeConstructorInfo.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeConstructorInfo.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeConstructorInfo.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeEventInfo.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeEventInfo.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeEventInfo.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeEventInfo.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeExceptionHandlingClause.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeExceptionHandlingClause.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeExceptionHandlingClause.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeExceptionHandlingClause.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeLocalVariableInfo.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeLocalVariableInfo.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeLocalVariableInfo.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeLocalVariableInfo.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeMethodBody.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeMethodBody.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeMethodBody.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeMethodBody.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeModule.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeModule.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeModule.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeModule.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeParameterInfo.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeParameterInfo.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeParameterInfo.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeParameterInfo.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimePropertyInfo.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimePropertyInfo.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimePropertyInfo.cs rename to src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimePropertyInfo.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Resources/ManifestBasedResourceGroveler.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Resources/ManifestBasedResourceGroveler.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Resources/ManifestBasedResourceGroveler.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Resources/ManifestBasedResourceGroveler.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/CastHelpers.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/CompilerServices/CastHelpers.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/CastHelpers.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/CompilerServices/CastHelpers.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/CrossLoaderAllocatorHashHelpers.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/CompilerServices/CrossLoaderAllocatorHashHelpers.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/CrossLoaderAllocatorHashHelpers.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/CompilerServices/CrossLoaderAllocatorHashHelpers.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/DependentHandle.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/CompilerServices/DependentHandle.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/DependentHandle.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/CompilerServices/DependentHandle.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/GCHeapHash.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/CompilerServices/GCHeapHash.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/GCHeapHash.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/CompilerServices/GCHeapHash.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/ICastableHelpers.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/CompilerServices/ICastableHelpers.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/ICastableHelpers.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/CompilerServices/ICastableHelpers.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeFeature.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeFeature.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeFeature.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeFeature.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeHelpers.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeHelpers.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeHelpers.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeHelpers.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/TypeDependencyAttribute.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/CompilerServices/TypeDependencyAttribute.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/TypeDependencyAttribute.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/CompilerServices/TypeDependencyAttribute.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/GCSettings.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/GCSettings.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/GCSettings.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/GCSettings.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/ComEventsHelper.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/ComEventsHelper.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/ComEventsHelper.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/ComEventsHelper.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/ComEventsInfo.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/ComEventsInfo.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/ComEventsInfo.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/ComEventsInfo.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/ComTypes/IEnumerable.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/ComTypes/IEnumerable.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/ComTypes/IEnumerable.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/ComTypes/IEnumerable.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/ComTypes/IEnumerator.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/ComTypes/IEnumerator.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/ComTypes/IEnumerator.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/ComTypes/IEnumerator.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/ComWrappers.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/ComWrappers.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/ComWrappers.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/ComWrappers.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/ComDataHelpers.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/ComDataHelpers.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/ComDataHelpers.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/ComDataHelpers.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumVariantViewOfEnumerator.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumVariantViewOfEnumerator.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumVariantViewOfEnumerator.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumVariantViewOfEnumerator.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumerableToDispatchMarshaler.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumerableToDispatchMarshaler.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumerableToDispatchMarshaler.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumerableToDispatchMarshaler.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumerableViewOfDispatch.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumerableViewOfDispatch.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumerableViewOfDispatch.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumerableViewOfDispatch.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumeratorToEnumVariantMarshaler.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumeratorToEnumVariantMarshaler.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumeratorToEnumVariantMarshaler.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumeratorToEnumVariantMarshaler.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumeratorViewOfEnumVariant.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumeratorViewOfEnumVariant.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumeratorViewOfEnumVariant.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/EnumeratorViewOfEnumVariant.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/ExpandoToDispatchExMarshaler.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/ExpandoToDispatchExMarshaler.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/ExpandoToDispatchExMarshaler.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/ExpandoToDispatchExMarshaler.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/TypeToTypeInfoMarshaler.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/TypeToTypeInfoMarshaler.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/TypeToTypeInfoMarshaler.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/CustomMarshalers/TypeToTypeInfoMarshaler.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/DynamicInterfaceCastableHelpers.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/DynamicInterfaceCastableHelpers.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/DynamicInterfaceCastableHelpers.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/DynamicInterfaceCastableHelpers.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/GCHandle.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/GCHandle.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/GCHandle.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/GCHandle.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/IException.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/IException.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/IException.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/IException.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/Marshal.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/Marshal.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/Marshal.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/Marshal.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/NativeLibrary.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/NativeLibrary.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/NativeLibrary.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/NativeLibrary.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/X86Base.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/X86Base.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/X86Base.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/X86Base.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/Loader/AssemblyLoadContext.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/Loader/AssemblyLoadContext.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/Loader/AssemblyLoadContext.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/Loader/AssemblyLoadContext.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Runtime/Versioning/CompatibilitySwitch.cs b/src/coreclr/System.Private.CoreLib/src/System/Runtime/Versioning/CompatibilitySwitch.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Runtime/Versioning/CompatibilitySwitch.cs rename to src/coreclr/System.Private.CoreLib/src/System/Runtime/Versioning/CompatibilitySwitch.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/RuntimeArgumentHandle.cs b/src/coreclr/System.Private.CoreLib/src/System/RuntimeArgumentHandle.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/RuntimeArgumentHandle.cs rename to src/coreclr/System.Private.CoreLib/src/System/RuntimeArgumentHandle.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/RuntimeHandles.cs b/src/coreclr/System.Private.CoreLib/src/System/RuntimeHandles.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/RuntimeHandles.cs rename to src/coreclr/System.Private.CoreLib/src/System/RuntimeHandles.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/RuntimeType.ActivatorCache.cs b/src/coreclr/System.Private.CoreLib/src/System/RuntimeType.ActivatorCache.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/RuntimeType.ActivatorCache.cs rename to src/coreclr/System.Private.CoreLib/src/System/RuntimeType.ActivatorCache.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/RuntimeType.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/RuntimeType.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/RuntimeType.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/RuntimeType.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Security/DynamicSecurityMethodAttribute.cs b/src/coreclr/System.Private.CoreLib/src/System/Security/DynamicSecurityMethodAttribute.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Security/DynamicSecurityMethodAttribute.cs rename to src/coreclr/System.Private.CoreLib/src/System/Security/DynamicSecurityMethodAttribute.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/StartupHookProvider.cs b/src/coreclr/System.Private.CoreLib/src/System/StartupHookProvider.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/StartupHookProvider.cs rename to src/coreclr/System.Private.CoreLib/src/System/StartupHookProvider.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/String.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/String.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/String.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/String.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/StubHelpers.cs b/src/coreclr/System.Private.CoreLib/src/System/StubHelpers.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/StubHelpers.cs rename to src/coreclr/System.Private.CoreLib/src/System/StubHelpers.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Text/StringBuilder.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Text/StringBuilder.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Text/StringBuilder.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Text/StringBuilder.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandle.Unix.cs b/src/coreclr/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandle.Unix.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandle.Unix.cs rename to src/coreclr/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandle.Unix.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandle.Windows.cs b/src/coreclr/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandle.Windows.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandle.Windows.cs rename to src/coreclr/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandle.Windows.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandle.cs b/src/coreclr/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandle.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandle.cs rename to src/coreclr/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandle.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandleOverlapped.cs b/src/coreclr/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandleOverlapped.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandleOverlapped.cs rename to src/coreclr/System.Private.CoreLib/src/System/Threading/ClrThreadPoolBoundHandleOverlapped.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/ClrThreadPoolPreAllocatedOverlapped.cs b/src/coreclr/System.Private.CoreLib/src/System/Threading/ClrThreadPoolPreAllocatedOverlapped.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Threading/ClrThreadPoolPreAllocatedOverlapped.cs rename to src/coreclr/System.Private.CoreLib/src/System/Threading/ClrThreadPoolPreAllocatedOverlapped.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/Interlocked.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Threading/Interlocked.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Threading/Interlocked.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Threading/Interlocked.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/LowLevelLifoSemaphore.Unix.cs b/src/coreclr/System.Private.CoreLib/src/System/Threading/LowLevelLifoSemaphore.Unix.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Threading/LowLevelLifoSemaphore.Unix.cs rename to src/coreclr/System.Private.CoreLib/src/System/Threading/LowLevelLifoSemaphore.Unix.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/Monitor.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Threading/Monitor.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Threading/Monitor.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Threading/Monitor.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/Overlapped.cs b/src/coreclr/System.Private.CoreLib/src/System/Threading/Overlapped.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Threading/Overlapped.cs rename to src/coreclr/System.Private.CoreLib/src/System/Threading/Overlapped.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/ProcessorIdCache.cs b/src/coreclr/System.Private.CoreLib/src/System/Threading/ProcessorIdCache.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Threading/ProcessorIdCache.cs rename to src/coreclr/System.Private.CoreLib/src/System/Threading/ProcessorIdCache.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/StackCrawlMark.cs b/src/coreclr/System.Private.CoreLib/src/System/Threading/StackCrawlMark.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Threading/StackCrawlMark.cs rename to src/coreclr/System.Private.CoreLib/src/System/Threading/StackCrawlMark.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/SynchronizationContext.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Threading/SynchronizationContext.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Threading/SynchronizationContext.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Threading/SynchronizationContext.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/Thread.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Threading/Thread.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Threading/Thread.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Threading/Thread.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/ThreadPool.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Threading/ThreadPool.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Threading/ThreadPool.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Threading/ThreadPool.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/Timer.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Threading/Timer.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Threading/Timer.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Threading/Timer.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Threading/WaitHandle.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Threading/WaitHandle.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Threading/WaitHandle.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Threading/WaitHandle.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Type.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/Type.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Type.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/Type.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/TypeLoadException.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/TypeLoadException.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/TypeLoadException.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/TypeLoadException.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/TypeNameParser.cs b/src/coreclr/System.Private.CoreLib/src/System/TypeNameParser.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/TypeNameParser.cs rename to src/coreclr/System.Private.CoreLib/src/System/TypeNameParser.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/TypedReference.cs b/src/coreclr/System.Private.CoreLib/src/System/TypedReference.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/TypedReference.cs rename to src/coreclr/System.Private.CoreLib/src/System/TypedReference.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/ValueType.cs b/src/coreclr/System.Private.CoreLib/src/System/ValueType.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/ValueType.cs rename to src/coreclr/System.Private.CoreLib/src/System/ValueType.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/Variant.cs b/src/coreclr/System.Private.CoreLib/src/System/Variant.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/Variant.cs rename to src/coreclr/System.Private.CoreLib/src/System/Variant.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/WeakReference.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/WeakReference.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/WeakReference.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/WeakReference.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/WeakReference.T.CoreCLR.cs b/src/coreclr/System.Private.CoreLib/src/System/WeakReference.T.CoreCLR.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/WeakReference.T.CoreCLR.cs rename to src/coreclr/System.Private.CoreLib/src/System/WeakReference.T.CoreCLR.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/__Canon.cs b/src/coreclr/System.Private.CoreLib/src/System/__Canon.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/__Canon.cs rename to src/coreclr/System.Private.CoreLib/src/System/__Canon.cs diff --git a/src/coreclr/src/System.Private.CoreLib/src/System/__ComObject.cs b/src/coreclr/System.Private.CoreLib/src/System/__ComObject.cs similarity index 100% rename from src/coreclr/src/System.Private.CoreLib/src/System/__ComObject.cs rename to src/coreclr/System.Private.CoreLib/src/System/__ComObject.cs diff --git a/src/coreclr/src/ToolBox/CMakeLists.txt b/src/coreclr/ToolBox/CMakeLists.txt similarity index 100% rename from src/coreclr/src/ToolBox/CMakeLists.txt rename to src/coreclr/ToolBox/CMakeLists.txt diff --git a/src/coreclr/src/ToolBox/SOS/CMakeLists.txt b/src/coreclr/ToolBox/SOS/CMakeLists.txt similarity index 100% rename from src/coreclr/src/ToolBox/SOS/CMakeLists.txt rename to src/coreclr/ToolBox/SOS/CMakeLists.txt diff --git a/src/coreclr/src/ToolBox/SOS/DIALib/DIALib.il b/src/coreclr/ToolBox/SOS/DIALib/DIALib.il similarity index 100% rename from src/coreclr/src/ToolBox/SOS/DIALib/DIALib.il rename to src/coreclr/ToolBox/SOS/DIALib/DIALib.il diff --git a/src/coreclr/src/ToolBox/SOS/DIALib/DIALib.ilproj b/src/coreclr/ToolBox/SOS/DIALib/DIALib.ilproj similarity index 100% rename from src/coreclr/src/ToolBox/SOS/DIALib/DIALib.ilproj rename to src/coreclr/ToolBox/SOS/DIALib/DIALib.ilproj diff --git a/src/coreclr/src/ToolBox/SOS/DacTableGen/DacTableGen.csproj b/src/coreclr/ToolBox/SOS/DacTableGen/DacTableGen.csproj similarity index 100% rename from src/coreclr/src/ToolBox/SOS/DacTableGen/DacTableGen.csproj rename to src/coreclr/ToolBox/SOS/DacTableGen/DacTableGen.csproj diff --git a/src/coreclr/src/ToolBox/SOS/DacTableGen/MapSymbolProvider.cs b/src/coreclr/ToolBox/SOS/DacTableGen/MapSymbolProvider.cs similarity index 100% rename from src/coreclr/src/ToolBox/SOS/DacTableGen/MapSymbolProvider.cs rename to src/coreclr/ToolBox/SOS/DacTableGen/MapSymbolProvider.cs diff --git a/src/coreclr/src/ToolBox/SOS/DacTableGen/cvconst.cs b/src/coreclr/ToolBox/SOS/DacTableGen/cvconst.cs similarity index 100% rename from src/coreclr/src/ToolBox/SOS/DacTableGen/cvconst.cs rename to src/coreclr/ToolBox/SOS/DacTableGen/cvconst.cs diff --git a/src/coreclr/src/ToolBox/SOS/DacTableGen/diautil.cs b/src/coreclr/ToolBox/SOS/DacTableGen/diautil.cs similarity index 100% rename from src/coreclr/src/ToolBox/SOS/DacTableGen/diautil.cs rename to src/coreclr/ToolBox/SOS/DacTableGen/diautil.cs diff --git a/src/coreclr/src/ToolBox/SOS/DacTableGen/main.cs b/src/coreclr/ToolBox/SOS/DacTableGen/main.cs similarity index 100% rename from src/coreclr/src/ToolBox/SOS/DacTableGen/main.cs rename to src/coreclr/ToolBox/SOS/DacTableGen/main.cs diff --git a/src/coreclr/src/ToolBox/SOS/Directory.Build.props b/src/coreclr/ToolBox/SOS/Directory.Build.props similarity index 100% rename from src/coreclr/src/ToolBox/SOS/Directory.Build.props rename to src/coreclr/ToolBox/SOS/Directory.Build.props diff --git a/src/coreclr/src/ToolBox/SOS/SOS_README.md b/src/coreclr/ToolBox/SOS/SOS_README.md similarity index 100% rename from src/coreclr/src/ToolBox/SOS/SOS_README.md rename to src/coreclr/ToolBox/SOS/SOS_README.md diff --git a/src/coreclr/src/ToolBox/superpmi/.clang-format b/src/coreclr/ToolBox/superpmi/.clang-format similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/.clang-format rename to src/coreclr/ToolBox/superpmi/.clang-format diff --git a/src/coreclr/src/ToolBox/superpmi/CMakeLists.txt b/src/coreclr/ToolBox/superpmi/CMakeLists.txt similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/CMakeLists.txt rename to src/coreclr/ToolBox/superpmi/CMakeLists.txt diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/CMakeLists.txt b/src/coreclr/ToolBox/superpmi/mcs/CMakeLists.txt similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/CMakeLists.txt rename to src/coreclr/ToolBox/superpmi/mcs/CMakeLists.txt diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/commandline.cpp b/src/coreclr/ToolBox/superpmi/mcs/commandline.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/commandline.cpp rename to src/coreclr/ToolBox/superpmi/mcs/commandline.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/commandline.h b/src/coreclr/ToolBox/superpmi/mcs/commandline.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/commandline.h rename to src/coreclr/ToolBox/superpmi/mcs/commandline.h diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/mcs.cpp b/src/coreclr/ToolBox/superpmi/mcs/mcs.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/mcs.cpp rename to src/coreclr/ToolBox/superpmi/mcs/mcs.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/mcs.h b/src/coreclr/ToolBox/superpmi/mcs/mcs.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/mcs.h rename to src/coreclr/ToolBox/superpmi/mcs/mcs.h diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/removedup.cpp b/src/coreclr/ToolBox/superpmi/mcs/removedup.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/removedup.cpp rename to src/coreclr/ToolBox/superpmi/mcs/removedup.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/removedup.h b/src/coreclr/ToolBox/superpmi/mcs/removedup.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/removedup.h rename to src/coreclr/ToolBox/superpmi/mcs/removedup.h diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbasmdump.cpp b/src/coreclr/ToolBox/superpmi/mcs/verbasmdump.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbasmdump.cpp rename to src/coreclr/ToolBox/superpmi/mcs/verbasmdump.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbasmdump.h b/src/coreclr/ToolBox/superpmi/mcs/verbasmdump.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbasmdump.h rename to src/coreclr/ToolBox/superpmi/mcs/verbasmdump.h diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbconcat.cpp b/src/coreclr/ToolBox/superpmi/mcs/verbconcat.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbconcat.cpp rename to src/coreclr/ToolBox/superpmi/mcs/verbconcat.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbconcat.h b/src/coreclr/ToolBox/superpmi/mcs/verbconcat.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbconcat.h rename to src/coreclr/ToolBox/superpmi/mcs/verbconcat.h diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbdump.cpp b/src/coreclr/ToolBox/superpmi/mcs/verbdump.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbdump.cpp rename to src/coreclr/ToolBox/superpmi/mcs/verbdump.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbdump.h b/src/coreclr/ToolBox/superpmi/mcs/verbdump.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbdump.h rename to src/coreclr/ToolBox/superpmi/mcs/verbdump.h diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbdumpmap.cpp b/src/coreclr/ToolBox/superpmi/mcs/verbdumpmap.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbdumpmap.cpp rename to src/coreclr/ToolBox/superpmi/mcs/verbdumpmap.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbdumpmap.h b/src/coreclr/ToolBox/superpmi/mcs/verbdumpmap.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbdumpmap.h rename to src/coreclr/ToolBox/superpmi/mcs/verbdumpmap.h diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbdumptoc.cpp b/src/coreclr/ToolBox/superpmi/mcs/verbdumptoc.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbdumptoc.cpp rename to src/coreclr/ToolBox/superpmi/mcs/verbdumptoc.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbdumptoc.h b/src/coreclr/ToolBox/superpmi/mcs/verbdumptoc.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbdumptoc.h rename to src/coreclr/ToolBox/superpmi/mcs/verbdumptoc.h diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbfracture.cpp b/src/coreclr/ToolBox/superpmi/mcs/verbfracture.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbfracture.cpp rename to src/coreclr/ToolBox/superpmi/mcs/verbfracture.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbfracture.h b/src/coreclr/ToolBox/superpmi/mcs/verbfracture.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbfracture.h rename to src/coreclr/ToolBox/superpmi/mcs/verbfracture.h diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbildump.cpp b/src/coreclr/ToolBox/superpmi/mcs/verbildump.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbildump.cpp rename to src/coreclr/ToolBox/superpmi/mcs/verbildump.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbildump.h b/src/coreclr/ToolBox/superpmi/mcs/verbildump.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbildump.h rename to src/coreclr/ToolBox/superpmi/mcs/verbildump.h diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbinteg.cpp b/src/coreclr/ToolBox/superpmi/mcs/verbinteg.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbinteg.cpp rename to src/coreclr/ToolBox/superpmi/mcs/verbinteg.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbinteg.h b/src/coreclr/ToolBox/superpmi/mcs/verbinteg.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbinteg.h rename to src/coreclr/ToolBox/superpmi/mcs/verbinteg.h diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbmerge.cpp b/src/coreclr/ToolBox/superpmi/mcs/verbmerge.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbmerge.cpp rename to src/coreclr/ToolBox/superpmi/mcs/verbmerge.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbmerge.h b/src/coreclr/ToolBox/superpmi/mcs/verbmerge.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbmerge.h rename to src/coreclr/ToolBox/superpmi/mcs/verbmerge.h diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbprintjiteeversion.cpp b/src/coreclr/ToolBox/superpmi/mcs/verbprintjiteeversion.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbprintjiteeversion.cpp rename to src/coreclr/ToolBox/superpmi/mcs/verbprintjiteeversion.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbprintjiteeversion.h b/src/coreclr/ToolBox/superpmi/mcs/verbprintjiteeversion.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbprintjiteeversion.h rename to src/coreclr/ToolBox/superpmi/mcs/verbprintjiteeversion.h diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbremovedup.cpp b/src/coreclr/ToolBox/superpmi/mcs/verbremovedup.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbremovedup.cpp rename to src/coreclr/ToolBox/superpmi/mcs/verbremovedup.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbremovedup.h b/src/coreclr/ToolBox/superpmi/mcs/verbremovedup.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbremovedup.h rename to src/coreclr/ToolBox/superpmi/mcs/verbremovedup.h diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbstat.cpp b/src/coreclr/ToolBox/superpmi/mcs/verbstat.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbstat.cpp rename to src/coreclr/ToolBox/superpmi/mcs/verbstat.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbstat.h b/src/coreclr/ToolBox/superpmi/mcs/verbstat.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbstat.h rename to src/coreclr/ToolBox/superpmi/mcs/verbstat.h diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbstrip.cpp b/src/coreclr/ToolBox/superpmi/mcs/verbstrip.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbstrip.cpp rename to src/coreclr/ToolBox/superpmi/mcs/verbstrip.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbstrip.h b/src/coreclr/ToolBox/superpmi/mcs/verbstrip.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbstrip.h rename to src/coreclr/ToolBox/superpmi/mcs/verbstrip.h diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbtoc.cpp b/src/coreclr/ToolBox/superpmi/mcs/verbtoc.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbtoc.cpp rename to src/coreclr/ToolBox/superpmi/mcs/verbtoc.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/mcs/verbtoc.h b/src/coreclr/ToolBox/superpmi/mcs/verbtoc.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/mcs/verbtoc.h rename to src/coreclr/ToolBox/superpmi/mcs/verbtoc.h diff --git a/src/coreclr/src/ToolBox/superpmi/readme.md b/src/coreclr/ToolBox/superpmi/readme.md similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/readme.md rename to src/coreclr/ToolBox/superpmi/readme.md diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/asmdumper.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shared/asmdumper.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/asmdumper.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shared/asmdumper.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/asmdumper.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/asmdumper.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/asmdumper.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/asmdumper.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/callutils.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shared/callutils.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/callutils.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shared/callutils.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/callutils.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/callutils.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/callutils.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/callutils.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/compileresult.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shared/compileresult.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/compileresult.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shared/compileresult.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/compileresult.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/compileresult.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/compileresult.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/compileresult.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/crlwmlist.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/crlwmlist.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/crlwmlist.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/crlwmlist.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/errorhandling.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shared/errorhandling.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/errorhandling.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shared/errorhandling.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/errorhandling.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/errorhandling.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/errorhandling.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/errorhandling.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/hash.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shared/hash.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/hash.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shared/hash.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/hash.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/hash.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/hash.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/hash.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjitcompilerimpl.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/icorjitcompilerimpl.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjitcompilerimpl.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/icorjitcompilerimpl.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjithostimpl.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/icorjithostimpl.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjithostimpl.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/icorjithostimpl.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/lightweightmap.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/lightweightmap.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/lightweightmap.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/lightweightmap.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/logging.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shared/logging.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/logging.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shared/logging.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/logging.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/logging.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/logging.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/logging.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/lwmlist.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/lwmlist.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/lwmlist.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/lwmlist.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/mclist.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shared/mclist.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/mclist.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shared/mclist.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/mclist.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/mclist.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/mclist.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/mclist.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shared/methodcontext.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shared/methodcontext.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/methodcontext.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/methodcontext.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontextiterator.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shared/methodcontextiterator.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontextiterator.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shared/methodcontextiterator.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontextiterator.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/methodcontextiterator.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontextiterator.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/methodcontextiterator.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontextreader.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shared/methodcontextreader.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontextreader.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shared/methodcontextreader.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontextreader.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/methodcontextreader.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontextreader.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/methodcontextreader.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/runtimedetails.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/runtimedetails.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/runtimedetails.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/runtimedetails.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/simpletimer.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shared/simpletimer.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/simpletimer.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shared/simpletimer.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/simpletimer.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/simpletimer.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/simpletimer.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/simpletimer.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/spmidumphelper.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shared/spmidumphelper.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/spmidumphelper.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shared/spmidumphelper.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/spmidumphelper.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/spmidumphelper.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/spmidumphelper.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/spmidumphelper.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/spmirecordhelper.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/spmirecordhelper.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/spmirecordhelper.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/spmirecordhelper.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/spmiutil.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shared/spmiutil.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/spmiutil.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shared/spmiutil.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/spmiutil.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/spmiutil.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/spmiutil.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/spmiutil.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/standardpch.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/standardpch.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/standardpch.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/standardpch.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/tocfile.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shared/tocfile.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/tocfile.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shared/tocfile.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/tocfile.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/tocfile.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/tocfile.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/tocfile.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/typeutils.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shared/typeutils.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/typeutils.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shared/typeutils.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shared/typeutils.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/typeutils.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shared/typeutils.h rename to src/coreclr/ToolBox/superpmi/superpmi-shared/typeutils.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/CMakeLists.txt b/src/coreclr/ToolBox/superpmi/superpmi-shim-collector/CMakeLists.txt similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/CMakeLists.txt rename to src/coreclr/ToolBox/superpmi/superpmi-shim-collector/CMakeLists.txt diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitcompiler.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-collector/icorjitcompiler.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitcompiler.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shim-collector/icorjitcompiler.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitcompiler.h b/src/coreclr/ToolBox/superpmi/superpmi-shim-collector/icorjitcompiler.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitcompiler.h rename to src/coreclr/ToolBox/superpmi/superpmi-shim-collector/icorjitcompiler.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.h b/src/coreclr/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.h rename to src/coreclr/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/jithost.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-collector/jithost.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/jithost.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shim-collector/jithost.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/jithost.h b/src/coreclr/ToolBox/superpmi/superpmi-shim-collector/jithost.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/jithost.h rename to src/coreclr/ToolBox/superpmi/superpmi-shim-collector/jithost.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/superpmi-shim-collector.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-collector/superpmi-shim-collector.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/superpmi-shim-collector.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shim-collector/superpmi-shim-collector.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/superpmi-shim-collector.def b/src/coreclr/ToolBox/superpmi/superpmi-shim-collector/superpmi-shim-collector.def similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/superpmi-shim-collector.def rename to src/coreclr/ToolBox/superpmi/superpmi-shim-collector/superpmi-shim-collector.def diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/superpmi-shim-collector.h b/src/coreclr/ToolBox/superpmi/superpmi-shim-collector/superpmi-shim-collector.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/superpmi-shim-collector.h rename to src/coreclr/ToolBox/superpmi/superpmi-shim-collector/superpmi-shim-collector.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/CMakeLists.txt b/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/CMakeLists.txt similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/CMakeLists.txt rename to src/coreclr/ToolBox/superpmi/superpmi-shim-counter/CMakeLists.txt diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitcompiler.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/icorjitcompiler.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitcompiler.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shim-counter/icorjitcompiler.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitcompiler.h b/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/icorjitcompiler.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitcompiler.h rename to src/coreclr/ToolBox/superpmi/superpmi-shim-counter/icorjitcompiler.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.h b/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.h rename to src/coreclr/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/jithost.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/jithost.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/jithost.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shim-counter/jithost.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/jithost.h b/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/jithost.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/jithost.h rename to src/coreclr/ToolBox/superpmi/superpmi-shim-counter/jithost.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/methodcallsummarizer.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/methodcallsummarizer.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/methodcallsummarizer.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shim-counter/methodcallsummarizer.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/methodcallsummarizer.h b/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/methodcallsummarizer.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/methodcallsummarizer.h rename to src/coreclr/ToolBox/superpmi/superpmi-shim-counter/methodcallsummarizer.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/superpmi-shim-counter.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/superpmi-shim-counter.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/superpmi-shim-counter.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shim-counter/superpmi-shim-counter.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/superpmi-shim-counter.def b/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/superpmi-shim-counter.def similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/superpmi-shim-counter.def rename to src/coreclr/ToolBox/superpmi/superpmi-shim-counter/superpmi-shim-counter.def diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/superpmi-shim-counter.h b/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/superpmi-shim-counter.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/superpmi-shim-counter.h rename to src/coreclr/ToolBox/superpmi/superpmi-shim-counter/superpmi-shim-counter.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/CMakeLists.txt b/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/CMakeLists.txt similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/CMakeLists.txt rename to src/coreclr/ToolBox/superpmi/superpmi-shim-simple/CMakeLists.txt diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitcompiler.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/icorjitcompiler.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitcompiler.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shim-simple/icorjitcompiler.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitcompiler.h b/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/icorjitcompiler.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitcompiler.h rename to src/coreclr/ToolBox/superpmi/superpmi-shim-simple/icorjitcompiler.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.h b/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.h rename to src/coreclr/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/jithost.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/jithost.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/jithost.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shim-simple/jithost.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/jithost.h b/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/jithost.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/jithost.h rename to src/coreclr/ToolBox/superpmi/superpmi-shim-simple/jithost.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/superpmi-shim-simple.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/superpmi-shim-simple.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/superpmi-shim-simple.cpp rename to src/coreclr/ToolBox/superpmi/superpmi-shim-simple/superpmi-shim-simple.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/superpmi-shim-simple.def b/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/superpmi-shim-simple.def similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/superpmi-shim-simple.def rename to src/coreclr/ToolBox/superpmi/superpmi-shim-simple/superpmi-shim-simple.def diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/superpmi-shim-simple.h b/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/superpmi-shim-simple.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/superpmi-shim-simple.h rename to src/coreclr/ToolBox/superpmi/superpmi-shim-simple/superpmi-shim-simple.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/CMakeLists.txt b/src/coreclr/ToolBox/superpmi/superpmi/CMakeLists.txt similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/CMakeLists.txt rename to src/coreclr/ToolBox/superpmi/superpmi/CMakeLists.txt diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/commandline.cpp b/src/coreclr/ToolBox/superpmi/superpmi/commandline.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/commandline.cpp rename to src/coreclr/ToolBox/superpmi/superpmi/commandline.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/commandline.h b/src/coreclr/ToolBox/superpmi/superpmi/commandline.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/commandline.h rename to src/coreclr/ToolBox/superpmi/superpmi/commandline.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/cycletimer.cpp b/src/coreclr/ToolBox/superpmi/superpmi/cycletimer.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/cycletimer.cpp rename to src/coreclr/ToolBox/superpmi/superpmi/cycletimer.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/cycletimer.h b/src/coreclr/ToolBox/superpmi/superpmi/cycletimer.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/cycletimer.h rename to src/coreclr/ToolBox/superpmi/superpmi/cycletimer.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/icorjitinfo.cpp b/src/coreclr/ToolBox/superpmi/superpmi/icorjitinfo.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/icorjitinfo.cpp rename to src/coreclr/ToolBox/superpmi/superpmi/icorjitinfo.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/icorjitinfo.h b/src/coreclr/ToolBox/superpmi/superpmi/icorjitinfo.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/icorjitinfo.h rename to src/coreclr/ToolBox/superpmi/superpmi/icorjitinfo.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/jitdebugger.cpp b/src/coreclr/ToolBox/superpmi/superpmi/jitdebugger.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/jitdebugger.cpp rename to src/coreclr/ToolBox/superpmi/superpmi/jitdebugger.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/jitdebugger.h b/src/coreclr/ToolBox/superpmi/superpmi/jitdebugger.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/jitdebugger.h rename to src/coreclr/ToolBox/superpmi/superpmi/jitdebugger.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/jithost.cpp b/src/coreclr/ToolBox/superpmi/superpmi/jithost.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/jithost.cpp rename to src/coreclr/ToolBox/superpmi/superpmi/jithost.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/jithost.h b/src/coreclr/ToolBox/superpmi/superpmi/jithost.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/jithost.h rename to src/coreclr/ToolBox/superpmi/superpmi/jithost.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/jitinstance.cpp b/src/coreclr/ToolBox/superpmi/superpmi/jitinstance.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/jitinstance.cpp rename to src/coreclr/ToolBox/superpmi/superpmi/jitinstance.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/jitinstance.h b/src/coreclr/ToolBox/superpmi/superpmi/jitinstance.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/jitinstance.h rename to src/coreclr/ToolBox/superpmi/superpmi/jitinstance.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/methodstatsemitter.cpp b/src/coreclr/ToolBox/superpmi/superpmi/methodstatsemitter.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/methodstatsemitter.cpp rename to src/coreclr/ToolBox/superpmi/superpmi/methodstatsemitter.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/methodstatsemitter.h b/src/coreclr/ToolBox/superpmi/superpmi/methodstatsemitter.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/methodstatsemitter.h rename to src/coreclr/ToolBox/superpmi/superpmi/methodstatsemitter.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/neardiffer.cpp b/src/coreclr/ToolBox/superpmi/superpmi/neardiffer.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/neardiffer.cpp rename to src/coreclr/ToolBox/superpmi/superpmi/neardiffer.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/neardiffer.h b/src/coreclr/ToolBox/superpmi/superpmi/neardiffer.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/neardiffer.h rename to src/coreclr/ToolBox/superpmi/superpmi/neardiffer.h diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/parallelsuperpmi.cpp b/src/coreclr/ToolBox/superpmi/superpmi/parallelsuperpmi.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/parallelsuperpmi.cpp rename to src/coreclr/ToolBox/superpmi/superpmi/parallelsuperpmi.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/superpmi.cpp b/src/coreclr/ToolBox/superpmi/superpmi/superpmi.cpp similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/superpmi.cpp rename to src/coreclr/ToolBox/superpmi/superpmi/superpmi.cpp diff --git a/src/coreclr/src/ToolBox/superpmi/superpmi/superpmi.h b/src/coreclr/ToolBox/superpmi/superpmi/superpmi.h similarity index 100% rename from src/coreclr/src/ToolBox/superpmi/superpmi/superpmi.h rename to src/coreclr/ToolBox/superpmi/superpmi/superpmi.h diff --git a/src/coreclr/src/binder/CMakeLists.txt b/src/coreclr/binder/CMakeLists.txt similarity index 100% rename from src/coreclr/src/binder/CMakeLists.txt rename to src/coreclr/binder/CMakeLists.txt diff --git a/src/coreclr/src/binder/activitytracker.cpp b/src/coreclr/binder/activitytracker.cpp similarity index 100% rename from src/coreclr/src/binder/activitytracker.cpp rename to src/coreclr/binder/activitytracker.cpp diff --git a/src/coreclr/src/binder/applicationcontext.cpp b/src/coreclr/binder/applicationcontext.cpp similarity index 100% rename from src/coreclr/src/binder/applicationcontext.cpp rename to src/coreclr/binder/applicationcontext.cpp diff --git a/src/coreclr/src/binder/assembly.cpp b/src/coreclr/binder/assembly.cpp similarity index 100% rename from src/coreclr/src/binder/assembly.cpp rename to src/coreclr/binder/assembly.cpp diff --git a/src/coreclr/src/binder/assemblybinder.cpp b/src/coreclr/binder/assemblybinder.cpp similarity index 100% rename from src/coreclr/src/binder/assemblybinder.cpp rename to src/coreclr/binder/assemblybinder.cpp diff --git a/src/coreclr/src/binder/assemblyidentitycache.cpp b/src/coreclr/binder/assemblyidentitycache.cpp similarity index 100% rename from src/coreclr/src/binder/assemblyidentitycache.cpp rename to src/coreclr/binder/assemblyidentitycache.cpp diff --git a/src/coreclr/src/binder/assemblyname.cpp b/src/coreclr/binder/assemblyname.cpp similarity index 100% rename from src/coreclr/src/binder/assemblyname.cpp rename to src/coreclr/binder/assemblyname.cpp diff --git a/src/coreclr/src/binder/bindertracing.cpp b/src/coreclr/binder/bindertracing.cpp similarity index 100% rename from src/coreclr/src/binder/bindertracing.cpp rename to src/coreclr/binder/bindertracing.cpp diff --git a/src/coreclr/src/binder/clrprivbinderassemblyloadcontext.cpp b/src/coreclr/binder/clrprivbinderassemblyloadcontext.cpp similarity index 100% rename from src/coreclr/src/binder/clrprivbinderassemblyloadcontext.cpp rename to src/coreclr/binder/clrprivbinderassemblyloadcontext.cpp diff --git a/src/coreclr/src/binder/clrprivbindercoreclr.cpp b/src/coreclr/binder/clrprivbindercoreclr.cpp similarity index 100% rename from src/coreclr/src/binder/clrprivbindercoreclr.cpp rename to src/coreclr/binder/clrprivbindercoreclr.cpp diff --git a/src/coreclr/src/binder/coreclrbindercommon.cpp b/src/coreclr/binder/coreclrbindercommon.cpp similarity index 100% rename from src/coreclr/src/binder/coreclrbindercommon.cpp rename to src/coreclr/binder/coreclrbindercommon.cpp diff --git a/src/coreclr/src/binder/failurecache.cpp b/src/coreclr/binder/failurecache.cpp similarity index 100% rename from src/coreclr/src/binder/failurecache.cpp rename to src/coreclr/binder/failurecache.cpp diff --git a/src/coreclr/src/binder/fusionassemblyname.cpp b/src/coreclr/binder/fusionassemblyname.cpp similarity index 100% rename from src/coreclr/src/binder/fusionassemblyname.cpp rename to src/coreclr/binder/fusionassemblyname.cpp diff --git a/src/coreclr/src/binder/inc/activitytracker.h b/src/coreclr/binder/inc/activitytracker.h similarity index 100% rename from src/coreclr/src/binder/inc/activitytracker.h rename to src/coreclr/binder/inc/activitytracker.h diff --git a/src/coreclr/src/binder/inc/applicationcontext.hpp b/src/coreclr/binder/inc/applicationcontext.hpp similarity index 100% rename from src/coreclr/src/binder/inc/applicationcontext.hpp rename to src/coreclr/binder/inc/applicationcontext.hpp diff --git a/src/coreclr/src/binder/inc/applicationcontext.inl b/src/coreclr/binder/inc/applicationcontext.inl similarity index 100% rename from src/coreclr/src/binder/inc/applicationcontext.inl rename to src/coreclr/binder/inc/applicationcontext.inl diff --git a/src/coreclr/src/binder/inc/assembly.hpp b/src/coreclr/binder/inc/assembly.hpp similarity index 100% rename from src/coreclr/src/binder/inc/assembly.hpp rename to src/coreclr/binder/inc/assembly.hpp diff --git a/src/coreclr/src/binder/inc/assembly.inl b/src/coreclr/binder/inc/assembly.inl similarity index 100% rename from src/coreclr/src/binder/inc/assembly.inl rename to src/coreclr/binder/inc/assembly.inl diff --git a/src/coreclr/src/binder/inc/assemblybinder.hpp b/src/coreclr/binder/inc/assemblybinder.hpp similarity index 100% rename from src/coreclr/src/binder/inc/assemblybinder.hpp rename to src/coreclr/binder/inc/assemblybinder.hpp diff --git a/src/coreclr/src/binder/inc/assemblyentry.hpp b/src/coreclr/binder/inc/assemblyentry.hpp similarity index 100% rename from src/coreclr/src/binder/inc/assemblyentry.hpp rename to src/coreclr/binder/inc/assemblyentry.hpp diff --git a/src/coreclr/src/binder/inc/assemblyhashtraits.hpp b/src/coreclr/binder/inc/assemblyhashtraits.hpp similarity index 100% rename from src/coreclr/src/binder/inc/assemblyhashtraits.hpp rename to src/coreclr/binder/inc/assemblyhashtraits.hpp diff --git a/src/coreclr/src/binder/inc/assemblyidentity.hpp b/src/coreclr/binder/inc/assemblyidentity.hpp similarity index 100% rename from src/coreclr/src/binder/inc/assemblyidentity.hpp rename to src/coreclr/binder/inc/assemblyidentity.hpp diff --git a/src/coreclr/src/binder/inc/assemblyidentitycache.hpp b/src/coreclr/binder/inc/assemblyidentitycache.hpp similarity index 100% rename from src/coreclr/src/binder/inc/assemblyidentitycache.hpp rename to src/coreclr/binder/inc/assemblyidentitycache.hpp diff --git a/src/coreclr/src/binder/inc/assemblyname.hpp b/src/coreclr/binder/inc/assemblyname.hpp similarity index 100% rename from src/coreclr/src/binder/inc/assemblyname.hpp rename to src/coreclr/binder/inc/assemblyname.hpp diff --git a/src/coreclr/src/binder/inc/assemblyname.inl b/src/coreclr/binder/inc/assemblyname.inl similarity index 100% rename from src/coreclr/src/binder/inc/assemblyname.inl rename to src/coreclr/binder/inc/assemblyname.inl diff --git a/src/coreclr/src/binder/inc/assemblyversion.hpp b/src/coreclr/binder/inc/assemblyversion.hpp similarity index 100% rename from src/coreclr/src/binder/inc/assemblyversion.hpp rename to src/coreclr/binder/inc/assemblyversion.hpp diff --git a/src/coreclr/src/binder/inc/assemblyversion.inl b/src/coreclr/binder/inc/assemblyversion.inl similarity index 100% rename from src/coreclr/src/binder/inc/assemblyversion.inl rename to src/coreclr/binder/inc/assemblyversion.inl diff --git a/src/coreclr/src/binder/inc/bindertracing.h b/src/coreclr/binder/inc/bindertracing.h similarity index 100% rename from src/coreclr/src/binder/inc/bindertracing.h rename to src/coreclr/binder/inc/bindertracing.h diff --git a/src/coreclr/src/binder/inc/bindertypes.hpp b/src/coreclr/binder/inc/bindertypes.hpp similarity index 100% rename from src/coreclr/src/binder/inc/bindertypes.hpp rename to src/coreclr/binder/inc/bindertypes.hpp diff --git a/src/coreclr/src/binder/inc/bindresult.hpp b/src/coreclr/binder/inc/bindresult.hpp similarity index 100% rename from src/coreclr/src/binder/inc/bindresult.hpp rename to src/coreclr/binder/inc/bindresult.hpp diff --git a/src/coreclr/src/binder/inc/bindresult.inl b/src/coreclr/binder/inc/bindresult.inl similarity index 100% rename from src/coreclr/src/binder/inc/bindresult.inl rename to src/coreclr/binder/inc/bindresult.inl diff --git a/src/coreclr/src/binder/inc/clrprivbinderassemblyloadcontext.h b/src/coreclr/binder/inc/clrprivbinderassemblyloadcontext.h similarity index 100% rename from src/coreclr/src/binder/inc/clrprivbinderassemblyloadcontext.h rename to src/coreclr/binder/inc/clrprivbinderassemblyloadcontext.h diff --git a/src/coreclr/src/binder/inc/clrprivbindercoreclr.h b/src/coreclr/binder/inc/clrprivbindercoreclr.h similarity index 100% rename from src/coreclr/src/binder/inc/clrprivbindercoreclr.h rename to src/coreclr/binder/inc/clrprivbindercoreclr.h diff --git a/src/coreclr/src/binder/inc/contextentry.hpp b/src/coreclr/binder/inc/contextentry.hpp similarity index 100% rename from src/coreclr/src/binder/inc/contextentry.hpp rename to src/coreclr/binder/inc/contextentry.hpp diff --git a/src/coreclr/src/binder/inc/coreclrbindercommon.h b/src/coreclr/binder/inc/coreclrbindercommon.h similarity index 100% rename from src/coreclr/src/binder/inc/coreclrbindercommon.h rename to src/coreclr/binder/inc/coreclrbindercommon.h diff --git a/src/coreclr/src/binder/inc/failurecache.hpp b/src/coreclr/binder/inc/failurecache.hpp similarity index 100% rename from src/coreclr/src/binder/inc/failurecache.hpp rename to src/coreclr/binder/inc/failurecache.hpp diff --git a/src/coreclr/src/binder/inc/failurecachehashtraits.hpp b/src/coreclr/binder/inc/failurecachehashtraits.hpp similarity index 100% rename from src/coreclr/src/binder/inc/failurecachehashtraits.hpp rename to src/coreclr/binder/inc/failurecachehashtraits.hpp diff --git a/src/coreclr/src/binder/inc/fusionassemblyname.hpp b/src/coreclr/binder/inc/fusionassemblyname.hpp similarity index 100% rename from src/coreclr/src/binder/inc/fusionassemblyname.hpp rename to src/coreclr/binder/inc/fusionassemblyname.hpp diff --git a/src/coreclr/src/binder/inc/fusionhelpers.hpp b/src/coreclr/binder/inc/fusionhelpers.hpp similarity index 100% rename from src/coreclr/src/binder/inc/fusionhelpers.hpp rename to src/coreclr/binder/inc/fusionhelpers.hpp diff --git a/src/coreclr/src/binder/inc/loadcontext.hpp b/src/coreclr/binder/inc/loadcontext.hpp similarity index 100% rename from src/coreclr/src/binder/inc/loadcontext.hpp rename to src/coreclr/binder/inc/loadcontext.hpp diff --git a/src/coreclr/src/binder/inc/loadcontext.inl b/src/coreclr/binder/inc/loadcontext.inl similarity index 100% rename from src/coreclr/src/binder/inc/loadcontext.inl rename to src/coreclr/binder/inc/loadcontext.inl diff --git a/src/coreclr/src/binder/inc/stringlexer.hpp b/src/coreclr/binder/inc/stringlexer.hpp similarity index 100% rename from src/coreclr/src/binder/inc/stringlexer.hpp rename to src/coreclr/binder/inc/stringlexer.hpp diff --git a/src/coreclr/src/binder/inc/stringlexer.inl b/src/coreclr/binder/inc/stringlexer.inl similarity index 100% rename from src/coreclr/src/binder/inc/stringlexer.inl rename to src/coreclr/binder/inc/stringlexer.inl diff --git a/src/coreclr/src/binder/inc/textualidentityparser.hpp b/src/coreclr/binder/inc/textualidentityparser.hpp similarity index 100% rename from src/coreclr/src/binder/inc/textualidentityparser.hpp rename to src/coreclr/binder/inc/textualidentityparser.hpp diff --git a/src/coreclr/src/binder/inc/utils.hpp b/src/coreclr/binder/inc/utils.hpp similarity index 100% rename from src/coreclr/src/binder/inc/utils.hpp rename to src/coreclr/binder/inc/utils.hpp diff --git a/src/coreclr/src/binder/inc/variables.hpp b/src/coreclr/binder/inc/variables.hpp similarity index 100% rename from src/coreclr/src/binder/inc/variables.hpp rename to src/coreclr/binder/inc/variables.hpp diff --git a/src/coreclr/src/binder/stringlexer.cpp b/src/coreclr/binder/stringlexer.cpp similarity index 100% rename from src/coreclr/src/binder/stringlexer.cpp rename to src/coreclr/binder/stringlexer.cpp diff --git a/src/coreclr/src/binder/textualidentityparser.cpp b/src/coreclr/binder/textualidentityparser.cpp similarity index 100% rename from src/coreclr/src/binder/textualidentityparser.cpp rename to src/coreclr/binder/textualidentityparser.cpp diff --git a/src/coreclr/src/binder/utils.cpp b/src/coreclr/binder/utils.cpp similarity index 100% rename from src/coreclr/src/binder/utils.cpp rename to src/coreclr/binder/utils.cpp diff --git a/src/coreclr/src/binder/variables.cpp b/src/coreclr/binder/variables.cpp similarity index 100% rename from src/coreclr/src/binder/variables.cpp rename to src/coreclr/binder/variables.cpp diff --git a/src/coreclr/build-runtime.cmd b/src/coreclr/build-runtime.cmd index dd14dceec4f83..f5aa11ec917c9 100644 --- a/src/coreclr/build-runtime.cmd +++ b/src/coreclr/build-runtime.cmd @@ -364,7 +364,7 @@ REM === Restore optimization profile data REM === REM ========================================================================================= -set OptDataProjectFilePath=%__ProjectDir%\src\.nuget\optdata\optdata.csproj +set OptDataProjectFilePath=%__ProjectDir%\.nuget\optdata\optdata.csproj if %__RestoreOptData% EQU 1 ( echo %__MsgPrefix%Restoring the OptimizationData Package set "__BinLog=\"%__LogsDir%\OptRestore_%__TargetOS%__%__BuildArch%__%__BuildType%.binlog\"" diff --git a/src/coreclr/build-runtime.sh b/src/coreclr/build-runtime.sh index f8129a719a306..25cf3e06ea6b9 100755 --- a/src/coreclr/build-runtime.sh +++ b/src/coreclr/build-runtime.sh @@ -41,7 +41,7 @@ setup_dirs_local() restore_optdata() { - local OptDataProjectFilePath="$__ProjectRoot/src/.nuget/optdata/optdata.csproj" + local OptDataProjectFilePath="$__ProjectRoot/.nuget/optdata/optdata.csproj" if [[ "$__SkipRestoreOptData" == 0 && "$__IsMSBuildOnNETCoreSupported" == 1 ]]; then echo "Restoring the OptimizationData package" "$__RepoRootDir/eng/common/msbuild.sh" /clp:nosummary $__ArcadeScriptArgs \ diff --git a/src/coreclr/src/classlibnative/CMakeLists.txt b/src/coreclr/classlibnative/CMakeLists.txt similarity index 100% rename from src/coreclr/src/classlibnative/CMakeLists.txt rename to src/coreclr/classlibnative/CMakeLists.txt diff --git a/src/coreclr/src/classlibnative/bcltype/CMakeLists.txt b/src/coreclr/classlibnative/bcltype/CMakeLists.txt similarity index 100% rename from src/coreclr/src/classlibnative/bcltype/CMakeLists.txt rename to src/coreclr/classlibnative/bcltype/CMakeLists.txt diff --git a/src/coreclr/src/classlibnative/bcltype/arraynative.cpp b/src/coreclr/classlibnative/bcltype/arraynative.cpp similarity index 100% rename from src/coreclr/src/classlibnative/bcltype/arraynative.cpp rename to src/coreclr/classlibnative/bcltype/arraynative.cpp diff --git a/src/coreclr/src/classlibnative/bcltype/arraynative.h b/src/coreclr/classlibnative/bcltype/arraynative.h similarity index 100% rename from src/coreclr/src/classlibnative/bcltype/arraynative.h rename to src/coreclr/classlibnative/bcltype/arraynative.h diff --git a/src/coreclr/src/classlibnative/bcltype/arraynative.inl b/src/coreclr/classlibnative/bcltype/arraynative.inl similarity index 100% rename from src/coreclr/src/classlibnative/bcltype/arraynative.inl rename to src/coreclr/classlibnative/bcltype/arraynative.inl diff --git a/src/coreclr/src/classlibnative/bcltype/oavariant.cpp b/src/coreclr/classlibnative/bcltype/oavariant.cpp similarity index 100% rename from src/coreclr/src/classlibnative/bcltype/oavariant.cpp rename to src/coreclr/classlibnative/bcltype/oavariant.cpp diff --git a/src/coreclr/src/classlibnative/bcltype/oavariant.h b/src/coreclr/classlibnative/bcltype/oavariant.h similarity index 100% rename from src/coreclr/src/classlibnative/bcltype/oavariant.h rename to src/coreclr/classlibnative/bcltype/oavariant.h diff --git a/src/coreclr/src/classlibnative/bcltype/objectnative.cpp b/src/coreclr/classlibnative/bcltype/objectnative.cpp similarity index 100% rename from src/coreclr/src/classlibnative/bcltype/objectnative.cpp rename to src/coreclr/classlibnative/bcltype/objectnative.cpp diff --git a/src/coreclr/src/classlibnative/bcltype/objectnative.h b/src/coreclr/classlibnative/bcltype/objectnative.h similarity index 100% rename from src/coreclr/src/classlibnative/bcltype/objectnative.h rename to src/coreclr/classlibnative/bcltype/objectnative.h diff --git a/src/coreclr/src/classlibnative/bcltype/stringnative.cpp b/src/coreclr/classlibnative/bcltype/stringnative.cpp similarity index 100% rename from src/coreclr/src/classlibnative/bcltype/stringnative.cpp rename to src/coreclr/classlibnative/bcltype/stringnative.cpp diff --git a/src/coreclr/src/classlibnative/bcltype/stringnative.h b/src/coreclr/classlibnative/bcltype/stringnative.h similarity index 100% rename from src/coreclr/src/classlibnative/bcltype/stringnative.h rename to src/coreclr/classlibnative/bcltype/stringnative.h diff --git a/src/coreclr/src/classlibnative/bcltype/system.cpp b/src/coreclr/classlibnative/bcltype/system.cpp similarity index 100% rename from src/coreclr/src/classlibnative/bcltype/system.cpp rename to src/coreclr/classlibnative/bcltype/system.cpp diff --git a/src/coreclr/src/classlibnative/bcltype/system.h b/src/coreclr/classlibnative/bcltype/system.h similarity index 100% rename from src/coreclr/src/classlibnative/bcltype/system.h rename to src/coreclr/classlibnative/bcltype/system.h diff --git a/src/coreclr/src/classlibnative/bcltype/varargsnative.cpp b/src/coreclr/classlibnative/bcltype/varargsnative.cpp similarity index 100% rename from src/coreclr/src/classlibnative/bcltype/varargsnative.cpp rename to src/coreclr/classlibnative/bcltype/varargsnative.cpp diff --git a/src/coreclr/src/classlibnative/bcltype/varargsnative.h b/src/coreclr/classlibnative/bcltype/varargsnative.h similarity index 100% rename from src/coreclr/src/classlibnative/bcltype/varargsnative.h rename to src/coreclr/classlibnative/bcltype/varargsnative.h diff --git a/src/coreclr/src/classlibnative/bcltype/variant.cpp b/src/coreclr/classlibnative/bcltype/variant.cpp similarity index 100% rename from src/coreclr/src/classlibnative/bcltype/variant.cpp rename to src/coreclr/classlibnative/bcltype/variant.cpp diff --git a/src/coreclr/src/classlibnative/bcltype/variant.h b/src/coreclr/classlibnative/bcltype/variant.h similarity index 100% rename from src/coreclr/src/classlibnative/bcltype/variant.h rename to src/coreclr/classlibnative/bcltype/variant.h diff --git a/src/coreclr/src/classlibnative/float/CMakeLists.txt b/src/coreclr/classlibnative/float/CMakeLists.txt similarity index 100% rename from src/coreclr/src/classlibnative/float/CMakeLists.txt rename to src/coreclr/classlibnative/float/CMakeLists.txt diff --git a/src/coreclr/src/classlibnative/float/floatdouble.cpp b/src/coreclr/classlibnative/float/floatdouble.cpp similarity index 100% rename from src/coreclr/src/classlibnative/float/floatdouble.cpp rename to src/coreclr/classlibnative/float/floatdouble.cpp diff --git a/src/coreclr/src/classlibnative/float/floatsingle.cpp b/src/coreclr/classlibnative/float/floatsingle.cpp similarity index 100% rename from src/coreclr/src/classlibnative/float/floatsingle.cpp rename to src/coreclr/classlibnative/float/floatsingle.cpp diff --git a/src/coreclr/src/classlibnative/inc/floatdouble.h b/src/coreclr/classlibnative/inc/floatdouble.h similarity index 100% rename from src/coreclr/src/classlibnative/inc/floatdouble.h rename to src/coreclr/classlibnative/inc/floatdouble.h diff --git a/src/coreclr/src/classlibnative/inc/floatsingle.h b/src/coreclr/classlibnative/inc/floatsingle.h similarity index 100% rename from src/coreclr/src/classlibnative/inc/floatsingle.h rename to src/coreclr/classlibnative/inc/floatsingle.h diff --git a/src/coreclr/src/classlibnative/inc/nls.h b/src/coreclr/classlibnative/inc/nls.h similarity index 100% rename from src/coreclr/src/classlibnative/inc/nls.h rename to src/coreclr/classlibnative/inc/nls.h diff --git a/src/coreclr/src/cpp.hint b/src/coreclr/cpp.hint similarity index 100% rename from src/coreclr/src/cpp.hint rename to src/coreclr/cpp.hint diff --git a/src/coreclr/src/debug/CMakeLists.txt b/src/coreclr/debug/CMakeLists.txt similarity index 100% rename from src/coreclr/src/debug/CMakeLists.txt rename to src/coreclr/debug/CMakeLists.txt diff --git a/src/coreclr/src/debug/createdump/CMakeLists.txt b/src/coreclr/debug/createdump/CMakeLists.txt similarity index 97% rename from src/coreclr/src/debug/createdump/CMakeLists.txt rename to src/coreclr/debug/createdump/CMakeLists.txt index 71b6083f9bcf5..2e55b9a991f1e 100644 --- a/src/coreclr/src/debug/createdump/CMakeLists.txt +++ b/src/coreclr/debug/createdump/CMakeLists.txt @@ -4,7 +4,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) include_directories(BEFORE ${VM_DIR}) if(CLR_CMAKE_HOST_OSX) - include_directories(${CLR_DIR}/src/inc/llvm) + include_directories(${CLR_DIR}/inc/llvm) endif(CLR_CMAKE_HOST_OSX) remove_definitions(-DUNICODE) diff --git a/src/coreclr/src/debug/createdump/config.h.in b/src/coreclr/debug/createdump/config.h.in similarity index 100% rename from src/coreclr/src/debug/createdump/config.h.in rename to src/coreclr/debug/createdump/config.h.in diff --git a/src/coreclr/src/debug/createdump/configure.cmake b/src/coreclr/debug/createdump/configure.cmake similarity index 100% rename from src/coreclr/src/debug/createdump/configure.cmake rename to src/coreclr/debug/createdump/configure.cmake diff --git a/src/coreclr/src/debug/createdump/crashinfo.cpp b/src/coreclr/debug/createdump/crashinfo.cpp similarity index 100% rename from src/coreclr/src/debug/createdump/crashinfo.cpp rename to src/coreclr/debug/createdump/crashinfo.cpp diff --git a/src/coreclr/src/debug/createdump/crashinfo.h b/src/coreclr/debug/createdump/crashinfo.h similarity index 100% rename from src/coreclr/src/debug/createdump/crashinfo.h rename to src/coreclr/debug/createdump/crashinfo.h diff --git a/src/coreclr/src/debug/createdump/crashinfomac.cpp b/src/coreclr/debug/createdump/crashinfomac.cpp similarity index 100% rename from src/coreclr/src/debug/createdump/crashinfomac.cpp rename to src/coreclr/debug/createdump/crashinfomac.cpp diff --git a/src/coreclr/src/debug/createdump/crashinfounix.cpp b/src/coreclr/debug/createdump/crashinfounix.cpp similarity index 100% rename from src/coreclr/src/debug/createdump/crashinfounix.cpp rename to src/coreclr/debug/createdump/crashinfounix.cpp diff --git a/src/coreclr/src/debug/createdump/createdump.h b/src/coreclr/debug/createdump/createdump.h similarity index 100% rename from src/coreclr/src/debug/createdump/createdump.h rename to src/coreclr/debug/createdump/createdump.h diff --git a/src/coreclr/src/debug/createdump/createdump.rc b/src/coreclr/debug/createdump/createdump.rc similarity index 100% rename from src/coreclr/src/debug/createdump/createdump.rc rename to src/coreclr/debug/createdump/createdump.rc diff --git a/src/coreclr/src/debug/createdump/createdumpunix.cpp b/src/coreclr/debug/createdump/createdumpunix.cpp similarity index 100% rename from src/coreclr/src/debug/createdump/createdumpunix.cpp rename to src/coreclr/debug/createdump/createdumpunix.cpp diff --git a/src/coreclr/src/debug/createdump/createdumpwindows.cpp b/src/coreclr/debug/createdump/createdumpwindows.cpp similarity index 100% rename from src/coreclr/src/debug/createdump/createdumpwindows.cpp rename to src/coreclr/debug/createdump/createdumpwindows.cpp diff --git a/src/coreclr/src/debug/createdump/datatarget.cpp b/src/coreclr/debug/createdump/datatarget.cpp similarity index 100% rename from src/coreclr/src/debug/createdump/datatarget.cpp rename to src/coreclr/debug/createdump/datatarget.cpp diff --git a/src/coreclr/src/debug/createdump/datatarget.h b/src/coreclr/debug/createdump/datatarget.h similarity index 100% rename from src/coreclr/src/debug/createdump/datatarget.h rename to src/coreclr/debug/createdump/datatarget.h diff --git a/src/coreclr/src/debug/createdump/dumpname.cpp b/src/coreclr/debug/createdump/dumpname.cpp similarity index 100% rename from src/coreclr/src/debug/createdump/dumpname.cpp rename to src/coreclr/debug/createdump/dumpname.cpp diff --git a/src/coreclr/src/debug/createdump/dumpwriter.cpp b/src/coreclr/debug/createdump/dumpwriter.cpp similarity index 100% rename from src/coreclr/src/debug/createdump/dumpwriter.cpp rename to src/coreclr/debug/createdump/dumpwriter.cpp diff --git a/src/coreclr/src/debug/createdump/dumpwriter.h b/src/coreclr/debug/createdump/dumpwriter.h similarity index 100% rename from src/coreclr/src/debug/createdump/dumpwriter.h rename to src/coreclr/debug/createdump/dumpwriter.h diff --git a/src/coreclr/src/debug/createdump/mac.h b/src/coreclr/debug/createdump/mac.h similarity index 100% rename from src/coreclr/src/debug/createdump/mac.h rename to src/coreclr/debug/createdump/mac.h diff --git a/src/coreclr/src/debug/createdump/main.cpp b/src/coreclr/debug/createdump/main.cpp similarity index 100% rename from src/coreclr/src/debug/createdump/main.cpp rename to src/coreclr/debug/createdump/main.cpp diff --git a/src/coreclr/src/debug/createdump/memoryregion.h b/src/coreclr/debug/createdump/memoryregion.h similarity index 100% rename from src/coreclr/src/debug/createdump/memoryregion.h rename to src/coreclr/debug/createdump/memoryregion.h diff --git a/src/coreclr/src/debug/createdump/threadinfo.cpp b/src/coreclr/debug/createdump/threadinfo.cpp similarity index 100% rename from src/coreclr/src/debug/createdump/threadinfo.cpp rename to src/coreclr/debug/createdump/threadinfo.cpp diff --git a/src/coreclr/src/debug/createdump/threadinfo.h b/src/coreclr/debug/createdump/threadinfo.h similarity index 100% rename from src/coreclr/src/debug/createdump/threadinfo.h rename to src/coreclr/debug/createdump/threadinfo.h diff --git a/src/coreclr/src/debug/createdump/threadinfomac.cpp b/src/coreclr/debug/createdump/threadinfomac.cpp similarity index 100% rename from src/coreclr/src/debug/createdump/threadinfomac.cpp rename to src/coreclr/debug/createdump/threadinfomac.cpp diff --git a/src/coreclr/src/debug/createdump/threadinfounix.cpp b/src/coreclr/debug/createdump/threadinfounix.cpp similarity index 100% rename from src/coreclr/src/debug/createdump/threadinfounix.cpp rename to src/coreclr/debug/createdump/threadinfounix.cpp diff --git a/src/coreclr/src/debug/daccess/CMakeLists.txt b/src/coreclr/debug/daccess/CMakeLists.txt similarity index 89% rename from src/coreclr/src/debug/daccess/CMakeLists.txt rename to src/coreclr/debug/daccess/CMakeLists.txt index 64aada0d827e4..aaf8f3439bc94 100644 --- a/src/coreclr/src/debug/daccess/CMakeLists.txt +++ b/src/coreclr/debug/daccess/CMakeLists.txt @@ -3,9 +3,9 @@ add_definitions(-DFEATURE_NO_HOST) include_directories(BEFORE ${VM_DIR}) include_directories(BEFORE ${VM_DIR}/${ARCH_SOURCES_DIR}) include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}) -include_directories(${CLR_DIR}/src/debug/ee) -include_directories(${CLR_DIR}/src/gcdump) -include_directories(${CLR_DIR}/src/interop/inc) +include_directories(${CLR_DIR}/debug/ee) +include_directories(${CLR_DIR}/gcdump) +include_directories(${CLR_DIR}/interop/inc) if(CLR_CMAKE_HOST_UNIX) include_directories(${GENERATED_INCLUDE_DIR}) @@ -52,7 +52,7 @@ if(CLR_CMAKE_HOST_OSX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_ DEPENDS coreclr VERBATIM COMMAND_EXPAND_LISTS - COMMAND sh ${CLR_DIR}/src/pal/tools/gen-dactable-rva.sh ${args} + COMMAND sh ${CLR_DIR}/pal/tools/gen-dactable-rva.sh ${args} COMMENT Generating ${GENERATED_INCLUDE_DIR}/dactablerva.h ) diff --git a/src/coreclr/src/debug/daccess/amd64/primitives.cpp b/src/coreclr/debug/daccess/amd64/primitives.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/amd64/primitives.cpp rename to src/coreclr/debug/daccess/amd64/primitives.cpp diff --git a/src/coreclr/src/debug/daccess/arm/primitives.cpp b/src/coreclr/debug/daccess/arm/primitives.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/arm/primitives.cpp rename to src/coreclr/debug/daccess/arm/primitives.cpp diff --git a/src/coreclr/src/debug/daccess/arm64/primitives.cpp b/src/coreclr/debug/daccess/arm64/primitives.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/arm64/primitives.cpp rename to src/coreclr/debug/daccess/arm64/primitives.cpp diff --git a/src/coreclr/src/debug/daccess/daccess.cpp b/src/coreclr/debug/daccess/daccess.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/daccess.cpp rename to src/coreclr/debug/daccess/daccess.cpp diff --git a/src/coreclr/src/debug/daccess/dacdbiimpl.cpp b/src/coreclr/debug/daccess/dacdbiimpl.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/dacdbiimpl.cpp rename to src/coreclr/debug/daccess/dacdbiimpl.cpp diff --git a/src/coreclr/src/debug/daccess/dacdbiimpl.h b/src/coreclr/debug/daccess/dacdbiimpl.h similarity index 100% rename from src/coreclr/src/debug/daccess/dacdbiimpl.h rename to src/coreclr/debug/daccess/dacdbiimpl.h diff --git a/src/coreclr/src/debug/daccess/dacdbiimpl.inl b/src/coreclr/debug/daccess/dacdbiimpl.inl similarity index 100% rename from src/coreclr/src/debug/daccess/dacdbiimpl.inl rename to src/coreclr/debug/daccess/dacdbiimpl.inl diff --git a/src/coreclr/src/debug/daccess/dacdbiimpllocks.cpp b/src/coreclr/debug/daccess/dacdbiimpllocks.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/dacdbiimpllocks.cpp rename to src/coreclr/debug/daccess/dacdbiimpllocks.cpp diff --git a/src/coreclr/src/debug/daccess/dacdbiimplstackwalk.cpp b/src/coreclr/debug/daccess/dacdbiimplstackwalk.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/dacdbiimplstackwalk.cpp rename to src/coreclr/debug/daccess/dacdbiimplstackwalk.cpp diff --git a/src/coreclr/src/debug/daccess/dacfn.cpp b/src/coreclr/debug/daccess/dacfn.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/dacfn.cpp rename to src/coreclr/debug/daccess/dacfn.cpp diff --git a/src/coreclr/src/debug/daccess/dacimpl.h b/src/coreclr/debug/daccess/dacimpl.h similarity index 100% rename from src/coreclr/src/debug/daccess/dacimpl.h rename to src/coreclr/debug/daccess/dacimpl.h diff --git a/src/coreclr/src/debug/daccess/datatargetadapter.cpp b/src/coreclr/debug/daccess/datatargetadapter.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/datatargetadapter.cpp rename to src/coreclr/debug/daccess/datatargetadapter.cpp diff --git a/src/coreclr/src/debug/daccess/datatargetadapter.h b/src/coreclr/debug/daccess/datatargetadapter.h similarity index 100% rename from src/coreclr/src/debug/daccess/datatargetadapter.h rename to src/coreclr/debug/daccess/datatargetadapter.h diff --git a/src/coreclr/src/debug/daccess/enummem.cpp b/src/coreclr/debug/daccess/enummem.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/enummem.cpp rename to src/coreclr/debug/daccess/enummem.cpp diff --git a/src/coreclr/src/debug/daccess/fntableaccess.cpp b/src/coreclr/debug/daccess/fntableaccess.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/fntableaccess.cpp rename to src/coreclr/debug/daccess/fntableaccess.cpp diff --git a/src/coreclr/src/debug/daccess/fntableaccess.h b/src/coreclr/debug/daccess/fntableaccess.h similarity index 100% rename from src/coreclr/src/debug/daccess/fntableaccess.h rename to src/coreclr/debug/daccess/fntableaccess.h diff --git a/src/coreclr/src/debug/daccess/gcinterface.dac.h b/src/coreclr/debug/daccess/gcinterface.dac.h similarity index 100% rename from src/coreclr/src/debug/daccess/gcinterface.dac.h rename to src/coreclr/debug/daccess/gcinterface.dac.h diff --git a/src/coreclr/src/debug/daccess/i386/primitives.cpp b/src/coreclr/debug/daccess/i386/primitives.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/i386/primitives.cpp rename to src/coreclr/debug/daccess/i386/primitives.cpp diff --git a/src/coreclr/src/debug/daccess/inspect.cpp b/src/coreclr/debug/daccess/inspect.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/inspect.cpp rename to src/coreclr/debug/daccess/inspect.cpp diff --git a/src/coreclr/src/debug/daccess/nidump.cpp b/src/coreclr/debug/daccess/nidump.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/nidump.cpp rename to src/coreclr/debug/daccess/nidump.cpp diff --git a/src/coreclr/src/debug/daccess/nidump.h b/src/coreclr/debug/daccess/nidump.h similarity index 100% rename from src/coreclr/src/debug/daccess/nidump.h rename to src/coreclr/debug/daccess/nidump.h diff --git a/src/coreclr/src/debug/daccess/nidump.inl b/src/coreclr/debug/daccess/nidump.inl similarity index 100% rename from src/coreclr/src/debug/daccess/nidump.inl rename to src/coreclr/debug/daccess/nidump.inl diff --git a/src/coreclr/src/debug/daccess/reimpl.cpp b/src/coreclr/debug/daccess/reimpl.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/reimpl.cpp rename to src/coreclr/debug/daccess/reimpl.cpp diff --git a/src/coreclr/src/debug/daccess/request.cpp b/src/coreclr/debug/daccess/request.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/request.cpp rename to src/coreclr/debug/daccess/request.cpp diff --git a/src/coreclr/src/debug/daccess/request_common.h b/src/coreclr/debug/daccess/request_common.h similarity index 100% rename from src/coreclr/src/debug/daccess/request_common.h rename to src/coreclr/debug/daccess/request_common.h diff --git a/src/coreclr/src/debug/daccess/request_svr.cpp b/src/coreclr/debug/daccess/request_svr.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/request_svr.cpp rename to src/coreclr/debug/daccess/request_svr.cpp diff --git a/src/coreclr/src/debug/daccess/stack.cpp b/src/coreclr/debug/daccess/stack.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/stack.cpp rename to src/coreclr/debug/daccess/stack.cpp diff --git a/src/coreclr/src/debug/daccess/stdafx.h b/src/coreclr/debug/daccess/stdafx.h similarity index 100% rename from src/coreclr/src/debug/daccess/stdafx.h rename to src/coreclr/debug/daccess/stdafx.h diff --git a/src/coreclr/src/debug/daccess/task.cpp b/src/coreclr/debug/daccess/task.cpp similarity index 100% rename from src/coreclr/src/debug/daccess/task.cpp rename to src/coreclr/debug/daccess/task.cpp diff --git a/src/coreclr/src/debug/dbgutil/CMakeLists.txt b/src/coreclr/debug/dbgutil/CMakeLists.txt similarity index 93% rename from src/coreclr/src/debug/dbgutil/CMakeLists.txt rename to src/coreclr/debug/dbgutil/CMakeLists.txt index 30be04114a49b..01d724d1c7d78 100644 --- a/src/coreclr/src/debug/dbgutil/CMakeLists.txt +++ b/src/coreclr/debug/dbgutil/CMakeLists.txt @@ -6,7 +6,7 @@ if(CLR_CMAKE_HOST_WIN32) endif(CLR_CMAKE_HOST_WIN32) if(CLR_CMAKE_HOST_WIN32 OR CLR_CMAKE_HOST_OSX) - include_directories(${CLR_DIR}/src/inc/llvm) + include_directories(${CLR_DIR}/inc/llvm) endif(CLR_CMAKE_HOST_WIN32 OR CLR_CMAKE_HOST_OSX) add_definitions(-DPAL_STDCPP_COMPAT) diff --git a/src/coreclr/src/debug/dbgutil/dbgutil.cpp b/src/coreclr/debug/dbgutil/dbgutil.cpp similarity index 100% rename from src/coreclr/src/debug/dbgutil/dbgutil.cpp rename to src/coreclr/debug/dbgutil/dbgutil.cpp diff --git a/src/coreclr/src/debug/dbgutil/elfreader.cpp b/src/coreclr/debug/dbgutil/elfreader.cpp similarity index 100% rename from src/coreclr/src/debug/dbgutil/elfreader.cpp rename to src/coreclr/debug/dbgutil/elfreader.cpp diff --git a/src/coreclr/src/debug/dbgutil/elfreader.h b/src/coreclr/debug/dbgutil/elfreader.h similarity index 100% rename from src/coreclr/src/debug/dbgutil/elfreader.h rename to src/coreclr/debug/dbgutil/elfreader.h diff --git a/src/coreclr/src/debug/dbgutil/machoreader.cpp b/src/coreclr/debug/dbgutil/machoreader.cpp similarity index 100% rename from src/coreclr/src/debug/dbgutil/machoreader.cpp rename to src/coreclr/debug/dbgutil/machoreader.cpp diff --git a/src/coreclr/src/debug/dbgutil/machoreader.h b/src/coreclr/debug/dbgutil/machoreader.h similarity index 100% rename from src/coreclr/src/debug/dbgutil/machoreader.h rename to src/coreclr/debug/dbgutil/machoreader.h diff --git a/src/coreclr/src/debug/debug-pal/CMakeLists.txt b/src/coreclr/debug/debug-pal/CMakeLists.txt similarity index 100% rename from src/coreclr/src/debug/debug-pal/CMakeLists.txt rename to src/coreclr/debug/debug-pal/CMakeLists.txt diff --git a/src/coreclr/src/debug/debug-pal/dummy/twowaypipe.cpp b/src/coreclr/debug/debug-pal/dummy/twowaypipe.cpp similarity index 100% rename from src/coreclr/src/debug/debug-pal/dummy/twowaypipe.cpp rename to src/coreclr/debug/debug-pal/dummy/twowaypipe.cpp diff --git a/src/coreclr/src/debug/debug-pal/unix/diagnosticsipc.cpp b/src/coreclr/debug/debug-pal/unix/diagnosticsipc.cpp similarity index 100% rename from src/coreclr/src/debug/debug-pal/unix/diagnosticsipc.cpp rename to src/coreclr/debug/debug-pal/unix/diagnosticsipc.cpp diff --git a/src/coreclr/src/debug/debug-pal/unix/processdescriptor.cpp b/src/coreclr/debug/debug-pal/unix/processdescriptor.cpp similarity index 100% rename from src/coreclr/src/debug/debug-pal/unix/processdescriptor.cpp rename to src/coreclr/debug/debug-pal/unix/processdescriptor.cpp diff --git a/src/coreclr/src/debug/debug-pal/unix/twowaypipe.cpp b/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp similarity index 100% rename from src/coreclr/src/debug/debug-pal/unix/twowaypipe.cpp rename to src/coreclr/debug/debug-pal/unix/twowaypipe.cpp diff --git a/src/coreclr/src/debug/debug-pal/win/diagnosticsipc.cpp b/src/coreclr/debug/debug-pal/win/diagnosticsipc.cpp similarity index 100% rename from src/coreclr/src/debug/debug-pal/win/diagnosticsipc.cpp rename to src/coreclr/debug/debug-pal/win/diagnosticsipc.cpp diff --git a/src/coreclr/src/debug/debug-pal/win/processdescriptor.cpp b/src/coreclr/debug/debug-pal/win/processdescriptor.cpp similarity index 100% rename from src/coreclr/src/debug/debug-pal/win/processdescriptor.cpp rename to src/coreclr/debug/debug-pal/win/processdescriptor.cpp diff --git a/src/coreclr/src/debug/debug-pal/win/twowaypipe.cpp b/src/coreclr/debug/debug-pal/win/twowaypipe.cpp similarity index 100% rename from src/coreclr/src/debug/debug-pal/win/twowaypipe.cpp rename to src/coreclr/debug/debug-pal/win/twowaypipe.cpp diff --git a/src/coreclr/src/debug/di/CMakeLists.txt b/src/coreclr/debug/di/CMakeLists.txt similarity index 100% rename from src/coreclr/src/debug/di/CMakeLists.txt rename to src/coreclr/debug/di/CMakeLists.txt diff --git a/src/coreclr/src/debug/di/ICorDebugValueTypes.vsd b/src/coreclr/debug/di/ICorDebugValueTypes.vsd similarity index 100% rename from src/coreclr/src/debug/di/ICorDebugValueTypes.vsd rename to src/coreclr/debug/di/ICorDebugValueTypes.vsd diff --git a/src/coreclr/src/debug/di/amd64/FloatConversion.asm b/src/coreclr/debug/di/amd64/FloatConversion.asm similarity index 100% rename from src/coreclr/src/debug/di/amd64/FloatConversion.asm rename to src/coreclr/debug/di/amd64/FloatConversion.asm diff --git a/src/coreclr/src/debug/di/amd64/cordbregisterset.cpp b/src/coreclr/debug/di/amd64/cordbregisterset.cpp similarity index 100% rename from src/coreclr/src/debug/di/amd64/cordbregisterset.cpp rename to src/coreclr/debug/di/amd64/cordbregisterset.cpp diff --git a/src/coreclr/src/debug/di/amd64/floatconversion.S b/src/coreclr/debug/di/amd64/floatconversion.S similarity index 100% rename from src/coreclr/src/debug/di/amd64/floatconversion.S rename to src/coreclr/debug/di/amd64/floatconversion.S diff --git a/src/coreclr/src/debug/di/amd64/primitives.cpp b/src/coreclr/debug/di/amd64/primitives.cpp similarity index 100% rename from src/coreclr/src/debug/di/amd64/primitives.cpp rename to src/coreclr/debug/di/amd64/primitives.cpp diff --git a/src/coreclr/src/debug/di/arm/cordbregisterset.cpp b/src/coreclr/debug/di/arm/cordbregisterset.cpp similarity index 100% rename from src/coreclr/src/debug/di/arm/cordbregisterset.cpp rename to src/coreclr/debug/di/arm/cordbregisterset.cpp diff --git a/src/coreclr/src/debug/di/arm/floatconversion.S b/src/coreclr/debug/di/arm/floatconversion.S similarity index 100% rename from src/coreclr/src/debug/di/arm/floatconversion.S rename to src/coreclr/debug/di/arm/floatconversion.S diff --git a/src/coreclr/src/debug/di/arm/floatconversion.asm b/src/coreclr/debug/di/arm/floatconversion.asm similarity index 100% rename from src/coreclr/src/debug/di/arm/floatconversion.asm rename to src/coreclr/debug/di/arm/floatconversion.asm diff --git a/src/coreclr/src/debug/di/arm/primitives.cpp b/src/coreclr/debug/di/arm/primitives.cpp similarity index 100% rename from src/coreclr/src/debug/di/arm/primitives.cpp rename to src/coreclr/debug/di/arm/primitives.cpp diff --git a/src/coreclr/src/debug/di/arm64/cordbregisterset.cpp b/src/coreclr/debug/di/arm64/cordbregisterset.cpp similarity index 100% rename from src/coreclr/src/debug/di/arm64/cordbregisterset.cpp rename to src/coreclr/debug/di/arm64/cordbregisterset.cpp diff --git a/src/coreclr/src/debug/di/arm64/floatconversion.S b/src/coreclr/debug/di/arm64/floatconversion.S similarity index 100% rename from src/coreclr/src/debug/di/arm64/floatconversion.S rename to src/coreclr/debug/di/arm64/floatconversion.S diff --git a/src/coreclr/src/debug/di/arm64/floatconversion.asm b/src/coreclr/debug/di/arm64/floatconversion.asm similarity index 100% rename from src/coreclr/src/debug/di/arm64/floatconversion.asm rename to src/coreclr/debug/di/arm64/floatconversion.asm diff --git a/src/coreclr/src/debug/di/arm64/primitives.cpp b/src/coreclr/debug/di/arm64/primitives.cpp similarity index 100% rename from src/coreclr/src/debug/di/arm64/primitives.cpp rename to src/coreclr/debug/di/arm64/primitives.cpp diff --git a/src/coreclr/src/debug/di/breakpoint.cpp b/src/coreclr/debug/di/breakpoint.cpp similarity index 100% rename from src/coreclr/src/debug/di/breakpoint.cpp rename to src/coreclr/debug/di/breakpoint.cpp diff --git a/src/coreclr/src/debug/di/classfactory.h b/src/coreclr/debug/di/classfactory.h similarity index 100% rename from src/coreclr/src/debug/di/classfactory.h rename to src/coreclr/debug/di/classfactory.h diff --git a/src/coreclr/src/debug/di/cordb.cpp b/src/coreclr/debug/di/cordb.cpp similarity index 100% rename from src/coreclr/src/debug/di/cordb.cpp rename to src/coreclr/debug/di/cordb.cpp diff --git a/src/coreclr/src/debug/di/dbgtransportmanager.cpp b/src/coreclr/debug/di/dbgtransportmanager.cpp similarity index 100% rename from src/coreclr/src/debug/di/dbgtransportmanager.cpp rename to src/coreclr/debug/di/dbgtransportmanager.cpp diff --git a/src/coreclr/src/debug/di/dbgtransportmanager.h b/src/coreclr/debug/di/dbgtransportmanager.h similarity index 100% rename from src/coreclr/src/debug/di/dbgtransportmanager.h rename to src/coreclr/debug/di/dbgtransportmanager.h diff --git a/src/coreclr/src/debug/di/dbgtransportpipeline.cpp b/src/coreclr/debug/di/dbgtransportpipeline.cpp similarity index 100% rename from src/coreclr/src/debug/di/dbgtransportpipeline.cpp rename to src/coreclr/debug/di/dbgtransportpipeline.cpp diff --git a/src/coreclr/src/debug/di/divalue.cpp b/src/coreclr/debug/di/divalue.cpp similarity index 100% rename from src/coreclr/src/debug/di/divalue.cpp rename to src/coreclr/debug/di/divalue.cpp diff --git a/src/coreclr/src/debug/di/eventchannel.h b/src/coreclr/debug/di/eventchannel.h similarity index 100% rename from src/coreclr/src/debug/di/eventchannel.h rename to src/coreclr/debug/di/eventchannel.h diff --git a/src/coreclr/src/debug/di/eventredirectionpipeline.cpp b/src/coreclr/debug/di/eventredirectionpipeline.cpp similarity index 100% rename from src/coreclr/src/debug/di/eventredirectionpipeline.cpp rename to src/coreclr/debug/di/eventredirectionpipeline.cpp diff --git a/src/coreclr/src/debug/di/eventredirectionpipeline.h b/src/coreclr/debug/di/eventredirectionpipeline.h similarity index 100% rename from src/coreclr/src/debug/di/eventredirectionpipeline.h rename to src/coreclr/debug/di/eventredirectionpipeline.h diff --git a/src/coreclr/src/debug/di/hash.cpp b/src/coreclr/debug/di/hash.cpp similarity index 100% rename from src/coreclr/src/debug/di/hash.cpp rename to src/coreclr/debug/di/hash.cpp diff --git a/src/coreclr/src/debug/di/helpers.h b/src/coreclr/debug/di/helpers.h similarity index 100% rename from src/coreclr/src/debug/di/helpers.h rename to src/coreclr/debug/di/helpers.h diff --git a/src/coreclr/src/debug/di/i386/cordbregisterset.cpp b/src/coreclr/debug/di/i386/cordbregisterset.cpp similarity index 100% rename from src/coreclr/src/debug/di/i386/cordbregisterset.cpp rename to src/coreclr/debug/di/i386/cordbregisterset.cpp diff --git a/src/coreclr/src/debug/di/i386/primitives.cpp b/src/coreclr/debug/di/i386/primitives.cpp similarity index 100% rename from src/coreclr/src/debug/di/i386/primitives.cpp rename to src/coreclr/debug/di/i386/primitives.cpp diff --git a/src/coreclr/src/debug/di/localeventchannel.cpp b/src/coreclr/debug/di/localeventchannel.cpp similarity index 100% rename from src/coreclr/src/debug/di/localeventchannel.cpp rename to src/coreclr/debug/di/localeventchannel.cpp diff --git a/src/coreclr/src/debug/di/module.cpp b/src/coreclr/debug/di/module.cpp similarity index 100% rename from src/coreclr/src/debug/di/module.cpp rename to src/coreclr/debug/di/module.cpp diff --git a/src/coreclr/src/debug/di/nativepipeline.cpp b/src/coreclr/debug/di/nativepipeline.cpp similarity index 100% rename from src/coreclr/src/debug/di/nativepipeline.cpp rename to src/coreclr/debug/di/nativepipeline.cpp diff --git a/src/coreclr/src/debug/di/nativepipeline.h b/src/coreclr/debug/di/nativepipeline.h similarity index 100% rename from src/coreclr/src/debug/di/nativepipeline.h rename to src/coreclr/debug/di/nativepipeline.h diff --git a/src/coreclr/src/debug/di/platformspecific.cpp b/src/coreclr/debug/di/platformspecific.cpp similarity index 100% rename from src/coreclr/src/debug/di/platformspecific.cpp rename to src/coreclr/debug/di/platformspecific.cpp diff --git a/src/coreclr/src/debug/di/process.cpp b/src/coreclr/debug/di/process.cpp similarity index 100% rename from src/coreclr/src/debug/di/process.cpp rename to src/coreclr/debug/di/process.cpp diff --git a/src/coreclr/src/debug/di/publish.cpp b/src/coreclr/debug/di/publish.cpp similarity index 100% rename from src/coreclr/src/debug/di/publish.cpp rename to src/coreclr/debug/di/publish.cpp diff --git a/src/coreclr/src/debug/di/remoteeventchannel.cpp b/src/coreclr/debug/di/remoteeventchannel.cpp similarity index 100% rename from src/coreclr/src/debug/di/remoteeventchannel.cpp rename to src/coreclr/debug/di/remoteeventchannel.cpp diff --git a/src/coreclr/src/debug/di/rsappdomain.cpp b/src/coreclr/debug/di/rsappdomain.cpp similarity index 100% rename from src/coreclr/src/debug/di/rsappdomain.cpp rename to src/coreclr/debug/di/rsappdomain.cpp diff --git a/src/coreclr/src/debug/di/rsassembly.cpp b/src/coreclr/debug/di/rsassembly.cpp similarity index 100% rename from src/coreclr/src/debug/di/rsassembly.cpp rename to src/coreclr/debug/di/rsassembly.cpp diff --git a/src/coreclr/src/debug/di/rsclass.cpp b/src/coreclr/debug/di/rsclass.cpp similarity index 100% rename from src/coreclr/src/debug/di/rsclass.cpp rename to src/coreclr/debug/di/rsclass.cpp diff --git a/src/coreclr/src/debug/di/rsenumerator.hpp b/src/coreclr/debug/di/rsenumerator.hpp similarity index 100% rename from src/coreclr/src/debug/di/rsenumerator.hpp rename to src/coreclr/debug/di/rsenumerator.hpp diff --git a/src/coreclr/src/debug/di/rsfunction.cpp b/src/coreclr/debug/di/rsfunction.cpp similarity index 100% rename from src/coreclr/src/debug/di/rsfunction.cpp rename to src/coreclr/debug/di/rsfunction.cpp diff --git a/src/coreclr/src/debug/di/rsmain.cpp b/src/coreclr/debug/di/rsmain.cpp similarity index 100% rename from src/coreclr/src/debug/di/rsmain.cpp rename to src/coreclr/debug/di/rsmain.cpp diff --git a/src/coreclr/src/debug/di/rsmda.cpp b/src/coreclr/debug/di/rsmda.cpp similarity index 100% rename from src/coreclr/src/debug/di/rsmda.cpp rename to src/coreclr/debug/di/rsmda.cpp diff --git a/src/coreclr/src/debug/di/rspriv.h b/src/coreclr/debug/di/rspriv.h similarity index 100% rename from src/coreclr/src/debug/di/rspriv.h rename to src/coreclr/debug/di/rspriv.h diff --git a/src/coreclr/src/debug/di/rspriv.inl b/src/coreclr/debug/di/rspriv.inl similarity index 100% rename from src/coreclr/src/debug/di/rspriv.inl rename to src/coreclr/debug/di/rspriv.inl diff --git a/src/coreclr/src/debug/di/rsregsetcommon.cpp b/src/coreclr/debug/di/rsregsetcommon.cpp similarity index 100% rename from src/coreclr/src/debug/di/rsregsetcommon.cpp rename to src/coreclr/debug/di/rsregsetcommon.cpp diff --git a/src/coreclr/src/debug/di/rsstackwalk.cpp b/src/coreclr/debug/di/rsstackwalk.cpp similarity index 100% rename from src/coreclr/src/debug/di/rsstackwalk.cpp rename to src/coreclr/debug/di/rsstackwalk.cpp diff --git a/src/coreclr/src/debug/di/rsthread.cpp b/src/coreclr/debug/di/rsthread.cpp similarity index 100% rename from src/coreclr/src/debug/di/rsthread.cpp rename to src/coreclr/debug/di/rsthread.cpp diff --git a/src/coreclr/src/debug/di/rstype.cpp b/src/coreclr/debug/di/rstype.cpp similarity index 100% rename from src/coreclr/src/debug/di/rstype.cpp rename to src/coreclr/debug/di/rstype.cpp diff --git a/src/coreclr/src/debug/di/shared.cpp b/src/coreclr/debug/di/shared.cpp similarity index 100% rename from src/coreclr/src/debug/di/shared.cpp rename to src/coreclr/debug/di/shared.cpp diff --git a/src/coreclr/src/debug/di/shimcallback.cpp b/src/coreclr/debug/di/shimcallback.cpp similarity index 100% rename from src/coreclr/src/debug/di/shimcallback.cpp rename to src/coreclr/debug/di/shimcallback.cpp diff --git a/src/coreclr/src/debug/di/shimdatatarget.cpp b/src/coreclr/debug/di/shimdatatarget.cpp similarity index 100% rename from src/coreclr/src/debug/di/shimdatatarget.cpp rename to src/coreclr/debug/di/shimdatatarget.cpp diff --git a/src/coreclr/src/debug/di/shimdatatarget.h b/src/coreclr/debug/di/shimdatatarget.h similarity index 100% rename from src/coreclr/src/debug/di/shimdatatarget.h rename to src/coreclr/debug/di/shimdatatarget.h diff --git a/src/coreclr/src/debug/di/shimevents.cpp b/src/coreclr/debug/di/shimevents.cpp similarity index 100% rename from src/coreclr/src/debug/di/shimevents.cpp rename to src/coreclr/debug/di/shimevents.cpp diff --git a/src/coreclr/src/debug/di/shimlocaldatatarget.cpp b/src/coreclr/debug/di/shimlocaldatatarget.cpp similarity index 100% rename from src/coreclr/src/debug/di/shimlocaldatatarget.cpp rename to src/coreclr/debug/di/shimlocaldatatarget.cpp diff --git a/src/coreclr/src/debug/di/shimpriv.h b/src/coreclr/debug/di/shimpriv.h similarity index 100% rename from src/coreclr/src/debug/di/shimpriv.h rename to src/coreclr/debug/di/shimpriv.h diff --git a/src/coreclr/src/debug/di/shimprocess.cpp b/src/coreclr/debug/di/shimprocess.cpp similarity index 100% rename from src/coreclr/src/debug/di/shimprocess.cpp rename to src/coreclr/debug/di/shimprocess.cpp diff --git a/src/coreclr/src/debug/di/shimremotedatatarget.cpp b/src/coreclr/debug/di/shimremotedatatarget.cpp similarity index 100% rename from src/coreclr/src/debug/di/shimremotedatatarget.cpp rename to src/coreclr/debug/di/shimremotedatatarget.cpp diff --git a/src/coreclr/src/debug/di/shimstackwalk.cpp b/src/coreclr/debug/di/shimstackwalk.cpp similarity index 100% rename from src/coreclr/src/debug/di/shimstackwalk.cpp rename to src/coreclr/debug/di/shimstackwalk.cpp diff --git a/src/coreclr/src/debug/di/stdafx.h b/src/coreclr/debug/di/stdafx.h similarity index 100% rename from src/coreclr/src/debug/di/stdafx.h rename to src/coreclr/debug/di/stdafx.h diff --git a/src/coreclr/src/debug/di/symbolinfo.cpp b/src/coreclr/debug/di/symbolinfo.cpp similarity index 100% rename from src/coreclr/src/debug/di/symbolinfo.cpp rename to src/coreclr/debug/di/symbolinfo.cpp diff --git a/src/coreclr/src/debug/di/symbolinfo.h b/src/coreclr/debug/di/symbolinfo.h similarity index 100% rename from src/coreclr/src/debug/di/symbolinfo.h rename to src/coreclr/debug/di/symbolinfo.h diff --git a/src/coreclr/src/debug/di/valuehome.cpp b/src/coreclr/debug/di/valuehome.cpp similarity index 100% rename from src/coreclr/src/debug/di/valuehome.cpp rename to src/coreclr/debug/di/valuehome.cpp diff --git a/src/coreclr/src/debug/di/windowspipeline.cpp b/src/coreclr/debug/di/windowspipeline.cpp similarity index 100% rename from src/coreclr/src/debug/di/windowspipeline.cpp rename to src/coreclr/debug/di/windowspipeline.cpp diff --git a/src/coreclr/src/debug/ee/CMakeLists.txt b/src/coreclr/debug/ee/CMakeLists.txt similarity index 100% rename from src/coreclr/src/debug/ee/CMakeLists.txt rename to src/coreclr/debug/ee/CMakeLists.txt diff --git a/src/coreclr/src/debug/ee/amd64/amd64InstrDecode.h b/src/coreclr/debug/ee/amd64/amd64InstrDecode.h similarity index 100% rename from src/coreclr/src/debug/ee/amd64/amd64InstrDecode.h rename to src/coreclr/debug/ee/amd64/amd64InstrDecode.h diff --git a/src/coreclr/src/debug/ee/amd64/amd64walker.cpp b/src/coreclr/debug/ee/amd64/amd64walker.cpp similarity index 100% rename from src/coreclr/src/debug/ee/amd64/amd64walker.cpp rename to src/coreclr/debug/ee/amd64/amd64walker.cpp diff --git a/src/coreclr/src/debug/ee/amd64/dbghelpers.S b/src/coreclr/debug/ee/amd64/dbghelpers.S similarity index 100% rename from src/coreclr/src/debug/ee/amd64/dbghelpers.S rename to src/coreclr/debug/ee/amd64/dbghelpers.S diff --git a/src/coreclr/src/debug/ee/amd64/dbghelpers.asm b/src/coreclr/debug/ee/amd64/dbghelpers.asm similarity index 100% rename from src/coreclr/src/debug/ee/amd64/dbghelpers.asm rename to src/coreclr/debug/ee/amd64/dbghelpers.asm diff --git a/src/coreclr/src/debug/ee/amd64/debuggerregdisplayhelper.cpp b/src/coreclr/debug/ee/amd64/debuggerregdisplayhelper.cpp similarity index 100% rename from src/coreclr/src/debug/ee/amd64/debuggerregdisplayhelper.cpp rename to src/coreclr/debug/ee/amd64/debuggerregdisplayhelper.cpp diff --git a/src/coreclr/src/debug/ee/amd64/gen_amd64InstrDecode/Amd64InstructionTableGenerator.cs b/src/coreclr/debug/ee/amd64/gen_amd64InstrDecode/Amd64InstructionTableGenerator.cs similarity index 100% rename from src/coreclr/src/debug/ee/amd64/gen_amd64InstrDecode/Amd64InstructionTableGenerator.cs rename to src/coreclr/debug/ee/amd64/gen_amd64InstrDecode/Amd64InstructionTableGenerator.cs diff --git a/src/coreclr/src/debug/ee/amd64/gen_amd64InstrDecode/Amd64InstructionTableGenerator.csproj b/src/coreclr/debug/ee/amd64/gen_amd64InstrDecode/Amd64InstructionTableGenerator.csproj similarity index 100% rename from src/coreclr/src/debug/ee/amd64/gen_amd64InstrDecode/Amd64InstructionTableGenerator.csproj rename to src/coreclr/debug/ee/amd64/gen_amd64InstrDecode/Amd64InstructionTableGenerator.csproj diff --git a/src/coreclr/src/debug/ee/amd64/gen_amd64InstrDecode/README.md b/src/coreclr/debug/ee/amd64/gen_amd64InstrDecode/README.md similarity index 100% rename from src/coreclr/src/debug/ee/amd64/gen_amd64InstrDecode/README.md rename to src/coreclr/debug/ee/amd64/gen_amd64InstrDecode/README.md diff --git a/src/coreclr/src/debug/ee/amd64/gen_amd64InstrDecode/createOpcodes.cpp b/src/coreclr/debug/ee/amd64/gen_amd64InstrDecode/createOpcodes.cpp similarity index 100% rename from src/coreclr/src/debug/ee/amd64/gen_amd64InstrDecode/createOpcodes.cpp rename to src/coreclr/debug/ee/amd64/gen_amd64InstrDecode/createOpcodes.cpp diff --git a/src/coreclr/src/debug/ee/amd64/primitives.cpp b/src/coreclr/debug/ee/amd64/primitives.cpp similarity index 100% rename from src/coreclr/src/debug/ee/amd64/primitives.cpp rename to src/coreclr/debug/ee/amd64/primitives.cpp diff --git a/src/coreclr/src/debug/ee/arm/armwalker.cpp b/src/coreclr/debug/ee/arm/armwalker.cpp similarity index 100% rename from src/coreclr/src/debug/ee/arm/armwalker.cpp rename to src/coreclr/debug/ee/arm/armwalker.cpp diff --git a/src/coreclr/src/debug/ee/arm/dbghelpers.S b/src/coreclr/debug/ee/arm/dbghelpers.S similarity index 100% rename from src/coreclr/src/debug/ee/arm/dbghelpers.S rename to src/coreclr/debug/ee/arm/dbghelpers.S diff --git a/src/coreclr/src/debug/ee/arm/dbghelpers.asm b/src/coreclr/debug/ee/arm/dbghelpers.asm similarity index 100% rename from src/coreclr/src/debug/ee/arm/dbghelpers.asm rename to src/coreclr/debug/ee/arm/dbghelpers.asm diff --git a/src/coreclr/src/debug/ee/arm/primitives.cpp b/src/coreclr/debug/ee/arm/primitives.cpp similarity index 100% rename from src/coreclr/src/debug/ee/arm/primitives.cpp rename to src/coreclr/debug/ee/arm/primitives.cpp diff --git a/src/coreclr/src/debug/ee/arm64/arm64walker.cpp b/src/coreclr/debug/ee/arm64/arm64walker.cpp similarity index 100% rename from src/coreclr/src/debug/ee/arm64/arm64walker.cpp rename to src/coreclr/debug/ee/arm64/arm64walker.cpp diff --git a/src/coreclr/src/debug/ee/arm64/dbghelpers.S b/src/coreclr/debug/ee/arm64/dbghelpers.S similarity index 100% rename from src/coreclr/src/debug/ee/arm64/dbghelpers.S rename to src/coreclr/debug/ee/arm64/dbghelpers.S diff --git a/src/coreclr/src/debug/ee/arm64/dbghelpers.asm b/src/coreclr/debug/ee/arm64/dbghelpers.asm similarity index 100% rename from src/coreclr/src/debug/ee/arm64/dbghelpers.asm rename to src/coreclr/debug/ee/arm64/dbghelpers.asm diff --git a/src/coreclr/src/debug/ee/arm64/primitives.cpp b/src/coreclr/debug/ee/arm64/primitives.cpp similarity index 100% rename from src/coreclr/src/debug/ee/arm64/primitives.cpp rename to src/coreclr/debug/ee/arm64/primitives.cpp diff --git a/src/coreclr/src/debug/ee/canary.cpp b/src/coreclr/debug/ee/canary.cpp similarity index 100% rename from src/coreclr/src/debug/ee/canary.cpp rename to src/coreclr/debug/ee/canary.cpp diff --git a/src/coreclr/src/debug/ee/canary.h b/src/coreclr/debug/ee/canary.h similarity index 100% rename from src/coreclr/src/debug/ee/canary.h rename to src/coreclr/debug/ee/canary.h diff --git a/src/coreclr/src/debug/ee/controller.cpp b/src/coreclr/debug/ee/controller.cpp similarity index 100% rename from src/coreclr/src/debug/ee/controller.cpp rename to src/coreclr/debug/ee/controller.cpp diff --git a/src/coreclr/src/debug/ee/controller.h b/src/coreclr/debug/ee/controller.h similarity index 100% rename from src/coreclr/src/debug/ee/controller.h rename to src/coreclr/debug/ee/controller.h diff --git a/src/coreclr/src/debug/ee/controller.inl b/src/coreclr/debug/ee/controller.inl similarity index 100% rename from src/coreclr/src/debug/ee/controller.inl rename to src/coreclr/debug/ee/controller.inl diff --git a/src/coreclr/src/debug/ee/dac/CMakeLists.txt b/src/coreclr/debug/ee/dac/CMakeLists.txt similarity index 100% rename from src/coreclr/src/debug/ee/dac/CMakeLists.txt rename to src/coreclr/debug/ee/dac/CMakeLists.txt diff --git a/src/coreclr/src/debug/ee/dactable.cpp b/src/coreclr/debug/ee/dactable.cpp similarity index 100% rename from src/coreclr/src/debug/ee/dactable.cpp rename to src/coreclr/debug/ee/dactable.cpp diff --git a/src/coreclr/src/debug/ee/datatest.h b/src/coreclr/debug/ee/datatest.h similarity index 100% rename from src/coreclr/src/debug/ee/datatest.h rename to src/coreclr/debug/ee/datatest.h diff --git a/src/coreclr/src/debug/ee/debugger.cpp b/src/coreclr/debug/ee/debugger.cpp similarity index 100% rename from src/coreclr/src/debug/ee/debugger.cpp rename to src/coreclr/debug/ee/debugger.cpp diff --git a/src/coreclr/src/debug/ee/debugger.h b/src/coreclr/debug/ee/debugger.h similarity index 100% rename from src/coreclr/src/debug/ee/debugger.h rename to src/coreclr/debug/ee/debugger.h diff --git a/src/coreclr/src/debug/ee/debugger.inl b/src/coreclr/debug/ee/debugger.inl similarity index 100% rename from src/coreclr/src/debug/ee/debugger.inl rename to src/coreclr/debug/ee/debugger.inl diff --git a/src/coreclr/src/debug/ee/debuggermodule.cpp b/src/coreclr/debug/ee/debuggermodule.cpp similarity index 100% rename from src/coreclr/src/debug/ee/debuggermodule.cpp rename to src/coreclr/debug/ee/debuggermodule.cpp diff --git a/src/coreclr/src/debug/ee/frameinfo.cpp b/src/coreclr/debug/ee/frameinfo.cpp similarity index 100% rename from src/coreclr/src/debug/ee/frameinfo.cpp rename to src/coreclr/debug/ee/frameinfo.cpp diff --git a/src/coreclr/src/debug/ee/frameinfo.h b/src/coreclr/debug/ee/frameinfo.h similarity index 100% rename from src/coreclr/src/debug/ee/frameinfo.h rename to src/coreclr/debug/ee/frameinfo.h diff --git a/src/coreclr/src/debug/ee/funceval.cpp b/src/coreclr/debug/ee/funceval.cpp similarity index 100% rename from src/coreclr/src/debug/ee/funceval.cpp rename to src/coreclr/debug/ee/funceval.cpp diff --git a/src/coreclr/src/debug/ee/functioninfo.cpp b/src/coreclr/debug/ee/functioninfo.cpp similarity index 100% rename from src/coreclr/src/debug/ee/functioninfo.cpp rename to src/coreclr/debug/ee/functioninfo.cpp diff --git a/src/coreclr/src/debug/ee/i386/dbghelpers.S b/src/coreclr/debug/ee/i386/dbghelpers.S similarity index 100% rename from src/coreclr/src/debug/ee/i386/dbghelpers.S rename to src/coreclr/debug/ee/i386/dbghelpers.S diff --git a/src/coreclr/src/debug/ee/i386/dbghelpers.asm b/src/coreclr/debug/ee/i386/dbghelpers.asm similarity index 100% rename from src/coreclr/src/debug/ee/i386/dbghelpers.asm rename to src/coreclr/debug/ee/i386/dbghelpers.asm diff --git a/src/coreclr/src/debug/ee/i386/debuggerregdisplayhelper.cpp b/src/coreclr/debug/ee/i386/debuggerregdisplayhelper.cpp similarity index 100% rename from src/coreclr/src/debug/ee/i386/debuggerregdisplayhelper.cpp rename to src/coreclr/debug/ee/i386/debuggerregdisplayhelper.cpp diff --git a/src/coreclr/src/debug/ee/i386/primitives.cpp b/src/coreclr/debug/ee/i386/primitives.cpp similarity index 100% rename from src/coreclr/src/debug/ee/i386/primitives.cpp rename to src/coreclr/debug/ee/i386/primitives.cpp diff --git a/src/coreclr/src/debug/ee/i386/x86walker.cpp b/src/coreclr/debug/ee/i386/x86walker.cpp similarity index 100% rename from src/coreclr/src/debug/ee/i386/x86walker.cpp rename to src/coreclr/debug/ee/i386/x86walker.cpp diff --git a/src/coreclr/src/debug/ee/rcthread.cpp b/src/coreclr/debug/ee/rcthread.cpp similarity index 100% rename from src/coreclr/src/debug/ee/rcthread.cpp rename to src/coreclr/debug/ee/rcthread.cpp diff --git a/src/coreclr/src/debug/ee/shared.cpp b/src/coreclr/debug/ee/shared.cpp similarity index 100% rename from src/coreclr/src/debug/ee/shared.cpp rename to src/coreclr/debug/ee/shared.cpp diff --git a/src/coreclr/src/debug/ee/stdafx.h b/src/coreclr/debug/ee/stdafx.h similarity index 100% rename from src/coreclr/src/debug/ee/stdafx.h rename to src/coreclr/debug/ee/stdafx.h diff --git a/src/coreclr/src/debug/ee/walker.h b/src/coreclr/debug/ee/walker.h similarity index 100% rename from src/coreclr/src/debug/ee/walker.h rename to src/coreclr/debug/ee/walker.h diff --git a/src/coreclr/src/debug/ee/wks/CMakeLists.txt b/src/coreclr/debug/ee/wks/CMakeLists.txt similarity index 100% rename from src/coreclr/src/debug/ee/wks/CMakeLists.txt rename to src/coreclr/debug/ee/wks/CMakeLists.txt diff --git a/src/coreclr/src/debug/ildbsymlib/CMakeLists.txt b/src/coreclr/debug/ildbsymlib/CMakeLists.txt similarity index 100% rename from src/coreclr/src/debug/ildbsymlib/CMakeLists.txt rename to src/coreclr/debug/ildbsymlib/CMakeLists.txt diff --git a/src/coreclr/src/debug/ildbsymlib/classfactory.h b/src/coreclr/debug/ildbsymlib/classfactory.h similarity index 100% rename from src/coreclr/src/debug/ildbsymlib/classfactory.h rename to src/coreclr/debug/ildbsymlib/classfactory.h diff --git a/src/coreclr/src/debug/ildbsymlib/ildbsymbols.cpp b/src/coreclr/debug/ildbsymlib/ildbsymbols.cpp similarity index 100% rename from src/coreclr/src/debug/ildbsymlib/ildbsymbols.cpp rename to src/coreclr/debug/ildbsymlib/ildbsymbols.cpp diff --git a/src/coreclr/src/debug/ildbsymlib/pch.h b/src/coreclr/debug/ildbsymlib/pch.h similarity index 100% rename from src/coreclr/src/debug/ildbsymlib/pch.h rename to src/coreclr/debug/ildbsymlib/pch.h diff --git a/src/coreclr/src/debug/ildbsymlib/pdbdata.h b/src/coreclr/debug/ildbsymlib/pdbdata.h similarity index 100% rename from src/coreclr/src/debug/ildbsymlib/pdbdata.h rename to src/coreclr/debug/ildbsymlib/pdbdata.h diff --git a/src/coreclr/src/debug/ildbsymlib/symbinder.cpp b/src/coreclr/debug/ildbsymlib/symbinder.cpp similarity index 100% rename from src/coreclr/src/debug/ildbsymlib/symbinder.cpp rename to src/coreclr/debug/ildbsymlib/symbinder.cpp diff --git a/src/coreclr/src/debug/ildbsymlib/symbinder.h b/src/coreclr/debug/ildbsymlib/symbinder.h similarity index 100% rename from src/coreclr/src/debug/ildbsymlib/symbinder.h rename to src/coreclr/debug/ildbsymlib/symbinder.h diff --git a/src/coreclr/src/debug/ildbsymlib/symread.cpp b/src/coreclr/debug/ildbsymlib/symread.cpp similarity index 100% rename from src/coreclr/src/debug/ildbsymlib/symread.cpp rename to src/coreclr/debug/ildbsymlib/symread.cpp diff --git a/src/coreclr/src/debug/ildbsymlib/symread.h b/src/coreclr/debug/ildbsymlib/symread.h similarity index 100% rename from src/coreclr/src/debug/ildbsymlib/symread.h rename to src/coreclr/debug/ildbsymlib/symread.h diff --git a/src/coreclr/src/debug/ildbsymlib/symwrite.cpp b/src/coreclr/debug/ildbsymlib/symwrite.cpp similarity index 100% rename from src/coreclr/src/debug/ildbsymlib/symwrite.cpp rename to src/coreclr/debug/ildbsymlib/symwrite.cpp diff --git a/src/coreclr/src/debug/ildbsymlib/symwrite.h b/src/coreclr/debug/ildbsymlib/symwrite.h similarity index 100% rename from src/coreclr/src/debug/ildbsymlib/symwrite.h rename to src/coreclr/debug/ildbsymlib/symwrite.h diff --git a/src/coreclr/src/debug/ildbsymlib/umisc.h b/src/coreclr/debug/ildbsymlib/umisc.h similarity index 100% rename from src/coreclr/src/debug/ildbsymlib/umisc.h rename to src/coreclr/debug/ildbsymlib/umisc.h diff --git a/src/coreclr/src/debug/inc/amd64/primitives.h b/src/coreclr/debug/inc/amd64/primitives.h similarity index 100% rename from src/coreclr/src/debug/inc/amd64/primitives.h rename to src/coreclr/debug/inc/amd64/primitives.h diff --git a/src/coreclr/src/debug/inc/arm/primitives.h b/src/coreclr/debug/inc/arm/primitives.h similarity index 100% rename from src/coreclr/src/debug/inc/arm/primitives.h rename to src/coreclr/debug/inc/arm/primitives.h diff --git a/src/coreclr/src/debug/inc/arm64/primitives.h b/src/coreclr/debug/inc/arm64/primitives.h similarity index 100% rename from src/coreclr/src/debug/inc/arm64/primitives.h rename to src/coreclr/debug/inc/arm64/primitives.h diff --git a/src/coreclr/src/debug/inc/arm_primitives.h b/src/coreclr/debug/inc/arm_primitives.h similarity index 100% rename from src/coreclr/src/debug/inc/arm_primitives.h rename to src/coreclr/debug/inc/arm_primitives.h diff --git a/src/coreclr/src/debug/inc/common.h b/src/coreclr/debug/inc/common.h similarity index 100% rename from src/coreclr/src/debug/inc/common.h rename to src/coreclr/debug/inc/common.h diff --git a/src/coreclr/src/debug/inc/coreclrremotedebugginginterfaces.h b/src/coreclr/debug/inc/coreclrremotedebugginginterfaces.h similarity index 100% rename from src/coreclr/src/debug/inc/coreclrremotedebugginginterfaces.h rename to src/coreclr/debug/inc/coreclrremotedebugginginterfaces.h diff --git a/src/coreclr/src/debug/inc/dacdbiinterface.h b/src/coreclr/debug/inc/dacdbiinterface.h similarity index 100% rename from src/coreclr/src/debug/inc/dacdbiinterface.h rename to src/coreclr/debug/inc/dacdbiinterface.h diff --git a/src/coreclr/src/debug/inc/dacdbistructures.h b/src/coreclr/debug/inc/dacdbistructures.h similarity index 100% rename from src/coreclr/src/debug/inc/dacdbistructures.h rename to src/coreclr/debug/inc/dacdbistructures.h diff --git a/src/coreclr/src/debug/inc/dacdbistructures.inl b/src/coreclr/debug/inc/dacdbistructures.inl similarity index 100% rename from src/coreclr/src/debug/inc/dacdbistructures.inl rename to src/coreclr/debug/inc/dacdbistructures.inl diff --git a/src/coreclr/src/debug/inc/dbgappdomain.h b/src/coreclr/debug/inc/dbgappdomain.h similarity index 100% rename from src/coreclr/src/debug/inc/dbgappdomain.h rename to src/coreclr/debug/inc/dbgappdomain.h diff --git a/src/coreclr/src/debug/inc/dbgipcevents.h b/src/coreclr/debug/inc/dbgipcevents.h similarity index 100% rename from src/coreclr/src/debug/inc/dbgipcevents.h rename to src/coreclr/debug/inc/dbgipcevents.h diff --git a/src/coreclr/src/debug/inc/dbgipceventtypes.h b/src/coreclr/debug/inc/dbgipceventtypes.h similarity index 100% rename from src/coreclr/src/debug/inc/dbgipceventtypes.h rename to src/coreclr/debug/inc/dbgipceventtypes.h diff --git a/src/coreclr/src/debug/inc/dbgtargetcontext.h b/src/coreclr/debug/inc/dbgtargetcontext.h similarity index 100% rename from src/coreclr/src/debug/inc/dbgtargetcontext.h rename to src/coreclr/debug/inc/dbgtargetcontext.h diff --git a/src/coreclr/src/debug/inc/dbgtransportsession.h b/src/coreclr/debug/inc/dbgtransportsession.h similarity index 100% rename from src/coreclr/src/debug/inc/dbgtransportsession.h rename to src/coreclr/debug/inc/dbgtransportsession.h diff --git a/src/coreclr/src/debug/inc/dbgutil.h b/src/coreclr/debug/inc/dbgutil.h similarity index 100% rename from src/coreclr/src/debug/inc/dbgutil.h rename to src/coreclr/debug/inc/dbgutil.h diff --git a/src/coreclr/src/debug/inc/ddmarshalutil.h b/src/coreclr/debug/inc/ddmarshalutil.h similarity index 100% rename from src/coreclr/src/debug/inc/ddmarshalutil.h rename to src/coreclr/debug/inc/ddmarshalutil.h diff --git a/src/coreclr/src/debug/inc/diagnosticsipc.h b/src/coreclr/debug/inc/diagnosticsipc.h similarity index 100% rename from src/coreclr/src/debug/inc/diagnosticsipc.h rename to src/coreclr/debug/inc/diagnosticsipc.h diff --git a/src/coreclr/src/debug/inc/dump/dumpcommon.h b/src/coreclr/debug/inc/dump/dumpcommon.h similarity index 100% rename from src/coreclr/src/debug/inc/dump/dumpcommon.h rename to src/coreclr/debug/inc/dump/dumpcommon.h diff --git a/src/coreclr/src/debug/inc/eventredirection.h b/src/coreclr/debug/inc/eventredirection.h similarity index 100% rename from src/coreclr/src/debug/inc/eventredirection.h rename to src/coreclr/debug/inc/eventredirection.h diff --git a/src/coreclr/src/debug/inc/i386/primitives.h b/src/coreclr/debug/inc/i386/primitives.h similarity index 100% rename from src/coreclr/src/debug/inc/i386/primitives.h rename to src/coreclr/debug/inc/i386/primitives.h diff --git a/src/coreclr/src/debug/inc/processdescriptor.h b/src/coreclr/debug/inc/processdescriptor.h similarity index 100% rename from src/coreclr/src/debug/inc/processdescriptor.h rename to src/coreclr/debug/inc/processdescriptor.h diff --git a/src/coreclr/src/debug/inc/readonlydatatargetfacade.h b/src/coreclr/debug/inc/readonlydatatargetfacade.h similarity index 100% rename from src/coreclr/src/debug/inc/readonlydatatargetfacade.h rename to src/coreclr/debug/inc/readonlydatatargetfacade.h diff --git a/src/coreclr/src/debug/inc/readonlydatatargetfacade.inl b/src/coreclr/debug/inc/readonlydatatargetfacade.inl similarity index 100% rename from src/coreclr/src/debug/inc/readonlydatatargetfacade.inl rename to src/coreclr/debug/inc/readonlydatatargetfacade.inl diff --git a/src/coreclr/src/debug/inc/runtimeinfo.h b/src/coreclr/debug/inc/runtimeinfo.h similarity index 100% rename from src/coreclr/src/debug/inc/runtimeinfo.h rename to src/coreclr/debug/inc/runtimeinfo.h diff --git a/src/coreclr/src/debug/inc/stringcopyholder.h b/src/coreclr/debug/inc/stringcopyholder.h similarity index 100% rename from src/coreclr/src/debug/inc/stringcopyholder.h rename to src/coreclr/debug/inc/stringcopyholder.h diff --git a/src/coreclr/src/debug/inc/twowaypipe.h b/src/coreclr/debug/inc/twowaypipe.h similarity index 100% rename from src/coreclr/src/debug/inc/twowaypipe.h rename to src/coreclr/debug/inc/twowaypipe.h diff --git a/src/coreclr/src/debug/runtimeinfo/CMakeLists.txt b/src/coreclr/debug/runtimeinfo/CMakeLists.txt similarity index 100% rename from src/coreclr/src/debug/runtimeinfo/CMakeLists.txt rename to src/coreclr/debug/runtimeinfo/CMakeLists.txt diff --git a/src/coreclr/src/debug/runtimeinfo/runtimeinfo.cpp b/src/coreclr/debug/runtimeinfo/runtimeinfo.cpp similarity index 100% rename from src/coreclr/src/debug/runtimeinfo/runtimeinfo.cpp rename to src/coreclr/debug/runtimeinfo/runtimeinfo.cpp diff --git a/src/coreclr/src/debug/shared/amd64/primitives.cpp b/src/coreclr/debug/shared/amd64/primitives.cpp similarity index 100% rename from src/coreclr/src/debug/shared/amd64/primitives.cpp rename to src/coreclr/debug/shared/amd64/primitives.cpp diff --git a/src/coreclr/src/debug/shared/arm/primitives.cpp b/src/coreclr/debug/shared/arm/primitives.cpp similarity index 100% rename from src/coreclr/src/debug/shared/arm/primitives.cpp rename to src/coreclr/debug/shared/arm/primitives.cpp diff --git a/src/coreclr/src/debug/shared/arm64/primitives.cpp b/src/coreclr/debug/shared/arm64/primitives.cpp similarity index 100% rename from src/coreclr/src/debug/shared/arm64/primitives.cpp rename to src/coreclr/debug/shared/arm64/primitives.cpp diff --git a/src/coreclr/src/debug/shared/dbgtransportsession.cpp b/src/coreclr/debug/shared/dbgtransportsession.cpp similarity index 100% rename from src/coreclr/src/debug/shared/dbgtransportsession.cpp rename to src/coreclr/debug/shared/dbgtransportsession.cpp diff --git a/src/coreclr/src/debug/shared/i386/primitives.cpp b/src/coreclr/debug/shared/i386/primitives.cpp similarity index 100% rename from src/coreclr/src/debug/shared/i386/primitives.cpp rename to src/coreclr/debug/shared/i386/primitives.cpp diff --git a/src/coreclr/src/debug/shared/stringcopyholder.cpp b/src/coreclr/debug/shared/stringcopyholder.cpp similarity index 100% rename from src/coreclr/src/debug/shared/stringcopyholder.cpp rename to src/coreclr/debug/shared/stringcopyholder.cpp diff --git a/src/coreclr/src/debug/shared/utils.cpp b/src/coreclr/debug/shared/utils.cpp similarity index 100% rename from src/coreclr/src/debug/shared/utils.cpp rename to src/coreclr/debug/shared/utils.cpp diff --git a/src/coreclr/src/debug/shim/CMakeLists.txt b/src/coreclr/debug/shim/CMakeLists.txt similarity index 100% rename from src/coreclr/src/debug/shim/CMakeLists.txt rename to src/coreclr/debug/shim/CMakeLists.txt diff --git a/src/coreclr/src/debug/shim/debugshim.cpp b/src/coreclr/debug/shim/debugshim.cpp similarity index 100% rename from src/coreclr/src/debug/shim/debugshim.cpp rename to src/coreclr/debug/shim/debugshim.cpp diff --git a/src/coreclr/src/debug/shim/debugshim.h b/src/coreclr/debug/shim/debugshim.h similarity index 100% rename from src/coreclr/src/debug/shim/debugshim.h rename to src/coreclr/debug/shim/debugshim.h diff --git a/src/coreclr/src/dlls/CMakeLists.txt b/src/coreclr/dlls/CMakeLists.txt similarity index 100% rename from src/coreclr/src/dlls/CMakeLists.txt rename to src/coreclr/dlls/CMakeLists.txt diff --git a/src/coreclr/src/dlls/clretwrc/CMakeLists.txt b/src/coreclr/dlls/clretwrc/CMakeLists.txt similarity index 100% rename from src/coreclr/src/dlls/clretwrc/CMakeLists.txt rename to src/coreclr/dlls/clretwrc/CMakeLists.txt diff --git a/src/coreclr/src/dlls/clretwrc/clretwrc.rc b/src/coreclr/dlls/clretwrc/clretwrc.rc similarity index 100% rename from src/coreclr/src/dlls/clretwrc/clretwrc.rc rename to src/coreclr/dlls/clretwrc/clretwrc.rc diff --git a/src/coreclr/src/dlls/dbgshim/CMakeLists.txt b/src/coreclr/dlls/dbgshim/CMakeLists.txt similarity index 98% rename from src/coreclr/src/dlls/dbgshim/CMakeLists.txt rename to src/coreclr/dlls/dbgshim/CMakeLists.txt index 2d066062290ce..1092799c866c6 100644 --- a/src/coreclr/src/dlls/dbgshim/CMakeLists.txt +++ b/src/coreclr/dlls/dbgshim/CMakeLists.txt @@ -1,7 +1,7 @@ add_definitions(-DFEATURE_NO_HOST) add_definitions(-DSELF_NO_HOST) -include_directories(${CLR_DIR}/src/debug/shim) +include_directories(${CLR_DIR}/debug/shim) set(DBGSHIM_SOURCES dbgshim.cpp diff --git a/src/coreclr/src/dlls/dbgshim/dbgshim.cpp b/src/coreclr/dlls/dbgshim/dbgshim.cpp similarity index 100% rename from src/coreclr/src/dlls/dbgshim/dbgshim.cpp rename to src/coreclr/dlls/dbgshim/dbgshim.cpp diff --git a/src/coreclr/src/dlls/dbgshim/dbgshim.h b/src/coreclr/dlls/dbgshim/dbgshim.h similarity index 100% rename from src/coreclr/src/dlls/dbgshim/dbgshim.h rename to src/coreclr/dlls/dbgshim/dbgshim.h diff --git a/src/coreclr/src/dlls/dbgshim/dbgshim.ntdef b/src/coreclr/dlls/dbgshim/dbgshim.ntdef similarity index 100% rename from src/coreclr/src/dlls/dbgshim/dbgshim.ntdef rename to src/coreclr/dlls/dbgshim/dbgshim.ntdef diff --git a/src/coreclr/src/dlls/dbgshim/dbgshim.rc b/src/coreclr/dlls/dbgshim/dbgshim.rc similarity index 100% rename from src/coreclr/src/dlls/dbgshim/dbgshim.rc rename to src/coreclr/dlls/dbgshim/dbgshim.rc diff --git a/src/coreclr/src/dlls/dbgshim/dbgshim_unixexports.src b/src/coreclr/dlls/dbgshim/dbgshim_unixexports.src similarity index 100% rename from src/coreclr/src/dlls/dbgshim/dbgshim_unixexports.src rename to src/coreclr/dlls/dbgshim/dbgshim_unixexports.src diff --git a/src/coreclr/src/dlls/mscordac/CMakeLists.txt b/src/coreclr/dlls/mscordac/CMakeLists.txt similarity index 100% rename from src/coreclr/src/dlls/mscordac/CMakeLists.txt rename to src/coreclr/dlls/mscordac/CMakeLists.txt diff --git a/src/coreclr/src/dlls/mscordac/Native.rc b/src/coreclr/dlls/mscordac/Native.rc similarity index 100% rename from src/coreclr/src/dlls/mscordac/Native.rc rename to src/coreclr/dlls/mscordac/Native.rc diff --git a/src/coreclr/src/dlls/mscordac/libredefines.S b/src/coreclr/dlls/mscordac/libredefines.S similarity index 100% rename from src/coreclr/src/dlls/mscordac/libredefines.S rename to src/coreclr/dlls/mscordac/libredefines.S diff --git a/src/coreclr/src/dlls/mscordac/mscordac.cpp b/src/coreclr/dlls/mscordac/mscordac.cpp similarity index 100% rename from src/coreclr/src/dlls/mscordac/mscordac.cpp rename to src/coreclr/dlls/mscordac/mscordac.cpp diff --git a/src/coreclr/src/dlls/mscordac/mscordac.src b/src/coreclr/dlls/mscordac/mscordac.src similarity index 100% rename from src/coreclr/src/dlls/mscordac/mscordac.src rename to src/coreclr/dlls/mscordac/mscordac.src diff --git a/src/coreclr/src/dlls/mscordac/mscordac_unixexports.src b/src/coreclr/dlls/mscordac/mscordac_unixexports.src similarity index 100% rename from src/coreclr/src/dlls/mscordac/mscordac_unixexports.src rename to src/coreclr/dlls/mscordac/mscordac_unixexports.src diff --git a/src/coreclr/src/dlls/mscordac/palredefines.S b/src/coreclr/dlls/mscordac/palredefines.S similarity index 100% rename from src/coreclr/src/dlls/mscordac/palredefines.S rename to src/coreclr/dlls/mscordac/palredefines.S diff --git a/src/coreclr/src/dlls/mscordac/update.pl b/src/coreclr/dlls/mscordac/update.pl similarity index 100% rename from src/coreclr/src/dlls/mscordac/update.pl rename to src/coreclr/dlls/mscordac/update.pl diff --git a/src/coreclr/src/dlls/mscordbi/CMakeLists.txt b/src/coreclr/dlls/mscordbi/CMakeLists.txt similarity index 100% rename from src/coreclr/src/dlls/mscordbi/CMakeLists.txt rename to src/coreclr/dlls/mscordbi/CMakeLists.txt diff --git a/src/coreclr/src/dlls/mscordbi/Native.rc b/src/coreclr/dlls/mscordbi/Native.rc similarity index 100% rename from src/coreclr/src/dlls/mscordbi/Native.rc rename to src/coreclr/dlls/mscordbi/Native.rc diff --git a/src/coreclr/src/dlls/mscordbi/mscordbi.cpp b/src/coreclr/dlls/mscordbi/mscordbi.cpp similarity index 100% rename from src/coreclr/src/dlls/mscordbi/mscordbi.cpp rename to src/coreclr/dlls/mscordbi/mscordbi.cpp diff --git a/src/coreclr/src/dlls/mscordbi/mscordbi.src b/src/coreclr/dlls/mscordbi/mscordbi.src similarity index 100% rename from src/coreclr/src/dlls/mscordbi/mscordbi.src rename to src/coreclr/dlls/mscordbi/mscordbi.src diff --git a/src/coreclr/src/dlls/mscordbi/mscordbi_unixexports.src b/src/coreclr/dlls/mscordbi/mscordbi_unixexports.src similarity index 100% rename from src/coreclr/src/dlls/mscordbi/mscordbi_unixexports.src rename to src/coreclr/dlls/mscordbi/mscordbi_unixexports.src diff --git a/src/coreclr/src/dlls/mscordbi/stdafx.h b/src/coreclr/dlls/mscordbi/stdafx.h similarity index 100% rename from src/coreclr/src/dlls/mscordbi/stdafx.h rename to src/coreclr/dlls/mscordbi/stdafx.h diff --git a/src/coreclr/src/dlls/mscoree/CMakeLists.txt b/src/coreclr/dlls/mscoree/CMakeLists.txt similarity index 100% rename from src/coreclr/src/dlls/mscoree/CMakeLists.txt rename to src/coreclr/dlls/mscoree/CMakeLists.txt diff --git a/src/coreclr/src/dlls/mscoree/Native.rc b/src/coreclr/dlls/mscoree/Native.rc similarity index 100% rename from src/coreclr/src/dlls/mscoree/Native.rc rename to src/coreclr/dlls/mscoree/Native.rc diff --git a/src/coreclr/src/dlls/mscoree/coreclr/CMakeLists.txt b/src/coreclr/dlls/mscoree/coreclr/CMakeLists.txt similarity index 97% rename from src/coreclr/src/dlls/mscoree/coreclr/CMakeLists.txt rename to src/coreclr/dlls/mscoree/coreclr/CMakeLists.txt index 7835929afc1c9..0d5095b567667 100644 --- a/src/coreclr/src/dlls/mscoree/coreclr/CMakeLists.txt +++ b/src/coreclr/dlls/mscoree/coreclr/CMakeLists.txt @@ -183,7 +183,7 @@ if(CLR_CMAKE_TARGET_WIN32) # Add dac table & debug resource to coreclr get_include_directories(INC_DIR) get_compile_definitions(PREPROCESS_DEFINITIONS) - list(APPEND INC_DIR -I${CLR_DIR}/src/vm -I${CLR_DIR}/src/vm/${ARCH_SOURCES_DIR} -I${CLR_DIR}/src/debug/ee -I${CLR_DIR}/src/gc) + list(APPEND INC_DIR -I${CLR_DIR}/vm -I${CLR_DIR}/vm/${ARCH_SOURCES_DIR} -I${CLR_DIR}/debug/ee -I${CLR_DIR}/gc) list(APPEND PREPROCESS_DEFINITIONS -DDACCESS_COMPILE -DTARGET_64BIT) if (CLR_CMAKE_HOST_ARCH_AMD64) @@ -204,9 +204,9 @@ if(CLR_CMAKE_TARGET_WIN32) endif() add_custom_command( - DEPENDS coreclr mscordaccore mscordbi ${CLR_DIR}/src/debug/daccess/daccess.cpp + DEPENDS coreclr mscordaccore mscordbi ${CLR_DIR}/debug/daccess/daccess.cpp OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/inject_debug_resources.timestamp - COMMAND ${CMAKE_CXX_COMPILER} /P /EP /TP ${PREPROCESS_DEFINITIONS} ${INC_DIR} /Fi${CMAKE_CURRENT_BINARY_DIR}/daccess.i ${CLR_DIR}/src/debug/daccess/daccess.cpp + COMMAND ${CMAKE_CXX_COMPILER} /P /EP /TP ${PREPROCESS_DEFINITIONS} ${INC_DIR} /Fi${CMAKE_CURRENT_BINARY_DIR}/daccess.i ${CLR_DIR}/debug/daccess/daccess.cpp COMMAND cmd /c ${CLR_REPO_ROOT_DIR}/dotnet.cmd exec ${CMAKE_INSTALL_PREFIX}/DacTableGen/DacTableGen.dll /dac:${CMAKE_CURRENT_BINARY_DIR}/daccess.i /pdb:$ /dll:$ /bin:${CMAKE_CURRENT_BINARY_DIR}/wks.bin COMMAND InjectResource /bin:${CMAKE_CURRENT_BINARY_DIR}/wks.bin /dll:$ COMMAND GenClrDebugResource /dac:$ /dbi:$ /sku:onecoreclr /out:${CMAKE_CURRENT_BINARY_DIR}/clrDebugResource.bin diff --git a/src/coreclr/src/dlls/mscoree/coreclr/README.md b/src/coreclr/dlls/mscoree/coreclr/README.md similarity index 100% rename from src/coreclr/src/dlls/mscoree/coreclr/README.md rename to src/coreclr/dlls/mscoree/coreclr/README.md diff --git a/src/coreclr/src/dlls/mscoree/coreclr/dump_helper_resource.bin b/src/coreclr/dlls/mscoree/coreclr/dump_helper_resource.bin similarity index 100% rename from src/coreclr/src/dlls/mscoree/coreclr/dump_helper_resource.bin rename to src/coreclr/dlls/mscoree/coreclr/dump_helper_resource.bin diff --git a/src/coreclr/src/dlls/mscoree/delayloadhook.cpp b/src/coreclr/dlls/mscoree/delayloadhook.cpp similarity index 100% rename from src/coreclr/src/dlls/mscoree/delayloadhook.cpp rename to src/coreclr/dlls/mscoree/delayloadhook.cpp diff --git a/src/coreclr/src/dlls/mscoree/gdbjit_unixexports.src b/src/coreclr/dlls/mscoree/gdbjit_unixexports.src similarity index 100% rename from src/coreclr/src/dlls/mscoree/gdbjit_unixexports.src rename to src/coreclr/dlls/mscoree/gdbjit_unixexports.src diff --git a/src/coreclr/src/dlls/mscoree/mscoree.cpp b/src/coreclr/dlls/mscoree/mscoree.cpp similarity index 100% rename from src/coreclr/src/dlls/mscoree/mscoree.cpp rename to src/coreclr/dlls/mscoree/mscoree.cpp diff --git a/src/coreclr/src/dlls/mscoree/mscorwks_ntdef.src b/src/coreclr/dlls/mscoree/mscorwks_ntdef.src similarity index 100% rename from src/coreclr/src/dlls/mscoree/mscorwks_ntdef.src rename to src/coreclr/dlls/mscoree/mscorwks_ntdef.src diff --git a/src/coreclr/src/dlls/mscoree/mscorwks_unixexports.src b/src/coreclr/dlls/mscoree/mscorwks_unixexports.src similarity index 100% rename from src/coreclr/src/dlls/mscoree/mscorwks_unixexports.src rename to src/coreclr/dlls/mscoree/mscorwks_unixexports.src diff --git a/src/coreclr/src/dlls/mscoree/stdafx.cpp b/src/coreclr/dlls/mscoree/stdafx.cpp similarity index 100% rename from src/coreclr/src/dlls/mscoree/stdafx.cpp rename to src/coreclr/dlls/mscoree/stdafx.cpp diff --git a/src/coreclr/src/dlls/mscoree/stdafx.h b/src/coreclr/dlls/mscoree/stdafx.h similarity index 100% rename from src/coreclr/src/dlls/mscoree/stdafx.h rename to src/coreclr/dlls/mscoree/stdafx.h diff --git a/src/coreclr/src/dlls/mscoree/unixinterface.cpp b/src/coreclr/dlls/mscoree/unixinterface.cpp similarity index 100% rename from src/coreclr/src/dlls/mscoree/unixinterface.cpp rename to src/coreclr/dlls/mscoree/unixinterface.cpp diff --git a/src/coreclr/src/dlls/mscorpe/CMakeLists.txt b/src/coreclr/dlls/mscorpe/CMakeLists.txt similarity index 100% rename from src/coreclr/src/dlls/mscorpe/CMakeLists.txt rename to src/coreclr/dlls/mscorpe/CMakeLists.txt diff --git a/src/coreclr/src/dlls/mscorpe/ceefilegenwriter.cpp b/src/coreclr/dlls/mscorpe/ceefilegenwriter.cpp similarity index 100% rename from src/coreclr/src/dlls/mscorpe/ceefilegenwriter.cpp rename to src/coreclr/dlls/mscorpe/ceefilegenwriter.cpp diff --git a/src/coreclr/src/dlls/mscorpe/ceefilegenwritertokens.cpp b/src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp similarity index 100% rename from src/coreclr/src/dlls/mscorpe/ceefilegenwritertokens.cpp rename to src/coreclr/dlls/mscorpe/ceefilegenwritertokens.cpp diff --git a/src/coreclr/src/dlls/mscorpe/iceefilegen.cpp b/src/coreclr/dlls/mscorpe/iceefilegen.cpp similarity index 100% rename from src/coreclr/src/dlls/mscorpe/iceefilegen.cpp rename to src/coreclr/dlls/mscorpe/iceefilegen.cpp diff --git a/src/coreclr/src/dlls/mscorpe/pewriter.cpp b/src/coreclr/dlls/mscorpe/pewriter.cpp similarity index 100% rename from src/coreclr/src/dlls/mscorpe/pewriter.cpp rename to src/coreclr/dlls/mscorpe/pewriter.cpp diff --git a/src/coreclr/src/dlls/mscorpe/pewriter.h b/src/coreclr/dlls/mscorpe/pewriter.h similarity index 100% rename from src/coreclr/src/dlls/mscorpe/pewriter.h rename to src/coreclr/dlls/mscorpe/pewriter.h diff --git a/src/coreclr/src/dlls/mscorpe/stdafx.cpp b/src/coreclr/dlls/mscorpe/stdafx.cpp similarity index 100% rename from src/coreclr/src/dlls/mscorpe/stdafx.cpp rename to src/coreclr/dlls/mscorpe/stdafx.cpp diff --git a/src/coreclr/src/dlls/mscorpe/stdafx.h b/src/coreclr/dlls/mscorpe/stdafx.h similarity index 100% rename from src/coreclr/src/dlls/mscorpe/stdafx.h rename to src/coreclr/dlls/mscorpe/stdafx.h diff --git a/src/coreclr/src/dlls/mscorrc/CMakeLists.txt b/src/coreclr/dlls/mscorrc/CMakeLists.txt similarity index 100% rename from src/coreclr/src/dlls/mscorrc/CMakeLists.txt rename to src/coreclr/dlls/mscorrc/CMakeLists.txt diff --git a/src/coreclr/src/dlls/mscorrc/include.rc b/src/coreclr/dlls/mscorrc/include.rc similarity index 100% rename from src/coreclr/src/dlls/mscorrc/include.rc rename to src/coreclr/dlls/mscorrc/include.rc diff --git a/src/coreclr/src/dlls/mscorrc/mscorrc.common.rc b/src/coreclr/dlls/mscorrc/mscorrc.common.rc similarity index 100% rename from src/coreclr/src/dlls/mscorrc/mscorrc.common.rc rename to src/coreclr/dlls/mscorrc/mscorrc.common.rc diff --git a/src/coreclr/src/dlls/mscorrc/mscorrc.rc b/src/coreclr/dlls/mscorrc/mscorrc.rc similarity index 100% rename from src/coreclr/src/dlls/mscorrc/mscorrc.rc rename to src/coreclr/dlls/mscorrc/mscorrc.rc diff --git a/src/coreclr/src/dlls/mscorrc/resource.h b/src/coreclr/dlls/mscorrc/resource.h similarity index 100% rename from src/coreclr/src/dlls/mscorrc/resource.h rename to src/coreclr/dlls/mscorrc/resource.h diff --git a/src/coreclr/src/gc/CMakeLists.txt b/src/coreclr/gc/CMakeLists.txt similarity index 100% rename from src/coreclr/src/gc/CMakeLists.txt rename to src/coreclr/gc/CMakeLists.txt diff --git a/src/coreclr/src/gc/env/common.cpp b/src/coreclr/gc/env/common.cpp similarity index 100% rename from src/coreclr/src/gc/env/common.cpp rename to src/coreclr/gc/env/common.cpp diff --git a/src/coreclr/src/gc/env/common.h b/src/coreclr/gc/env/common.h similarity index 100% rename from src/coreclr/src/gc/env/common.h rename to src/coreclr/gc/env/common.h diff --git a/src/coreclr/src/gc/env/etmdummy.h b/src/coreclr/gc/env/etmdummy.h similarity index 100% rename from src/coreclr/src/gc/env/etmdummy.h rename to src/coreclr/gc/env/etmdummy.h diff --git a/src/coreclr/src/gc/env/gcenv.base.h b/src/coreclr/gc/env/gcenv.base.h similarity index 100% rename from src/coreclr/src/gc/env/gcenv.base.h rename to src/coreclr/gc/env/gcenv.base.h diff --git a/src/coreclr/src/gc/env/gcenv.ee.h b/src/coreclr/gc/env/gcenv.ee.h similarity index 100% rename from src/coreclr/src/gc/env/gcenv.ee.h rename to src/coreclr/gc/env/gcenv.ee.h diff --git a/src/coreclr/src/gc/env/gcenv.h b/src/coreclr/gc/env/gcenv.h similarity index 100% rename from src/coreclr/src/gc/env/gcenv.h rename to src/coreclr/gc/env/gcenv.h diff --git a/src/coreclr/src/gc/env/gcenv.interlocked.h b/src/coreclr/gc/env/gcenv.interlocked.h similarity index 100% rename from src/coreclr/src/gc/env/gcenv.interlocked.h rename to src/coreclr/gc/env/gcenv.interlocked.h diff --git a/src/coreclr/src/gc/env/gcenv.interlocked.inl b/src/coreclr/gc/env/gcenv.interlocked.inl similarity index 100% rename from src/coreclr/src/gc/env/gcenv.interlocked.inl rename to src/coreclr/gc/env/gcenv.interlocked.inl diff --git a/src/coreclr/src/gc/env/gcenv.object.h b/src/coreclr/gc/env/gcenv.object.h similarity index 100% rename from src/coreclr/src/gc/env/gcenv.object.h rename to src/coreclr/gc/env/gcenv.object.h diff --git a/src/coreclr/src/gc/env/gcenv.os.h b/src/coreclr/gc/env/gcenv.os.h similarity index 100% rename from src/coreclr/src/gc/env/gcenv.os.h rename to src/coreclr/gc/env/gcenv.os.h diff --git a/src/coreclr/src/gc/env/gcenv.structs.h b/src/coreclr/gc/env/gcenv.structs.h similarity index 100% rename from src/coreclr/src/gc/env/gcenv.structs.h rename to src/coreclr/gc/env/gcenv.structs.h diff --git a/src/coreclr/src/gc/env/gcenv.sync.h b/src/coreclr/gc/env/gcenv.sync.h similarity index 100% rename from src/coreclr/src/gc/env/gcenv.sync.h rename to src/coreclr/gc/env/gcenv.sync.h diff --git a/src/coreclr/src/gc/env/gcenv.unix.inl b/src/coreclr/gc/env/gcenv.unix.inl similarity index 100% rename from src/coreclr/src/gc/env/gcenv.unix.inl rename to src/coreclr/gc/env/gcenv.unix.inl diff --git a/src/coreclr/src/gc/env/gcenv.windows.inl b/src/coreclr/gc/env/gcenv.windows.inl similarity index 100% rename from src/coreclr/src/gc/env/gcenv.windows.inl rename to src/coreclr/gc/env/gcenv.windows.inl diff --git a/src/coreclr/src/gc/env/volatile.h b/src/coreclr/gc/env/volatile.h similarity index 100% rename from src/coreclr/src/gc/env/volatile.h rename to src/coreclr/gc/env/volatile.h diff --git a/src/coreclr/src/gc/gc.cpp b/src/coreclr/gc/gc.cpp similarity index 100% rename from src/coreclr/src/gc/gc.cpp rename to src/coreclr/gc/gc.cpp diff --git a/src/coreclr/src/gc/gc.h b/src/coreclr/gc/gc.h similarity index 100% rename from src/coreclr/src/gc/gc.h rename to src/coreclr/gc/gc.h diff --git a/src/coreclr/src/gc/gccommon.cpp b/src/coreclr/gc/gccommon.cpp similarity index 100% rename from src/coreclr/src/gc/gccommon.cpp rename to src/coreclr/gc/gccommon.cpp diff --git a/src/coreclr/src/gc/gcconfig.cpp b/src/coreclr/gc/gcconfig.cpp similarity index 100% rename from src/coreclr/src/gc/gcconfig.cpp rename to src/coreclr/gc/gcconfig.cpp diff --git a/src/coreclr/src/gc/gcconfig.h b/src/coreclr/gc/gcconfig.h similarity index 100% rename from src/coreclr/src/gc/gcconfig.h rename to src/coreclr/gc/gcconfig.h diff --git a/src/coreclr/src/gc/gcdesc.h b/src/coreclr/gc/gcdesc.h similarity index 100% rename from src/coreclr/src/gc/gcdesc.h rename to src/coreclr/gc/gcdesc.h diff --git a/src/coreclr/src/gc/gcee.cpp b/src/coreclr/gc/gcee.cpp similarity index 100% rename from src/coreclr/src/gc/gcee.cpp rename to src/coreclr/gc/gcee.cpp diff --git a/src/coreclr/src/gc/gceesvr.cpp b/src/coreclr/gc/gceesvr.cpp similarity index 100% rename from src/coreclr/src/gc/gceesvr.cpp rename to src/coreclr/gc/gceesvr.cpp diff --git a/src/coreclr/src/gc/gceewks.cpp b/src/coreclr/gc/gceewks.cpp similarity index 100% rename from src/coreclr/src/gc/gceewks.cpp rename to src/coreclr/gc/gceewks.cpp diff --git a/src/coreclr/src/gc/gcenv.ee.standalone.inl b/src/coreclr/gc/gcenv.ee.standalone.inl similarity index 100% rename from src/coreclr/src/gc/gcenv.ee.standalone.inl rename to src/coreclr/gc/gcenv.ee.standalone.inl diff --git a/src/coreclr/src/gc/gcenv.inl b/src/coreclr/gc/gcenv.inl similarity index 100% rename from src/coreclr/src/gc/gcenv.inl rename to src/coreclr/gc/gcenv.inl diff --git a/src/coreclr/src/gc/gcevent_serializers.h b/src/coreclr/gc/gcevent_serializers.h similarity index 100% rename from src/coreclr/src/gc/gcevent_serializers.h rename to src/coreclr/gc/gcevent_serializers.h diff --git a/src/coreclr/src/gc/gcevents.h b/src/coreclr/gc/gcevents.h similarity index 100% rename from src/coreclr/src/gc/gcevents.h rename to src/coreclr/gc/gcevents.h diff --git a/src/coreclr/src/gc/gceventstatus.cpp b/src/coreclr/gc/gceventstatus.cpp similarity index 100% rename from src/coreclr/src/gc/gceventstatus.cpp rename to src/coreclr/gc/gceventstatus.cpp diff --git a/src/coreclr/src/gc/gceventstatus.h b/src/coreclr/gc/gceventstatus.h similarity index 100% rename from src/coreclr/src/gc/gceventstatus.h rename to src/coreclr/gc/gceventstatus.h diff --git a/src/coreclr/src/gc/gchandletable.cpp b/src/coreclr/gc/gchandletable.cpp similarity index 100% rename from src/coreclr/src/gc/gchandletable.cpp rename to src/coreclr/gc/gchandletable.cpp diff --git a/src/coreclr/src/gc/gchandletableimpl.h b/src/coreclr/gc/gchandletableimpl.h similarity index 100% rename from src/coreclr/src/gc/gchandletableimpl.h rename to src/coreclr/gc/gchandletableimpl.h diff --git a/src/coreclr/src/gc/gcimpl.h b/src/coreclr/gc/gcimpl.h similarity index 100% rename from src/coreclr/src/gc/gcimpl.h rename to src/coreclr/gc/gcimpl.h diff --git a/src/coreclr/src/gc/gcinterface.dac.h b/src/coreclr/gc/gcinterface.dac.h similarity index 100% rename from src/coreclr/src/gc/gcinterface.dac.h rename to src/coreclr/gc/gcinterface.dac.h diff --git a/src/coreclr/src/gc/gcinterface.dacvars.def b/src/coreclr/gc/gcinterface.dacvars.def similarity index 100% rename from src/coreclr/src/gc/gcinterface.dacvars.def rename to src/coreclr/gc/gcinterface.dacvars.def diff --git a/src/coreclr/src/gc/gcinterface.ee.h b/src/coreclr/gc/gcinterface.ee.h similarity index 100% rename from src/coreclr/src/gc/gcinterface.ee.h rename to src/coreclr/gc/gcinterface.ee.h diff --git a/src/coreclr/src/gc/gcinterface.h b/src/coreclr/gc/gcinterface.h similarity index 100% rename from src/coreclr/src/gc/gcinterface.h rename to src/coreclr/gc/gcinterface.h diff --git a/src/coreclr/src/gc/gcload.cpp b/src/coreclr/gc/gcload.cpp similarity index 100% rename from src/coreclr/src/gc/gcload.cpp rename to src/coreclr/gc/gcload.cpp diff --git a/src/coreclr/src/gc/gcpriv.h b/src/coreclr/gc/gcpriv.h similarity index 100% rename from src/coreclr/src/gc/gcpriv.h rename to src/coreclr/gc/gcpriv.h diff --git a/src/coreclr/src/gc/gcrecord.h b/src/coreclr/gc/gcrecord.h similarity index 100% rename from src/coreclr/src/gc/gcrecord.h rename to src/coreclr/gc/gcrecord.h diff --git a/src/coreclr/src/gc/gcscan.cpp b/src/coreclr/gc/gcscan.cpp similarity index 100% rename from src/coreclr/src/gc/gcscan.cpp rename to src/coreclr/gc/gcscan.cpp diff --git a/src/coreclr/src/gc/gcscan.h b/src/coreclr/gc/gcscan.h similarity index 100% rename from src/coreclr/src/gc/gcscan.h rename to src/coreclr/gc/gcscan.h diff --git a/src/coreclr/src/gc/gcsvr.cpp b/src/coreclr/gc/gcsvr.cpp similarity index 100% rename from src/coreclr/src/gc/gcsvr.cpp rename to src/coreclr/gc/gcsvr.cpp diff --git a/src/coreclr/src/gc/gcwks.cpp b/src/coreclr/gc/gcwks.cpp similarity index 100% rename from src/coreclr/src/gc/gcwks.cpp rename to src/coreclr/gc/gcwks.cpp diff --git a/src/coreclr/src/gc/handletable.cpp b/src/coreclr/gc/handletable.cpp similarity index 100% rename from src/coreclr/src/gc/handletable.cpp rename to src/coreclr/gc/handletable.cpp diff --git a/src/coreclr/src/gc/handletable.h b/src/coreclr/gc/handletable.h similarity index 100% rename from src/coreclr/src/gc/handletable.h rename to src/coreclr/gc/handletable.h diff --git a/src/coreclr/src/gc/handletable.inl b/src/coreclr/gc/handletable.inl similarity index 100% rename from src/coreclr/src/gc/handletable.inl rename to src/coreclr/gc/handletable.inl diff --git a/src/coreclr/src/gc/handletablecache.cpp b/src/coreclr/gc/handletablecache.cpp similarity index 100% rename from src/coreclr/src/gc/handletablecache.cpp rename to src/coreclr/gc/handletablecache.cpp diff --git a/src/coreclr/src/gc/handletablecore.cpp b/src/coreclr/gc/handletablecore.cpp similarity index 100% rename from src/coreclr/src/gc/handletablecore.cpp rename to src/coreclr/gc/handletablecore.cpp diff --git a/src/coreclr/src/gc/handletablepriv.h b/src/coreclr/gc/handletablepriv.h similarity index 100% rename from src/coreclr/src/gc/handletablepriv.h rename to src/coreclr/gc/handletablepriv.h diff --git a/src/coreclr/src/gc/handletablescan.cpp b/src/coreclr/gc/handletablescan.cpp similarity index 100% rename from src/coreclr/src/gc/handletablescan.cpp rename to src/coreclr/gc/handletablescan.cpp diff --git a/src/coreclr/src/gc/objecthandle.cpp b/src/coreclr/gc/objecthandle.cpp similarity index 100% rename from src/coreclr/src/gc/objecthandle.cpp rename to src/coreclr/gc/objecthandle.cpp diff --git a/src/coreclr/src/gc/objecthandle.h b/src/coreclr/gc/objecthandle.h similarity index 100% rename from src/coreclr/src/gc/objecthandle.h rename to src/coreclr/gc/objecthandle.h diff --git a/src/coreclr/src/gc/sample/CMakeLists.txt b/src/coreclr/gc/sample/CMakeLists.txt similarity index 100% rename from src/coreclr/src/gc/sample/CMakeLists.txt rename to src/coreclr/gc/sample/CMakeLists.txt diff --git a/src/coreclr/src/gc/sample/GCSample.cpp b/src/coreclr/gc/sample/GCSample.cpp similarity index 100% rename from src/coreclr/src/gc/sample/GCSample.cpp rename to src/coreclr/gc/sample/GCSample.cpp diff --git a/src/coreclr/src/gc/sample/GCSample.vcxproj b/src/coreclr/gc/sample/GCSample.vcxproj similarity index 100% rename from src/coreclr/src/gc/sample/GCSample.vcxproj rename to src/coreclr/gc/sample/GCSample.vcxproj diff --git a/src/coreclr/src/gc/sample/GCSample.vcxproj.filters b/src/coreclr/gc/sample/GCSample.vcxproj.filters similarity index 100% rename from src/coreclr/src/gc/sample/GCSample.vcxproj.filters rename to src/coreclr/gc/sample/GCSample.vcxproj.filters diff --git a/src/coreclr/src/gc/sample/gcenv.ee.cpp b/src/coreclr/gc/sample/gcenv.ee.cpp similarity index 100% rename from src/coreclr/src/gc/sample/gcenv.ee.cpp rename to src/coreclr/gc/sample/gcenv.ee.cpp diff --git a/src/coreclr/src/gc/sample/gcenv.h b/src/coreclr/gc/sample/gcenv.h similarity index 100% rename from src/coreclr/src/gc/sample/gcenv.h rename to src/coreclr/gc/sample/gcenv.h diff --git a/src/coreclr/src/gc/softwarewritewatch.cpp b/src/coreclr/gc/softwarewritewatch.cpp similarity index 100% rename from src/coreclr/src/gc/softwarewritewatch.cpp rename to src/coreclr/gc/softwarewritewatch.cpp diff --git a/src/coreclr/src/gc/softwarewritewatch.h b/src/coreclr/gc/softwarewritewatch.h similarity index 100% rename from src/coreclr/src/gc/softwarewritewatch.h rename to src/coreclr/gc/softwarewritewatch.h diff --git a/src/coreclr/src/gc/unix/CMakeLists.txt b/src/coreclr/gc/unix/CMakeLists.txt similarity index 100% rename from src/coreclr/src/gc/unix/CMakeLists.txt rename to src/coreclr/gc/unix/CMakeLists.txt diff --git a/src/coreclr/src/gc/unix/cgroup.cpp b/src/coreclr/gc/unix/cgroup.cpp similarity index 100% rename from src/coreclr/src/gc/unix/cgroup.cpp rename to src/coreclr/gc/unix/cgroup.cpp diff --git a/src/coreclr/src/gc/unix/cgroup.h b/src/coreclr/gc/unix/cgroup.h similarity index 100% rename from src/coreclr/src/gc/unix/cgroup.h rename to src/coreclr/gc/unix/cgroup.h diff --git a/src/coreclr/src/gc/unix/config.gc.h.in b/src/coreclr/gc/unix/config.gc.h.in similarity index 100% rename from src/coreclr/src/gc/unix/config.gc.h.in rename to src/coreclr/gc/unix/config.gc.h.in diff --git a/src/coreclr/src/gc/unix/configure.cmake b/src/coreclr/gc/unix/configure.cmake similarity index 100% rename from src/coreclr/src/gc/unix/configure.cmake rename to src/coreclr/gc/unix/configure.cmake diff --git a/src/coreclr/src/gc/unix/events.cpp b/src/coreclr/gc/unix/events.cpp similarity index 100% rename from src/coreclr/src/gc/unix/events.cpp rename to src/coreclr/gc/unix/events.cpp diff --git a/src/coreclr/src/gc/unix/gcenv.unix.cpp b/src/coreclr/gc/unix/gcenv.unix.cpp similarity index 100% rename from src/coreclr/src/gc/unix/gcenv.unix.cpp rename to src/coreclr/gc/unix/gcenv.unix.cpp diff --git a/src/coreclr/src/gc/unix/globals.h b/src/coreclr/gc/unix/globals.h similarity index 100% rename from src/coreclr/src/gc/unix/globals.h rename to src/coreclr/gc/unix/globals.h diff --git a/src/coreclr/src/gc/vxsort/alignment.h b/src/coreclr/gc/vxsort/alignment.h similarity index 100% rename from src/coreclr/src/gc/vxsort/alignment.h rename to src/coreclr/gc/vxsort/alignment.h diff --git a/src/coreclr/src/gc/vxsort/defs.h b/src/coreclr/gc/vxsort/defs.h similarity index 100% rename from src/coreclr/src/gc/vxsort/defs.h rename to src/coreclr/gc/vxsort/defs.h diff --git a/src/coreclr/src/gc/vxsort/do_vxsort.h b/src/coreclr/gc/vxsort/do_vxsort.h similarity index 100% rename from src/coreclr/src/gc/vxsort/do_vxsort.h rename to src/coreclr/gc/vxsort/do_vxsort.h diff --git a/src/coreclr/src/gc/vxsort/do_vxsort_avx2.cpp b/src/coreclr/gc/vxsort/do_vxsort_avx2.cpp similarity index 100% rename from src/coreclr/src/gc/vxsort/do_vxsort_avx2.cpp rename to src/coreclr/gc/vxsort/do_vxsort_avx2.cpp diff --git a/src/coreclr/src/gc/vxsort/do_vxsort_avx512.cpp b/src/coreclr/gc/vxsort/do_vxsort_avx512.cpp similarity index 100% rename from src/coreclr/src/gc/vxsort/do_vxsort_avx512.cpp rename to src/coreclr/gc/vxsort/do_vxsort_avx512.cpp diff --git a/src/coreclr/src/gc/vxsort/isa_detection.cpp b/src/coreclr/gc/vxsort/isa_detection.cpp similarity index 100% rename from src/coreclr/src/gc/vxsort/isa_detection.cpp rename to src/coreclr/gc/vxsort/isa_detection.cpp diff --git a/src/coreclr/src/gc/vxsort/machine_traits.avx2.cpp b/src/coreclr/gc/vxsort/machine_traits.avx2.cpp similarity index 100% rename from src/coreclr/src/gc/vxsort/machine_traits.avx2.cpp rename to src/coreclr/gc/vxsort/machine_traits.avx2.cpp diff --git a/src/coreclr/src/gc/vxsort/machine_traits.avx2.h b/src/coreclr/gc/vxsort/machine_traits.avx2.h similarity index 100% rename from src/coreclr/src/gc/vxsort/machine_traits.avx2.h rename to src/coreclr/gc/vxsort/machine_traits.avx2.h diff --git a/src/coreclr/src/gc/vxsort/machine_traits.avx512.h b/src/coreclr/gc/vxsort/machine_traits.avx512.h similarity index 100% rename from src/coreclr/src/gc/vxsort/machine_traits.avx512.h rename to src/coreclr/gc/vxsort/machine_traits.avx512.h diff --git a/src/coreclr/src/gc/vxsort/machine_traits.h b/src/coreclr/gc/vxsort/machine_traits.h similarity index 100% rename from src/coreclr/src/gc/vxsort/machine_traits.h rename to src/coreclr/gc/vxsort/machine_traits.h diff --git a/src/coreclr/src/gc/vxsort/packer.h b/src/coreclr/gc/vxsort/packer.h similarity index 100% rename from src/coreclr/src/gc/vxsort/packer.h rename to src/coreclr/gc/vxsort/packer.h diff --git a/src/coreclr/src/gc/vxsort/smallsort/avx2_load_mask_tables.cpp b/src/coreclr/gc/vxsort/smallsort/avx2_load_mask_tables.cpp similarity index 100% rename from src/coreclr/src/gc/vxsort/smallsort/avx2_load_mask_tables.cpp rename to src/coreclr/gc/vxsort/smallsort/avx2_load_mask_tables.cpp diff --git a/src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.AVX2.int32_t.generated.cpp b/src/coreclr/gc/vxsort/smallsort/bitonic_sort.AVX2.int32_t.generated.cpp similarity index 100% rename from src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.AVX2.int32_t.generated.cpp rename to src/coreclr/gc/vxsort/smallsort/bitonic_sort.AVX2.int32_t.generated.cpp diff --git a/src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.AVX2.int32_t.generated.h b/src/coreclr/gc/vxsort/smallsort/bitonic_sort.AVX2.int32_t.generated.h similarity index 100% rename from src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.AVX2.int32_t.generated.h rename to src/coreclr/gc/vxsort/smallsort/bitonic_sort.AVX2.int32_t.generated.h diff --git a/src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.AVX2.int64_t.generated.cpp b/src/coreclr/gc/vxsort/smallsort/bitonic_sort.AVX2.int64_t.generated.cpp similarity index 100% rename from src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.AVX2.int64_t.generated.cpp rename to src/coreclr/gc/vxsort/smallsort/bitonic_sort.AVX2.int64_t.generated.cpp diff --git a/src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.AVX2.int64_t.generated.h b/src/coreclr/gc/vxsort/smallsort/bitonic_sort.AVX2.int64_t.generated.h similarity index 100% rename from src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.AVX2.int64_t.generated.h rename to src/coreclr/gc/vxsort/smallsort/bitonic_sort.AVX2.int64_t.generated.h diff --git a/src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.AVX512.int32_t.generated.cpp b/src/coreclr/gc/vxsort/smallsort/bitonic_sort.AVX512.int32_t.generated.cpp similarity index 100% rename from src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.AVX512.int32_t.generated.cpp rename to src/coreclr/gc/vxsort/smallsort/bitonic_sort.AVX512.int32_t.generated.cpp diff --git a/src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.AVX512.int32_t.generated.h b/src/coreclr/gc/vxsort/smallsort/bitonic_sort.AVX512.int32_t.generated.h similarity index 100% rename from src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.AVX512.int32_t.generated.h rename to src/coreclr/gc/vxsort/smallsort/bitonic_sort.AVX512.int32_t.generated.h diff --git a/src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.AVX512.int64_t.generated.cpp b/src/coreclr/gc/vxsort/smallsort/bitonic_sort.AVX512.int64_t.generated.cpp similarity index 100% rename from src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.AVX512.int64_t.generated.cpp rename to src/coreclr/gc/vxsort/smallsort/bitonic_sort.AVX512.int64_t.generated.cpp diff --git a/src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.AVX512.int64_t.generated.h b/src/coreclr/gc/vxsort/smallsort/bitonic_sort.AVX512.int64_t.generated.h similarity index 100% rename from src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.AVX512.int64_t.generated.h rename to src/coreclr/gc/vxsort/smallsort/bitonic_sort.AVX512.int64_t.generated.h diff --git a/src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.h b/src/coreclr/gc/vxsort/smallsort/bitonic_sort.h similarity index 100% rename from src/coreclr/src/gc/vxsort/smallsort/bitonic_sort.h rename to src/coreclr/gc/vxsort/smallsort/bitonic_sort.h diff --git a/src/coreclr/src/gc/vxsort/smallsort/codegen/avx2.py b/src/coreclr/gc/vxsort/smallsort/codegen/avx2.py similarity index 100% rename from src/coreclr/src/gc/vxsort/smallsort/codegen/avx2.py rename to src/coreclr/gc/vxsort/smallsort/codegen/avx2.py diff --git a/src/coreclr/src/gc/vxsort/smallsort/codegen/avx512.py b/src/coreclr/gc/vxsort/smallsort/codegen/avx512.py similarity index 100% rename from src/coreclr/src/gc/vxsort/smallsort/codegen/avx512.py rename to src/coreclr/gc/vxsort/smallsort/codegen/avx512.py diff --git a/src/coreclr/src/gc/vxsort/smallsort/codegen/bitonic_gen.py b/src/coreclr/gc/vxsort/smallsort/codegen/bitonic_gen.py similarity index 100% rename from src/coreclr/src/gc/vxsort/smallsort/codegen/bitonic_gen.py rename to src/coreclr/gc/vxsort/smallsort/codegen/bitonic_gen.py diff --git a/src/coreclr/src/gc/vxsort/smallsort/codegen/bitonic_isa.py b/src/coreclr/gc/vxsort/smallsort/codegen/bitonic_isa.py similarity index 100% rename from src/coreclr/src/gc/vxsort/smallsort/codegen/bitonic_isa.py rename to src/coreclr/gc/vxsort/smallsort/codegen/bitonic_isa.py diff --git a/src/coreclr/src/gc/vxsort/smallsort/codegen/utils.py b/src/coreclr/gc/vxsort/smallsort/codegen/utils.py similarity index 100% rename from src/coreclr/src/gc/vxsort/smallsort/codegen/utils.py rename to src/coreclr/gc/vxsort/smallsort/codegen/utils.py diff --git a/src/coreclr/src/gc/vxsort/vxsort.h b/src/coreclr/gc/vxsort/vxsort.h similarity index 100% rename from src/coreclr/src/gc/vxsort/vxsort.h rename to src/coreclr/gc/vxsort/vxsort.h diff --git a/src/coreclr/src/gc/vxsort/vxsort_targets_disable.h b/src/coreclr/gc/vxsort/vxsort_targets_disable.h similarity index 100% rename from src/coreclr/src/gc/vxsort/vxsort_targets_disable.h rename to src/coreclr/gc/vxsort/vxsort_targets_disable.h diff --git a/src/coreclr/src/gc/vxsort/vxsort_targets_enable_avx2.h b/src/coreclr/gc/vxsort/vxsort_targets_enable_avx2.h similarity index 100% rename from src/coreclr/src/gc/vxsort/vxsort_targets_enable_avx2.h rename to src/coreclr/gc/vxsort/vxsort_targets_enable_avx2.h diff --git a/src/coreclr/src/gc/vxsort/vxsort_targets_enable_avx512.h b/src/coreclr/gc/vxsort/vxsort_targets_enable_avx512.h similarity index 100% rename from src/coreclr/src/gc/vxsort/vxsort_targets_enable_avx512.h rename to src/coreclr/gc/vxsort/vxsort_targets_enable_avx512.h diff --git a/src/coreclr/src/gc/windows/gcenv.windows.cpp b/src/coreclr/gc/windows/gcenv.windows.cpp similarity index 100% rename from src/coreclr/src/gc/windows/gcenv.windows.cpp rename to src/coreclr/gc/windows/gcenv.windows.cpp diff --git a/src/coreclr/src/gcdump/gcdump.cpp b/src/coreclr/gcdump/gcdump.cpp similarity index 100% rename from src/coreclr/src/gcdump/gcdump.cpp rename to src/coreclr/gcdump/gcdump.cpp diff --git a/src/coreclr/src/gcdump/gcdumpnonx86.cpp b/src/coreclr/gcdump/gcdumpnonx86.cpp similarity index 100% rename from src/coreclr/src/gcdump/gcdumpnonx86.cpp rename to src/coreclr/gcdump/gcdumpnonx86.cpp diff --git a/src/coreclr/src/gcdump/i386/gcdumpx86.cpp b/src/coreclr/gcdump/i386/gcdumpx86.cpp similarity index 100% rename from src/coreclr/src/gcdump/i386/gcdumpx86.cpp rename to src/coreclr/gcdump/i386/gcdumpx86.cpp diff --git a/src/coreclr/src/gcinfo/CMakeLists.txt b/src/coreclr/gcinfo/CMakeLists.txt similarity index 100% rename from src/coreclr/src/gcinfo/CMakeLists.txt rename to src/coreclr/gcinfo/CMakeLists.txt diff --git a/src/coreclr/src/gcinfo/arraylist.cpp b/src/coreclr/gcinfo/arraylist.cpp similarity index 100% rename from src/coreclr/src/gcinfo/arraylist.cpp rename to src/coreclr/gcinfo/arraylist.cpp diff --git a/src/coreclr/src/gcinfo/gcinfodumper.cpp b/src/coreclr/gcinfo/gcinfodumper.cpp similarity index 100% rename from src/coreclr/src/gcinfo/gcinfodumper.cpp rename to src/coreclr/gcinfo/gcinfodumper.cpp diff --git a/src/coreclr/src/gcinfo/gcinfoencoder.cpp b/src/coreclr/gcinfo/gcinfoencoder.cpp similarity index 100% rename from src/coreclr/src/gcinfo/gcinfoencoder.cpp rename to src/coreclr/gcinfo/gcinfoencoder.cpp diff --git a/src/coreclr/src/gcinfo/simplerhash.cpp b/src/coreclr/gcinfo/simplerhash.cpp similarity index 100% rename from src/coreclr/src/gcinfo/simplerhash.cpp rename to src/coreclr/gcinfo/simplerhash.cpp diff --git a/src/coreclr/src/hosts/CMakeLists.txt b/src/coreclr/hosts/CMakeLists.txt similarity index 100% rename from src/coreclr/src/hosts/CMakeLists.txt rename to src/coreclr/hosts/CMakeLists.txt diff --git a/src/coreclr/src/hosts/applydefines.pl b/src/coreclr/hosts/applydefines.pl similarity index 100% rename from src/coreclr/src/hosts/applydefines.pl rename to src/coreclr/hosts/applydefines.pl diff --git a/src/coreclr/src/hosts/corerun/CMakeLists.txt b/src/coreclr/hosts/corerun/CMakeLists.txt similarity index 100% rename from src/coreclr/src/hosts/corerun/CMakeLists.txt rename to src/coreclr/hosts/corerun/CMakeLists.txt diff --git a/src/coreclr/src/hosts/corerun/corerun.cpp b/src/coreclr/hosts/corerun/corerun.cpp similarity index 100% rename from src/coreclr/src/hosts/corerun/corerun.cpp rename to src/coreclr/hosts/corerun/corerun.cpp diff --git a/src/coreclr/src/hosts/corerun/logger.cpp b/src/coreclr/hosts/corerun/logger.cpp similarity index 100% rename from src/coreclr/src/hosts/corerun/logger.cpp rename to src/coreclr/hosts/corerun/logger.cpp diff --git a/src/coreclr/src/hosts/corerun/logger.h b/src/coreclr/hosts/corerun/logger.h similarity index 100% rename from src/coreclr/src/hosts/corerun/logger.h rename to src/coreclr/hosts/corerun/logger.h diff --git a/src/coreclr/src/hosts/corerun/native.rc b/src/coreclr/hosts/corerun/native.rc similarity index 100% rename from src/coreclr/src/hosts/corerun/native.rc rename to src/coreclr/hosts/corerun/native.rc diff --git a/src/coreclr/src/hosts/corerun/test.txt b/src/coreclr/hosts/corerun/test.txt similarity index 100% rename from src/coreclr/src/hosts/corerun/test.txt rename to src/coreclr/hosts/corerun/test.txt diff --git a/src/coreclr/src/hosts/coreshim/CMakeLists.txt b/src/coreclr/hosts/coreshim/CMakeLists.txt similarity index 100% rename from src/coreclr/src/hosts/coreshim/CMakeLists.txt rename to src/coreclr/hosts/coreshim/CMakeLists.txt diff --git a/src/coreclr/src/hosts/coreshim/ComActivation.cpp b/src/coreclr/hosts/coreshim/ComActivation.cpp similarity index 100% rename from src/coreclr/src/hosts/coreshim/ComActivation.cpp rename to src/coreclr/hosts/coreshim/ComActivation.cpp diff --git a/src/coreclr/src/hosts/coreshim/CoreShim.cpp b/src/coreclr/hosts/coreshim/CoreShim.cpp similarity index 100% rename from src/coreclr/src/hosts/coreshim/CoreShim.cpp rename to src/coreclr/hosts/coreshim/CoreShim.cpp diff --git a/src/coreclr/src/hosts/coreshim/CoreShim.h b/src/coreclr/hosts/coreshim/CoreShim.h similarity index 100% rename from src/coreclr/src/hosts/coreshim/CoreShim.h rename to src/coreclr/hosts/coreshim/CoreShim.h diff --git a/src/coreclr/src/hosts/coreshim/Exports.def b/src/coreclr/hosts/coreshim/Exports.def similarity index 100% rename from src/coreclr/src/hosts/coreshim/Exports.def rename to src/coreclr/hosts/coreshim/Exports.def diff --git a/src/coreclr/src/hosts/inc/coreclrhost.h b/src/coreclr/hosts/inc/coreclrhost.h similarity index 100% rename from src/coreclr/src/hosts/inc/coreclrhost.h rename to src/coreclr/hosts/inc/coreclrhost.h diff --git a/src/coreclr/src/hosts/unixcorerun/CMakeLists.txt b/src/coreclr/hosts/unixcorerun/CMakeLists.txt similarity index 100% rename from src/coreclr/src/hosts/unixcorerun/CMakeLists.txt rename to src/coreclr/hosts/unixcorerun/CMakeLists.txt diff --git a/src/coreclr/src/hosts/unixcorerun/config.h.in b/src/coreclr/hosts/unixcorerun/config.h.in similarity index 100% rename from src/coreclr/src/hosts/unixcorerun/config.h.in rename to src/coreclr/hosts/unixcorerun/config.h.in diff --git a/src/coreclr/src/hosts/unixcorerun/configure.cmake b/src/coreclr/hosts/unixcorerun/configure.cmake similarity index 100% rename from src/coreclr/src/hosts/unixcorerun/configure.cmake rename to src/coreclr/hosts/unixcorerun/configure.cmake diff --git a/src/coreclr/src/hosts/unixcorerun/corerun.cpp b/src/coreclr/hosts/unixcorerun/corerun.cpp similarity index 100% rename from src/coreclr/src/hosts/unixcorerun/corerun.cpp rename to src/coreclr/hosts/unixcorerun/corerun.cpp diff --git a/src/coreclr/src/ilasm/CMakeLists.txt b/src/coreclr/ilasm/CMakeLists.txt similarity index 100% rename from src/coreclr/src/ilasm/CMakeLists.txt rename to src/coreclr/ilasm/CMakeLists.txt diff --git a/src/coreclr/src/ilasm/Native.rc b/src/coreclr/ilasm/Native.rc similarity index 100% rename from src/coreclr/src/ilasm/Native.rc rename to src/coreclr/ilasm/Native.rc diff --git a/src/coreclr/src/ilasm/asmenum.h b/src/coreclr/ilasm/asmenum.h similarity index 100% rename from src/coreclr/src/ilasm/asmenum.h rename to src/coreclr/ilasm/asmenum.h diff --git a/src/coreclr/src/ilasm/asmman.cpp b/src/coreclr/ilasm/asmman.cpp similarity index 100% rename from src/coreclr/src/ilasm/asmman.cpp rename to src/coreclr/ilasm/asmman.cpp diff --git a/src/coreclr/src/ilasm/asmman.hpp b/src/coreclr/ilasm/asmman.hpp similarity index 100% rename from src/coreclr/src/ilasm/asmman.hpp rename to src/coreclr/ilasm/asmman.hpp diff --git a/src/coreclr/src/ilasm/asmparse.h b/src/coreclr/ilasm/asmparse.h similarity index 100% rename from src/coreclr/src/ilasm/asmparse.h rename to src/coreclr/ilasm/asmparse.h diff --git a/src/coreclr/src/ilasm/asmparse.y b/src/coreclr/ilasm/asmparse.y similarity index 100% rename from src/coreclr/src/ilasm/asmparse.y rename to src/coreclr/ilasm/asmparse.y diff --git a/src/coreclr/src/ilasm/asmtemplates.h b/src/coreclr/ilasm/asmtemplates.h similarity index 100% rename from src/coreclr/src/ilasm/asmtemplates.h rename to src/coreclr/ilasm/asmtemplates.h diff --git a/src/coreclr/src/ilasm/assem.cpp b/src/coreclr/ilasm/assem.cpp similarity index 100% rename from src/coreclr/src/ilasm/assem.cpp rename to src/coreclr/ilasm/assem.cpp diff --git a/src/coreclr/src/ilasm/assembler.cpp b/src/coreclr/ilasm/assembler.cpp similarity index 100% rename from src/coreclr/src/ilasm/assembler.cpp rename to src/coreclr/ilasm/assembler.cpp diff --git a/src/coreclr/src/ilasm/assembler.h b/src/coreclr/ilasm/assembler.h similarity index 100% rename from src/coreclr/src/ilasm/assembler.h rename to src/coreclr/ilasm/assembler.h diff --git a/src/coreclr/src/ilasm/binstr.h b/src/coreclr/ilasm/binstr.h similarity index 100% rename from src/coreclr/src/ilasm/binstr.h rename to src/coreclr/ilasm/binstr.h diff --git a/src/coreclr/src/ilasm/class.hpp b/src/coreclr/ilasm/class.hpp similarity index 100% rename from src/coreclr/src/ilasm/class.hpp rename to src/coreclr/ilasm/class.hpp diff --git a/src/coreclr/src/ilasm/extractGrammar.pl b/src/coreclr/ilasm/extractGrammar.pl similarity index 100% rename from src/coreclr/src/ilasm/extractGrammar.pl rename to src/coreclr/ilasm/extractGrammar.pl diff --git a/src/coreclr/src/ilasm/grammar_after.cpp b/src/coreclr/ilasm/grammar_after.cpp similarity index 100% rename from src/coreclr/src/ilasm/grammar_after.cpp rename to src/coreclr/ilasm/grammar_after.cpp diff --git a/src/coreclr/src/ilasm/grammar_before.cpp b/src/coreclr/ilasm/grammar_before.cpp similarity index 100% rename from src/coreclr/src/ilasm/grammar_before.cpp rename to src/coreclr/ilasm/grammar_before.cpp diff --git a/src/coreclr/src/ilasm/ilasmpch.h b/src/coreclr/ilasm/ilasmpch.h similarity index 100% rename from src/coreclr/src/ilasm/ilasmpch.h rename to src/coreclr/ilasm/ilasmpch.h diff --git a/src/coreclr/src/ilasm/main.cpp b/src/coreclr/ilasm/main.cpp similarity index 100% rename from src/coreclr/src/ilasm/main.cpp rename to src/coreclr/ilasm/main.cpp diff --git a/src/coreclr/src/ilasm/method.cpp b/src/coreclr/ilasm/method.cpp similarity index 100% rename from src/coreclr/src/ilasm/method.cpp rename to src/coreclr/ilasm/method.cpp diff --git a/src/coreclr/src/ilasm/method.hpp b/src/coreclr/ilasm/method.hpp similarity index 100% rename from src/coreclr/src/ilasm/method.hpp rename to src/coreclr/ilasm/method.hpp diff --git a/src/coreclr/src/ilasm/nvpair.h b/src/coreclr/ilasm/nvpair.h similarity index 100% rename from src/coreclr/src/ilasm/nvpair.h rename to src/coreclr/ilasm/nvpair.h diff --git a/src/coreclr/src/ilasm/portable_pdb.cpp b/src/coreclr/ilasm/portable_pdb.cpp similarity index 100% rename from src/coreclr/src/ilasm/portable_pdb.cpp rename to src/coreclr/ilasm/portable_pdb.cpp diff --git a/src/coreclr/src/ilasm/portable_pdb.h b/src/coreclr/ilasm/portable_pdb.h similarity index 100% rename from src/coreclr/src/ilasm/portable_pdb.h rename to src/coreclr/ilasm/portable_pdb.h diff --git a/src/coreclr/src/ilasm/prebuilt/asmparse.cpp b/src/coreclr/ilasm/prebuilt/asmparse.cpp similarity index 100% rename from src/coreclr/src/ilasm/prebuilt/asmparse.cpp rename to src/coreclr/ilasm/prebuilt/asmparse.cpp diff --git a/src/coreclr/src/ilasm/prebuilt/asmparse.grammar b/src/coreclr/ilasm/prebuilt/asmparse.grammar similarity index 100% rename from src/coreclr/src/ilasm/prebuilt/asmparse.grammar rename to src/coreclr/ilasm/prebuilt/asmparse.grammar diff --git a/src/coreclr/src/ilasm/typar.hpp b/src/coreclr/ilasm/typar.hpp similarity index 100% rename from src/coreclr/src/ilasm/typar.hpp rename to src/coreclr/ilasm/typar.hpp diff --git a/src/coreclr/src/ilasm/writer.cpp b/src/coreclr/ilasm/writer.cpp similarity index 100% rename from src/coreclr/src/ilasm/writer.cpp rename to src/coreclr/ilasm/writer.cpp diff --git a/src/coreclr/src/ilasm/writer_enc.cpp b/src/coreclr/ilasm/writer_enc.cpp similarity index 100% rename from src/coreclr/src/ilasm/writer_enc.cpp rename to src/coreclr/ilasm/writer_enc.cpp diff --git a/src/coreclr/src/ildasm/CMakeLists.txt b/src/coreclr/ildasm/CMakeLists.txt similarity index 100% rename from src/coreclr/src/ildasm/CMakeLists.txt rename to src/coreclr/ildasm/CMakeLists.txt diff --git a/src/coreclr/src/ildasm/ceeload.cpp b/src/coreclr/ildasm/ceeload.cpp similarity index 100% rename from src/coreclr/src/ildasm/ceeload.cpp rename to src/coreclr/ildasm/ceeload.cpp diff --git a/src/coreclr/src/ildasm/ceeload.h b/src/coreclr/ildasm/ceeload.h similarity index 100% rename from src/coreclr/src/ildasm/ceeload.h rename to src/coreclr/ildasm/ceeload.h diff --git a/src/coreclr/src/ildasm/dasm.cpp b/src/coreclr/ildasm/dasm.cpp similarity index 100% rename from src/coreclr/src/ildasm/dasm.cpp rename to src/coreclr/ildasm/dasm.cpp diff --git a/src/coreclr/src/ildasm/dasm.rc b/src/coreclr/ildasm/dasm.rc similarity index 100% rename from src/coreclr/src/ildasm/dasm.rc rename to src/coreclr/ildasm/dasm.rc diff --git a/src/coreclr/src/ildasm/dasm_formattype.cpp b/src/coreclr/ildasm/dasm_formattype.cpp similarity index 100% rename from src/coreclr/src/ildasm/dasm_formattype.cpp rename to src/coreclr/ildasm/dasm_formattype.cpp diff --git a/src/coreclr/src/ildasm/dasm_mi.cpp b/src/coreclr/ildasm/dasm_mi.cpp similarity index 100% rename from src/coreclr/src/ildasm/dasm_mi.cpp rename to src/coreclr/ildasm/dasm_mi.cpp diff --git a/src/coreclr/src/ildasm/dasm_sz.cpp b/src/coreclr/ildasm/dasm_sz.cpp similarity index 100% rename from src/coreclr/src/ildasm/dasm_sz.cpp rename to src/coreclr/ildasm/dasm_sz.cpp diff --git a/src/coreclr/src/ildasm/dasm_sz.h b/src/coreclr/ildasm/dasm_sz.h similarity index 100% rename from src/coreclr/src/ildasm/dasm_sz.h rename to src/coreclr/ildasm/dasm_sz.h diff --git a/src/coreclr/src/ildasm/dasmenum.hpp b/src/coreclr/ildasm/dasmenum.hpp similarity index 100% rename from src/coreclr/src/ildasm/dasmenum.hpp rename to src/coreclr/ildasm/dasmenum.hpp diff --git a/src/coreclr/src/ildasm/dis.cpp b/src/coreclr/ildasm/dis.cpp similarity index 100% rename from src/coreclr/src/ildasm/dis.cpp rename to src/coreclr/ildasm/dis.cpp diff --git a/src/coreclr/src/ildasm/dis.h b/src/coreclr/ildasm/dis.h similarity index 100% rename from src/coreclr/src/ildasm/dis.h rename to src/coreclr/ildasm/dis.h diff --git a/src/coreclr/src/ildasm/dman.cpp b/src/coreclr/ildasm/dman.cpp similarity index 100% rename from src/coreclr/src/ildasm/dman.cpp rename to src/coreclr/ildasm/dman.cpp diff --git a/src/coreclr/src/ildasm/dres.cpp b/src/coreclr/ildasm/dres.cpp similarity index 100% rename from src/coreclr/src/ildasm/dres.cpp rename to src/coreclr/ildasm/dres.cpp diff --git a/src/coreclr/src/ildasm/dynamicarray.h b/src/coreclr/ildasm/dynamicarray.h similarity index 100% rename from src/coreclr/src/ildasm/dynamicarray.h rename to src/coreclr/ildasm/dynamicarray.h diff --git a/src/coreclr/src/ildasm/exe/CMakeLists.txt b/src/coreclr/ildasm/exe/CMakeLists.txt similarity index 100% rename from src/coreclr/src/ildasm/exe/CMakeLists.txt rename to src/coreclr/ildasm/exe/CMakeLists.txt diff --git a/src/coreclr/src/ildasm/ildasmpch.cpp b/src/coreclr/ildasm/ildasmpch.cpp similarity index 100% rename from src/coreclr/src/ildasm/ildasmpch.cpp rename to src/coreclr/ildasm/ildasmpch.cpp diff --git a/src/coreclr/src/ildasm/ildasmpch.h b/src/coreclr/ildasm/ildasmpch.h similarity index 100% rename from src/coreclr/src/ildasm/ildasmpch.h rename to src/coreclr/ildasm/ildasmpch.h diff --git a/src/coreclr/src/ildasm/resource.h b/src/coreclr/ildasm/resource.h similarity index 100% rename from src/coreclr/src/ildasm/resource.h rename to src/coreclr/ildasm/resource.h diff --git a/src/coreclr/src/ildasm/util.hpp b/src/coreclr/ildasm/util.hpp similarity index 100% rename from src/coreclr/src/ildasm/util.hpp rename to src/coreclr/ildasm/util.hpp diff --git a/src/coreclr/src/ildasm/windasm.cpp b/src/coreclr/ildasm/windasm.cpp similarity index 100% rename from src/coreclr/src/ildasm/windasm.cpp rename to src/coreclr/ildasm/windasm.cpp diff --git a/src/coreclr/src/inc/CMakeLists.txt b/src/coreclr/inc/CMakeLists.txt similarity index 100% rename from src/coreclr/src/inc/CMakeLists.txt rename to src/coreclr/inc/CMakeLists.txt diff --git a/src/coreclr/src/inc/CrstTypeTool.cs b/src/coreclr/inc/CrstTypeTool.cs similarity index 100% rename from src/coreclr/src/inc/CrstTypeTool.cs rename to src/coreclr/inc/CrstTypeTool.cs diff --git a/src/coreclr/src/inc/CrstTypes.def b/src/coreclr/inc/CrstTypes.def similarity index 100% rename from src/coreclr/src/inc/CrstTypes.def rename to src/coreclr/inc/CrstTypes.def diff --git a/src/coreclr/src/inc/MSCOREE.IDL b/src/coreclr/inc/MSCOREE.IDL similarity index 100% rename from src/coreclr/src/inc/MSCOREE.IDL rename to src/coreclr/inc/MSCOREE.IDL diff --git a/src/coreclr/src/inc/OpCodeGen.pl b/src/coreclr/inc/OpCodeGen.pl similarity index 100% rename from src/coreclr/src/inc/OpCodeGen.pl rename to src/coreclr/inc/OpCodeGen.pl diff --git a/src/coreclr/src/inc/allocacheck.h b/src/coreclr/inc/allocacheck.h similarity index 100% rename from src/coreclr/src/inc/allocacheck.h rename to src/coreclr/inc/allocacheck.h diff --git a/src/coreclr/src/inc/arrayholder.h b/src/coreclr/inc/arrayholder.h similarity index 100% rename from src/coreclr/src/inc/arrayholder.h rename to src/coreclr/inc/arrayholder.h diff --git a/src/coreclr/src/inc/arraylist.h b/src/coreclr/inc/arraylist.h similarity index 100% rename from src/coreclr/src/inc/arraylist.h rename to src/coreclr/inc/arraylist.h diff --git a/src/coreclr/src/inc/bbsweep.h b/src/coreclr/inc/bbsweep.h similarity index 100% rename from src/coreclr/src/inc/bbsweep.h rename to src/coreclr/inc/bbsweep.h diff --git a/src/coreclr/src/inc/bitmask.h b/src/coreclr/inc/bitmask.h similarity index 100% rename from src/coreclr/src/inc/bitmask.h rename to src/coreclr/inc/bitmask.h diff --git a/src/coreclr/src/inc/bitmask.inl b/src/coreclr/inc/bitmask.inl similarity index 100% rename from src/coreclr/src/inc/bitmask.inl rename to src/coreclr/inc/bitmask.inl diff --git a/src/coreclr/src/inc/bitposition.h b/src/coreclr/inc/bitposition.h similarity index 100% rename from src/coreclr/src/inc/bitposition.h rename to src/coreclr/inc/bitposition.h diff --git a/src/coreclr/src/inc/bitvector.h b/src/coreclr/inc/bitvector.h similarity index 100% rename from src/coreclr/src/inc/bitvector.h rename to src/coreclr/inc/bitvector.h diff --git a/src/coreclr/src/inc/blobfetcher.h b/src/coreclr/inc/blobfetcher.h similarity index 100% rename from src/coreclr/src/inc/blobfetcher.h rename to src/coreclr/inc/blobfetcher.h diff --git a/src/coreclr/src/inc/bundle.h b/src/coreclr/inc/bundle.h similarity index 100% rename from src/coreclr/src/inc/bundle.h rename to src/coreclr/inc/bundle.h diff --git a/src/coreclr/src/inc/cahlpr.h b/src/coreclr/inc/cahlpr.h similarity index 100% rename from src/coreclr/src/inc/cahlpr.h rename to src/coreclr/inc/cahlpr.h diff --git a/src/coreclr/src/inc/caparser.h b/src/coreclr/inc/caparser.h similarity index 100% rename from src/coreclr/src/inc/caparser.h rename to src/coreclr/inc/caparser.h diff --git a/src/coreclr/src/inc/ceefilegenwriter.h b/src/coreclr/inc/ceefilegenwriter.h similarity index 100% rename from src/coreclr/src/inc/ceefilegenwriter.h rename to src/coreclr/inc/ceefilegenwriter.h diff --git a/src/coreclr/src/inc/ceegen.h b/src/coreclr/inc/ceegen.h similarity index 100% rename from src/coreclr/src/inc/ceegen.h rename to src/coreclr/inc/ceegen.h diff --git a/src/coreclr/src/inc/ceegentokenmapper.h b/src/coreclr/inc/ceegentokenmapper.h similarity index 100% rename from src/coreclr/src/inc/ceegentokenmapper.h rename to src/coreclr/inc/ceegentokenmapper.h diff --git a/src/coreclr/src/inc/ceesectionstring.h b/src/coreclr/inc/ceesectionstring.h similarity index 100% rename from src/coreclr/src/inc/ceesectionstring.h rename to src/coreclr/inc/ceesectionstring.h diff --git a/src/coreclr/src/inc/cfi.h b/src/coreclr/inc/cfi.h similarity index 100% rename from src/coreclr/src/inc/cfi.h rename to src/coreclr/inc/cfi.h diff --git a/src/coreclr/src/inc/check.h b/src/coreclr/inc/check.h similarity index 100% rename from src/coreclr/src/inc/check.h rename to src/coreclr/inc/check.h diff --git a/src/coreclr/src/inc/check.inl b/src/coreclr/inc/check.inl similarity index 100% rename from src/coreclr/src/inc/check.inl rename to src/coreclr/inc/check.inl diff --git a/src/coreclr/src/inc/clr/fs.h b/src/coreclr/inc/clr/fs.h similarity index 100% rename from src/coreclr/src/inc/clr/fs.h rename to src/coreclr/inc/clr/fs.h diff --git a/src/coreclr/src/inc/clr/fs/path.h b/src/coreclr/inc/clr/fs/path.h similarity index 100% rename from src/coreclr/src/inc/clr/fs/path.h rename to src/coreclr/inc/clr/fs/path.h diff --git a/src/coreclr/src/inc/clr/stack.h b/src/coreclr/inc/clr/stack.h similarity index 100% rename from src/coreclr/src/inc/clr/stack.h rename to src/coreclr/inc/clr/stack.h diff --git a/src/coreclr/src/inc/clr/str.h b/src/coreclr/inc/clr/str.h similarity index 100% rename from src/coreclr/src/inc/clr/str.h rename to src/coreclr/inc/clr/str.h diff --git a/src/coreclr/src/inc/clr/win32.h b/src/coreclr/inc/clr/win32.h similarity index 100% rename from src/coreclr/src/inc/clr/win32.h rename to src/coreclr/inc/clr/win32.h diff --git a/src/coreclr/src/inc/clr_std/algorithm b/src/coreclr/inc/clr_std/algorithm similarity index 100% rename from src/coreclr/src/inc/clr_std/algorithm rename to src/coreclr/inc/clr_std/algorithm diff --git a/src/coreclr/src/inc/clr_std/string b/src/coreclr/inc/clr_std/string similarity index 100% rename from src/coreclr/src/inc/clr_std/string rename to src/coreclr/inc/clr_std/string diff --git a/src/coreclr/src/inc/clr_std/type_traits b/src/coreclr/inc/clr_std/type_traits similarity index 100% rename from src/coreclr/src/inc/clr_std/type_traits rename to src/coreclr/inc/clr_std/type_traits diff --git a/src/coreclr/src/inc/clr_std/utility b/src/coreclr/inc/clr_std/utility similarity index 100% rename from src/coreclr/src/inc/clr_std/utility rename to src/coreclr/inc/clr_std/utility diff --git a/src/coreclr/src/inc/clr_std/vector b/src/coreclr/inc/clr_std/vector similarity index 100% rename from src/coreclr/src/inc/clr_std/vector rename to src/coreclr/inc/clr_std/vector diff --git a/src/coreclr/src/inc/clrconfig.h b/src/coreclr/inc/clrconfig.h similarity index 100% rename from src/coreclr/src/inc/clrconfig.h rename to src/coreclr/inc/clrconfig.h diff --git a/src/coreclr/src/inc/clrconfigvalues.h b/src/coreclr/inc/clrconfigvalues.h similarity index 100% rename from src/coreclr/src/inc/clrconfigvalues.h rename to src/coreclr/inc/clrconfigvalues.h diff --git a/src/coreclr/src/inc/clrdata.idl b/src/coreclr/inc/clrdata.idl similarity index 100% rename from src/coreclr/src/inc/clrdata.idl rename to src/coreclr/inc/clrdata.idl diff --git a/src/coreclr/src/inc/clrhost.h b/src/coreclr/inc/clrhost.h similarity index 100% rename from src/coreclr/src/inc/clrhost.h rename to src/coreclr/inc/clrhost.h diff --git a/src/coreclr/src/inc/clrinternal.idl b/src/coreclr/inc/clrinternal.idl similarity index 100% rename from src/coreclr/src/inc/clrinternal.idl rename to src/coreclr/inc/clrinternal.idl diff --git a/src/coreclr/src/inc/clrnt.h b/src/coreclr/inc/clrnt.h similarity index 100% rename from src/coreclr/src/inc/clrnt.h rename to src/coreclr/inc/clrnt.h diff --git a/src/coreclr/src/inc/clrprivbinderutil.h b/src/coreclr/inc/clrprivbinderutil.h similarity index 100% rename from src/coreclr/src/inc/clrprivbinderutil.h rename to src/coreclr/inc/clrprivbinderutil.h diff --git a/src/coreclr/src/inc/clrprivbinding.idl b/src/coreclr/inc/clrprivbinding.idl similarity index 100% rename from src/coreclr/src/inc/clrprivbinding.idl rename to src/coreclr/inc/clrprivbinding.idl diff --git a/src/coreclr/src/inc/clrtypes.h b/src/coreclr/inc/clrtypes.h similarity index 100% rename from src/coreclr/src/inc/clrtypes.h rename to src/coreclr/inc/clrtypes.h diff --git a/src/coreclr/src/inc/clrversion.h b/src/coreclr/inc/clrversion.h similarity index 100% rename from src/coreclr/src/inc/clrversion.h rename to src/coreclr/inc/clrversion.h diff --git a/src/coreclr/src/inc/complex.h b/src/coreclr/inc/complex.h similarity index 100% rename from src/coreclr/src/inc/complex.h rename to src/coreclr/inc/complex.h diff --git a/src/coreclr/src/inc/configuration.h b/src/coreclr/inc/configuration.h similarity index 100% rename from src/coreclr/src/inc/configuration.h rename to src/coreclr/inc/configuration.h diff --git a/src/coreclr/src/inc/contract.h b/src/coreclr/inc/contract.h similarity index 100% rename from src/coreclr/src/inc/contract.h rename to src/coreclr/inc/contract.h diff --git a/src/coreclr/src/inc/contract.inl b/src/coreclr/inc/contract.inl similarity index 100% rename from src/coreclr/src/inc/contract.inl rename to src/coreclr/inc/contract.inl diff --git a/src/coreclr/src/inc/contxt.h b/src/coreclr/inc/contxt.h similarity index 100% rename from src/coreclr/src/inc/contxt.h rename to src/coreclr/inc/contxt.h diff --git a/src/coreclr/src/inc/cor.h b/src/coreclr/inc/cor.h similarity index 100% rename from src/coreclr/src/inc/cor.h rename to src/coreclr/inc/cor.h diff --git a/src/coreclr/src/inc/corbbtprof.h b/src/coreclr/inc/corbbtprof.h similarity index 100% rename from src/coreclr/src/inc/corbbtprof.h rename to src/coreclr/inc/corbbtprof.h diff --git a/src/coreclr/src/inc/corcompile.h b/src/coreclr/inc/corcompile.h similarity index 100% rename from src/coreclr/src/inc/corcompile.h rename to src/coreclr/inc/corcompile.h diff --git a/src/coreclr/src/inc/cordbpriv.h b/src/coreclr/inc/cordbpriv.h similarity index 100% rename from src/coreclr/src/inc/cordbpriv.h rename to src/coreclr/inc/cordbpriv.h diff --git a/src/coreclr/src/inc/cordebug.idl b/src/coreclr/inc/cordebug.idl similarity index 100% rename from src/coreclr/src/inc/cordebug.idl rename to src/coreclr/inc/cordebug.idl diff --git a/src/coreclr/src/inc/cordebuginfo.h b/src/coreclr/inc/cordebuginfo.h similarity index 100% rename from src/coreclr/src/inc/cordebuginfo.h rename to src/coreclr/inc/cordebuginfo.h diff --git a/src/coreclr/src/inc/coredistools.h b/src/coreclr/inc/coredistools.h similarity index 100% rename from src/coreclr/src/inc/coredistools.h rename to src/coreclr/inc/coredistools.h diff --git a/src/coreclr/src/inc/coregen.h b/src/coreclr/inc/coregen.h similarity index 100% rename from src/coreclr/src/inc/coregen.h rename to src/coreclr/inc/coregen.h diff --git a/src/coreclr/src/inc/corerror.xml b/src/coreclr/inc/corerror.xml similarity index 100% rename from src/coreclr/src/inc/corerror.xml rename to src/coreclr/inc/corerror.xml diff --git a/src/coreclr/src/inc/corexcep.h b/src/coreclr/inc/corexcep.h similarity index 100% rename from src/coreclr/src/inc/corexcep.h rename to src/coreclr/inc/corexcep.h diff --git a/src/coreclr/src/inc/corhdr.h b/src/coreclr/inc/corhdr.h similarity index 100% rename from src/coreclr/src/inc/corhdr.h rename to src/coreclr/inc/corhdr.h diff --git a/src/coreclr/src/inc/corhlpr.cpp b/src/coreclr/inc/corhlpr.cpp similarity index 100% rename from src/coreclr/src/inc/corhlpr.cpp rename to src/coreclr/inc/corhlpr.cpp diff --git a/src/coreclr/src/inc/corhlpr.h b/src/coreclr/inc/corhlpr.h similarity index 100% rename from src/coreclr/src/inc/corhlpr.h rename to src/coreclr/inc/corhlpr.h diff --git a/src/coreclr/src/inc/corhlprpriv.cpp b/src/coreclr/inc/corhlprpriv.cpp similarity index 100% rename from src/coreclr/src/inc/corhlprpriv.cpp rename to src/coreclr/inc/corhlprpriv.cpp diff --git a/src/coreclr/src/inc/corhlprpriv.h b/src/coreclr/inc/corhlprpriv.h similarity index 100% rename from src/coreclr/src/inc/corhlprpriv.h rename to src/coreclr/inc/corhlprpriv.h diff --git a/src/coreclr/src/inc/corhost.h b/src/coreclr/inc/corhost.h similarity index 100% rename from src/coreclr/src/inc/corhost.h rename to src/coreclr/inc/corhost.h diff --git a/src/coreclr/src/inc/corimage.h b/src/coreclr/inc/corimage.h similarity index 100% rename from src/coreclr/src/inc/corimage.h rename to src/coreclr/inc/corimage.h diff --git a/src/coreclr/src/inc/corinfo.h b/src/coreclr/inc/corinfo.h similarity index 100% rename from src/coreclr/src/inc/corinfo.h rename to src/coreclr/inc/corinfo.h diff --git a/src/coreclr/src/inc/corinfoinstructionset.h b/src/coreclr/inc/corinfoinstructionset.h similarity index 100% rename from src/coreclr/src/inc/corinfoinstructionset.h rename to src/coreclr/inc/corinfoinstructionset.h diff --git a/src/coreclr/src/inc/corjit.h b/src/coreclr/inc/corjit.h similarity index 100% rename from src/coreclr/src/inc/corjit.h rename to src/coreclr/inc/corjit.h diff --git a/src/coreclr/src/inc/corjitflags.h b/src/coreclr/inc/corjitflags.h similarity index 100% rename from src/coreclr/src/inc/corjitflags.h rename to src/coreclr/inc/corjitflags.h diff --git a/src/coreclr/src/inc/corjithost.h b/src/coreclr/inc/corjithost.h similarity index 100% rename from src/coreclr/src/inc/corjithost.h rename to src/coreclr/inc/corjithost.h diff --git a/src/coreclr/src/inc/corpriv.h b/src/coreclr/inc/corpriv.h similarity index 100% rename from src/coreclr/src/inc/corpriv.h rename to src/coreclr/inc/corpriv.h diff --git a/src/coreclr/src/inc/corprof.idl b/src/coreclr/inc/corprof.idl similarity index 100% rename from src/coreclr/src/inc/corprof.idl rename to src/coreclr/inc/corprof.idl diff --git a/src/coreclr/src/inc/corpub.idl b/src/coreclr/inc/corpub.idl similarity index 100% rename from src/coreclr/src/inc/corpub.idl rename to src/coreclr/inc/corpub.idl diff --git a/src/coreclr/src/inc/corsym.idl b/src/coreclr/inc/corsym.idl similarity index 100% rename from src/coreclr/src/inc/corsym.idl rename to src/coreclr/inc/corsym.idl diff --git a/src/coreclr/src/inc/cortypeinfo.h b/src/coreclr/inc/cortypeinfo.h similarity index 100% rename from src/coreclr/src/inc/cortypeinfo.h rename to src/coreclr/inc/cortypeinfo.h diff --git a/src/coreclr/src/inc/crosscomp.h b/src/coreclr/inc/crosscomp.h similarity index 100% rename from src/coreclr/src/inc/crosscomp.h rename to src/coreclr/inc/crosscomp.h diff --git a/src/coreclr/src/inc/crsttypes.h b/src/coreclr/inc/crsttypes.h similarity index 100% rename from src/coreclr/src/inc/crsttypes.h rename to src/coreclr/inc/crsttypes.h diff --git a/src/coreclr/src/inc/crtwrap.h b/src/coreclr/inc/crtwrap.h similarity index 100% rename from src/coreclr/src/inc/crtwrap.h rename to src/coreclr/inc/crtwrap.h diff --git a/src/coreclr/src/inc/cvconst.h b/src/coreclr/inc/cvconst.h similarity index 100% rename from src/coreclr/src/inc/cvconst.h rename to src/coreclr/inc/cvconst.h diff --git a/src/coreclr/src/inc/cvinfo.h b/src/coreclr/inc/cvinfo.h similarity index 100% rename from src/coreclr/src/inc/cvinfo.h rename to src/coreclr/inc/cvinfo.h diff --git a/src/coreclr/src/inc/cycletimer.h b/src/coreclr/inc/cycletimer.h similarity index 100% rename from src/coreclr/src/inc/cycletimer.h rename to src/coreclr/inc/cycletimer.h diff --git a/src/coreclr/src/inc/daccess.h b/src/coreclr/inc/daccess.h similarity index 100% rename from src/coreclr/src/inc/daccess.h rename to src/coreclr/inc/daccess.h diff --git a/src/coreclr/src/inc/dacprivate.h b/src/coreclr/inc/dacprivate.h similarity index 100% rename from src/coreclr/src/inc/dacprivate.h rename to src/coreclr/inc/dacprivate.h diff --git a/src/coreclr/src/inc/dacvars.h b/src/coreclr/inc/dacvars.h similarity index 100% rename from src/coreclr/src/inc/dacvars.h rename to src/coreclr/inc/dacvars.h diff --git a/src/coreclr/src/inc/dbgenginemetrics.h b/src/coreclr/inc/dbgenginemetrics.h similarity index 100% rename from src/coreclr/src/inc/dbgenginemetrics.h rename to src/coreclr/inc/dbgenginemetrics.h diff --git a/src/coreclr/src/inc/dbgmeta.h b/src/coreclr/inc/dbgmeta.h similarity index 100% rename from src/coreclr/src/inc/dbgmeta.h rename to src/coreclr/inc/dbgmeta.h diff --git a/src/coreclr/src/inc/dbgportable.h b/src/coreclr/inc/dbgportable.h similarity index 100% rename from src/coreclr/src/inc/dbgportable.h rename to src/coreclr/inc/dbgportable.h diff --git a/src/coreclr/src/inc/debugmacros.h b/src/coreclr/inc/debugmacros.h similarity index 100% rename from src/coreclr/src/inc/debugmacros.h rename to src/coreclr/inc/debugmacros.h diff --git a/src/coreclr/src/inc/debugmacrosext.h b/src/coreclr/inc/debugmacrosext.h similarity index 100% rename from src/coreclr/src/inc/debugmacrosext.h rename to src/coreclr/inc/debugmacrosext.h diff --git a/src/coreclr/src/inc/debugreturn.h b/src/coreclr/inc/debugreturn.h similarity index 100% rename from src/coreclr/src/inc/debugreturn.h rename to src/coreclr/inc/debugreturn.h diff --git a/src/coreclr/src/inc/defaultallocator.h b/src/coreclr/inc/defaultallocator.h similarity index 100% rename from src/coreclr/src/inc/defaultallocator.h rename to src/coreclr/inc/defaultallocator.h diff --git a/src/coreclr/src/inc/dlwrap.h b/src/coreclr/inc/dlwrap.h similarity index 100% rename from src/coreclr/src/inc/dlwrap.h rename to src/coreclr/inc/dlwrap.h diff --git a/src/coreclr/src/inc/ecmakey.h b/src/coreclr/inc/ecmakey.h similarity index 100% rename from src/coreclr/src/inc/ecmakey.h rename to src/coreclr/inc/ecmakey.h diff --git a/src/coreclr/src/inc/eetwain.h b/src/coreclr/inc/eetwain.h similarity index 100% rename from src/coreclr/src/inc/eetwain.h rename to src/coreclr/inc/eetwain.h diff --git a/src/coreclr/src/inc/eexcp.h b/src/coreclr/inc/eexcp.h similarity index 100% rename from src/coreclr/src/inc/eexcp.h rename to src/coreclr/inc/eexcp.h diff --git a/src/coreclr/src/inc/entrypoints.h b/src/coreclr/inc/entrypoints.h similarity index 100% rename from src/coreclr/src/inc/entrypoints.h rename to src/coreclr/inc/entrypoints.h diff --git a/src/coreclr/src/inc/eventtrace.h b/src/coreclr/inc/eventtrace.h similarity index 100% rename from src/coreclr/src/inc/eventtrace.h rename to src/coreclr/inc/eventtrace.h diff --git a/src/coreclr/src/inc/eventtracebase.h b/src/coreclr/inc/eventtracebase.h similarity index 100% rename from src/coreclr/src/inc/eventtracebase.h rename to src/coreclr/inc/eventtracebase.h diff --git a/src/coreclr/src/inc/ex.h b/src/coreclr/inc/ex.h similarity index 100% rename from src/coreclr/src/inc/ex.h rename to src/coreclr/inc/ex.h diff --git a/src/coreclr/src/inc/factory.h b/src/coreclr/inc/factory.h similarity index 100% rename from src/coreclr/src/inc/factory.h rename to src/coreclr/inc/factory.h diff --git a/src/coreclr/src/inc/factory.inl b/src/coreclr/inc/factory.inl similarity index 100% rename from src/coreclr/src/inc/factory.inl rename to src/coreclr/inc/factory.inl diff --git a/src/coreclr/src/inc/fixuppointer.h b/src/coreclr/inc/fixuppointer.h similarity index 100% rename from src/coreclr/src/inc/fixuppointer.h rename to src/coreclr/inc/fixuppointer.h diff --git a/src/coreclr/src/inc/formattype.cpp b/src/coreclr/inc/formattype.cpp similarity index 100% rename from src/coreclr/src/inc/formattype.cpp rename to src/coreclr/inc/formattype.cpp diff --git a/src/coreclr/src/inc/formattype.h b/src/coreclr/inc/formattype.h similarity index 100% rename from src/coreclr/src/inc/formattype.h rename to src/coreclr/inc/formattype.h diff --git a/src/coreclr/src/inc/fstream.h b/src/coreclr/inc/fstream.h similarity index 100% rename from src/coreclr/src/inc/fstream.h rename to src/coreclr/inc/fstream.h diff --git a/src/coreclr/src/inc/fstring.h b/src/coreclr/inc/fstring.h similarity index 100% rename from src/coreclr/src/inc/fstring.h rename to src/coreclr/inc/fstring.h diff --git a/src/coreclr/src/inc/fusion.idl b/src/coreclr/inc/fusion.idl similarity index 100% rename from src/coreclr/src/inc/fusion.idl rename to src/coreclr/inc/fusion.idl diff --git a/src/coreclr/src/inc/gcdecoder.cpp b/src/coreclr/inc/gcdecoder.cpp similarity index 100% rename from src/coreclr/src/inc/gcdecoder.cpp rename to src/coreclr/inc/gcdecoder.cpp diff --git a/src/coreclr/src/inc/gcdump.h b/src/coreclr/inc/gcdump.h similarity index 100% rename from src/coreclr/src/inc/gcdump.h rename to src/coreclr/inc/gcdump.h diff --git a/src/coreclr/src/inc/gcinfo.h b/src/coreclr/inc/gcinfo.h similarity index 100% rename from src/coreclr/src/inc/gcinfo.h rename to src/coreclr/inc/gcinfo.h diff --git a/src/coreclr/src/inc/gcinfoarraylist.h b/src/coreclr/inc/gcinfoarraylist.h similarity index 100% rename from src/coreclr/src/inc/gcinfoarraylist.h rename to src/coreclr/inc/gcinfoarraylist.h diff --git a/src/coreclr/src/inc/gcinfodecoder.h b/src/coreclr/inc/gcinfodecoder.h similarity index 100% rename from src/coreclr/src/inc/gcinfodecoder.h rename to src/coreclr/inc/gcinfodecoder.h diff --git a/src/coreclr/src/inc/gcinfodumper.h b/src/coreclr/inc/gcinfodumper.h similarity index 100% rename from src/coreclr/src/inc/gcinfodumper.h rename to src/coreclr/inc/gcinfodumper.h diff --git a/src/coreclr/src/inc/gcinfoencoder.h b/src/coreclr/inc/gcinfoencoder.h similarity index 100% rename from src/coreclr/src/inc/gcinfoencoder.h rename to src/coreclr/inc/gcinfoencoder.h diff --git a/src/coreclr/src/inc/gcinfotypes.h b/src/coreclr/inc/gcinfotypes.h similarity index 100% rename from src/coreclr/src/inc/gcinfotypes.h rename to src/coreclr/inc/gcinfotypes.h diff --git a/src/coreclr/src/inc/gcrefmap.h b/src/coreclr/inc/gcrefmap.h similarity index 100% rename from src/coreclr/src/inc/gcrefmap.h rename to src/coreclr/inc/gcrefmap.h diff --git a/src/coreclr/src/inc/genheaders.cs b/src/coreclr/inc/genheaders.cs similarity index 100% rename from src/coreclr/src/inc/genheaders.cs rename to src/coreclr/inc/genheaders.cs diff --git a/src/coreclr/src/inc/genrops.pl b/src/coreclr/inc/genrops.pl similarity index 100% rename from src/coreclr/src/inc/genrops.pl rename to src/coreclr/inc/genrops.pl diff --git a/src/coreclr/src/inc/getproductversionnumber.h b/src/coreclr/inc/getproductversionnumber.h similarity index 100% rename from src/coreclr/src/inc/getproductversionnumber.h rename to src/coreclr/inc/getproductversionnumber.h diff --git a/src/coreclr/src/inc/guidfromname.h b/src/coreclr/inc/guidfromname.h similarity index 100% rename from src/coreclr/src/inc/guidfromname.h rename to src/coreclr/inc/guidfromname.h diff --git a/src/coreclr/src/inc/holder.h b/src/coreclr/inc/holder.h similarity index 100% rename from src/coreclr/src/inc/holder.h rename to src/coreclr/inc/holder.h diff --git a/src/coreclr/src/inc/holderinst.h b/src/coreclr/inc/holderinst.h similarity index 100% rename from src/coreclr/src/inc/holderinst.h rename to src/coreclr/inc/holderinst.h diff --git a/src/coreclr/src/inc/iallocator.h b/src/coreclr/inc/iallocator.h similarity index 100% rename from src/coreclr/src/inc/iallocator.h rename to src/coreclr/inc/iallocator.h diff --git a/src/coreclr/src/inc/iceefilegen.h b/src/coreclr/inc/iceefilegen.h similarity index 100% rename from src/coreclr/src/inc/iceefilegen.h rename to src/coreclr/inc/iceefilegen.h diff --git a/src/coreclr/src/inc/il_kywd.h b/src/coreclr/inc/il_kywd.h similarity index 100% rename from src/coreclr/src/inc/il_kywd.h rename to src/coreclr/inc/il_kywd.h diff --git a/src/coreclr/src/inc/ildbsymlib.h b/src/coreclr/inc/ildbsymlib.h similarity index 100% rename from src/coreclr/src/inc/ildbsymlib.h rename to src/coreclr/inc/ildbsymlib.h diff --git a/src/coreclr/src/inc/ilformatter.h b/src/coreclr/inc/ilformatter.h similarity index 100% rename from src/coreclr/src/inc/ilformatter.h rename to src/coreclr/inc/ilformatter.h diff --git a/src/coreclr/src/inc/internalunknownimpl.h b/src/coreclr/inc/internalunknownimpl.h similarity index 100% rename from src/coreclr/src/inc/internalunknownimpl.h rename to src/coreclr/inc/internalunknownimpl.h diff --git a/src/coreclr/src/inc/intrinsic.h b/src/coreclr/inc/intrinsic.h similarity index 100% rename from src/coreclr/src/inc/intrinsic.h rename to src/coreclr/inc/intrinsic.h diff --git a/src/coreclr/src/inc/iterator.h b/src/coreclr/inc/iterator.h similarity index 100% rename from src/coreclr/src/inc/iterator.h rename to src/coreclr/inc/iterator.h diff --git a/src/coreclr/src/inc/jiteeversionguid.h b/src/coreclr/inc/jiteeversionguid.h similarity index 100% rename from src/coreclr/src/inc/jiteeversionguid.h rename to src/coreclr/inc/jiteeversionguid.h diff --git a/src/coreclr/src/inc/jithelpers.h b/src/coreclr/inc/jithelpers.h similarity index 100% rename from src/coreclr/src/inc/jithelpers.h rename to src/coreclr/inc/jithelpers.h diff --git a/src/coreclr/src/inc/livedatatarget.h b/src/coreclr/inc/livedatatarget.h similarity index 100% rename from src/coreclr/src/inc/livedatatarget.h rename to src/coreclr/inc/livedatatarget.h diff --git a/src/coreclr/src/inc/llvm/Dwarf.def b/src/coreclr/inc/llvm/Dwarf.def similarity index 100% rename from src/coreclr/src/inc/llvm/Dwarf.def rename to src/coreclr/inc/llvm/Dwarf.def diff --git a/src/coreclr/src/inc/llvm/Dwarf.h b/src/coreclr/inc/llvm/Dwarf.h similarity index 100% rename from src/coreclr/src/inc/llvm/Dwarf.h rename to src/coreclr/inc/llvm/Dwarf.h diff --git a/src/coreclr/src/inc/llvm/ELF.h b/src/coreclr/inc/llvm/ELF.h similarity index 100% rename from src/coreclr/src/inc/llvm/ELF.h rename to src/coreclr/inc/llvm/ELF.h diff --git a/src/coreclr/src/inc/loaderheap.h b/src/coreclr/inc/loaderheap.h similarity index 100% rename from src/coreclr/src/inc/loaderheap.h rename to src/coreclr/inc/loaderheap.h diff --git a/src/coreclr/src/inc/log.h b/src/coreclr/inc/log.h similarity index 100% rename from src/coreclr/src/inc/log.h rename to src/coreclr/inc/log.h diff --git a/src/coreclr/src/inc/loglf.h b/src/coreclr/inc/loglf.h similarity index 100% rename from src/coreclr/src/inc/loglf.h rename to src/coreclr/inc/loglf.h diff --git a/src/coreclr/src/inc/longfilepathwrappers.h b/src/coreclr/inc/longfilepathwrappers.h similarity index 100% rename from src/coreclr/src/inc/longfilepathwrappers.h rename to src/coreclr/inc/longfilepathwrappers.h diff --git a/src/coreclr/src/inc/md5.h b/src/coreclr/inc/md5.h similarity index 100% rename from src/coreclr/src/inc/md5.h rename to src/coreclr/inc/md5.h diff --git a/src/coreclr/src/inc/mdcommon.h b/src/coreclr/inc/mdcommon.h similarity index 100% rename from src/coreclr/src/inc/mdcommon.h rename to src/coreclr/inc/mdcommon.h diff --git a/src/coreclr/src/inc/mdfileformat.h b/src/coreclr/inc/mdfileformat.h similarity index 100% rename from src/coreclr/src/inc/mdfileformat.h rename to src/coreclr/inc/mdfileformat.h diff --git a/src/coreclr/src/inc/memorypool.h b/src/coreclr/inc/memorypool.h similarity index 100% rename from src/coreclr/src/inc/memorypool.h rename to src/coreclr/inc/memorypool.h diff --git a/src/coreclr/src/inc/memoryrange.h b/src/coreclr/inc/memoryrange.h similarity index 100% rename from src/coreclr/src/inc/memoryrange.h rename to src/coreclr/inc/memoryrange.h diff --git a/src/coreclr/src/inc/metadata.h b/src/coreclr/inc/metadata.h similarity index 100% rename from src/coreclr/src/inc/metadata.h rename to src/coreclr/inc/metadata.h diff --git a/src/coreclr/src/inc/metadataexports.h b/src/coreclr/inc/metadataexports.h similarity index 100% rename from src/coreclr/src/inc/metadataexports.h rename to src/coreclr/inc/metadataexports.h diff --git a/src/coreclr/src/inc/metadatatracker.h b/src/coreclr/inc/metadatatracker.h similarity index 100% rename from src/coreclr/src/inc/metadatatracker.h rename to src/coreclr/inc/metadatatracker.h diff --git a/src/coreclr/src/inc/metahost.idl b/src/coreclr/inc/metahost.idl similarity index 100% rename from src/coreclr/src/inc/metahost.idl rename to src/coreclr/inc/metahost.idl diff --git a/src/coreclr/src/inc/metamodelpub.h b/src/coreclr/inc/metamodelpub.h similarity index 100% rename from src/coreclr/src/inc/metamodelpub.h rename to src/coreclr/inc/metamodelpub.h diff --git a/src/coreclr/src/inc/mpl/type_list b/src/coreclr/inc/mpl/type_list similarity index 100% rename from src/coreclr/src/inc/mpl/type_list rename to src/coreclr/inc/mpl/type_list diff --git a/src/coreclr/src/inc/mscorsvc.idl b/src/coreclr/inc/mscorsvc.idl similarity index 100% rename from src/coreclr/src/inc/mscorsvc.idl rename to src/coreclr/inc/mscorsvc.idl diff --git a/src/coreclr/src/inc/msodw.h b/src/coreclr/inc/msodw.h similarity index 100% rename from src/coreclr/src/inc/msodw.h rename to src/coreclr/inc/msodw.h diff --git a/src/coreclr/src/inc/msodwwrap.h b/src/coreclr/inc/msodwwrap.h similarity index 100% rename from src/coreclr/src/inc/msodwwrap.h rename to src/coreclr/inc/msodwwrap.h diff --git a/src/coreclr/src/inc/nativevaraccessors.h b/src/coreclr/inc/nativevaraccessors.h similarity index 100% rename from src/coreclr/src/inc/nativevaraccessors.h rename to src/coreclr/inc/nativevaraccessors.h diff --git a/src/coreclr/src/inc/new.hpp b/src/coreclr/inc/new.hpp similarity index 100% rename from src/coreclr/src/inc/new.hpp rename to src/coreclr/inc/new.hpp diff --git a/src/coreclr/src/inc/ngen.h b/src/coreclr/inc/ngen.h similarity index 100% rename from src/coreclr/src/inc/ngen.h rename to src/coreclr/inc/ngen.h diff --git a/src/coreclr/src/inc/nibblemapmacros.h b/src/coreclr/inc/nibblemapmacros.h similarity index 100% rename from src/coreclr/src/inc/nibblemapmacros.h rename to src/coreclr/inc/nibblemapmacros.h diff --git a/src/coreclr/src/inc/nibblestream.h b/src/coreclr/inc/nibblestream.h similarity index 100% rename from src/coreclr/src/inc/nibblestream.h rename to src/coreclr/inc/nibblestream.h diff --git a/src/coreclr/src/inc/nsutilpriv.h b/src/coreclr/inc/nsutilpriv.h similarity index 100% rename from src/coreclr/src/inc/nsutilpriv.h rename to src/coreclr/inc/nsutilpriv.h diff --git a/src/coreclr/src/inc/obj/i386/dummy b/src/coreclr/inc/obj/i386/dummy similarity index 100% rename from src/coreclr/src/inc/obj/i386/dummy rename to src/coreclr/inc/obj/i386/dummy diff --git a/src/coreclr/src/inc/opcode.def b/src/coreclr/inc/opcode.def similarity index 100% rename from src/coreclr/src/inc/opcode.def rename to src/coreclr/inc/opcode.def diff --git a/src/coreclr/src/inc/openum.h b/src/coreclr/inc/openum.h similarity index 100% rename from src/coreclr/src/inc/openum.h rename to src/coreclr/inc/openum.h diff --git a/src/coreclr/src/inc/opinfo.h b/src/coreclr/inc/opinfo.h similarity index 100% rename from src/coreclr/src/inc/opinfo.h rename to src/coreclr/inc/opinfo.h diff --git a/src/coreclr/src/inc/optdefault.h b/src/coreclr/inc/optdefault.h similarity index 100% rename from src/coreclr/src/inc/optdefault.h rename to src/coreclr/inc/optdefault.h diff --git a/src/coreclr/src/inc/optsmallperfcritical.h b/src/coreclr/inc/optsmallperfcritical.h similarity index 100% rename from src/coreclr/src/inc/optsmallperfcritical.h rename to src/coreclr/inc/optsmallperfcritical.h diff --git a/src/coreclr/src/inc/ostype.h b/src/coreclr/inc/ostype.h similarity index 100% rename from src/coreclr/src/inc/ostype.h rename to src/coreclr/inc/ostype.h diff --git a/src/coreclr/src/inc/outstring.h b/src/coreclr/inc/outstring.h similarity index 100% rename from src/coreclr/src/inc/outstring.h rename to src/coreclr/inc/outstring.h diff --git a/src/coreclr/src/inc/palclr.h b/src/coreclr/inc/palclr.h similarity index 100% rename from src/coreclr/src/inc/palclr.h rename to src/coreclr/inc/palclr.h diff --git a/src/coreclr/src/inc/palclr_win.h b/src/coreclr/inc/palclr_win.h similarity index 100% rename from src/coreclr/src/inc/palclr_win.h rename to src/coreclr/inc/palclr_win.h diff --git a/src/coreclr/src/inc/patchpointinfo.h b/src/coreclr/inc/patchpointinfo.h similarity index 100% rename from src/coreclr/src/inc/patchpointinfo.h rename to src/coreclr/inc/patchpointinfo.h diff --git a/src/coreclr/src/inc/pedecoder.h b/src/coreclr/inc/pedecoder.h similarity index 100% rename from src/coreclr/src/inc/pedecoder.h rename to src/coreclr/inc/pedecoder.h diff --git a/src/coreclr/src/inc/pedecoder.inl b/src/coreclr/inc/pedecoder.inl similarity index 100% rename from src/coreclr/src/inc/pedecoder.inl rename to src/coreclr/inc/pedecoder.inl diff --git a/src/coreclr/src/inc/peinformation.h b/src/coreclr/inc/peinformation.h similarity index 100% rename from src/coreclr/src/inc/peinformation.h rename to src/coreclr/inc/peinformation.h diff --git a/src/coreclr/src/inc/pesectionman.h b/src/coreclr/inc/pesectionman.h similarity index 100% rename from src/coreclr/src/inc/pesectionman.h rename to src/coreclr/inc/pesectionman.h diff --git a/src/coreclr/src/inc/pinvokeoverride.h b/src/coreclr/inc/pinvokeoverride.h similarity index 100% rename from src/coreclr/src/inc/pinvokeoverride.h rename to src/coreclr/inc/pinvokeoverride.h diff --git a/src/coreclr/src/inc/posterror.h b/src/coreclr/inc/posterror.h similarity index 100% rename from src/coreclr/src/inc/posterror.h rename to src/coreclr/inc/posterror.h diff --git a/src/coreclr/src/inc/predeftlsslot.h b/src/coreclr/inc/predeftlsslot.h similarity index 100% rename from src/coreclr/src/inc/predeftlsslot.h rename to src/coreclr/inc/predeftlsslot.h diff --git a/src/coreclr/src/inc/prettyprintsig.h b/src/coreclr/inc/prettyprintsig.h similarity index 100% rename from src/coreclr/src/inc/prettyprintsig.h rename to src/coreclr/inc/prettyprintsig.h diff --git a/src/coreclr/src/inc/profilepriv.h b/src/coreclr/inc/profilepriv.h similarity index 100% rename from src/coreclr/src/inc/profilepriv.h rename to src/coreclr/inc/profilepriv.h diff --git a/src/coreclr/src/inc/profilepriv.inl b/src/coreclr/inc/profilepriv.inl similarity index 100% rename from src/coreclr/src/inc/profilepriv.inl rename to src/coreclr/inc/profilepriv.inl diff --git a/src/coreclr/src/inc/random.h b/src/coreclr/inc/random.h similarity index 100% rename from src/coreclr/src/inc/random.h rename to src/coreclr/inc/random.h diff --git a/src/coreclr/src/inc/readme.md b/src/coreclr/inc/readme.md similarity index 100% rename from src/coreclr/src/inc/readme.md rename to src/coreclr/inc/readme.md diff --git a/src/coreclr/src/inc/readytorun.h b/src/coreclr/inc/readytorun.h similarity index 100% rename from src/coreclr/src/inc/readytorun.h rename to src/coreclr/inc/readytorun.h diff --git a/src/coreclr/src/inc/readytorunhelpers.h b/src/coreclr/inc/readytorunhelpers.h similarity index 100% rename from src/coreclr/src/inc/readytorunhelpers.h rename to src/coreclr/inc/readytorunhelpers.h diff --git a/src/coreclr/src/inc/readytoruninstructionset.h b/src/coreclr/inc/readytoruninstructionset.h similarity index 100% rename from src/coreclr/src/inc/readytoruninstructionset.h rename to src/coreclr/inc/readytoruninstructionset.h diff --git a/src/coreclr/src/inc/regdisp.h b/src/coreclr/inc/regdisp.h similarity index 100% rename from src/coreclr/src/inc/regdisp.h rename to src/coreclr/inc/regdisp.h diff --git a/src/coreclr/src/inc/regex_base.h b/src/coreclr/inc/regex_base.h similarity index 100% rename from src/coreclr/src/inc/regex_base.h rename to src/coreclr/inc/regex_base.h diff --git a/src/coreclr/src/inc/regex_util.h b/src/coreclr/inc/regex_util.h similarity index 100% rename from src/coreclr/src/inc/regex_util.h rename to src/coreclr/inc/regex_util.h diff --git a/src/coreclr/src/inc/registrywrapper.h b/src/coreclr/inc/registrywrapper.h similarity index 100% rename from src/coreclr/src/inc/registrywrapper.h rename to src/coreclr/inc/registrywrapper.h diff --git a/src/coreclr/src/inc/releaseholder.h b/src/coreclr/inc/releaseholder.h similarity index 100% rename from src/coreclr/src/inc/releaseholder.h rename to src/coreclr/inc/releaseholder.h diff --git a/src/coreclr/src/inc/safemath.h b/src/coreclr/inc/safemath.h similarity index 100% rename from src/coreclr/src/inc/safemath.h rename to src/coreclr/inc/safemath.h diff --git a/src/coreclr/src/inc/safewrap.h b/src/coreclr/inc/safewrap.h similarity index 100% rename from src/coreclr/src/inc/safewrap.h rename to src/coreclr/inc/safewrap.h diff --git a/src/coreclr/src/inc/sarray.h b/src/coreclr/inc/sarray.h similarity index 100% rename from src/coreclr/src/inc/sarray.h rename to src/coreclr/inc/sarray.h diff --git a/src/coreclr/src/inc/sarray.inl b/src/coreclr/inc/sarray.inl similarity index 100% rename from src/coreclr/src/inc/sarray.inl rename to src/coreclr/inc/sarray.inl diff --git a/src/coreclr/src/inc/sbuffer.h b/src/coreclr/inc/sbuffer.h similarity index 100% rename from src/coreclr/src/inc/sbuffer.h rename to src/coreclr/inc/sbuffer.h diff --git a/src/coreclr/src/inc/sbuffer.inl b/src/coreclr/inc/sbuffer.inl similarity index 100% rename from src/coreclr/src/inc/sbuffer.inl rename to src/coreclr/inc/sbuffer.inl diff --git a/src/coreclr/src/inc/securityutil.h b/src/coreclr/inc/securityutil.h similarity index 100% rename from src/coreclr/src/inc/securityutil.h rename to src/coreclr/inc/securityutil.h diff --git a/src/coreclr/src/inc/securitywrapper.h b/src/coreclr/inc/securitywrapper.h similarity index 100% rename from src/coreclr/src/inc/securitywrapper.h rename to src/coreclr/inc/securitywrapper.h diff --git a/src/coreclr/src/inc/sha1.h b/src/coreclr/inc/sha1.h similarity index 100% rename from src/coreclr/src/inc/sha1.h rename to src/coreclr/inc/sha1.h diff --git a/src/coreclr/src/inc/shash.h b/src/coreclr/inc/shash.h similarity index 100% rename from src/coreclr/src/inc/shash.h rename to src/coreclr/inc/shash.h diff --git a/src/coreclr/src/inc/shash.inl b/src/coreclr/inc/shash.inl similarity index 100% rename from src/coreclr/src/inc/shash.inl rename to src/coreclr/inc/shash.inl diff --git a/src/coreclr/src/inc/shimload.h b/src/coreclr/inc/shimload.h similarity index 100% rename from src/coreclr/src/inc/shimload.h rename to src/coreclr/inc/shimload.h diff --git a/src/coreclr/src/inc/sigbuilder.h b/src/coreclr/inc/sigbuilder.h similarity index 100% rename from src/coreclr/src/inc/sigbuilder.h rename to src/coreclr/inc/sigbuilder.h diff --git a/src/coreclr/src/inc/sigparser.h b/src/coreclr/inc/sigparser.h similarity index 100% rename from src/coreclr/src/inc/sigparser.h rename to src/coreclr/inc/sigparser.h diff --git a/src/coreclr/src/inc/simplerhash.h b/src/coreclr/inc/simplerhash.h similarity index 100% rename from src/coreclr/src/inc/simplerhash.h rename to src/coreclr/inc/simplerhash.h diff --git a/src/coreclr/src/inc/simplerhash.inl b/src/coreclr/inc/simplerhash.inl similarity index 100% rename from src/coreclr/src/inc/simplerhash.inl rename to src/coreclr/inc/simplerhash.inl diff --git a/src/coreclr/src/inc/slist.h b/src/coreclr/inc/slist.h similarity index 100% rename from src/coreclr/src/inc/slist.h rename to src/coreclr/inc/slist.h diff --git a/src/coreclr/src/inc/sospriv.idl b/src/coreclr/inc/sospriv.idl similarity index 100% rename from src/coreclr/src/inc/sospriv.idl rename to src/coreclr/inc/sospriv.idl diff --git a/src/coreclr/src/inc/sstring.h b/src/coreclr/inc/sstring.h similarity index 100% rename from src/coreclr/src/inc/sstring.h rename to src/coreclr/inc/sstring.h diff --git a/src/coreclr/src/inc/sstring.inl b/src/coreclr/inc/sstring.inl similarity index 100% rename from src/coreclr/src/inc/sstring.inl rename to src/coreclr/inc/sstring.inl diff --git a/src/coreclr/src/inc/stack.h b/src/coreclr/inc/stack.h similarity index 100% rename from src/coreclr/src/inc/stack.h rename to src/coreclr/inc/stack.h diff --git a/src/coreclr/src/inc/stackframe.h b/src/coreclr/inc/stackframe.h similarity index 100% rename from src/coreclr/src/inc/stackframe.h rename to src/coreclr/inc/stackframe.h diff --git a/src/coreclr/src/inc/stacktrace.h b/src/coreclr/inc/stacktrace.h similarity index 100% rename from src/coreclr/src/inc/stacktrace.h rename to src/coreclr/inc/stacktrace.h diff --git a/src/coreclr/src/inc/static_assert.h b/src/coreclr/inc/static_assert.h similarity index 100% rename from src/coreclr/src/inc/static_assert.h rename to src/coreclr/inc/static_assert.h diff --git a/src/coreclr/src/inc/staticcontract.h b/src/coreclr/inc/staticcontract.h similarity index 100% rename from src/coreclr/src/inc/staticcontract.h rename to src/coreclr/inc/staticcontract.h diff --git a/src/coreclr/src/inc/stdmacros.h b/src/coreclr/inc/stdmacros.h similarity index 100% rename from src/coreclr/src/inc/stdmacros.h rename to src/coreclr/inc/stdmacros.h diff --git a/src/coreclr/src/inc/stgpool.h b/src/coreclr/inc/stgpool.h similarity index 100% rename from src/coreclr/src/inc/stgpool.h rename to src/coreclr/inc/stgpool.h diff --git a/src/coreclr/src/inc/stgpooli.h b/src/coreclr/inc/stgpooli.h similarity index 100% rename from src/coreclr/src/inc/stgpooli.h rename to src/coreclr/inc/stgpooli.h diff --git a/src/coreclr/src/inc/stresslog.h b/src/coreclr/inc/stresslog.h similarity index 100% rename from src/coreclr/src/inc/stresslog.h rename to src/coreclr/inc/stresslog.h diff --git a/src/coreclr/src/inc/stringarraylist.h b/src/coreclr/inc/stringarraylist.h similarity index 100% rename from src/coreclr/src/inc/stringarraylist.h rename to src/coreclr/inc/stringarraylist.h diff --git a/src/coreclr/src/inc/stringarraylist.inl b/src/coreclr/inc/stringarraylist.inl similarity index 100% rename from src/coreclr/src/inc/stringarraylist.inl rename to src/coreclr/inc/stringarraylist.inl diff --git a/src/coreclr/src/inc/strongnameholders.h b/src/coreclr/inc/strongnameholders.h similarity index 100% rename from src/coreclr/src/inc/strongnameholders.h rename to src/coreclr/inc/strongnameholders.h diff --git a/src/coreclr/src/inc/strongnameinternal.h b/src/coreclr/inc/strongnameinternal.h similarity index 100% rename from src/coreclr/src/inc/strongnameinternal.h rename to src/coreclr/inc/strongnameinternal.h diff --git a/src/coreclr/src/inc/switches.h b/src/coreclr/inc/switches.h similarity index 100% rename from src/coreclr/src/inc/switches.h rename to src/coreclr/inc/switches.h diff --git a/src/coreclr/src/inc/thekey.h b/src/coreclr/inc/thekey.h similarity index 100% rename from src/coreclr/src/inc/thekey.h rename to src/coreclr/inc/thekey.h diff --git a/src/coreclr/src/inc/tls.h b/src/coreclr/inc/tls.h similarity index 100% rename from src/coreclr/src/inc/tls.h rename to src/coreclr/inc/tls.h diff --git a/src/coreclr/src/inc/unreachable.h b/src/coreclr/inc/unreachable.h similarity index 100% rename from src/coreclr/src/inc/unreachable.h rename to src/coreclr/inc/unreachable.h diff --git a/src/coreclr/src/inc/utilcode.h b/src/coreclr/inc/utilcode.h similarity index 100% rename from src/coreclr/src/inc/utilcode.h rename to src/coreclr/inc/utilcode.h diff --git a/src/coreclr/src/inc/utsem.h b/src/coreclr/inc/utsem.h similarity index 100% rename from src/coreclr/src/inc/utsem.h rename to src/coreclr/inc/utsem.h diff --git a/src/coreclr/src/inc/volatile.h b/src/coreclr/inc/volatile.h similarity index 100% rename from src/coreclr/src/inc/volatile.h rename to src/coreclr/inc/volatile.h diff --git a/src/coreclr/src/inc/vptr_list.h b/src/coreclr/inc/vptr_list.h similarity index 100% rename from src/coreclr/src/inc/vptr_list.h rename to src/coreclr/inc/vptr_list.h diff --git a/src/coreclr/src/inc/win64unwind.h b/src/coreclr/inc/win64unwind.h similarity index 100% rename from src/coreclr/src/inc/win64unwind.h rename to src/coreclr/inc/win64unwind.h diff --git a/src/coreclr/src/inc/winwrap.h b/src/coreclr/inc/winwrap.h similarity index 100% rename from src/coreclr/src/inc/winwrap.h rename to src/coreclr/inc/winwrap.h diff --git a/src/coreclr/src/inc/xclrdata.idl b/src/coreclr/inc/xclrdata.idl similarity index 100% rename from src/coreclr/src/inc/xclrdata.idl rename to src/coreclr/inc/xclrdata.idl diff --git a/src/coreclr/src/inc/xcordebug.idl b/src/coreclr/inc/xcordebug.idl similarity index 100% rename from src/coreclr/src/inc/xcordebug.idl rename to src/coreclr/inc/xcordebug.idl diff --git a/src/coreclr/src/inc/yieldprocessornormalized.h b/src/coreclr/inc/yieldprocessornormalized.h similarity index 100% rename from src/coreclr/src/inc/yieldprocessornormalized.h rename to src/coreclr/inc/yieldprocessornormalized.h diff --git a/src/coreclr/src/inc/zapper.h b/src/coreclr/inc/zapper.h similarity index 100% rename from src/coreclr/src/inc/zapper.h rename to src/coreclr/inc/zapper.h diff --git a/src/coreclr/src/interop/CMakeLists.txt b/src/coreclr/interop/CMakeLists.txt similarity index 100% rename from src/coreclr/src/interop/CMakeLists.txt rename to src/coreclr/interop/CMakeLists.txt diff --git a/src/coreclr/src/interop/comwrappers.cpp b/src/coreclr/interop/comwrappers.cpp similarity index 100% rename from src/coreclr/src/interop/comwrappers.cpp rename to src/coreclr/interop/comwrappers.cpp diff --git a/src/coreclr/src/interop/comwrappers.hpp b/src/coreclr/interop/comwrappers.hpp similarity index 100% rename from src/coreclr/src/interop/comwrappers.hpp rename to src/coreclr/interop/comwrappers.hpp diff --git a/src/coreclr/src/interop/inc/interoplib.h b/src/coreclr/interop/inc/interoplib.h similarity index 100% rename from src/coreclr/src/interop/inc/interoplib.h rename to src/coreclr/interop/inc/interoplib.h diff --git a/src/coreclr/src/interop/inc/interoplibabi.h b/src/coreclr/interop/inc/interoplibabi.h similarity index 100% rename from src/coreclr/src/interop/inc/interoplibabi.h rename to src/coreclr/interop/inc/interoplibabi.h diff --git a/src/coreclr/src/interop/inc/interoplibimports.h b/src/coreclr/interop/inc/interoplibimports.h similarity index 100% rename from src/coreclr/src/interop/inc/interoplibimports.h rename to src/coreclr/interop/inc/interoplibimports.h diff --git a/src/coreclr/src/interop/interoplib.cpp b/src/coreclr/interop/interoplib.cpp similarity index 100% rename from src/coreclr/src/interop/interoplib.cpp rename to src/coreclr/interop/interoplib.cpp diff --git a/src/coreclr/src/interop/platform.h b/src/coreclr/interop/platform.h similarity index 100% rename from src/coreclr/src/interop/platform.h rename to src/coreclr/interop/platform.h diff --git a/src/coreclr/src/interop/referencetrackertypes.hpp b/src/coreclr/interop/referencetrackertypes.hpp similarity index 100% rename from src/coreclr/src/interop/referencetrackertypes.hpp rename to src/coreclr/interop/referencetrackertypes.hpp diff --git a/src/coreclr/src/interop/trackerobjectmanager.cpp b/src/coreclr/interop/trackerobjectmanager.cpp similarity index 100% rename from src/coreclr/src/interop/trackerobjectmanager.cpp rename to src/coreclr/interop/trackerobjectmanager.cpp diff --git a/src/coreclr/src/jit/.clang-format b/src/coreclr/jit/.clang-format similarity index 100% rename from src/coreclr/src/jit/.clang-format rename to src/coreclr/jit/.clang-format diff --git a/src/coreclr/src/jit/CMakeLists.txt b/src/coreclr/jit/CMakeLists.txt similarity index 100% rename from src/coreclr/src/jit/CMakeLists.txt rename to src/coreclr/jit/CMakeLists.txt diff --git a/src/coreclr/src/jit/ClrJit.PAL.exports b/src/coreclr/jit/ClrJit.PAL.exports similarity index 100% rename from src/coreclr/src/jit/ClrJit.PAL.exports rename to src/coreclr/jit/ClrJit.PAL.exports diff --git a/src/coreclr/src/jit/ClrJit.exports b/src/coreclr/jit/ClrJit.exports similarity index 100% rename from src/coreclr/src/jit/ClrJit.exports rename to src/coreclr/jit/ClrJit.exports diff --git a/src/coreclr/src/jit/ICorJitInfo_API_names.h b/src/coreclr/jit/ICorJitInfo_API_names.h similarity index 100% rename from src/coreclr/src/jit/ICorJitInfo_API_names.h rename to src/coreclr/jit/ICorJitInfo_API_names.h diff --git a/src/coreclr/src/jit/ICorJitInfo_API_wrapper.hpp b/src/coreclr/jit/ICorJitInfo_API_wrapper.hpp similarity index 100% rename from src/coreclr/src/jit/ICorJitInfo_API_wrapper.hpp rename to src/coreclr/jit/ICorJitInfo_API_wrapper.hpp diff --git a/src/coreclr/src/jit/Native.rc b/src/coreclr/jit/Native.rc similarity index 100% rename from src/coreclr/src/jit/Native.rc rename to src/coreclr/jit/Native.rc diff --git a/src/coreclr/src/jit/_typeinfo.h b/src/coreclr/jit/_typeinfo.h similarity index 100% rename from src/coreclr/src/jit/_typeinfo.h rename to src/coreclr/jit/_typeinfo.h diff --git a/src/coreclr/src/jit/alloc.cpp b/src/coreclr/jit/alloc.cpp similarity index 100% rename from src/coreclr/src/jit/alloc.cpp rename to src/coreclr/jit/alloc.cpp diff --git a/src/coreclr/src/jit/alloc.h b/src/coreclr/jit/alloc.h similarity index 100% rename from src/coreclr/src/jit/alloc.h rename to src/coreclr/jit/alloc.h diff --git a/src/coreclr/src/jit/arraystack.h b/src/coreclr/jit/arraystack.h similarity index 100% rename from src/coreclr/src/jit/arraystack.h rename to src/coreclr/jit/arraystack.h diff --git a/src/coreclr/src/jit/assertionprop.cpp b/src/coreclr/jit/assertionprop.cpp similarity index 100% rename from src/coreclr/src/jit/assertionprop.cpp rename to src/coreclr/jit/assertionprop.cpp diff --git a/src/coreclr/src/jit/bitset.cpp b/src/coreclr/jit/bitset.cpp similarity index 100% rename from src/coreclr/src/jit/bitset.cpp rename to src/coreclr/jit/bitset.cpp diff --git a/src/coreclr/src/jit/bitset.h b/src/coreclr/jit/bitset.h similarity index 100% rename from src/coreclr/src/jit/bitset.h rename to src/coreclr/jit/bitset.h diff --git a/src/coreclr/src/jit/bitsetasshortlong.h b/src/coreclr/jit/bitsetasshortlong.h similarity index 100% rename from src/coreclr/src/jit/bitsetasshortlong.h rename to src/coreclr/jit/bitsetasshortlong.h diff --git a/src/coreclr/src/jit/bitsetasuint64.h b/src/coreclr/jit/bitsetasuint64.h similarity index 100% rename from src/coreclr/src/jit/bitsetasuint64.h rename to src/coreclr/jit/bitsetasuint64.h diff --git a/src/coreclr/src/jit/bitsetasuint64inclass.h b/src/coreclr/jit/bitsetasuint64inclass.h similarity index 100% rename from src/coreclr/src/jit/bitsetasuint64inclass.h rename to src/coreclr/jit/bitsetasuint64inclass.h diff --git a/src/coreclr/src/jit/bitsetops.h b/src/coreclr/jit/bitsetops.h similarity index 100% rename from src/coreclr/src/jit/bitsetops.h rename to src/coreclr/jit/bitsetops.h diff --git a/src/coreclr/src/jit/bitvec.h b/src/coreclr/jit/bitvec.h similarity index 100% rename from src/coreclr/src/jit/bitvec.h rename to src/coreclr/jit/bitvec.h diff --git a/src/coreclr/src/jit/block.cpp b/src/coreclr/jit/block.cpp similarity index 100% rename from src/coreclr/src/jit/block.cpp rename to src/coreclr/jit/block.cpp diff --git a/src/coreclr/src/jit/block.h b/src/coreclr/jit/block.h similarity index 100% rename from src/coreclr/src/jit/block.h rename to src/coreclr/jit/block.h diff --git a/src/coreclr/src/jit/blockset.h b/src/coreclr/jit/blockset.h similarity index 100% rename from src/coreclr/src/jit/blockset.h rename to src/coreclr/jit/blockset.h diff --git a/src/coreclr/src/jit/codegen.h b/src/coreclr/jit/codegen.h similarity index 100% rename from src/coreclr/src/jit/codegen.h rename to src/coreclr/jit/codegen.h diff --git a/src/coreclr/src/jit/codegenarm.cpp b/src/coreclr/jit/codegenarm.cpp similarity index 100% rename from src/coreclr/src/jit/codegenarm.cpp rename to src/coreclr/jit/codegenarm.cpp diff --git a/src/coreclr/src/jit/codegenarm64.cpp b/src/coreclr/jit/codegenarm64.cpp similarity index 100% rename from src/coreclr/src/jit/codegenarm64.cpp rename to src/coreclr/jit/codegenarm64.cpp diff --git a/src/coreclr/src/jit/codegenarmarch.cpp b/src/coreclr/jit/codegenarmarch.cpp similarity index 100% rename from src/coreclr/src/jit/codegenarmarch.cpp rename to src/coreclr/jit/codegenarmarch.cpp diff --git a/src/coreclr/src/jit/codegencommon.cpp b/src/coreclr/jit/codegencommon.cpp similarity index 100% rename from src/coreclr/src/jit/codegencommon.cpp rename to src/coreclr/jit/codegencommon.cpp diff --git a/src/coreclr/src/jit/codegeninterface.h b/src/coreclr/jit/codegeninterface.h similarity index 100% rename from src/coreclr/src/jit/codegeninterface.h rename to src/coreclr/jit/codegeninterface.h diff --git a/src/coreclr/src/jit/codegenlinear.cpp b/src/coreclr/jit/codegenlinear.cpp similarity index 100% rename from src/coreclr/src/jit/codegenlinear.cpp rename to src/coreclr/jit/codegenlinear.cpp diff --git a/src/coreclr/src/jit/codegenxarch.cpp b/src/coreclr/jit/codegenxarch.cpp similarity index 100% rename from src/coreclr/src/jit/codegenxarch.cpp rename to src/coreclr/jit/codegenxarch.cpp diff --git a/src/coreclr/src/jit/compiler.cpp b/src/coreclr/jit/compiler.cpp similarity index 100% rename from src/coreclr/src/jit/compiler.cpp rename to src/coreclr/jit/compiler.cpp diff --git a/src/coreclr/src/jit/compiler.h b/src/coreclr/jit/compiler.h similarity index 100% rename from src/coreclr/src/jit/compiler.h rename to src/coreclr/jit/compiler.h diff --git a/src/coreclr/src/jit/compiler.hpp b/src/coreclr/jit/compiler.hpp similarity index 100% rename from src/coreclr/src/jit/compiler.hpp rename to src/coreclr/jit/compiler.hpp diff --git a/src/coreclr/src/jit/compilerbitsettraits.h b/src/coreclr/jit/compilerbitsettraits.h similarity index 100% rename from src/coreclr/src/jit/compilerbitsettraits.h rename to src/coreclr/jit/compilerbitsettraits.h diff --git a/src/coreclr/src/jit/compilerbitsettraits.hpp b/src/coreclr/jit/compilerbitsettraits.hpp similarity index 100% rename from src/coreclr/src/jit/compilerbitsettraits.hpp rename to src/coreclr/jit/compilerbitsettraits.hpp diff --git a/src/coreclr/src/jit/compmemkind.h b/src/coreclr/jit/compmemkind.h similarity index 100% rename from src/coreclr/src/jit/compmemkind.h rename to src/coreclr/jit/compmemkind.h diff --git a/src/coreclr/src/jit/compphases.h b/src/coreclr/jit/compphases.h similarity index 100% rename from src/coreclr/src/jit/compphases.h rename to src/coreclr/jit/compphases.h diff --git a/src/coreclr/src/jit/conventions.txt b/src/coreclr/jit/conventions.txt similarity index 100% rename from src/coreclr/src/jit/conventions.txt rename to src/coreclr/jit/conventions.txt diff --git a/src/coreclr/src/jit/copyprop.cpp b/src/coreclr/jit/copyprop.cpp similarity index 100% rename from src/coreclr/src/jit/copyprop.cpp rename to src/coreclr/jit/copyprop.cpp diff --git a/src/coreclr/src/jit/cpp.hint b/src/coreclr/jit/cpp.hint similarity index 100% rename from src/coreclr/src/jit/cpp.hint rename to src/coreclr/jit/cpp.hint diff --git a/src/coreclr/src/jit/crossgen/CMakeLists.txt b/src/coreclr/jit/crossgen/CMakeLists.txt similarity index 100% rename from src/coreclr/src/jit/crossgen/CMakeLists.txt rename to src/coreclr/jit/crossgen/CMakeLists.txt diff --git a/src/coreclr/src/jit/dataflow.h b/src/coreclr/jit/dataflow.h similarity index 100% rename from src/coreclr/src/jit/dataflow.h rename to src/coreclr/jit/dataflow.h diff --git a/src/coreclr/src/jit/decomposelongs.cpp b/src/coreclr/jit/decomposelongs.cpp similarity index 100% rename from src/coreclr/src/jit/decomposelongs.cpp rename to src/coreclr/jit/decomposelongs.cpp diff --git a/src/coreclr/src/jit/decomposelongs.h b/src/coreclr/jit/decomposelongs.h similarity index 100% rename from src/coreclr/src/jit/decomposelongs.h rename to src/coreclr/jit/decomposelongs.h diff --git a/src/coreclr/src/jit/disasm.cpp b/src/coreclr/jit/disasm.cpp similarity index 100% rename from src/coreclr/src/jit/disasm.cpp rename to src/coreclr/jit/disasm.cpp diff --git a/src/coreclr/src/jit/disasm.h b/src/coreclr/jit/disasm.h similarity index 100% rename from src/coreclr/src/jit/disasm.h rename to src/coreclr/jit/disasm.h diff --git a/src/coreclr/src/jit/dllmain.cpp b/src/coreclr/jit/dllmain.cpp similarity index 100% rename from src/coreclr/src/jit/dllmain.cpp rename to src/coreclr/jit/dllmain.cpp diff --git a/src/coreclr/src/jit/earlyprop.cpp b/src/coreclr/jit/earlyprop.cpp similarity index 100% rename from src/coreclr/src/jit/earlyprop.cpp rename to src/coreclr/jit/earlyprop.cpp diff --git a/src/coreclr/src/jit/ee_il_dll.cpp b/src/coreclr/jit/ee_il_dll.cpp similarity index 100% rename from src/coreclr/src/jit/ee_il_dll.cpp rename to src/coreclr/jit/ee_il_dll.cpp diff --git a/src/coreclr/src/jit/ee_il_dll.hpp b/src/coreclr/jit/ee_il_dll.hpp similarity index 100% rename from src/coreclr/src/jit/ee_il_dll.hpp rename to src/coreclr/jit/ee_il_dll.hpp diff --git a/src/coreclr/src/jit/eeinterface.cpp b/src/coreclr/jit/eeinterface.cpp similarity index 100% rename from src/coreclr/src/jit/eeinterface.cpp rename to src/coreclr/jit/eeinterface.cpp diff --git a/src/coreclr/src/jit/emit.cpp b/src/coreclr/jit/emit.cpp similarity index 100% rename from src/coreclr/src/jit/emit.cpp rename to src/coreclr/jit/emit.cpp diff --git a/src/coreclr/src/jit/emit.h b/src/coreclr/jit/emit.h similarity index 100% rename from src/coreclr/src/jit/emit.h rename to src/coreclr/jit/emit.h diff --git a/src/coreclr/src/jit/emitarm.cpp b/src/coreclr/jit/emitarm.cpp similarity index 100% rename from src/coreclr/src/jit/emitarm.cpp rename to src/coreclr/jit/emitarm.cpp diff --git a/src/coreclr/src/jit/emitarm.h b/src/coreclr/jit/emitarm.h similarity index 100% rename from src/coreclr/src/jit/emitarm.h rename to src/coreclr/jit/emitarm.h diff --git a/src/coreclr/src/jit/emitarm64.cpp b/src/coreclr/jit/emitarm64.cpp similarity index 100% rename from src/coreclr/src/jit/emitarm64.cpp rename to src/coreclr/jit/emitarm64.cpp diff --git a/src/coreclr/src/jit/emitarm64.h b/src/coreclr/jit/emitarm64.h similarity index 100% rename from src/coreclr/src/jit/emitarm64.h rename to src/coreclr/jit/emitarm64.h diff --git a/src/coreclr/src/jit/emitdef.h b/src/coreclr/jit/emitdef.h similarity index 100% rename from src/coreclr/src/jit/emitdef.h rename to src/coreclr/jit/emitdef.h diff --git a/src/coreclr/src/jit/emitfmts.h b/src/coreclr/jit/emitfmts.h similarity index 100% rename from src/coreclr/src/jit/emitfmts.h rename to src/coreclr/jit/emitfmts.h diff --git a/src/coreclr/src/jit/emitfmtsarm.h b/src/coreclr/jit/emitfmtsarm.h similarity index 100% rename from src/coreclr/src/jit/emitfmtsarm.h rename to src/coreclr/jit/emitfmtsarm.h diff --git a/src/coreclr/src/jit/emitfmtsarm64.h b/src/coreclr/jit/emitfmtsarm64.h similarity index 100% rename from src/coreclr/src/jit/emitfmtsarm64.h rename to src/coreclr/jit/emitfmtsarm64.h diff --git a/src/coreclr/src/jit/emitfmtsxarch.h b/src/coreclr/jit/emitfmtsxarch.h similarity index 100% rename from src/coreclr/src/jit/emitfmtsxarch.h rename to src/coreclr/jit/emitfmtsxarch.h diff --git a/src/coreclr/src/jit/emitinl.h b/src/coreclr/jit/emitinl.h similarity index 100% rename from src/coreclr/src/jit/emitinl.h rename to src/coreclr/jit/emitinl.h diff --git a/src/coreclr/src/jit/emitjmps.h b/src/coreclr/jit/emitjmps.h similarity index 100% rename from src/coreclr/src/jit/emitjmps.h rename to src/coreclr/jit/emitjmps.h diff --git a/src/coreclr/src/jit/emitpub.h b/src/coreclr/jit/emitpub.h similarity index 100% rename from src/coreclr/src/jit/emitpub.h rename to src/coreclr/jit/emitpub.h diff --git a/src/coreclr/src/jit/emitxarch.cpp b/src/coreclr/jit/emitxarch.cpp similarity index 100% rename from src/coreclr/src/jit/emitxarch.cpp rename to src/coreclr/jit/emitxarch.cpp diff --git a/src/coreclr/src/jit/emitxarch.h b/src/coreclr/jit/emitxarch.h similarity index 100% rename from src/coreclr/src/jit/emitxarch.h rename to src/coreclr/jit/emitxarch.h diff --git a/src/coreclr/src/jit/error.cpp b/src/coreclr/jit/error.cpp similarity index 100% rename from src/coreclr/src/jit/error.cpp rename to src/coreclr/jit/error.cpp diff --git a/src/coreclr/src/jit/error.h b/src/coreclr/jit/error.h similarity index 100% rename from src/coreclr/src/jit/error.h rename to src/coreclr/jit/error.h diff --git a/src/coreclr/src/jit/flowgraph.cpp b/src/coreclr/jit/flowgraph.cpp similarity index 100% rename from src/coreclr/src/jit/flowgraph.cpp rename to src/coreclr/jit/flowgraph.cpp diff --git a/src/coreclr/src/jit/gcdecode.cpp b/src/coreclr/jit/gcdecode.cpp similarity index 100% rename from src/coreclr/src/jit/gcdecode.cpp rename to src/coreclr/jit/gcdecode.cpp diff --git a/src/coreclr/src/jit/gcencode.cpp b/src/coreclr/jit/gcencode.cpp similarity index 100% rename from src/coreclr/src/jit/gcencode.cpp rename to src/coreclr/jit/gcencode.cpp diff --git a/src/coreclr/src/jit/gcinfo.cpp b/src/coreclr/jit/gcinfo.cpp similarity index 100% rename from src/coreclr/src/jit/gcinfo.cpp rename to src/coreclr/jit/gcinfo.cpp diff --git a/src/coreclr/src/jit/gentree.cpp b/src/coreclr/jit/gentree.cpp similarity index 100% rename from src/coreclr/src/jit/gentree.cpp rename to src/coreclr/jit/gentree.cpp diff --git a/src/coreclr/src/jit/gentree.h b/src/coreclr/jit/gentree.h similarity index 100% rename from src/coreclr/src/jit/gentree.h rename to src/coreclr/jit/gentree.h diff --git a/src/coreclr/src/jit/gschecks.cpp b/src/coreclr/jit/gschecks.cpp similarity index 100% rename from src/coreclr/src/jit/gschecks.cpp rename to src/coreclr/jit/gschecks.cpp diff --git a/src/coreclr/src/jit/gtlist.h b/src/coreclr/jit/gtlist.h similarity index 100% rename from src/coreclr/src/jit/gtlist.h rename to src/coreclr/jit/gtlist.h diff --git a/src/coreclr/src/jit/gtstructs.h b/src/coreclr/jit/gtstructs.h similarity index 100% rename from src/coreclr/src/jit/gtstructs.h rename to src/coreclr/jit/gtstructs.h diff --git a/src/coreclr/src/jit/hashbv.cpp b/src/coreclr/jit/hashbv.cpp similarity index 100% rename from src/coreclr/src/jit/hashbv.cpp rename to src/coreclr/jit/hashbv.cpp diff --git a/src/coreclr/src/jit/hashbv.h b/src/coreclr/jit/hashbv.h similarity index 100% rename from src/coreclr/src/jit/hashbv.h rename to src/coreclr/jit/hashbv.h diff --git a/src/coreclr/src/jit/host.h b/src/coreclr/jit/host.h similarity index 100% rename from src/coreclr/src/jit/host.h rename to src/coreclr/jit/host.h diff --git a/src/coreclr/src/jit/hostallocator.cpp b/src/coreclr/jit/hostallocator.cpp similarity index 100% rename from src/coreclr/src/jit/hostallocator.cpp rename to src/coreclr/jit/hostallocator.cpp diff --git a/src/coreclr/src/jit/hostallocator.h b/src/coreclr/jit/hostallocator.h similarity index 100% rename from src/coreclr/src/jit/hostallocator.h rename to src/coreclr/jit/hostallocator.h diff --git a/src/coreclr/src/jit/hwintrinsic.cpp b/src/coreclr/jit/hwintrinsic.cpp similarity index 100% rename from src/coreclr/src/jit/hwintrinsic.cpp rename to src/coreclr/jit/hwintrinsic.cpp diff --git a/src/coreclr/src/jit/hwintrinsic.h b/src/coreclr/jit/hwintrinsic.h similarity index 100% rename from src/coreclr/src/jit/hwintrinsic.h rename to src/coreclr/jit/hwintrinsic.h diff --git a/src/coreclr/src/jit/hwintrinsicarm64.cpp b/src/coreclr/jit/hwintrinsicarm64.cpp similarity index 100% rename from src/coreclr/src/jit/hwintrinsicarm64.cpp rename to src/coreclr/jit/hwintrinsicarm64.cpp diff --git a/src/coreclr/src/jit/hwintrinsiccodegenarm64.cpp b/src/coreclr/jit/hwintrinsiccodegenarm64.cpp similarity index 100% rename from src/coreclr/src/jit/hwintrinsiccodegenarm64.cpp rename to src/coreclr/jit/hwintrinsiccodegenarm64.cpp diff --git a/src/coreclr/src/jit/hwintrinsiccodegenxarch.cpp b/src/coreclr/jit/hwintrinsiccodegenxarch.cpp similarity index 100% rename from src/coreclr/src/jit/hwintrinsiccodegenxarch.cpp rename to src/coreclr/jit/hwintrinsiccodegenxarch.cpp diff --git a/src/coreclr/src/jit/hwintrinsiclistarm64.h b/src/coreclr/jit/hwintrinsiclistarm64.h similarity index 100% rename from src/coreclr/src/jit/hwintrinsiclistarm64.h rename to src/coreclr/jit/hwintrinsiclistarm64.h diff --git a/src/coreclr/src/jit/hwintrinsiclistxarch.h b/src/coreclr/jit/hwintrinsiclistxarch.h similarity index 100% rename from src/coreclr/src/jit/hwintrinsiclistxarch.h rename to src/coreclr/jit/hwintrinsiclistxarch.h diff --git a/src/coreclr/src/jit/hwintrinsicxarch.cpp b/src/coreclr/jit/hwintrinsicxarch.cpp similarity index 100% rename from src/coreclr/src/jit/hwintrinsicxarch.cpp rename to src/coreclr/jit/hwintrinsicxarch.cpp diff --git a/src/coreclr/src/jit/importer.cpp b/src/coreclr/jit/importer.cpp similarity index 100% rename from src/coreclr/src/jit/importer.cpp rename to src/coreclr/jit/importer.cpp diff --git a/src/coreclr/src/jit/indirectcalltransformer.cpp b/src/coreclr/jit/indirectcalltransformer.cpp similarity index 100% rename from src/coreclr/src/jit/indirectcalltransformer.cpp rename to src/coreclr/jit/indirectcalltransformer.cpp diff --git a/src/coreclr/src/jit/inline.cpp b/src/coreclr/jit/inline.cpp similarity index 100% rename from src/coreclr/src/jit/inline.cpp rename to src/coreclr/jit/inline.cpp diff --git a/src/coreclr/src/jit/inline.def b/src/coreclr/jit/inline.def similarity index 100% rename from src/coreclr/src/jit/inline.def rename to src/coreclr/jit/inline.def diff --git a/src/coreclr/src/jit/inline.h b/src/coreclr/jit/inline.h similarity index 100% rename from src/coreclr/src/jit/inline.h rename to src/coreclr/jit/inline.h diff --git a/src/coreclr/src/jit/inlinepolicy.cpp b/src/coreclr/jit/inlinepolicy.cpp similarity index 100% rename from src/coreclr/src/jit/inlinepolicy.cpp rename to src/coreclr/jit/inlinepolicy.cpp diff --git a/src/coreclr/src/jit/inlinepolicy.h b/src/coreclr/jit/inlinepolicy.h similarity index 100% rename from src/coreclr/src/jit/inlinepolicy.h rename to src/coreclr/jit/inlinepolicy.h diff --git a/src/coreclr/src/jit/instr.cpp b/src/coreclr/jit/instr.cpp similarity index 100% rename from src/coreclr/src/jit/instr.cpp rename to src/coreclr/jit/instr.cpp diff --git a/src/coreclr/src/jit/instr.h b/src/coreclr/jit/instr.h similarity index 100% rename from src/coreclr/src/jit/instr.h rename to src/coreclr/jit/instr.h diff --git a/src/coreclr/src/jit/instrs.h b/src/coreclr/jit/instrs.h similarity index 100% rename from src/coreclr/src/jit/instrs.h rename to src/coreclr/jit/instrs.h diff --git a/src/coreclr/src/jit/instrsarm.h b/src/coreclr/jit/instrsarm.h similarity index 100% rename from src/coreclr/src/jit/instrsarm.h rename to src/coreclr/jit/instrsarm.h diff --git a/src/coreclr/src/jit/instrsarm64.h b/src/coreclr/jit/instrsarm64.h similarity index 100% rename from src/coreclr/src/jit/instrsarm64.h rename to src/coreclr/jit/instrsarm64.h diff --git a/src/coreclr/src/jit/instrsxarch.h b/src/coreclr/jit/instrsxarch.h similarity index 100% rename from src/coreclr/src/jit/instrsxarch.h rename to src/coreclr/jit/instrsxarch.h diff --git a/src/coreclr/src/jit/jit.h b/src/coreclr/jit/jit.h similarity index 100% rename from src/coreclr/src/jit/jit.h rename to src/coreclr/jit/jit.h diff --git a/src/coreclr/src/jit/jitconfig.cpp b/src/coreclr/jit/jitconfig.cpp similarity index 100% rename from src/coreclr/src/jit/jitconfig.cpp rename to src/coreclr/jit/jitconfig.cpp diff --git a/src/coreclr/src/jit/jitconfig.h b/src/coreclr/jit/jitconfig.h similarity index 100% rename from src/coreclr/src/jit/jitconfig.h rename to src/coreclr/jit/jitconfig.h diff --git a/src/coreclr/src/jit/jitconfigvalues.h b/src/coreclr/jit/jitconfigvalues.h similarity index 100% rename from src/coreclr/src/jit/jitconfigvalues.h rename to src/coreclr/jit/jitconfigvalues.h diff --git a/src/coreclr/src/jit/jitee.h b/src/coreclr/jit/jitee.h similarity index 100% rename from src/coreclr/src/jit/jitee.h rename to src/coreclr/jit/jitee.h diff --git a/src/coreclr/src/jit/jiteh.cpp b/src/coreclr/jit/jiteh.cpp similarity index 100% rename from src/coreclr/src/jit/jiteh.cpp rename to src/coreclr/jit/jiteh.cpp diff --git a/src/coreclr/src/jit/jiteh.h b/src/coreclr/jit/jiteh.h similarity index 100% rename from src/coreclr/src/jit/jiteh.h rename to src/coreclr/jit/jiteh.h diff --git a/src/coreclr/src/jit/jitexpandarray.h b/src/coreclr/jit/jitexpandarray.h similarity index 100% rename from src/coreclr/src/jit/jitexpandarray.h rename to src/coreclr/jit/jitexpandarray.h diff --git a/src/coreclr/src/jit/jitgcinfo.h b/src/coreclr/jit/jitgcinfo.h similarity index 100% rename from src/coreclr/src/jit/jitgcinfo.h rename to src/coreclr/jit/jitgcinfo.h diff --git a/src/coreclr/src/jit/jithashtable.cpp b/src/coreclr/jit/jithashtable.cpp similarity index 100% rename from src/coreclr/src/jit/jithashtable.cpp rename to src/coreclr/jit/jithashtable.cpp diff --git a/src/coreclr/src/jit/jithashtable.h b/src/coreclr/jit/jithashtable.h similarity index 100% rename from src/coreclr/src/jit/jithashtable.h rename to src/coreclr/jit/jithashtable.h diff --git a/src/coreclr/src/jit/jitpch.h b/src/coreclr/jit/jitpch.h similarity index 100% rename from src/coreclr/src/jit/jitpch.h rename to src/coreclr/jit/jitpch.h diff --git a/src/coreclr/src/jit/jitstd.h b/src/coreclr/jit/jitstd.h similarity index 100% rename from src/coreclr/src/jit/jitstd.h rename to src/coreclr/jit/jitstd.h diff --git a/src/coreclr/src/jit/jitstd/algorithm.h b/src/coreclr/jit/jitstd/algorithm.h similarity index 100% rename from src/coreclr/src/jit/jitstd/algorithm.h rename to src/coreclr/jit/jitstd/algorithm.h diff --git a/src/coreclr/src/jit/jitstd/allocator.h b/src/coreclr/jit/jitstd/allocator.h similarity index 100% rename from src/coreclr/src/jit/jitstd/allocator.h rename to src/coreclr/jit/jitstd/allocator.h diff --git a/src/coreclr/src/jit/jitstd/functional.h b/src/coreclr/jit/jitstd/functional.h similarity index 100% rename from src/coreclr/src/jit/jitstd/functional.h rename to src/coreclr/jit/jitstd/functional.h diff --git a/src/coreclr/src/jit/jitstd/iterator.h b/src/coreclr/jit/jitstd/iterator.h similarity index 100% rename from src/coreclr/src/jit/jitstd/iterator.h rename to src/coreclr/jit/jitstd/iterator.h diff --git a/src/coreclr/src/jit/jitstd/list.h b/src/coreclr/jit/jitstd/list.h similarity index 100% rename from src/coreclr/src/jit/jitstd/list.h rename to src/coreclr/jit/jitstd/list.h diff --git a/src/coreclr/src/jit/jitstd/new.h b/src/coreclr/jit/jitstd/new.h similarity index 100% rename from src/coreclr/src/jit/jitstd/new.h rename to src/coreclr/jit/jitstd/new.h diff --git a/src/coreclr/src/jit/jitstd/utility.h b/src/coreclr/jit/jitstd/utility.h similarity index 100% rename from src/coreclr/src/jit/jitstd/utility.h rename to src/coreclr/jit/jitstd/utility.h diff --git a/src/coreclr/src/jit/jitstd/vector.h b/src/coreclr/jit/jitstd/vector.h similarity index 100% rename from src/coreclr/src/jit/jitstd/vector.h rename to src/coreclr/jit/jitstd/vector.h diff --git a/src/coreclr/src/jit/jittelemetry.cpp b/src/coreclr/jit/jittelemetry.cpp similarity index 100% rename from src/coreclr/src/jit/jittelemetry.cpp rename to src/coreclr/jit/jittelemetry.cpp diff --git a/src/coreclr/src/jit/jittelemetry.h b/src/coreclr/jit/jittelemetry.h similarity index 100% rename from src/coreclr/src/jit/jittelemetry.h rename to src/coreclr/jit/jittelemetry.h diff --git a/src/coreclr/src/jit/layout.cpp b/src/coreclr/jit/layout.cpp similarity index 100% rename from src/coreclr/src/jit/layout.cpp rename to src/coreclr/jit/layout.cpp diff --git a/src/coreclr/src/jit/layout.h b/src/coreclr/jit/layout.h similarity index 100% rename from src/coreclr/src/jit/layout.h rename to src/coreclr/jit/layout.h diff --git a/src/coreclr/src/jit/lclmorph.cpp b/src/coreclr/jit/lclmorph.cpp similarity index 100% rename from src/coreclr/src/jit/lclmorph.cpp rename to src/coreclr/jit/lclmorph.cpp diff --git a/src/coreclr/src/jit/lclvars.cpp b/src/coreclr/jit/lclvars.cpp similarity index 100% rename from src/coreclr/src/jit/lclvars.cpp rename to src/coreclr/jit/lclvars.cpp diff --git a/src/coreclr/src/jit/lir.cpp b/src/coreclr/jit/lir.cpp similarity index 100% rename from src/coreclr/src/jit/lir.cpp rename to src/coreclr/jit/lir.cpp diff --git a/src/coreclr/src/jit/lir.h b/src/coreclr/jit/lir.h similarity index 100% rename from src/coreclr/src/jit/lir.h rename to src/coreclr/jit/lir.h diff --git a/src/coreclr/src/jit/liveness.cpp b/src/coreclr/jit/liveness.cpp similarity index 100% rename from src/coreclr/src/jit/liveness.cpp rename to src/coreclr/jit/liveness.cpp diff --git a/src/coreclr/src/jit/loopcloning.cpp b/src/coreclr/jit/loopcloning.cpp similarity index 100% rename from src/coreclr/src/jit/loopcloning.cpp rename to src/coreclr/jit/loopcloning.cpp diff --git a/src/coreclr/src/jit/loopcloning.h b/src/coreclr/jit/loopcloning.h similarity index 100% rename from src/coreclr/src/jit/loopcloning.h rename to src/coreclr/jit/loopcloning.h diff --git a/src/coreclr/src/jit/loopcloningopts.h b/src/coreclr/jit/loopcloningopts.h similarity index 100% rename from src/coreclr/src/jit/loopcloningopts.h rename to src/coreclr/jit/loopcloningopts.h diff --git a/src/coreclr/src/jit/lower.cpp b/src/coreclr/jit/lower.cpp similarity index 100% rename from src/coreclr/src/jit/lower.cpp rename to src/coreclr/jit/lower.cpp diff --git a/src/coreclr/src/jit/lower.h b/src/coreclr/jit/lower.h similarity index 100% rename from src/coreclr/src/jit/lower.h rename to src/coreclr/jit/lower.h diff --git a/src/coreclr/src/jit/lowerarmarch.cpp b/src/coreclr/jit/lowerarmarch.cpp similarity index 100% rename from src/coreclr/src/jit/lowerarmarch.cpp rename to src/coreclr/jit/lowerarmarch.cpp diff --git a/src/coreclr/src/jit/lowerxarch.cpp b/src/coreclr/jit/lowerxarch.cpp similarity index 100% rename from src/coreclr/src/jit/lowerxarch.cpp rename to src/coreclr/jit/lowerxarch.cpp diff --git a/src/coreclr/src/jit/lsra.cpp b/src/coreclr/jit/lsra.cpp similarity index 100% rename from src/coreclr/src/jit/lsra.cpp rename to src/coreclr/jit/lsra.cpp diff --git a/src/coreclr/src/jit/lsra.h b/src/coreclr/jit/lsra.h similarity index 100% rename from src/coreclr/src/jit/lsra.h rename to src/coreclr/jit/lsra.h diff --git a/src/coreclr/src/jit/lsra_reftypes.h b/src/coreclr/jit/lsra_reftypes.h similarity index 100% rename from src/coreclr/src/jit/lsra_reftypes.h rename to src/coreclr/jit/lsra_reftypes.h diff --git a/src/coreclr/src/jit/lsraarm.cpp b/src/coreclr/jit/lsraarm.cpp similarity index 100% rename from src/coreclr/src/jit/lsraarm.cpp rename to src/coreclr/jit/lsraarm.cpp diff --git a/src/coreclr/src/jit/lsraarm64.cpp b/src/coreclr/jit/lsraarm64.cpp similarity index 100% rename from src/coreclr/src/jit/lsraarm64.cpp rename to src/coreclr/jit/lsraarm64.cpp diff --git a/src/coreclr/src/jit/lsraarmarch.cpp b/src/coreclr/jit/lsraarmarch.cpp similarity index 100% rename from src/coreclr/src/jit/lsraarmarch.cpp rename to src/coreclr/jit/lsraarmarch.cpp diff --git a/src/coreclr/src/jit/lsrabuild.cpp b/src/coreclr/jit/lsrabuild.cpp similarity index 100% rename from src/coreclr/src/jit/lsrabuild.cpp rename to src/coreclr/jit/lsrabuild.cpp diff --git a/src/coreclr/src/jit/lsraxarch.cpp b/src/coreclr/jit/lsraxarch.cpp similarity index 100% rename from src/coreclr/src/jit/lsraxarch.cpp rename to src/coreclr/jit/lsraxarch.cpp diff --git a/src/coreclr/src/jit/morph.cpp b/src/coreclr/jit/morph.cpp similarity index 100% rename from src/coreclr/src/jit/morph.cpp rename to src/coreclr/jit/morph.cpp diff --git a/src/coreclr/src/jit/namedintrinsiclist.h b/src/coreclr/jit/namedintrinsiclist.h similarity index 100% rename from src/coreclr/src/jit/namedintrinsiclist.h rename to src/coreclr/jit/namedintrinsiclist.h diff --git a/src/coreclr/src/jit/objectalloc.cpp b/src/coreclr/jit/objectalloc.cpp similarity index 100% rename from src/coreclr/src/jit/objectalloc.cpp rename to src/coreclr/jit/objectalloc.cpp diff --git a/src/coreclr/src/jit/objectalloc.h b/src/coreclr/jit/objectalloc.h similarity index 100% rename from src/coreclr/src/jit/objectalloc.h rename to src/coreclr/jit/objectalloc.h diff --git a/src/coreclr/src/jit/opcode.h b/src/coreclr/jit/opcode.h similarity index 100% rename from src/coreclr/src/jit/opcode.h rename to src/coreclr/jit/opcode.h diff --git a/src/coreclr/src/jit/optcse.cpp b/src/coreclr/jit/optcse.cpp similarity index 100% rename from src/coreclr/src/jit/optcse.cpp rename to src/coreclr/jit/optcse.cpp diff --git a/src/coreclr/src/jit/optimizer.cpp b/src/coreclr/jit/optimizer.cpp similarity index 100% rename from src/coreclr/src/jit/optimizer.cpp rename to src/coreclr/jit/optimizer.cpp diff --git a/src/coreclr/src/jit/patchpoint.cpp b/src/coreclr/jit/patchpoint.cpp similarity index 100% rename from src/coreclr/src/jit/patchpoint.cpp rename to src/coreclr/jit/patchpoint.cpp diff --git a/src/coreclr/src/jit/phase.cpp b/src/coreclr/jit/phase.cpp similarity index 100% rename from src/coreclr/src/jit/phase.cpp rename to src/coreclr/jit/phase.cpp diff --git a/src/coreclr/src/jit/phase.h b/src/coreclr/jit/phase.h similarity index 100% rename from src/coreclr/src/jit/phase.h rename to src/coreclr/jit/phase.h diff --git a/src/coreclr/src/jit/rangecheck.cpp b/src/coreclr/jit/rangecheck.cpp similarity index 100% rename from src/coreclr/src/jit/rangecheck.cpp rename to src/coreclr/jit/rangecheck.cpp diff --git a/src/coreclr/src/jit/rangecheck.h b/src/coreclr/jit/rangecheck.h similarity index 100% rename from src/coreclr/src/jit/rangecheck.h rename to src/coreclr/jit/rangecheck.h diff --git a/src/coreclr/src/jit/rationalize.cpp b/src/coreclr/jit/rationalize.cpp similarity index 100% rename from src/coreclr/src/jit/rationalize.cpp rename to src/coreclr/jit/rationalize.cpp diff --git a/src/coreclr/src/jit/rationalize.h b/src/coreclr/jit/rationalize.h similarity index 100% rename from src/coreclr/src/jit/rationalize.h rename to src/coreclr/jit/rationalize.h diff --git a/src/coreclr/src/jit/regalloc.cpp b/src/coreclr/jit/regalloc.cpp similarity index 100% rename from src/coreclr/src/jit/regalloc.cpp rename to src/coreclr/jit/regalloc.cpp diff --git a/src/coreclr/src/jit/regalloc.h b/src/coreclr/jit/regalloc.h similarity index 100% rename from src/coreclr/src/jit/regalloc.h rename to src/coreclr/jit/regalloc.h diff --git a/src/coreclr/src/jit/register.h b/src/coreclr/jit/register.h similarity index 100% rename from src/coreclr/src/jit/register.h rename to src/coreclr/jit/register.h diff --git a/src/coreclr/src/jit/register_arg_convention.cpp b/src/coreclr/jit/register_arg_convention.cpp similarity index 100% rename from src/coreclr/src/jit/register_arg_convention.cpp rename to src/coreclr/jit/register_arg_convention.cpp diff --git a/src/coreclr/src/jit/register_arg_convention.h b/src/coreclr/jit/register_arg_convention.h similarity index 100% rename from src/coreclr/src/jit/register_arg_convention.h rename to src/coreclr/jit/register_arg_convention.h diff --git a/src/coreclr/src/jit/registerarm.h b/src/coreclr/jit/registerarm.h similarity index 100% rename from src/coreclr/src/jit/registerarm.h rename to src/coreclr/jit/registerarm.h diff --git a/src/coreclr/src/jit/registerarm64.h b/src/coreclr/jit/registerarm64.h similarity index 100% rename from src/coreclr/src/jit/registerarm64.h rename to src/coreclr/jit/registerarm64.h diff --git a/src/coreclr/src/jit/reglist.h b/src/coreclr/jit/reglist.h similarity index 100% rename from src/coreclr/src/jit/reglist.h rename to src/coreclr/jit/reglist.h diff --git a/src/coreclr/src/jit/regset.cpp b/src/coreclr/jit/regset.cpp similarity index 100% rename from src/coreclr/src/jit/regset.cpp rename to src/coreclr/jit/regset.cpp diff --git a/src/coreclr/src/jit/regset.h b/src/coreclr/jit/regset.h similarity index 100% rename from src/coreclr/src/jit/regset.h rename to src/coreclr/jit/regset.h diff --git a/src/coreclr/src/jit/scopeinfo.cpp b/src/coreclr/jit/scopeinfo.cpp similarity index 100% rename from src/coreclr/src/jit/scopeinfo.cpp rename to src/coreclr/jit/scopeinfo.cpp diff --git a/src/coreclr/src/jit/sideeffects.cpp b/src/coreclr/jit/sideeffects.cpp similarity index 100% rename from src/coreclr/src/jit/sideeffects.cpp rename to src/coreclr/jit/sideeffects.cpp diff --git a/src/coreclr/src/jit/sideeffects.h b/src/coreclr/jit/sideeffects.h similarity index 100% rename from src/coreclr/src/jit/sideeffects.h rename to src/coreclr/jit/sideeffects.h diff --git a/src/coreclr/src/jit/simd.cpp b/src/coreclr/jit/simd.cpp similarity index 100% rename from src/coreclr/src/jit/simd.cpp rename to src/coreclr/jit/simd.cpp diff --git a/src/coreclr/src/jit/simd.h b/src/coreclr/jit/simd.h similarity index 100% rename from src/coreclr/src/jit/simd.h rename to src/coreclr/jit/simd.h diff --git a/src/coreclr/src/jit/simdashwintrinsic.cpp b/src/coreclr/jit/simdashwintrinsic.cpp similarity index 100% rename from src/coreclr/src/jit/simdashwintrinsic.cpp rename to src/coreclr/jit/simdashwintrinsic.cpp diff --git a/src/coreclr/src/jit/simdashwintrinsic.h b/src/coreclr/jit/simdashwintrinsic.h similarity index 100% rename from src/coreclr/src/jit/simdashwintrinsic.h rename to src/coreclr/jit/simdashwintrinsic.h diff --git a/src/coreclr/src/jit/simdashwintrinsiclistarm64.h b/src/coreclr/jit/simdashwintrinsiclistarm64.h similarity index 100% rename from src/coreclr/src/jit/simdashwintrinsiclistarm64.h rename to src/coreclr/jit/simdashwintrinsiclistarm64.h diff --git a/src/coreclr/src/jit/simdashwintrinsiclistxarch.h b/src/coreclr/jit/simdashwintrinsiclistxarch.h similarity index 100% rename from src/coreclr/src/jit/simdashwintrinsiclistxarch.h rename to src/coreclr/jit/simdashwintrinsiclistxarch.h diff --git a/src/coreclr/src/jit/simdcodegenxarch.cpp b/src/coreclr/jit/simdcodegenxarch.cpp similarity index 100% rename from src/coreclr/src/jit/simdcodegenxarch.cpp rename to src/coreclr/jit/simdcodegenxarch.cpp diff --git a/src/coreclr/src/jit/simdintrinsiclist.h b/src/coreclr/jit/simdintrinsiclist.h similarity index 100% rename from src/coreclr/src/jit/simdintrinsiclist.h rename to src/coreclr/jit/simdintrinsiclist.h diff --git a/src/coreclr/src/jit/sm.cpp b/src/coreclr/jit/sm.cpp similarity index 100% rename from src/coreclr/src/jit/sm.cpp rename to src/coreclr/jit/sm.cpp diff --git a/src/coreclr/src/jit/sm.h b/src/coreclr/jit/sm.h similarity index 100% rename from src/coreclr/src/jit/sm.h rename to src/coreclr/jit/sm.h diff --git a/src/coreclr/src/jit/smallhash.h b/src/coreclr/jit/smallhash.h similarity index 100% rename from src/coreclr/src/jit/smallhash.h rename to src/coreclr/jit/smallhash.h diff --git a/src/coreclr/src/jit/smcommon.cpp b/src/coreclr/jit/smcommon.cpp similarity index 100% rename from src/coreclr/src/jit/smcommon.cpp rename to src/coreclr/jit/smcommon.cpp diff --git a/src/coreclr/src/jit/smcommon.h b/src/coreclr/jit/smcommon.h similarity index 100% rename from src/coreclr/src/jit/smcommon.h rename to src/coreclr/jit/smcommon.h diff --git a/src/coreclr/src/jit/smdata.cpp b/src/coreclr/jit/smdata.cpp similarity index 100% rename from src/coreclr/src/jit/smdata.cpp rename to src/coreclr/jit/smdata.cpp diff --git a/src/coreclr/src/jit/smopcode.def b/src/coreclr/jit/smopcode.def similarity index 100% rename from src/coreclr/src/jit/smopcode.def rename to src/coreclr/jit/smopcode.def diff --git a/src/coreclr/src/jit/smopcodemap.def b/src/coreclr/jit/smopcodemap.def similarity index 100% rename from src/coreclr/src/jit/smopcodemap.def rename to src/coreclr/jit/smopcodemap.def diff --git a/src/coreclr/src/jit/smopenum.h b/src/coreclr/jit/smopenum.h similarity index 100% rename from src/coreclr/src/jit/smopenum.h rename to src/coreclr/jit/smopenum.h diff --git a/src/coreclr/src/jit/smweights.cpp b/src/coreclr/jit/smweights.cpp similarity index 100% rename from src/coreclr/src/jit/smweights.cpp rename to src/coreclr/jit/smweights.cpp diff --git a/src/coreclr/src/jit/ssabuilder.cpp b/src/coreclr/jit/ssabuilder.cpp similarity index 100% rename from src/coreclr/src/jit/ssabuilder.cpp rename to src/coreclr/jit/ssabuilder.cpp diff --git a/src/coreclr/src/jit/ssabuilder.h b/src/coreclr/jit/ssabuilder.h similarity index 100% rename from src/coreclr/src/jit/ssabuilder.h rename to src/coreclr/jit/ssabuilder.h diff --git a/src/coreclr/src/jit/ssaconfig.h b/src/coreclr/jit/ssaconfig.h similarity index 100% rename from src/coreclr/src/jit/ssaconfig.h rename to src/coreclr/jit/ssaconfig.h diff --git a/src/coreclr/src/jit/ssarenamestate.cpp b/src/coreclr/jit/ssarenamestate.cpp similarity index 100% rename from src/coreclr/src/jit/ssarenamestate.cpp rename to src/coreclr/jit/ssarenamestate.cpp diff --git a/src/coreclr/src/jit/ssarenamestate.h b/src/coreclr/jit/ssarenamestate.h similarity index 100% rename from src/coreclr/src/jit/ssarenamestate.h rename to src/coreclr/jit/ssarenamestate.h diff --git a/src/coreclr/src/jit/stacklevelsetter.cpp b/src/coreclr/jit/stacklevelsetter.cpp similarity index 100% rename from src/coreclr/src/jit/stacklevelsetter.cpp rename to src/coreclr/jit/stacklevelsetter.cpp diff --git a/src/coreclr/src/jit/stacklevelsetter.h b/src/coreclr/jit/stacklevelsetter.h similarity index 100% rename from src/coreclr/src/jit/stacklevelsetter.h rename to src/coreclr/jit/stacklevelsetter.h diff --git a/src/coreclr/src/jit/static/CMakeLists.txt b/src/coreclr/jit/static/CMakeLists.txt similarity index 100% rename from src/coreclr/src/jit/static/CMakeLists.txt rename to src/coreclr/jit/static/CMakeLists.txt diff --git a/src/coreclr/src/jit/static/clrjit.def b/src/coreclr/jit/static/clrjit.def similarity index 100% rename from src/coreclr/src/jit/static/clrjit.def rename to src/coreclr/jit/static/clrjit.def diff --git a/src/coreclr/src/jit/target.h b/src/coreclr/jit/target.h similarity index 100% rename from src/coreclr/src/jit/target.h rename to src/coreclr/jit/target.h diff --git a/src/coreclr/src/jit/targetamd64.cpp b/src/coreclr/jit/targetamd64.cpp similarity index 100% rename from src/coreclr/src/jit/targetamd64.cpp rename to src/coreclr/jit/targetamd64.cpp diff --git a/src/coreclr/src/jit/targetarm.cpp b/src/coreclr/jit/targetarm.cpp similarity index 100% rename from src/coreclr/src/jit/targetarm.cpp rename to src/coreclr/jit/targetarm.cpp diff --git a/src/coreclr/src/jit/targetarm64.cpp b/src/coreclr/jit/targetarm64.cpp similarity index 100% rename from src/coreclr/src/jit/targetarm64.cpp rename to src/coreclr/jit/targetarm64.cpp diff --git a/src/coreclr/src/jit/targetx86.cpp b/src/coreclr/jit/targetx86.cpp similarity index 100% rename from src/coreclr/src/jit/targetx86.cpp rename to src/coreclr/jit/targetx86.cpp diff --git a/src/coreclr/src/jit/tinyarray.h b/src/coreclr/jit/tinyarray.h similarity index 100% rename from src/coreclr/src/jit/tinyarray.h rename to src/coreclr/jit/tinyarray.h diff --git a/src/coreclr/src/jit/titypes.h b/src/coreclr/jit/titypes.h similarity index 100% rename from src/coreclr/src/jit/titypes.h rename to src/coreclr/jit/titypes.h diff --git a/src/coreclr/src/jit/treelifeupdater.cpp b/src/coreclr/jit/treelifeupdater.cpp similarity index 100% rename from src/coreclr/src/jit/treelifeupdater.cpp rename to src/coreclr/jit/treelifeupdater.cpp diff --git a/src/coreclr/src/jit/treelifeupdater.h b/src/coreclr/jit/treelifeupdater.h similarity index 100% rename from src/coreclr/src/jit/treelifeupdater.h rename to src/coreclr/jit/treelifeupdater.h diff --git a/src/coreclr/src/jit/typeinfo.cpp b/src/coreclr/jit/typeinfo.cpp similarity index 100% rename from src/coreclr/src/jit/typeinfo.cpp rename to src/coreclr/jit/typeinfo.cpp diff --git a/src/coreclr/src/jit/typelist.h b/src/coreclr/jit/typelist.h similarity index 100% rename from src/coreclr/src/jit/typelist.h rename to src/coreclr/jit/typelist.h diff --git a/src/coreclr/src/jit/unwind.cpp b/src/coreclr/jit/unwind.cpp similarity index 100% rename from src/coreclr/src/jit/unwind.cpp rename to src/coreclr/jit/unwind.cpp diff --git a/src/coreclr/src/jit/unwind.h b/src/coreclr/jit/unwind.h similarity index 100% rename from src/coreclr/src/jit/unwind.h rename to src/coreclr/jit/unwind.h diff --git a/src/coreclr/src/jit/unwindamd64.cpp b/src/coreclr/jit/unwindamd64.cpp similarity index 100% rename from src/coreclr/src/jit/unwindamd64.cpp rename to src/coreclr/jit/unwindamd64.cpp diff --git a/src/coreclr/src/jit/unwindarm.cpp b/src/coreclr/jit/unwindarm.cpp similarity index 100% rename from src/coreclr/src/jit/unwindarm.cpp rename to src/coreclr/jit/unwindarm.cpp diff --git a/src/coreclr/src/jit/unwindarm64.cpp b/src/coreclr/jit/unwindarm64.cpp similarity index 100% rename from src/coreclr/src/jit/unwindarm64.cpp rename to src/coreclr/jit/unwindarm64.cpp diff --git a/src/coreclr/src/jit/unwindx86.cpp b/src/coreclr/jit/unwindx86.cpp similarity index 100% rename from src/coreclr/src/jit/unwindx86.cpp rename to src/coreclr/jit/unwindx86.cpp diff --git a/src/coreclr/src/jit/utils.cpp b/src/coreclr/jit/utils.cpp similarity index 100% rename from src/coreclr/src/jit/utils.cpp rename to src/coreclr/jit/utils.cpp diff --git a/src/coreclr/src/jit/utils.h b/src/coreclr/jit/utils.h similarity index 100% rename from src/coreclr/src/jit/utils.h rename to src/coreclr/jit/utils.h diff --git a/src/coreclr/src/jit/valuenum.cpp b/src/coreclr/jit/valuenum.cpp similarity index 100% rename from src/coreclr/src/jit/valuenum.cpp rename to src/coreclr/jit/valuenum.cpp diff --git a/src/coreclr/src/jit/valuenum.h b/src/coreclr/jit/valuenum.h similarity index 100% rename from src/coreclr/src/jit/valuenum.h rename to src/coreclr/jit/valuenum.h diff --git a/src/coreclr/src/jit/valuenumfuncs.h b/src/coreclr/jit/valuenumfuncs.h similarity index 100% rename from src/coreclr/src/jit/valuenumfuncs.h rename to src/coreclr/jit/valuenumfuncs.h diff --git a/src/coreclr/src/jit/valuenumtype.h b/src/coreclr/jit/valuenumtype.h similarity index 100% rename from src/coreclr/src/jit/valuenumtype.h rename to src/coreclr/jit/valuenumtype.h diff --git a/src/coreclr/src/jit/varset.h b/src/coreclr/jit/varset.h similarity index 100% rename from src/coreclr/src/jit/varset.h rename to src/coreclr/jit/varset.h diff --git a/src/coreclr/src/jit/vartype.h b/src/coreclr/jit/vartype.h similarity index 100% rename from src/coreclr/src/jit/vartype.h rename to src/coreclr/jit/vartype.h diff --git a/src/coreclr/src/md/CMakeLists.txt b/src/coreclr/md/CMakeLists.txt similarity index 100% rename from src/coreclr/src/md/CMakeLists.txt rename to src/coreclr/md/CMakeLists.txt diff --git a/src/coreclr/src/md/ceefilegen/CMakeLists.txt b/src/coreclr/md/ceefilegen/CMakeLists.txt similarity index 100% rename from src/coreclr/src/md/ceefilegen/CMakeLists.txt rename to src/coreclr/md/ceefilegen/CMakeLists.txt diff --git a/src/coreclr/src/md/ceefilegen/blobfetcher.cpp b/src/coreclr/md/ceefilegen/blobfetcher.cpp similarity index 100% rename from src/coreclr/src/md/ceefilegen/blobfetcher.cpp rename to src/coreclr/md/ceefilegen/blobfetcher.cpp diff --git a/src/coreclr/src/md/ceefilegen/cceegen.cpp b/src/coreclr/md/ceefilegen/cceegen.cpp similarity index 100% rename from src/coreclr/src/md/ceefilegen/cceegen.cpp rename to src/coreclr/md/ceefilegen/cceegen.cpp diff --git a/src/coreclr/src/md/ceefilegen/ceegentokenmapper.cpp b/src/coreclr/md/ceefilegen/ceegentokenmapper.cpp similarity index 100% rename from src/coreclr/src/md/ceefilegen/ceegentokenmapper.cpp rename to src/coreclr/md/ceefilegen/ceegentokenmapper.cpp diff --git a/src/coreclr/src/md/ceefilegen/ceesectionstring.cpp b/src/coreclr/md/ceefilegen/ceesectionstring.cpp similarity index 100% rename from src/coreclr/src/md/ceefilegen/ceesectionstring.cpp rename to src/coreclr/md/ceefilegen/ceesectionstring.cpp diff --git a/src/coreclr/src/md/ceefilegen/pesectionman.cpp b/src/coreclr/md/ceefilegen/pesectionman.cpp similarity index 100% rename from src/coreclr/src/md/ceefilegen/pesectionman.cpp rename to src/coreclr/md/ceefilegen/pesectionman.cpp diff --git a/src/coreclr/src/md/ceefilegen/stdafx.h b/src/coreclr/md/ceefilegen/stdafx.h similarity index 100% rename from src/coreclr/src/md/ceefilegen/stdafx.h rename to src/coreclr/md/ceefilegen/stdafx.h diff --git a/src/coreclr/src/md/compiler/CMakeLists.txt b/src/coreclr/md/compiler/CMakeLists.txt similarity index 100% rename from src/coreclr/src/md/compiler/CMakeLists.txt rename to src/coreclr/md/compiler/CMakeLists.txt diff --git a/src/coreclr/src/md/compiler/assemblymd.cpp b/src/coreclr/md/compiler/assemblymd.cpp similarity index 100% rename from src/coreclr/src/md/compiler/assemblymd.cpp rename to src/coreclr/md/compiler/assemblymd.cpp diff --git a/src/coreclr/src/md/compiler/assemblymd_emit.cpp b/src/coreclr/md/compiler/assemblymd_emit.cpp similarity index 100% rename from src/coreclr/src/md/compiler/assemblymd_emit.cpp rename to src/coreclr/md/compiler/assemblymd_emit.cpp diff --git a/src/coreclr/src/md/compiler/classfactory.cpp b/src/coreclr/md/compiler/classfactory.cpp similarity index 100% rename from src/coreclr/src/md/compiler/classfactory.cpp rename to src/coreclr/md/compiler/classfactory.cpp diff --git a/src/coreclr/src/md/compiler/classfactory.h b/src/coreclr/md/compiler/classfactory.h similarity index 100% rename from src/coreclr/src/md/compiler/classfactory.h rename to src/coreclr/md/compiler/classfactory.h diff --git a/src/coreclr/src/md/compiler/custattr.h b/src/coreclr/md/compiler/custattr.h similarity index 100% rename from src/coreclr/src/md/compiler/custattr.h rename to src/coreclr/md/compiler/custattr.h diff --git a/src/coreclr/src/md/compiler/custattr_emit.cpp b/src/coreclr/md/compiler/custattr_emit.cpp similarity index 100% rename from src/coreclr/src/md/compiler/custattr_emit.cpp rename to src/coreclr/md/compiler/custattr_emit.cpp diff --git a/src/coreclr/src/md/compiler/custattr_import.cpp b/src/coreclr/md/compiler/custattr_import.cpp similarity index 100% rename from src/coreclr/src/md/compiler/custattr_import.cpp rename to src/coreclr/md/compiler/custattr_import.cpp diff --git a/src/coreclr/src/md/compiler/disp.cpp b/src/coreclr/md/compiler/disp.cpp similarity index 100% rename from src/coreclr/src/md/compiler/disp.cpp rename to src/coreclr/md/compiler/disp.cpp diff --git a/src/coreclr/src/md/compiler/disp.h b/src/coreclr/md/compiler/disp.h similarity index 100% rename from src/coreclr/src/md/compiler/disp.h rename to src/coreclr/md/compiler/disp.h diff --git a/src/coreclr/src/md/compiler/emit.cpp b/src/coreclr/md/compiler/emit.cpp similarity index 100% rename from src/coreclr/src/md/compiler/emit.cpp rename to src/coreclr/md/compiler/emit.cpp diff --git a/src/coreclr/src/md/compiler/filtermanager.cpp b/src/coreclr/md/compiler/filtermanager.cpp similarity index 100% rename from src/coreclr/src/md/compiler/filtermanager.cpp rename to src/coreclr/md/compiler/filtermanager.cpp diff --git a/src/coreclr/src/md/compiler/filtermanager.h b/src/coreclr/md/compiler/filtermanager.h similarity index 100% rename from src/coreclr/src/md/compiler/filtermanager.h rename to src/coreclr/md/compiler/filtermanager.h diff --git a/src/coreclr/src/md/compiler/helper.cpp b/src/coreclr/md/compiler/helper.cpp similarity index 100% rename from src/coreclr/src/md/compiler/helper.cpp rename to src/coreclr/md/compiler/helper.cpp diff --git a/src/coreclr/src/md/compiler/import.cpp b/src/coreclr/md/compiler/import.cpp similarity index 100% rename from src/coreclr/src/md/compiler/import.cpp rename to src/coreclr/md/compiler/import.cpp diff --git a/src/coreclr/src/md/compiler/importhelper.cpp b/src/coreclr/md/compiler/importhelper.cpp similarity index 100% rename from src/coreclr/src/md/compiler/importhelper.cpp rename to src/coreclr/md/compiler/importhelper.cpp diff --git a/src/coreclr/src/md/compiler/importhelper.h b/src/coreclr/md/compiler/importhelper.h similarity index 100% rename from src/coreclr/src/md/compiler/importhelper.h rename to src/coreclr/md/compiler/importhelper.h diff --git a/src/coreclr/src/md/compiler/mdperf.cpp b/src/coreclr/md/compiler/mdperf.cpp similarity index 100% rename from src/coreclr/src/md/compiler/mdperf.cpp rename to src/coreclr/md/compiler/mdperf.cpp diff --git a/src/coreclr/src/md/compiler/mdperf.h b/src/coreclr/md/compiler/mdperf.h similarity index 100% rename from src/coreclr/src/md/compiler/mdperf.h rename to src/coreclr/md/compiler/mdperf.h diff --git a/src/coreclr/src/md/compiler/mdutil.cpp b/src/coreclr/md/compiler/mdutil.cpp similarity index 100% rename from src/coreclr/src/md/compiler/mdutil.cpp rename to src/coreclr/md/compiler/mdutil.cpp diff --git a/src/coreclr/src/md/compiler/mdutil.h b/src/coreclr/md/compiler/mdutil.h similarity index 100% rename from src/coreclr/src/md/compiler/mdutil.h rename to src/coreclr/md/compiler/mdutil.h diff --git a/src/coreclr/src/md/compiler/regmeta.cpp b/src/coreclr/md/compiler/regmeta.cpp similarity index 100% rename from src/coreclr/src/md/compiler/regmeta.cpp rename to src/coreclr/md/compiler/regmeta.cpp diff --git a/src/coreclr/src/md/compiler/regmeta.h b/src/coreclr/md/compiler/regmeta.h similarity index 100% rename from src/coreclr/src/md/compiler/regmeta.h rename to src/coreclr/md/compiler/regmeta.h diff --git a/src/coreclr/src/md/compiler/regmeta_compilersupport.cpp b/src/coreclr/md/compiler/regmeta_compilersupport.cpp similarity index 100% rename from src/coreclr/src/md/compiler/regmeta_compilersupport.cpp rename to src/coreclr/md/compiler/regmeta_compilersupport.cpp diff --git a/src/coreclr/src/md/compiler/regmeta_emit.cpp b/src/coreclr/md/compiler/regmeta_emit.cpp similarity index 100% rename from src/coreclr/src/md/compiler/regmeta_emit.cpp rename to src/coreclr/md/compiler/regmeta_emit.cpp diff --git a/src/coreclr/src/md/compiler/regmeta_imetadatatables.cpp b/src/coreclr/md/compiler/regmeta_imetadatatables.cpp similarity index 100% rename from src/coreclr/src/md/compiler/regmeta_imetadatatables.cpp rename to src/coreclr/md/compiler/regmeta_imetadatatables.cpp diff --git a/src/coreclr/src/md/compiler/regmeta_import.cpp b/src/coreclr/md/compiler/regmeta_import.cpp similarity index 100% rename from src/coreclr/src/md/compiler/regmeta_import.cpp rename to src/coreclr/md/compiler/regmeta_import.cpp diff --git a/src/coreclr/src/md/compiler/regmeta_vm.cpp b/src/coreclr/md/compiler/regmeta_vm.cpp similarity index 100% rename from src/coreclr/src/md/compiler/regmeta_vm.cpp rename to src/coreclr/md/compiler/regmeta_vm.cpp diff --git a/src/coreclr/src/md/compiler/stdafx.h b/src/coreclr/md/compiler/stdafx.h similarity index 100% rename from src/coreclr/src/md/compiler/stdafx.h rename to src/coreclr/md/compiler/stdafx.h diff --git a/src/coreclr/src/md/compiler/verifylayouts.cpp b/src/coreclr/md/compiler/verifylayouts.cpp similarity index 100% rename from src/coreclr/src/md/compiler/verifylayouts.cpp rename to src/coreclr/md/compiler/verifylayouts.cpp diff --git a/src/coreclr/src/md/compressedinteger.h b/src/coreclr/md/compressedinteger.h similarity index 100% rename from src/coreclr/src/md/compressedinteger.h rename to src/coreclr/md/compressedinteger.h diff --git a/src/coreclr/src/md/compressedinteger.inl b/src/coreclr/md/compressedinteger.inl similarity index 100% rename from src/coreclr/src/md/compressedinteger.inl rename to src/coreclr/md/compressedinteger.inl diff --git a/src/coreclr/src/md/datablob.h b/src/coreclr/md/datablob.h similarity index 100% rename from src/coreclr/src/md/datablob.h rename to src/coreclr/md/datablob.h diff --git a/src/coreclr/src/md/datablob.inl b/src/coreclr/md/datablob.inl similarity index 100% rename from src/coreclr/src/md/datablob.inl rename to src/coreclr/md/datablob.inl diff --git a/src/coreclr/src/md/databuffer.h b/src/coreclr/md/databuffer.h similarity index 100% rename from src/coreclr/src/md/databuffer.h rename to src/coreclr/md/databuffer.h diff --git a/src/coreclr/src/md/databuffer.inl b/src/coreclr/md/databuffer.inl similarity index 100% rename from src/coreclr/src/md/databuffer.inl rename to src/coreclr/md/databuffer.inl diff --git a/src/coreclr/src/md/datasource/CMakeLists.txt b/src/coreclr/md/datasource/CMakeLists.txt similarity index 100% rename from src/coreclr/src/md/datasource/CMakeLists.txt rename to src/coreclr/md/datasource/CMakeLists.txt diff --git a/src/coreclr/src/md/datasource/api.cpp b/src/coreclr/md/datasource/api.cpp similarity index 100% rename from src/coreclr/src/md/datasource/api.cpp rename to src/coreclr/md/datasource/api.cpp diff --git a/src/coreclr/src/md/datasource/datatargetreader.cpp b/src/coreclr/md/datasource/datatargetreader.cpp similarity index 100% rename from src/coreclr/src/md/datasource/datatargetreader.cpp rename to src/coreclr/md/datasource/datatargetreader.cpp diff --git a/src/coreclr/src/md/datasource/datatargetreader.h b/src/coreclr/md/datasource/datatargetreader.h similarity index 100% rename from src/coreclr/src/md/datasource/datatargetreader.h rename to src/coreclr/md/datasource/datatargetreader.h diff --git a/src/coreclr/src/md/datasource/remotemdinternalrwsource.cpp b/src/coreclr/md/datasource/remotemdinternalrwsource.cpp similarity index 100% rename from src/coreclr/src/md/datasource/remotemdinternalrwsource.cpp rename to src/coreclr/md/datasource/remotemdinternalrwsource.cpp diff --git a/src/coreclr/src/md/datasource/remotemdinternalrwsource.h b/src/coreclr/md/datasource/remotemdinternalrwsource.h similarity index 100% rename from src/coreclr/src/md/datasource/remotemdinternalrwsource.h rename to src/coreclr/md/datasource/remotemdinternalrwsource.h diff --git a/src/coreclr/src/md/datasource/stdafx.h b/src/coreclr/md/datasource/stdafx.h similarity index 100% rename from src/coreclr/src/md/datasource/stdafx.h rename to src/coreclr/md/datasource/stdafx.h diff --git a/src/coreclr/src/md/datasource/targettypes.cpp b/src/coreclr/md/datasource/targettypes.cpp similarity index 100% rename from src/coreclr/src/md/datasource/targettypes.cpp rename to src/coreclr/md/datasource/targettypes.cpp diff --git a/src/coreclr/src/md/datasource/targettypes.h b/src/coreclr/md/datasource/targettypes.h similarity index 100% rename from src/coreclr/src/md/datasource/targettypes.h rename to src/coreclr/md/datasource/targettypes.h diff --git a/src/coreclr/src/md/debug_metadata.h b/src/coreclr/md/debug_metadata.h similarity index 100% rename from src/coreclr/src/md/debug_metadata.h rename to src/coreclr/md/debug_metadata.h diff --git a/src/coreclr/src/md/enc/CMakeLists.txt b/src/coreclr/md/enc/CMakeLists.txt similarity index 100% rename from src/coreclr/src/md/enc/CMakeLists.txt rename to src/coreclr/md/enc/CMakeLists.txt diff --git a/src/coreclr/src/md/enc/liteweightstgdbrw.cpp b/src/coreclr/md/enc/liteweightstgdbrw.cpp similarity index 100% rename from src/coreclr/src/md/enc/liteweightstgdbrw.cpp rename to src/coreclr/md/enc/liteweightstgdbrw.cpp diff --git a/src/coreclr/src/md/enc/mdinternalrw.cpp b/src/coreclr/md/enc/mdinternalrw.cpp similarity index 100% rename from src/coreclr/src/md/enc/mdinternalrw.cpp rename to src/coreclr/md/enc/mdinternalrw.cpp diff --git a/src/coreclr/src/md/enc/metamodelenc.cpp b/src/coreclr/md/enc/metamodelenc.cpp similarity index 100% rename from src/coreclr/src/md/enc/metamodelenc.cpp rename to src/coreclr/md/enc/metamodelenc.cpp diff --git a/src/coreclr/src/md/enc/metamodelrw.cpp b/src/coreclr/md/enc/metamodelrw.cpp similarity index 100% rename from src/coreclr/src/md/enc/metamodelrw.cpp rename to src/coreclr/md/enc/metamodelrw.cpp diff --git a/src/coreclr/src/md/enc/pdbheap.cpp b/src/coreclr/md/enc/pdbheap.cpp similarity index 100% rename from src/coreclr/src/md/enc/pdbheap.cpp rename to src/coreclr/md/enc/pdbheap.cpp diff --git a/src/coreclr/src/md/enc/peparse.cpp b/src/coreclr/md/enc/peparse.cpp similarity index 100% rename from src/coreclr/src/md/enc/peparse.cpp rename to src/coreclr/md/enc/peparse.cpp diff --git a/src/coreclr/src/md/enc/rwutil.cpp b/src/coreclr/md/enc/rwutil.cpp similarity index 100% rename from src/coreclr/src/md/enc/rwutil.cpp rename to src/coreclr/md/enc/rwutil.cpp diff --git a/src/coreclr/src/md/enc/stdafx.h b/src/coreclr/md/enc/stdafx.h similarity index 100% rename from src/coreclr/src/md/enc/stdafx.h rename to src/coreclr/md/enc/stdafx.h diff --git a/src/coreclr/src/md/enc/stgio.cpp b/src/coreclr/md/enc/stgio.cpp similarity index 100% rename from src/coreclr/src/md/enc/stgio.cpp rename to src/coreclr/md/enc/stgio.cpp diff --git a/src/coreclr/src/md/enc/stgtiggerstorage.cpp b/src/coreclr/md/enc/stgtiggerstorage.cpp similarity index 100% rename from src/coreclr/src/md/enc/stgtiggerstorage.cpp rename to src/coreclr/md/enc/stgtiggerstorage.cpp diff --git a/src/coreclr/src/md/enc/stgtiggerstream.cpp b/src/coreclr/md/enc/stgtiggerstream.cpp similarity index 100% rename from src/coreclr/src/md/enc/stgtiggerstream.cpp rename to src/coreclr/md/enc/stgtiggerstream.cpp diff --git a/src/coreclr/src/md/errors_metadata.h b/src/coreclr/md/errors_metadata.h similarity index 100% rename from src/coreclr/src/md/errors_metadata.h rename to src/coreclr/md/errors_metadata.h diff --git a/src/coreclr/src/md/export.h b/src/coreclr/md/export.h similarity index 100% rename from src/coreclr/src/md/export.h rename to src/coreclr/md/export.h diff --git a/src/coreclr/src/md/external.h b/src/coreclr/md/external.h similarity index 100% rename from src/coreclr/src/md/external.h rename to src/coreclr/md/external.h diff --git a/src/coreclr/src/md/heaps/blobheap.h b/src/coreclr/md/heaps/blobheap.h similarity index 100% rename from src/coreclr/src/md/heaps/blobheap.h rename to src/coreclr/md/heaps/blobheap.h diff --git a/src/coreclr/src/md/heaps/export.h b/src/coreclr/md/heaps/export.h similarity index 100% rename from src/coreclr/src/md/heaps/export.h rename to src/coreclr/md/heaps/export.h diff --git a/src/coreclr/src/md/heaps/external.h b/src/coreclr/md/heaps/external.h similarity index 100% rename from src/coreclr/src/md/heaps/external.h rename to src/coreclr/md/heaps/external.h diff --git a/src/coreclr/src/md/heaps/guidheap.h b/src/coreclr/md/heaps/guidheap.h similarity index 100% rename from src/coreclr/src/md/heaps/guidheap.h rename to src/coreclr/md/heaps/guidheap.h diff --git a/src/coreclr/src/md/heaps/stringheap.h b/src/coreclr/md/heaps/stringheap.h similarity index 100% rename from src/coreclr/src/md/heaps/stringheap.h rename to src/coreclr/md/heaps/stringheap.h diff --git a/src/coreclr/src/md/hotdata/CMakeLists.txt b/src/coreclr/md/hotdata/CMakeLists.txt similarity index 100% rename from src/coreclr/src/md/hotdata/CMakeLists.txt rename to src/coreclr/md/hotdata/CMakeLists.txt diff --git a/src/coreclr/src/md/hotdata/export.h b/src/coreclr/md/hotdata/export.h similarity index 100% rename from src/coreclr/src/md/hotdata/export.h rename to src/coreclr/md/hotdata/export.h diff --git a/src/coreclr/src/md/hotdata/external.h b/src/coreclr/md/hotdata/external.h similarity index 100% rename from src/coreclr/src/md/hotdata/external.h rename to src/coreclr/md/hotdata/external.h diff --git a/src/coreclr/src/md/hotdata/heapindex.h b/src/coreclr/md/hotdata/heapindex.h similarity index 100% rename from src/coreclr/src/md/hotdata/heapindex.h rename to src/coreclr/md/hotdata/heapindex.h diff --git a/src/coreclr/src/md/hotdata/hotdataformat.h b/src/coreclr/md/hotdata/hotdataformat.h similarity index 100% rename from src/coreclr/src/md/hotdata/hotdataformat.h rename to src/coreclr/md/hotdata/hotdataformat.h diff --git a/src/coreclr/src/md/hotdata/hotheap.cpp b/src/coreclr/md/hotdata/hotheap.cpp similarity index 100% rename from src/coreclr/src/md/hotdata/hotheap.cpp rename to src/coreclr/md/hotdata/hotheap.cpp diff --git a/src/coreclr/src/md/hotdata/hotheap.h b/src/coreclr/md/hotdata/hotheap.h similarity index 100% rename from src/coreclr/src/md/hotdata/hotheap.h rename to src/coreclr/md/hotdata/hotheap.h diff --git a/src/coreclr/src/md/hotdata/hotheapsdirectoryiterator.cpp b/src/coreclr/md/hotdata/hotheapsdirectoryiterator.cpp similarity index 100% rename from src/coreclr/src/md/hotdata/hotheapsdirectoryiterator.cpp rename to src/coreclr/md/hotdata/hotheapsdirectoryiterator.cpp diff --git a/src/coreclr/src/md/hotdata/hotheapsdirectoryiterator.h b/src/coreclr/md/hotdata/hotheapsdirectoryiterator.h similarity index 100% rename from src/coreclr/src/md/hotdata/hotheapsdirectoryiterator.h rename to src/coreclr/md/hotdata/hotheapsdirectoryiterator.h diff --git a/src/coreclr/src/md/hotdata/hotheapwriter.cpp b/src/coreclr/md/hotdata/hotheapwriter.cpp similarity index 100% rename from src/coreclr/src/md/hotdata/hotheapwriter.cpp rename to src/coreclr/md/hotdata/hotheapwriter.cpp diff --git a/src/coreclr/src/md/hotdata/hotheapwriter.h b/src/coreclr/md/hotdata/hotheapwriter.h similarity index 100% rename from src/coreclr/src/md/hotdata/hotheapwriter.h rename to src/coreclr/md/hotdata/hotheapwriter.h diff --git a/src/coreclr/src/md/hotdata/hotmetadata.cpp b/src/coreclr/md/hotdata/hotmetadata.cpp similarity index 100% rename from src/coreclr/src/md/hotdata/hotmetadata.cpp rename to src/coreclr/md/hotdata/hotmetadata.cpp diff --git a/src/coreclr/src/md/hotdata/hotmetadata.h b/src/coreclr/md/hotdata/hotmetadata.h similarity index 100% rename from src/coreclr/src/md/hotdata/hotmetadata.h rename to src/coreclr/md/hotdata/hotmetadata.h diff --git a/src/coreclr/src/md/hotdata/hottable.cpp b/src/coreclr/md/hotdata/hottable.cpp similarity index 100% rename from src/coreclr/src/md/hotdata/hottable.cpp rename to src/coreclr/md/hotdata/hottable.cpp diff --git a/src/coreclr/src/md/hotdata/hottable.h b/src/coreclr/md/hotdata/hottable.h similarity index 100% rename from src/coreclr/src/md/hotdata/hottable.h rename to src/coreclr/md/hotdata/hottable.h diff --git a/src/coreclr/src/md/inc/VerifyLayouts.inc b/src/coreclr/md/inc/VerifyLayouts.inc similarity index 100% rename from src/coreclr/src/md/inc/VerifyLayouts.inc rename to src/coreclr/md/inc/VerifyLayouts.inc diff --git a/src/coreclr/src/md/inc/assemblymdinternaldisp.h b/src/coreclr/md/inc/assemblymdinternaldisp.h similarity index 100% rename from src/coreclr/src/md/inc/assemblymdinternaldisp.h rename to src/coreclr/md/inc/assemblymdinternaldisp.h diff --git a/src/coreclr/src/md/inc/cahlprinternal.h b/src/coreclr/md/inc/cahlprinternal.h similarity index 100% rename from src/coreclr/src/md/inc/cahlprinternal.h rename to src/coreclr/md/inc/cahlprinternal.h diff --git a/src/coreclr/src/md/inc/liteweightstgdb.h b/src/coreclr/md/inc/liteweightstgdb.h similarity index 100% rename from src/coreclr/src/md/inc/liteweightstgdb.h rename to src/coreclr/md/inc/liteweightstgdb.h diff --git a/src/coreclr/src/md/inc/mdcolumndescriptors.h b/src/coreclr/md/inc/mdcolumndescriptors.h similarity index 100% rename from src/coreclr/src/md/inc/mdcolumndescriptors.h rename to src/coreclr/md/inc/mdcolumndescriptors.h diff --git a/src/coreclr/src/md/inc/mdinternalrw.h b/src/coreclr/md/inc/mdinternalrw.h similarity index 100% rename from src/coreclr/src/md/inc/mdinternalrw.h rename to src/coreclr/md/inc/mdinternalrw.h diff --git a/src/coreclr/src/md/inc/mdlog.h b/src/coreclr/md/inc/mdlog.h similarity index 100% rename from src/coreclr/src/md/inc/mdlog.h rename to src/coreclr/md/inc/mdlog.h diff --git a/src/coreclr/src/md/inc/metadatahash.h b/src/coreclr/md/inc/metadatahash.h similarity index 100% rename from src/coreclr/src/md/inc/metadatahash.h rename to src/coreclr/md/inc/metadatahash.h diff --git a/src/coreclr/src/md/inc/metamodel.h b/src/coreclr/md/inc/metamodel.h similarity index 100% rename from src/coreclr/src/md/inc/metamodel.h rename to src/coreclr/md/inc/metamodel.h diff --git a/src/coreclr/src/md/inc/metamodelro.h b/src/coreclr/md/inc/metamodelro.h similarity index 100% rename from src/coreclr/src/md/inc/metamodelro.h rename to src/coreclr/md/inc/metamodelro.h diff --git a/src/coreclr/src/md/inc/metamodelrw.h b/src/coreclr/md/inc/metamodelrw.h similarity index 100% rename from src/coreclr/src/md/inc/metamodelrw.h rename to src/coreclr/md/inc/metamodelrw.h diff --git a/src/coreclr/src/md/inc/pdbheap.h b/src/coreclr/md/inc/pdbheap.h similarity index 100% rename from src/coreclr/src/md/inc/pdbheap.h rename to src/coreclr/md/inc/pdbheap.h diff --git a/src/coreclr/src/md/inc/portablepdbmdds.h b/src/coreclr/md/inc/portablepdbmdds.h similarity index 100% rename from src/coreclr/src/md/inc/portablepdbmdds.h rename to src/coreclr/md/inc/portablepdbmdds.h diff --git a/src/coreclr/src/md/inc/portablepdbmdi.h b/src/coreclr/md/inc/portablepdbmdi.h similarity index 100% rename from src/coreclr/src/md/inc/portablepdbmdi.h rename to src/coreclr/md/inc/portablepdbmdi.h diff --git a/src/coreclr/src/md/inc/recordpool.h b/src/coreclr/md/inc/recordpool.h similarity index 100% rename from src/coreclr/src/md/inc/recordpool.h rename to src/coreclr/md/inc/recordpool.h diff --git a/src/coreclr/src/md/inc/rwutil.h b/src/coreclr/md/inc/rwutil.h similarity index 100% rename from src/coreclr/src/md/inc/rwutil.h rename to src/coreclr/md/inc/rwutil.h diff --git a/src/coreclr/src/md/inc/stgio.h b/src/coreclr/md/inc/stgio.h similarity index 100% rename from src/coreclr/src/md/inc/stgio.h rename to src/coreclr/md/inc/stgio.h diff --git a/src/coreclr/src/md/inc/stgtiggerstorage.h b/src/coreclr/md/inc/stgtiggerstorage.h similarity index 100% rename from src/coreclr/src/md/inc/stgtiggerstorage.h rename to src/coreclr/md/inc/stgtiggerstorage.h diff --git a/src/coreclr/src/md/inc/stgtiggerstream.h b/src/coreclr/md/inc/stgtiggerstream.h similarity index 100% rename from src/coreclr/src/md/inc/stgtiggerstream.h rename to src/coreclr/md/inc/stgtiggerstream.h diff --git a/src/coreclr/src/md/inc/streamutil.h b/src/coreclr/md/inc/streamutil.h similarity index 100% rename from src/coreclr/src/md/inc/streamutil.h rename to src/coreclr/md/inc/streamutil.h diff --git a/src/coreclr/src/md/inc/verifylayouts.h b/src/coreclr/md/inc/verifylayouts.h similarity index 100% rename from src/coreclr/src/md/inc/verifylayouts.h rename to src/coreclr/md/inc/verifylayouts.h diff --git a/src/coreclr/src/md/runtime/CMakeLists.txt b/src/coreclr/md/runtime/CMakeLists.txt similarity index 100% rename from src/coreclr/src/md/runtime/CMakeLists.txt rename to src/coreclr/md/runtime/CMakeLists.txt diff --git a/src/coreclr/src/md/runtime/liteweightstgdb.cpp b/src/coreclr/md/runtime/liteweightstgdb.cpp similarity index 100% rename from src/coreclr/src/md/runtime/liteweightstgdb.cpp rename to src/coreclr/md/runtime/liteweightstgdb.cpp diff --git a/src/coreclr/src/md/runtime/mdcolumndescriptors.cpp b/src/coreclr/md/runtime/mdcolumndescriptors.cpp similarity index 100% rename from src/coreclr/src/md/runtime/mdcolumndescriptors.cpp rename to src/coreclr/md/runtime/mdcolumndescriptors.cpp diff --git a/src/coreclr/src/md/runtime/mdfileformat.cpp b/src/coreclr/md/runtime/mdfileformat.cpp similarity index 100% rename from src/coreclr/src/md/runtime/mdfileformat.cpp rename to src/coreclr/md/runtime/mdfileformat.cpp diff --git a/src/coreclr/src/md/runtime/mdinternaldisp.cpp b/src/coreclr/md/runtime/mdinternaldisp.cpp similarity index 100% rename from src/coreclr/src/md/runtime/mdinternaldisp.cpp rename to src/coreclr/md/runtime/mdinternaldisp.cpp diff --git a/src/coreclr/src/md/runtime/mdinternaldisp.h b/src/coreclr/md/runtime/mdinternaldisp.h similarity index 100% rename from src/coreclr/src/md/runtime/mdinternaldisp.h rename to src/coreclr/md/runtime/mdinternaldisp.h diff --git a/src/coreclr/src/md/runtime/mdinternalro.cpp b/src/coreclr/md/runtime/mdinternalro.cpp similarity index 100% rename from src/coreclr/src/md/runtime/mdinternalro.cpp rename to src/coreclr/md/runtime/mdinternalro.cpp diff --git a/src/coreclr/src/md/runtime/mdinternalro.h b/src/coreclr/md/runtime/mdinternalro.h similarity index 100% rename from src/coreclr/src/md/runtime/mdinternalro.h rename to src/coreclr/md/runtime/mdinternalro.h diff --git a/src/coreclr/src/md/runtime/metamodel.cpp b/src/coreclr/md/runtime/metamodel.cpp similarity index 100% rename from src/coreclr/src/md/runtime/metamodel.cpp rename to src/coreclr/md/runtime/metamodel.cpp diff --git a/src/coreclr/src/md/runtime/metamodelcolumndefs.h b/src/coreclr/md/runtime/metamodelcolumndefs.h similarity index 100% rename from src/coreclr/src/md/runtime/metamodelcolumndefs.h rename to src/coreclr/md/runtime/metamodelcolumndefs.h diff --git a/src/coreclr/src/md/runtime/metamodelro.cpp b/src/coreclr/md/runtime/metamodelro.cpp similarity index 100% rename from src/coreclr/src/md/runtime/metamodelro.cpp rename to src/coreclr/md/runtime/metamodelro.cpp diff --git a/src/coreclr/src/md/runtime/recordpool.cpp b/src/coreclr/md/runtime/recordpool.cpp similarity index 100% rename from src/coreclr/src/md/runtime/recordpool.cpp rename to src/coreclr/md/runtime/recordpool.cpp diff --git a/src/coreclr/src/md/runtime/stdafx.h b/src/coreclr/md/runtime/stdafx.h similarity index 100% rename from src/coreclr/src/md/runtime/stdafx.h rename to src/coreclr/md/runtime/stdafx.h diff --git a/src/coreclr/src/md/runtime/strongnameinternal.cpp b/src/coreclr/md/runtime/strongnameinternal.cpp similarity index 100% rename from src/coreclr/src/md/runtime/strongnameinternal.cpp rename to src/coreclr/md/runtime/strongnameinternal.cpp diff --git a/src/coreclr/src/md/staticmd/CMakeLists.txt b/src/coreclr/md/staticmd/CMakeLists.txt similarity index 100% rename from src/coreclr/src/md/staticmd/CMakeLists.txt rename to src/coreclr/md/staticmd/CMakeLists.txt diff --git a/src/coreclr/src/md/staticmd/apis.cpp b/src/coreclr/md/staticmd/apis.cpp similarity index 100% rename from src/coreclr/src/md/staticmd/apis.cpp rename to src/coreclr/md/staticmd/apis.cpp diff --git a/src/coreclr/src/md/staticmd/stdafx.h b/src/coreclr/md/staticmd/stdafx.h similarity index 100% rename from src/coreclr/src/md/staticmd/stdafx.h rename to src/coreclr/md/staticmd/stdafx.h diff --git a/src/coreclr/src/md/tables/export.h b/src/coreclr/md/tables/export.h similarity index 100% rename from src/coreclr/src/md/tables/export.h rename to src/coreclr/md/tables/export.h diff --git a/src/coreclr/src/md/tables/external.h b/src/coreclr/md/tables/external.h similarity index 100% rename from src/coreclr/src/md/tables/external.h rename to src/coreclr/md/tables/external.h diff --git a/src/coreclr/src/md/tables/table.h b/src/coreclr/md/tables/table.h similarity index 100% rename from src/coreclr/src/md/tables/table.h rename to src/coreclr/md/tables/table.h diff --git a/src/coreclr/src/nativeresources/CMakeLists.txt b/src/coreclr/nativeresources/CMakeLists.txt similarity index 100% rename from src/coreclr/src/nativeresources/CMakeLists.txt rename to src/coreclr/nativeresources/CMakeLists.txt diff --git a/src/coreclr/src/nativeresources/processrc.awk b/src/coreclr/nativeresources/processrc.awk similarity index 100% rename from src/coreclr/src/nativeresources/processrc.awk rename to src/coreclr/nativeresources/processrc.awk diff --git a/src/coreclr/src/nativeresources/rctocpp.awk b/src/coreclr/nativeresources/rctocpp.awk similarity index 100% rename from src/coreclr/src/nativeresources/rctocpp.awk rename to src/coreclr/nativeresources/rctocpp.awk diff --git a/src/coreclr/src/nativeresources/rctopo.awk b/src/coreclr/nativeresources/rctopo.awk similarity index 100% rename from src/coreclr/src/nativeresources/rctopo.awk rename to src/coreclr/nativeresources/rctopo.awk diff --git a/src/coreclr/src/nativeresources/resourcestring.cpp b/src/coreclr/nativeresources/resourcestring.cpp similarity index 100% rename from src/coreclr/src/nativeresources/resourcestring.cpp rename to src/coreclr/nativeresources/resourcestring.cpp diff --git a/src/coreclr/src/nativeresources/resourcestring.h b/src/coreclr/nativeresources/resourcestring.h similarity index 100% rename from src/coreclr/src/nativeresources/resourcestring.h rename to src/coreclr/nativeresources/resourcestring.h diff --git a/src/coreclr/src/pal/CMakeLists.txt b/src/coreclr/pal/CMakeLists.txt similarity index 90% rename from src/coreclr/src/pal/CMakeLists.txt rename to src/coreclr/pal/CMakeLists.txt index ca4a35da8619a..dec1191a323db 100644 --- a/src/coreclr/src/pal/CMakeLists.txt +++ b/src/coreclr/pal/CMakeLists.txt @@ -1,6 +1,6 @@ project(COREPAL) -include(../../clrfeatures.cmake) +include(../clrfeatures.cmake) include_directories(${COREPAL_SOURCE_DIR}/inc) include_directories(${COREPAL_SOURCE_DIR}/src) diff --git a/src/coreclr/src/pal/inc/mbusafecrt.h b/src/coreclr/pal/inc/mbusafecrt.h similarity index 100% rename from src/coreclr/src/pal/inc/mbusafecrt.h rename to src/coreclr/pal/inc/mbusafecrt.h diff --git a/src/coreclr/src/pal/inc/pal.h b/src/coreclr/pal/inc/pal.h similarity index 100% rename from src/coreclr/src/pal/inc/pal.h rename to src/coreclr/pal/inc/pal.h diff --git a/src/coreclr/src/pal/inc/pal_assert.h b/src/coreclr/pal/inc/pal_assert.h similarity index 100% rename from src/coreclr/src/pal/inc/pal_assert.h rename to src/coreclr/pal/inc/pal_assert.h diff --git a/src/coreclr/src/pal/inc/pal_endian.h b/src/coreclr/pal/inc/pal_endian.h similarity index 100% rename from src/coreclr/src/pal/inc/pal_endian.h rename to src/coreclr/pal/inc/pal_endian.h diff --git a/src/coreclr/src/pal/inc/pal_error.h b/src/coreclr/pal/inc/pal_error.h similarity index 100% rename from src/coreclr/src/pal/inc/pal_error.h rename to src/coreclr/pal/inc/pal_error.h diff --git a/src/coreclr/src/pal/inc/pal_mstypes.h b/src/coreclr/pal/inc/pal_mstypes.h similarity index 100% rename from src/coreclr/src/pal/inc/pal_mstypes.h rename to src/coreclr/pal/inc/pal_mstypes.h diff --git a/src/coreclr/src/pal/inc/palprivate.h b/src/coreclr/pal/inc/palprivate.h similarity index 100% rename from src/coreclr/src/pal/inc/palprivate.h rename to src/coreclr/pal/inc/palprivate.h diff --git a/src/coreclr/src/pal/inc/rt/aclapi.h b/src/coreclr/pal/inc/rt/aclapi.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/aclapi.h rename to src/coreclr/pal/inc/rt/aclapi.h diff --git a/src/coreclr/src/pal/inc/rt/commctrl.h b/src/coreclr/pal/inc/rt/commctrl.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/commctrl.h rename to src/coreclr/pal/inc/rt/commctrl.h diff --git a/src/coreclr/src/pal/inc/rt/commdlg.h b/src/coreclr/pal/inc/rt/commdlg.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/commdlg.h rename to src/coreclr/pal/inc/rt/commdlg.h diff --git a/src/coreclr/src/pal/inc/rt/conio.h b/src/coreclr/pal/inc/rt/conio.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/conio.h rename to src/coreclr/pal/inc/rt/conio.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/assert.h b/src/coreclr/pal/inc/rt/cpp/assert.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/assert.h rename to src/coreclr/pal/inc/rt/cpp/assert.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/cstdlib b/src/coreclr/pal/inc/rt/cpp/cstdlib similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/cstdlib rename to src/coreclr/pal/inc/rt/cpp/cstdlib diff --git a/src/coreclr/src/pal/inc/rt/cpp/ctype.h b/src/coreclr/pal/inc/rt/cpp/ctype.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/ctype.h rename to src/coreclr/pal/inc/rt/cpp/ctype.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/emmintrin.h b/src/coreclr/pal/inc/rt/cpp/emmintrin.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/emmintrin.h rename to src/coreclr/pal/inc/rt/cpp/emmintrin.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/fcntl.h b/src/coreclr/pal/inc/rt/cpp/fcntl.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/fcntl.h rename to src/coreclr/pal/inc/rt/cpp/fcntl.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/float.h b/src/coreclr/pal/inc/rt/cpp/float.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/float.h rename to src/coreclr/pal/inc/rt/cpp/float.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/io.h b/src/coreclr/pal/inc/rt/cpp/io.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/io.h rename to src/coreclr/pal/inc/rt/cpp/io.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/limits.h b/src/coreclr/pal/inc/rt/cpp/limits.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/limits.h rename to src/coreclr/pal/inc/rt/cpp/limits.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/malloc.h b/src/coreclr/pal/inc/rt/cpp/malloc.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/malloc.h rename to src/coreclr/pal/inc/rt/cpp/malloc.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/math.h b/src/coreclr/pal/inc/rt/cpp/math.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/math.h rename to src/coreclr/pal/inc/rt/cpp/math.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/memory.h b/src/coreclr/pal/inc/rt/cpp/memory.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/memory.h rename to src/coreclr/pal/inc/rt/cpp/memory.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/stdarg.h b/src/coreclr/pal/inc/rt/cpp/stdarg.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/stdarg.h rename to src/coreclr/pal/inc/rt/cpp/stdarg.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/stddef.h b/src/coreclr/pal/inc/rt/cpp/stddef.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/stddef.h rename to src/coreclr/pal/inc/rt/cpp/stddef.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/stdint.h b/src/coreclr/pal/inc/rt/cpp/stdint.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/stdint.h rename to src/coreclr/pal/inc/rt/cpp/stdint.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/stdio.h b/src/coreclr/pal/inc/rt/cpp/stdio.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/stdio.h rename to src/coreclr/pal/inc/rt/cpp/stdio.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/stdlib.h b/src/coreclr/pal/inc/rt/cpp/stdlib.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/stdlib.h rename to src/coreclr/pal/inc/rt/cpp/stdlib.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/string.h b/src/coreclr/pal/inc/rt/cpp/string.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/string.h rename to src/coreclr/pal/inc/rt/cpp/string.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/time.h b/src/coreclr/pal/inc/rt/cpp/time.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/time.h rename to src/coreclr/pal/inc/rt/cpp/time.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/wchar.h b/src/coreclr/pal/inc/rt/cpp/wchar.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/wchar.h rename to src/coreclr/pal/inc/rt/cpp/wchar.h diff --git a/src/coreclr/src/pal/inc/rt/cpp/xmmintrin.h b/src/coreclr/pal/inc/rt/cpp/xmmintrin.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/cpp/xmmintrin.h rename to src/coreclr/pal/inc/rt/cpp/xmmintrin.h diff --git a/src/coreclr/src/pal/inc/rt/crtdbg.h b/src/coreclr/pal/inc/rt/crtdbg.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/crtdbg.h rename to src/coreclr/pal/inc/rt/crtdbg.h diff --git a/src/coreclr/src/pal/inc/rt/dbghelp.h b/src/coreclr/pal/inc/rt/dbghelp.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/dbghelp.h rename to src/coreclr/pal/inc/rt/dbghelp.h diff --git a/src/coreclr/src/pal/inc/rt/eh.h b/src/coreclr/pal/inc/rt/eh.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/eh.h rename to src/coreclr/pal/inc/rt/eh.h diff --git a/src/coreclr/src/pal/inc/rt/errorrep.h b/src/coreclr/pal/inc/rt/errorrep.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/errorrep.h rename to src/coreclr/pal/inc/rt/errorrep.h diff --git a/src/coreclr/src/pal/inc/rt/guiddef.h b/src/coreclr/pal/inc/rt/guiddef.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/guiddef.h rename to src/coreclr/pal/inc/rt/guiddef.h diff --git a/src/coreclr/src/pal/inc/rt/htmlhelp.h b/src/coreclr/pal/inc/rt/htmlhelp.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/htmlhelp.h rename to src/coreclr/pal/inc/rt/htmlhelp.h diff --git a/src/coreclr/src/pal/inc/rt/imagehlp.h b/src/coreclr/pal/inc/rt/imagehlp.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/imagehlp.h rename to src/coreclr/pal/inc/rt/imagehlp.h diff --git a/src/coreclr/src/pal/inc/rt/intrin.h b/src/coreclr/pal/inc/rt/intrin.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/intrin.h rename to src/coreclr/pal/inc/rt/intrin.h diff --git a/src/coreclr/src/pal/inc/rt/intsafe.h b/src/coreclr/pal/inc/rt/intsafe.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/intsafe.h rename to src/coreclr/pal/inc/rt/intsafe.h diff --git a/src/coreclr/src/pal/inc/rt/new.h b/src/coreclr/pal/inc/rt/new.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/new.h rename to src/coreclr/pal/inc/rt/new.h diff --git a/src/coreclr/src/pal/inc/rt/no_sal2.h b/src/coreclr/pal/inc/rt/no_sal2.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/no_sal2.h rename to src/coreclr/pal/inc/rt/no_sal2.h diff --git a/src/coreclr/src/pal/inc/rt/ntimage.h b/src/coreclr/pal/inc/rt/ntimage.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/ntimage.h rename to src/coreclr/pal/inc/rt/ntimage.h diff --git a/src/coreclr/src/pal/inc/rt/oaidl.h b/src/coreclr/pal/inc/rt/oaidl.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/oaidl.h rename to src/coreclr/pal/inc/rt/oaidl.h diff --git a/src/coreclr/src/pal/inc/rt/objbase.h b/src/coreclr/pal/inc/rt/objbase.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/objbase.h rename to src/coreclr/pal/inc/rt/objbase.h diff --git a/src/coreclr/src/pal/inc/rt/objidl.h b/src/coreclr/pal/inc/rt/objidl.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/objidl.h rename to src/coreclr/pal/inc/rt/objidl.h diff --git a/src/coreclr/src/pal/inc/rt/ocidl.h b/src/coreclr/pal/inc/rt/ocidl.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/ocidl.h rename to src/coreclr/pal/inc/rt/ocidl.h diff --git a/src/coreclr/src/pal/inc/rt/ole2.h b/src/coreclr/pal/inc/rt/ole2.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/ole2.h rename to src/coreclr/pal/inc/rt/ole2.h diff --git a/src/coreclr/src/pal/inc/rt/oleauto.h b/src/coreclr/pal/inc/rt/oleauto.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/oleauto.h rename to src/coreclr/pal/inc/rt/oleauto.h diff --git a/src/coreclr/src/pal/inc/rt/olectl.h b/src/coreclr/pal/inc/rt/olectl.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/olectl.h rename to src/coreclr/pal/inc/rt/olectl.h diff --git a/src/coreclr/src/pal/inc/rt/palrt.h b/src/coreclr/pal/inc/rt/palrt.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/palrt.h rename to src/coreclr/pal/inc/rt/palrt.h diff --git a/src/coreclr/src/pal/inc/rt/poppack.h b/src/coreclr/pal/inc/rt/poppack.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/poppack.h rename to src/coreclr/pal/inc/rt/poppack.h diff --git a/src/coreclr/src/pal/inc/rt/process.h b/src/coreclr/pal/inc/rt/process.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/process.h rename to src/coreclr/pal/inc/rt/process.h diff --git a/src/coreclr/src/pal/inc/rt/psapi.h b/src/coreclr/pal/inc/rt/psapi.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/psapi.h rename to src/coreclr/pal/inc/rt/psapi.h diff --git a/src/coreclr/src/pal/inc/rt/pshpack1.h b/src/coreclr/pal/inc/rt/pshpack1.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/pshpack1.h rename to src/coreclr/pal/inc/rt/pshpack1.h diff --git a/src/coreclr/src/pal/inc/rt/pshpack2.h b/src/coreclr/pal/inc/rt/pshpack2.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/pshpack2.h rename to src/coreclr/pal/inc/rt/pshpack2.h diff --git a/src/coreclr/src/pal/inc/rt/pshpack4.h b/src/coreclr/pal/inc/rt/pshpack4.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/pshpack4.h rename to src/coreclr/pal/inc/rt/pshpack4.h diff --git a/src/coreclr/src/pal/inc/rt/pshpack8.h b/src/coreclr/pal/inc/rt/pshpack8.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/pshpack8.h rename to src/coreclr/pal/inc/rt/pshpack8.h diff --git a/src/coreclr/src/pal/inc/rt/richedit.h b/src/coreclr/pal/inc/rt/richedit.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/richedit.h rename to src/coreclr/pal/inc/rt/richedit.h diff --git a/src/coreclr/src/pal/inc/rt/rpc.h b/src/coreclr/pal/inc/rt/rpc.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/rpc.h rename to src/coreclr/pal/inc/rt/rpc.h diff --git a/src/coreclr/src/pal/inc/rt/rpcndr.h b/src/coreclr/pal/inc/rt/rpcndr.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/rpcndr.h rename to src/coreclr/pal/inc/rt/rpcndr.h diff --git a/src/coreclr/src/pal/inc/rt/safecrt.h b/src/coreclr/pal/inc/rt/safecrt.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/safecrt.h rename to src/coreclr/pal/inc/rt/safecrt.h diff --git a/src/coreclr/src/pal/inc/rt/sal.h b/src/coreclr/pal/inc/rt/sal.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/sal.h rename to src/coreclr/pal/inc/rt/sal.h diff --git a/src/coreclr/src/pal/inc/rt/servprov.h b/src/coreclr/pal/inc/rt/servprov.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/servprov.h rename to src/coreclr/pal/inc/rt/servprov.h diff --git a/src/coreclr/src/pal/inc/rt/share.h b/src/coreclr/pal/inc/rt/share.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/share.h rename to src/coreclr/pal/inc/rt/share.h diff --git a/src/coreclr/src/pal/inc/rt/shellapi.h b/src/coreclr/pal/inc/rt/shellapi.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/shellapi.h rename to src/coreclr/pal/inc/rt/shellapi.h diff --git a/src/coreclr/src/pal/inc/rt/shlobj.h b/src/coreclr/pal/inc/rt/shlobj.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/shlobj.h rename to src/coreclr/pal/inc/rt/shlobj.h diff --git a/src/coreclr/src/pal/inc/rt/shlwapi.h b/src/coreclr/pal/inc/rt/shlwapi.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/shlwapi.h rename to src/coreclr/pal/inc/rt/shlwapi.h diff --git a/src/coreclr/src/pal/inc/rt/specstrings.h b/src/coreclr/pal/inc/rt/specstrings.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/specstrings.h rename to src/coreclr/pal/inc/rt/specstrings.h diff --git a/src/coreclr/src/pal/inc/rt/specstrings_strict.h b/src/coreclr/pal/inc/rt/specstrings_strict.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/specstrings_strict.h rename to src/coreclr/pal/inc/rt/specstrings_strict.h diff --git a/src/coreclr/src/pal/inc/rt/specstrings_undef.h b/src/coreclr/pal/inc/rt/specstrings_undef.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/specstrings_undef.h rename to src/coreclr/pal/inc/rt/specstrings_undef.h diff --git a/src/coreclr/src/pal/inc/rt/tchar.h b/src/coreclr/pal/inc/rt/tchar.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/tchar.h rename to src/coreclr/pal/inc/rt/tchar.h diff --git a/src/coreclr/src/pal/inc/rt/tlhelp32.h b/src/coreclr/pal/inc/rt/tlhelp32.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/tlhelp32.h rename to src/coreclr/pal/inc/rt/tlhelp32.h diff --git a/src/coreclr/src/pal/inc/rt/unknwn.h b/src/coreclr/pal/inc/rt/unknwn.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/unknwn.h rename to src/coreclr/pal/inc/rt/unknwn.h diff --git a/src/coreclr/src/pal/inc/rt/urlmon.h b/src/coreclr/pal/inc/rt/urlmon.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/urlmon.h rename to src/coreclr/pal/inc/rt/urlmon.h diff --git a/src/coreclr/src/pal/inc/rt/verrsrc.h b/src/coreclr/pal/inc/rt/verrsrc.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/verrsrc.h rename to src/coreclr/pal/inc/rt/verrsrc.h diff --git a/src/coreclr/src/pal/inc/rt/winapifamily.h b/src/coreclr/pal/inc/rt/winapifamily.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/winapifamily.h rename to src/coreclr/pal/inc/rt/winapifamily.h diff --git a/src/coreclr/src/pal/inc/rt/winbase.h b/src/coreclr/pal/inc/rt/winbase.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/winbase.h rename to src/coreclr/pal/inc/rt/winbase.h diff --git a/src/coreclr/src/pal/inc/rt/wincrypt.h b/src/coreclr/pal/inc/rt/wincrypt.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/wincrypt.h rename to src/coreclr/pal/inc/rt/wincrypt.h diff --git a/src/coreclr/src/pal/inc/rt/windef.h b/src/coreclr/pal/inc/rt/windef.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/windef.h rename to src/coreclr/pal/inc/rt/windef.h diff --git a/src/coreclr/src/pal/inc/rt/windows.h b/src/coreclr/pal/inc/rt/windows.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/windows.h rename to src/coreclr/pal/inc/rt/windows.h diff --git a/src/coreclr/src/pal/inc/rt/winerror.h b/src/coreclr/pal/inc/rt/winerror.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/winerror.h rename to src/coreclr/pal/inc/rt/winerror.h diff --git a/src/coreclr/src/pal/inc/rt/wininet.h b/src/coreclr/pal/inc/rt/wininet.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/wininet.h rename to src/coreclr/pal/inc/rt/wininet.h diff --git a/src/coreclr/src/pal/inc/rt/winnls.h b/src/coreclr/pal/inc/rt/winnls.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/winnls.h rename to src/coreclr/pal/inc/rt/winnls.h diff --git a/src/coreclr/src/pal/inc/rt/winnt.h b/src/coreclr/pal/inc/rt/winnt.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/winnt.h rename to src/coreclr/pal/inc/rt/winnt.h diff --git a/src/coreclr/src/pal/inc/rt/winresrc.h b/src/coreclr/pal/inc/rt/winresrc.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/winresrc.h rename to src/coreclr/pal/inc/rt/winresrc.h diff --git a/src/coreclr/src/pal/inc/rt/winternl.h b/src/coreclr/pal/inc/rt/winternl.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/winternl.h rename to src/coreclr/pal/inc/rt/winternl.h diff --git a/src/coreclr/src/pal/inc/rt/winuser.h b/src/coreclr/pal/inc/rt/winuser.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/winuser.h rename to src/coreclr/pal/inc/rt/winuser.h diff --git a/src/coreclr/src/pal/inc/rt/winver.h b/src/coreclr/pal/inc/rt/winver.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/winver.h rename to src/coreclr/pal/inc/rt/winver.h diff --git a/src/coreclr/src/pal/inc/rt/wtsapi32.h b/src/coreclr/pal/inc/rt/wtsapi32.h similarity index 100% rename from src/coreclr/src/pal/inc/rt/wtsapi32.h rename to src/coreclr/pal/inc/rt/wtsapi32.h diff --git a/src/coreclr/src/pal/inc/strsafe.h b/src/coreclr/pal/inc/strsafe.h similarity index 100% rename from src/coreclr/src/pal/inc/strsafe.h rename to src/coreclr/pal/inc/strsafe.h diff --git a/src/coreclr/src/pal/inc/unixasmmacros.inc b/src/coreclr/pal/inc/unixasmmacros.inc similarity index 100% rename from src/coreclr/src/pal/inc/unixasmmacros.inc rename to src/coreclr/pal/inc/unixasmmacros.inc diff --git a/src/coreclr/src/pal/inc/unixasmmacrosamd64.inc b/src/coreclr/pal/inc/unixasmmacrosamd64.inc similarity index 100% rename from src/coreclr/src/pal/inc/unixasmmacrosamd64.inc rename to src/coreclr/pal/inc/unixasmmacrosamd64.inc diff --git a/src/coreclr/src/pal/inc/unixasmmacrosarm.inc b/src/coreclr/pal/inc/unixasmmacrosarm.inc similarity index 100% rename from src/coreclr/src/pal/inc/unixasmmacrosarm.inc rename to src/coreclr/pal/inc/unixasmmacrosarm.inc diff --git a/src/coreclr/src/pal/inc/unixasmmacrosarm64.inc b/src/coreclr/pal/inc/unixasmmacrosarm64.inc similarity index 100% rename from src/coreclr/src/pal/inc/unixasmmacrosarm64.inc rename to src/coreclr/pal/inc/unixasmmacrosarm64.inc diff --git a/src/coreclr/src/pal/inc/unixasmmacrosx86.inc b/src/coreclr/pal/inc/unixasmmacrosx86.inc similarity index 100% rename from src/coreclr/src/pal/inc/unixasmmacrosx86.inc rename to src/coreclr/pal/inc/unixasmmacrosx86.inc diff --git a/src/coreclr/src/pal/prebuilt/corerror/makecorerror.bat b/src/coreclr/pal/prebuilt/corerror/makecorerror.bat similarity index 100% rename from src/coreclr/src/pal/prebuilt/corerror/makecorerror.bat rename to src/coreclr/pal/prebuilt/corerror/makecorerror.bat diff --git a/src/coreclr/src/pal/prebuilt/corerror/mscorurt.rc b/src/coreclr/pal/prebuilt/corerror/mscorurt.rc similarity index 100% rename from src/coreclr/src/pal/prebuilt/corerror/mscorurt.rc rename to src/coreclr/pal/prebuilt/corerror/mscorurt.rc diff --git a/src/coreclr/src/pal/prebuilt/corerror/readme.txt b/src/coreclr/pal/prebuilt/corerror/readme.txt similarity index 100% rename from src/coreclr/src/pal/prebuilt/corerror/readme.txt rename to src/coreclr/pal/prebuilt/corerror/readme.txt diff --git a/src/coreclr/src/pal/prebuilt/idl/clrdata_i.cpp b/src/coreclr/pal/prebuilt/idl/clrdata_i.cpp similarity index 100% rename from src/coreclr/src/pal/prebuilt/idl/clrdata_i.cpp rename to src/coreclr/pal/prebuilt/idl/clrdata_i.cpp diff --git a/src/coreclr/src/pal/prebuilt/idl/clrinternal_i.cpp b/src/coreclr/pal/prebuilt/idl/clrinternal_i.cpp similarity index 100% rename from src/coreclr/src/pal/prebuilt/idl/clrinternal_i.cpp rename to src/coreclr/pal/prebuilt/idl/clrinternal_i.cpp diff --git a/src/coreclr/src/pal/prebuilt/idl/clrprivappxhosting_i.cpp b/src/coreclr/pal/prebuilt/idl/clrprivappxhosting_i.cpp similarity index 100% rename from src/coreclr/src/pal/prebuilt/idl/clrprivappxhosting_i.cpp rename to src/coreclr/pal/prebuilt/idl/clrprivappxhosting_i.cpp diff --git a/src/coreclr/src/pal/prebuilt/idl/clrprivbinding_i.cpp b/src/coreclr/pal/prebuilt/idl/clrprivbinding_i.cpp similarity index 100% rename from src/coreclr/src/pal/prebuilt/idl/clrprivbinding_i.cpp rename to src/coreclr/pal/prebuilt/idl/clrprivbinding_i.cpp diff --git a/src/coreclr/src/pal/prebuilt/idl/cordebug_i.cpp b/src/coreclr/pal/prebuilt/idl/cordebug_i.cpp similarity index 100% rename from src/coreclr/src/pal/prebuilt/idl/cordebug_i.cpp rename to src/coreclr/pal/prebuilt/idl/cordebug_i.cpp diff --git a/src/coreclr/src/pal/prebuilt/idl/corprof_i.cpp b/src/coreclr/pal/prebuilt/idl/corprof_i.cpp similarity index 100% rename from src/coreclr/src/pal/prebuilt/idl/corprof_i.cpp rename to src/coreclr/pal/prebuilt/idl/corprof_i.cpp diff --git a/src/coreclr/src/pal/prebuilt/idl/corpub_i.cpp b/src/coreclr/pal/prebuilt/idl/corpub_i.cpp similarity index 100% rename from src/coreclr/src/pal/prebuilt/idl/corpub_i.cpp rename to src/coreclr/pal/prebuilt/idl/corpub_i.cpp diff --git a/src/coreclr/src/pal/prebuilt/idl/corsym_i.cpp b/src/coreclr/pal/prebuilt/idl/corsym_i.cpp similarity index 100% rename from src/coreclr/src/pal/prebuilt/idl/corsym_i.cpp rename to src/coreclr/pal/prebuilt/idl/corsym_i.cpp diff --git a/src/coreclr/src/pal/prebuilt/idl/mscorsvc_i.cpp b/src/coreclr/pal/prebuilt/idl/mscorsvc_i.cpp similarity index 100% rename from src/coreclr/src/pal/prebuilt/idl/mscorsvc_i.cpp rename to src/coreclr/pal/prebuilt/idl/mscorsvc_i.cpp diff --git a/src/coreclr/src/pal/prebuilt/idl/sospriv_i.cpp b/src/coreclr/pal/prebuilt/idl/sospriv_i.cpp similarity index 100% rename from src/coreclr/src/pal/prebuilt/idl/sospriv_i.cpp rename to src/coreclr/pal/prebuilt/idl/sospriv_i.cpp diff --git a/src/coreclr/src/pal/prebuilt/idl/xclrdata_i.cpp b/src/coreclr/pal/prebuilt/idl/xclrdata_i.cpp similarity index 100% rename from src/coreclr/src/pal/prebuilt/idl/xclrdata_i.cpp rename to src/coreclr/pal/prebuilt/idl/xclrdata_i.cpp diff --git a/src/coreclr/src/pal/prebuilt/idl/xcordebug_i.cpp b/src/coreclr/pal/prebuilt/idl/xcordebug_i.cpp similarity index 100% rename from src/coreclr/src/pal/prebuilt/idl/xcordebug_i.cpp rename to src/coreclr/pal/prebuilt/idl/xcordebug_i.cpp diff --git a/src/coreclr/src/pal/prebuilt/inc/CMakeLists.txt b/src/coreclr/pal/prebuilt/inc/CMakeLists.txt similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/CMakeLists.txt rename to src/coreclr/pal/prebuilt/inc/CMakeLists.txt diff --git a/src/coreclr/src/pal/prebuilt/inc/clrdata.h b/src/coreclr/pal/prebuilt/inc/clrdata.h similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/clrdata.h rename to src/coreclr/pal/prebuilt/inc/clrdata.h diff --git a/src/coreclr/src/pal/prebuilt/inc/clrinternal.h b/src/coreclr/pal/prebuilt/inc/clrinternal.h similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/clrinternal.h rename to src/coreclr/pal/prebuilt/inc/clrinternal.h diff --git a/src/coreclr/src/pal/prebuilt/inc/clrprivbinding.h b/src/coreclr/pal/prebuilt/inc/clrprivbinding.h similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/clrprivbinding.h rename to src/coreclr/pal/prebuilt/inc/clrprivbinding.h diff --git a/src/coreclr/src/pal/prebuilt/inc/cordebug.h b/src/coreclr/pal/prebuilt/inc/cordebug.h similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/cordebug.h rename to src/coreclr/pal/prebuilt/inc/cordebug.h diff --git a/src/coreclr/src/pal/prebuilt/inc/corerror.h b/src/coreclr/pal/prebuilt/inc/corerror.h similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/corerror.h rename to src/coreclr/pal/prebuilt/inc/corerror.h diff --git a/src/coreclr/src/pal/prebuilt/inc/corprof.h b/src/coreclr/pal/prebuilt/inc/corprof.h similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/corprof.h rename to src/coreclr/pal/prebuilt/inc/corprof.h diff --git a/src/coreclr/src/pal/prebuilt/inc/corpub.h b/src/coreclr/pal/prebuilt/inc/corpub.h similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/corpub.h rename to src/coreclr/pal/prebuilt/inc/corpub.h diff --git a/src/coreclr/src/pal/prebuilt/inc/corsym.h b/src/coreclr/pal/prebuilt/inc/corsym.h similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/corsym.h rename to src/coreclr/pal/prebuilt/inc/corsym.h diff --git a/src/coreclr/src/pal/prebuilt/inc/fusion.h b/src/coreclr/pal/prebuilt/inc/fusion.h similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/fusion.h rename to src/coreclr/pal/prebuilt/inc/fusion.h diff --git a/src/coreclr/src/pal/prebuilt/inc/fxver.h b/src/coreclr/pal/prebuilt/inc/fxver.h similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/fxver.h rename to src/coreclr/pal/prebuilt/inc/fxver.h diff --git a/src/coreclr/src/pal/prebuilt/inc/fxver.rc b/src/coreclr/pal/prebuilt/inc/fxver.rc similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/fxver.rc rename to src/coreclr/pal/prebuilt/inc/fxver.rc diff --git a/src/coreclr/src/pal/prebuilt/inc/metahost.h b/src/coreclr/pal/prebuilt/inc/metahost.h similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/metahost.h rename to src/coreclr/pal/prebuilt/inc/metahost.h diff --git a/src/coreclr/src/pal/prebuilt/inc/mscoree.h b/src/coreclr/pal/prebuilt/inc/mscoree.h similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/mscoree.h rename to src/coreclr/pal/prebuilt/inc/mscoree.h diff --git a/src/coreclr/src/pal/prebuilt/inc/mscorsvc.h b/src/coreclr/pal/prebuilt/inc/mscorsvc.h similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/mscorsvc.h rename to src/coreclr/pal/prebuilt/inc/mscorsvc.h diff --git a/src/coreclr/src/pal/prebuilt/inc/readme.txt b/src/coreclr/pal/prebuilt/inc/readme.txt similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/readme.txt rename to src/coreclr/pal/prebuilt/inc/readme.txt diff --git a/src/coreclr/src/pal/prebuilt/inc/sospriv.h b/src/coreclr/pal/prebuilt/inc/sospriv.h similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/sospriv.h rename to src/coreclr/pal/prebuilt/inc/sospriv.h diff --git a/src/coreclr/src/pal/prebuilt/inc/xclrdata.h b/src/coreclr/pal/prebuilt/inc/xclrdata.h similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/xclrdata.h rename to src/coreclr/pal/prebuilt/inc/xclrdata.h diff --git a/src/coreclr/src/pal/prebuilt/inc/xcordebug.h b/src/coreclr/pal/prebuilt/inc/xcordebug.h similarity index 100% rename from src/coreclr/src/pal/prebuilt/inc/xcordebug.h rename to src/coreclr/pal/prebuilt/inc/xcordebug.h diff --git a/src/coreclr/src/pal/src/.tpattributes b/src/coreclr/pal/src/.tpattributes similarity index 100% rename from src/coreclr/src/pal/src/.tpattributes rename to src/coreclr/pal/src/.tpattributes diff --git a/src/coreclr/src/pal/src/CMakeLists.txt b/src/coreclr/pal/src/CMakeLists.txt similarity index 100% rename from src/coreclr/src/pal/src/CMakeLists.txt rename to src/coreclr/pal/src/CMakeLists.txt diff --git a/src/coreclr/src/pal/src/arch/amd64/activationhandlerwrapper.S b/src/coreclr/pal/src/arch/amd64/activationhandlerwrapper.S similarity index 100% rename from src/coreclr/src/pal/src/arch/amd64/activationhandlerwrapper.S rename to src/coreclr/pal/src/arch/amd64/activationhandlerwrapper.S diff --git a/src/coreclr/src/pal/src/arch/amd64/asmconstants.h b/src/coreclr/pal/src/arch/amd64/asmconstants.h similarity index 100% rename from src/coreclr/src/pal/src/arch/amd64/asmconstants.h rename to src/coreclr/pal/src/arch/amd64/asmconstants.h diff --git a/src/coreclr/src/pal/src/arch/amd64/callsignalhandlerwrapper.S b/src/coreclr/pal/src/arch/amd64/callsignalhandlerwrapper.S similarity index 100% rename from src/coreclr/src/pal/src/arch/amd64/callsignalhandlerwrapper.S rename to src/coreclr/pal/src/arch/amd64/callsignalhandlerwrapper.S diff --git a/src/coreclr/src/pal/src/arch/amd64/context.S b/src/coreclr/pal/src/arch/amd64/context.S similarity index 100% rename from src/coreclr/src/pal/src/arch/amd64/context.S rename to src/coreclr/pal/src/arch/amd64/context.S diff --git a/src/coreclr/src/pal/src/arch/amd64/context2.S b/src/coreclr/pal/src/arch/amd64/context2.S similarity index 100% rename from src/coreclr/src/pal/src/arch/amd64/context2.S rename to src/coreclr/pal/src/arch/amd64/context2.S diff --git a/src/coreclr/src/pal/src/arch/amd64/debugbreak.S b/src/coreclr/pal/src/arch/amd64/debugbreak.S similarity index 100% rename from src/coreclr/src/pal/src/arch/amd64/debugbreak.S rename to src/coreclr/pal/src/arch/amd64/debugbreak.S diff --git a/src/coreclr/src/pal/src/arch/amd64/dispatchexceptionwrapper.S b/src/coreclr/pal/src/arch/amd64/dispatchexceptionwrapper.S similarity index 100% rename from src/coreclr/src/pal/src/arch/amd64/dispatchexceptionwrapper.S rename to src/coreclr/pal/src/arch/amd64/dispatchexceptionwrapper.S diff --git a/src/coreclr/src/pal/src/arch/amd64/exceptionhelper.S b/src/coreclr/pal/src/arch/amd64/exceptionhelper.S similarity index 100% rename from src/coreclr/src/pal/src/arch/amd64/exceptionhelper.S rename to src/coreclr/pal/src/arch/amd64/exceptionhelper.S diff --git a/src/coreclr/src/pal/src/arch/amd64/processor.cpp b/src/coreclr/pal/src/arch/amd64/processor.cpp similarity index 100% rename from src/coreclr/src/pal/src/arch/amd64/processor.cpp rename to src/coreclr/pal/src/arch/amd64/processor.cpp diff --git a/src/coreclr/src/pal/src/arch/amd64/signalhandlerhelper.cpp b/src/coreclr/pal/src/arch/amd64/signalhandlerhelper.cpp similarity index 100% rename from src/coreclr/src/pal/src/arch/amd64/signalhandlerhelper.cpp rename to src/coreclr/pal/src/arch/amd64/signalhandlerhelper.cpp diff --git a/src/coreclr/src/pal/src/arch/arm/asmconstants.h b/src/coreclr/pal/src/arch/arm/asmconstants.h similarity index 100% rename from src/coreclr/src/pal/src/arch/arm/asmconstants.h rename to src/coreclr/pal/src/arch/arm/asmconstants.h diff --git a/src/coreclr/src/pal/src/arch/arm/callsignalhandlerwrapper.S b/src/coreclr/pal/src/arch/arm/callsignalhandlerwrapper.S similarity index 100% rename from src/coreclr/src/pal/src/arch/arm/callsignalhandlerwrapper.S rename to src/coreclr/pal/src/arch/arm/callsignalhandlerwrapper.S diff --git a/src/coreclr/src/pal/src/arch/arm/context2.S b/src/coreclr/pal/src/arch/arm/context2.S similarity index 100% rename from src/coreclr/src/pal/src/arch/arm/context2.S rename to src/coreclr/pal/src/arch/arm/context2.S diff --git a/src/coreclr/src/pal/src/arch/arm/debugbreak.S b/src/coreclr/pal/src/arch/arm/debugbreak.S similarity index 100% rename from src/coreclr/src/pal/src/arch/arm/debugbreak.S rename to src/coreclr/pal/src/arch/arm/debugbreak.S diff --git a/src/coreclr/src/pal/src/arch/arm/exceptionhelper.S b/src/coreclr/pal/src/arch/arm/exceptionhelper.S similarity index 100% rename from src/coreclr/src/pal/src/arch/arm/exceptionhelper.S rename to src/coreclr/pal/src/arch/arm/exceptionhelper.S diff --git a/src/coreclr/src/pal/src/arch/arm/processor.cpp b/src/coreclr/pal/src/arch/arm/processor.cpp similarity index 100% rename from src/coreclr/src/pal/src/arch/arm/processor.cpp rename to src/coreclr/pal/src/arch/arm/processor.cpp diff --git a/src/coreclr/src/pal/src/arch/arm/signalhandlerhelper.cpp b/src/coreclr/pal/src/arch/arm/signalhandlerhelper.cpp similarity index 100% rename from src/coreclr/src/pal/src/arch/arm/signalhandlerhelper.cpp rename to src/coreclr/pal/src/arch/arm/signalhandlerhelper.cpp diff --git a/src/coreclr/src/pal/src/arch/arm64/activationhandlerwrapper.S b/src/coreclr/pal/src/arch/arm64/activationhandlerwrapper.S similarity index 100% rename from src/coreclr/src/pal/src/arch/arm64/activationhandlerwrapper.S rename to src/coreclr/pal/src/arch/arm64/activationhandlerwrapper.S diff --git a/src/coreclr/src/pal/src/arch/arm64/asmconstants.h b/src/coreclr/pal/src/arch/arm64/asmconstants.h similarity index 100% rename from src/coreclr/src/pal/src/arch/arm64/asmconstants.h rename to src/coreclr/pal/src/arch/arm64/asmconstants.h diff --git a/src/coreclr/src/pal/src/arch/arm64/callsignalhandlerwrapper.S b/src/coreclr/pal/src/arch/arm64/callsignalhandlerwrapper.S similarity index 100% rename from src/coreclr/src/pal/src/arch/arm64/callsignalhandlerwrapper.S rename to src/coreclr/pal/src/arch/arm64/callsignalhandlerwrapper.S diff --git a/src/coreclr/src/pal/src/arch/arm64/context.S b/src/coreclr/pal/src/arch/arm64/context.S similarity index 100% rename from src/coreclr/src/pal/src/arch/arm64/context.S rename to src/coreclr/pal/src/arch/arm64/context.S diff --git a/src/coreclr/src/pal/src/arch/arm64/context2.S b/src/coreclr/pal/src/arch/arm64/context2.S similarity index 100% rename from src/coreclr/src/pal/src/arch/arm64/context2.S rename to src/coreclr/pal/src/arch/arm64/context2.S diff --git a/src/coreclr/src/pal/src/arch/arm64/debugbreak.S b/src/coreclr/pal/src/arch/arm64/debugbreak.S similarity index 100% rename from src/coreclr/src/pal/src/arch/arm64/debugbreak.S rename to src/coreclr/pal/src/arch/arm64/debugbreak.S diff --git a/src/coreclr/src/pal/src/arch/arm64/dispatchexceptionwrapper.S b/src/coreclr/pal/src/arch/arm64/dispatchexceptionwrapper.S similarity index 100% rename from src/coreclr/src/pal/src/arch/arm64/dispatchexceptionwrapper.S rename to src/coreclr/pal/src/arch/arm64/dispatchexceptionwrapper.S diff --git a/src/coreclr/src/pal/src/arch/arm64/exceptionhelper.S b/src/coreclr/pal/src/arch/arm64/exceptionhelper.S similarity index 100% rename from src/coreclr/src/pal/src/arch/arm64/exceptionhelper.S rename to src/coreclr/pal/src/arch/arm64/exceptionhelper.S diff --git a/src/coreclr/src/pal/src/arch/arm64/processor.cpp b/src/coreclr/pal/src/arch/arm64/processor.cpp similarity index 100% rename from src/coreclr/src/pal/src/arch/arm64/processor.cpp rename to src/coreclr/pal/src/arch/arm64/processor.cpp diff --git a/src/coreclr/src/pal/src/arch/arm64/signalhandlerhelper.cpp b/src/coreclr/pal/src/arch/arm64/signalhandlerhelper.cpp similarity index 100% rename from src/coreclr/src/pal/src/arch/arm64/signalhandlerhelper.cpp rename to src/coreclr/pal/src/arch/arm64/signalhandlerhelper.cpp diff --git a/src/coreclr/src/pal/src/arch/i386/asmconstants.h b/src/coreclr/pal/src/arch/i386/asmconstants.h similarity index 100% rename from src/coreclr/src/pal/src/arch/i386/asmconstants.h rename to src/coreclr/pal/src/arch/i386/asmconstants.h diff --git a/src/coreclr/src/pal/src/arch/i386/callsignalhandlerwrapper.S b/src/coreclr/pal/src/arch/i386/callsignalhandlerwrapper.S similarity index 100% rename from src/coreclr/src/pal/src/arch/i386/callsignalhandlerwrapper.S rename to src/coreclr/pal/src/arch/i386/callsignalhandlerwrapper.S diff --git a/src/coreclr/src/pal/src/arch/i386/context2.S b/src/coreclr/pal/src/arch/i386/context2.S similarity index 100% rename from src/coreclr/src/pal/src/arch/i386/context2.S rename to src/coreclr/pal/src/arch/i386/context2.S diff --git a/src/coreclr/src/pal/src/arch/i386/debugbreak.S b/src/coreclr/pal/src/arch/i386/debugbreak.S similarity index 100% rename from src/coreclr/src/pal/src/arch/i386/debugbreak.S rename to src/coreclr/pal/src/arch/i386/debugbreak.S diff --git a/src/coreclr/src/pal/src/arch/i386/exceptionhelper.S b/src/coreclr/pal/src/arch/i386/exceptionhelper.S similarity index 100% rename from src/coreclr/src/pal/src/arch/i386/exceptionhelper.S rename to src/coreclr/pal/src/arch/i386/exceptionhelper.S diff --git a/src/coreclr/src/pal/src/arch/i386/processor.cpp b/src/coreclr/pal/src/arch/i386/processor.cpp similarity index 100% rename from src/coreclr/src/pal/src/arch/i386/processor.cpp rename to src/coreclr/pal/src/arch/i386/processor.cpp diff --git a/src/coreclr/src/pal/src/arch/i386/signalhandlerhelper.cpp b/src/coreclr/pal/src/arch/i386/signalhandlerhelper.cpp similarity index 100% rename from src/coreclr/src/pal/src/arch/i386/signalhandlerhelper.cpp rename to src/coreclr/pal/src/arch/i386/signalhandlerhelper.cpp diff --git a/src/coreclr/src/pal/src/build_tools/mdtool_dummy b/src/coreclr/pal/src/build_tools/mdtool_dummy similarity index 100% rename from src/coreclr/src/pal/src/build_tools/mdtool_dummy rename to src/coreclr/pal/src/build_tools/mdtool_dummy diff --git a/src/coreclr/src/pal/src/build_tools/mdtool_gcc.in b/src/coreclr/pal/src/build_tools/mdtool_gcc.in similarity index 100% rename from src/coreclr/src/pal/src/build_tools/mdtool_gcc.in rename to src/coreclr/pal/src/build_tools/mdtool_gcc.in diff --git a/src/coreclr/src/pal/src/config.h.in b/src/coreclr/pal/src/config.h.in similarity index 100% rename from src/coreclr/src/pal/src/config.h.in rename to src/coreclr/pal/src/config.h.in diff --git a/src/coreclr/src/pal/src/configure.cmake b/src/coreclr/pal/src/configure.cmake similarity index 100% rename from src/coreclr/src/pal/src/configure.cmake rename to src/coreclr/pal/src/configure.cmake diff --git a/src/coreclr/src/pal/src/cruntime/file.cpp b/src/coreclr/pal/src/cruntime/file.cpp similarity index 100% rename from src/coreclr/src/pal/src/cruntime/file.cpp rename to src/coreclr/pal/src/cruntime/file.cpp diff --git a/src/coreclr/src/pal/src/cruntime/filecrt.cpp b/src/coreclr/pal/src/cruntime/filecrt.cpp similarity index 100% rename from src/coreclr/src/pal/src/cruntime/filecrt.cpp rename to src/coreclr/pal/src/cruntime/filecrt.cpp diff --git a/src/coreclr/src/pal/src/cruntime/malloc.cpp b/src/coreclr/pal/src/cruntime/malloc.cpp similarity index 100% rename from src/coreclr/src/pal/src/cruntime/malloc.cpp rename to src/coreclr/pal/src/cruntime/malloc.cpp diff --git a/src/coreclr/src/pal/src/cruntime/math.cpp b/src/coreclr/pal/src/cruntime/math.cpp similarity index 100% rename from src/coreclr/src/pal/src/cruntime/math.cpp rename to src/coreclr/pal/src/cruntime/math.cpp diff --git a/src/coreclr/src/pal/src/cruntime/misc.cpp b/src/coreclr/pal/src/cruntime/misc.cpp similarity index 100% rename from src/coreclr/src/pal/src/cruntime/misc.cpp rename to src/coreclr/pal/src/cruntime/misc.cpp diff --git a/src/coreclr/src/pal/src/cruntime/path.cpp b/src/coreclr/pal/src/cruntime/path.cpp similarity index 100% rename from src/coreclr/src/pal/src/cruntime/path.cpp rename to src/coreclr/pal/src/cruntime/path.cpp diff --git a/src/coreclr/src/pal/src/cruntime/printf.cpp b/src/coreclr/pal/src/cruntime/printf.cpp similarity index 100% rename from src/coreclr/src/pal/src/cruntime/printf.cpp rename to src/coreclr/pal/src/cruntime/printf.cpp diff --git a/src/coreclr/src/pal/src/cruntime/printfcpp.cpp b/src/coreclr/pal/src/cruntime/printfcpp.cpp similarity index 100% rename from src/coreclr/src/pal/src/cruntime/printfcpp.cpp rename to src/coreclr/pal/src/cruntime/printfcpp.cpp diff --git a/src/coreclr/src/pal/src/cruntime/silent_printf.cpp b/src/coreclr/pal/src/cruntime/silent_printf.cpp similarity index 100% rename from src/coreclr/src/pal/src/cruntime/silent_printf.cpp rename to src/coreclr/pal/src/cruntime/silent_printf.cpp diff --git a/src/coreclr/src/pal/src/cruntime/string.cpp b/src/coreclr/pal/src/cruntime/string.cpp similarity index 100% rename from src/coreclr/src/pal/src/cruntime/string.cpp rename to src/coreclr/pal/src/cruntime/string.cpp diff --git a/src/coreclr/src/pal/src/cruntime/stringtls.cpp b/src/coreclr/pal/src/cruntime/stringtls.cpp similarity index 100% rename from src/coreclr/src/pal/src/cruntime/stringtls.cpp rename to src/coreclr/pal/src/cruntime/stringtls.cpp diff --git a/src/coreclr/src/pal/src/cruntime/thread.cpp b/src/coreclr/pal/src/cruntime/thread.cpp similarity index 100% rename from src/coreclr/src/pal/src/cruntime/thread.cpp rename to src/coreclr/pal/src/cruntime/thread.cpp diff --git a/src/coreclr/src/pal/src/cruntime/wchar.cpp b/src/coreclr/pal/src/cruntime/wchar.cpp similarity index 100% rename from src/coreclr/src/pal/src/cruntime/wchar.cpp rename to src/coreclr/pal/src/cruntime/wchar.cpp diff --git a/src/coreclr/src/pal/src/cruntime/wchartls.cpp b/src/coreclr/pal/src/cruntime/wchartls.cpp similarity index 100% rename from src/coreclr/src/pal/src/cruntime/wchartls.cpp rename to src/coreclr/pal/src/cruntime/wchartls.cpp diff --git a/src/coreclr/src/pal/src/debug/debug.cpp b/src/coreclr/pal/src/debug/debug.cpp similarity index 100% rename from src/coreclr/src/pal/src/debug/debug.cpp rename to src/coreclr/pal/src/debug/debug.cpp diff --git a/src/coreclr/src/pal/src/eventprovider/CMakeLists.txt b/src/coreclr/pal/src/eventprovider/CMakeLists.txt similarity index 100% rename from src/coreclr/src/pal/src/eventprovider/CMakeLists.txt rename to src/coreclr/pal/src/eventprovider/CMakeLists.txt diff --git a/src/coreclr/src/pal/src/eventprovider/dummyprovider/CMakeLists.txt b/src/coreclr/pal/src/eventprovider/dummyprovider/CMakeLists.txt similarity index 95% rename from src/coreclr/src/pal/src/eventprovider/dummyprovider/CMakeLists.txt rename to src/coreclr/pal/src/eventprovider/dummyprovider/CMakeLists.txt index 8e6968cf783d4..2beab6340957a 100644 --- a/src/coreclr/src/pal/src/eventprovider/dummyprovider/CMakeLists.txt +++ b/src/coreclr/pal/src/eventprovider/dummyprovider/CMakeLists.txt @@ -1,6 +1,6 @@ include(FindPythonInterp) -set (GENERATE_SCRIPT ${CLR_DIR}/src/scripts/genDummyProvider.py) +set (GENERATE_SCRIPT ${CLR_DIR}/scripts/genDummyProvider.py) set(GENERATE_COMMAND ${PYTHON_EXECUTABLE} ${GENERATE_SCRIPT} --man ${EVENT_MANIFEST} --intermediate ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/src/coreclr/src/pal/src/eventprovider/lttngprovider/CMakeLists.txt b/src/coreclr/pal/src/eventprovider/lttngprovider/CMakeLists.txt similarity index 97% rename from src/coreclr/src/pal/src/eventprovider/lttngprovider/CMakeLists.txt rename to src/coreclr/pal/src/eventprovider/lttngprovider/CMakeLists.txt index cd6771955e4cb..5c3a04d84197e 100644 --- a/src/coreclr/src/pal/src/eventprovider/lttngprovider/CMakeLists.txt +++ b/src/coreclr/pal/src/eventprovider/lttngprovider/CMakeLists.txt @@ -1,5 +1,5 @@ include(FindPythonInterp) -set (GENERATE_SCRIPT ${CLR_DIR}/src/scripts/genLttngProvider.py) +set (GENERATE_SCRIPT ${CLR_DIR}/scripts/genLttngProvider.py) set(GENERATE_COMMAND ${PYTHON_EXECUTABLE} ${GENERATE_SCRIPT} --man ${EVENT_MANIFEST} --intermediate ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/src/coreclr/src/pal/src/eventprovider/lttngprovider/eventproviderhelpers.cpp b/src/coreclr/pal/src/eventprovider/lttngprovider/eventproviderhelpers.cpp similarity index 100% rename from src/coreclr/src/pal/src/eventprovider/lttngprovider/eventproviderhelpers.cpp rename to src/coreclr/pal/src/eventprovider/lttngprovider/eventproviderhelpers.cpp diff --git a/src/coreclr/src/pal/src/exception/compact_unwind_encoding.h b/src/coreclr/pal/src/exception/compact_unwind_encoding.h similarity index 100% rename from src/coreclr/src/pal/src/exception/compact_unwind_encoding.h rename to src/coreclr/pal/src/exception/compact_unwind_encoding.h diff --git a/src/coreclr/src/pal/src/exception/machexception.cpp b/src/coreclr/pal/src/exception/machexception.cpp similarity index 100% rename from src/coreclr/src/pal/src/exception/machexception.cpp rename to src/coreclr/pal/src/exception/machexception.cpp diff --git a/src/coreclr/src/pal/src/exception/machexception.h b/src/coreclr/pal/src/exception/machexception.h similarity index 100% rename from src/coreclr/src/pal/src/exception/machexception.h rename to src/coreclr/pal/src/exception/machexception.h diff --git a/src/coreclr/src/pal/src/exception/machmessage.cpp b/src/coreclr/pal/src/exception/machmessage.cpp similarity index 100% rename from src/coreclr/src/pal/src/exception/machmessage.cpp rename to src/coreclr/pal/src/exception/machmessage.cpp diff --git a/src/coreclr/src/pal/src/exception/machmessage.h b/src/coreclr/pal/src/exception/machmessage.h similarity index 100% rename from src/coreclr/src/pal/src/exception/machmessage.h rename to src/coreclr/pal/src/exception/machmessage.h diff --git a/src/coreclr/src/pal/src/exception/remote-unwind.cpp b/src/coreclr/pal/src/exception/remote-unwind.cpp similarity index 100% rename from src/coreclr/src/pal/src/exception/remote-unwind.cpp rename to src/coreclr/pal/src/exception/remote-unwind.cpp diff --git a/src/coreclr/src/pal/src/exception/seh-unwind.cpp b/src/coreclr/pal/src/exception/seh-unwind.cpp similarity index 100% rename from src/coreclr/src/pal/src/exception/seh-unwind.cpp rename to src/coreclr/pal/src/exception/seh-unwind.cpp diff --git a/src/coreclr/src/pal/src/exception/seh.cpp b/src/coreclr/pal/src/exception/seh.cpp similarity index 100% rename from src/coreclr/src/pal/src/exception/seh.cpp rename to src/coreclr/pal/src/exception/seh.cpp diff --git a/src/coreclr/src/pal/src/exception/signal.cpp b/src/coreclr/pal/src/exception/signal.cpp similarity index 100% rename from src/coreclr/src/pal/src/exception/signal.cpp rename to src/coreclr/pal/src/exception/signal.cpp diff --git a/src/coreclr/src/pal/src/file/directory.cpp b/src/coreclr/pal/src/file/directory.cpp similarity index 100% rename from src/coreclr/src/pal/src/file/directory.cpp rename to src/coreclr/pal/src/file/directory.cpp diff --git a/src/coreclr/src/pal/src/file/file.cpp b/src/coreclr/pal/src/file/file.cpp similarity index 100% rename from src/coreclr/src/pal/src/file/file.cpp rename to src/coreclr/pal/src/file/file.cpp diff --git a/src/coreclr/src/pal/src/file/filetime.cpp b/src/coreclr/pal/src/file/filetime.cpp similarity index 100% rename from src/coreclr/src/pal/src/file/filetime.cpp rename to src/coreclr/pal/src/file/filetime.cpp diff --git a/src/coreclr/src/pal/src/file/find.cpp b/src/coreclr/pal/src/file/find.cpp similarity index 100% rename from src/coreclr/src/pal/src/file/find.cpp rename to src/coreclr/pal/src/file/find.cpp diff --git a/src/coreclr/src/pal/src/file/path.cpp b/src/coreclr/pal/src/file/path.cpp similarity index 100% rename from src/coreclr/src/pal/src/file/path.cpp rename to src/coreclr/pal/src/file/path.cpp diff --git a/src/coreclr/src/pal/src/handlemgr/handleapi.cpp b/src/coreclr/pal/src/handlemgr/handleapi.cpp similarity index 100% rename from src/coreclr/src/pal/src/handlemgr/handleapi.cpp rename to src/coreclr/pal/src/handlemgr/handleapi.cpp diff --git a/src/coreclr/src/pal/src/handlemgr/handlemgr.cpp b/src/coreclr/pal/src/handlemgr/handlemgr.cpp similarity index 100% rename from src/coreclr/src/pal/src/handlemgr/handlemgr.cpp rename to src/coreclr/pal/src/handlemgr/handlemgr.cpp diff --git a/src/coreclr/src/pal/src/include/pal/cgroup.h b/src/coreclr/pal/src/include/pal/cgroup.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/cgroup.h rename to src/coreclr/pal/src/include/pal/cgroup.h diff --git a/src/coreclr/src/pal/src/include/pal/context.h b/src/coreclr/pal/src/include/pal/context.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/context.h rename to src/coreclr/pal/src/include/pal/context.h diff --git a/src/coreclr/src/pal/src/include/pal/corunix.hpp b/src/coreclr/pal/src/include/pal/corunix.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/corunix.hpp rename to src/coreclr/pal/src/include/pal/corunix.hpp diff --git a/src/coreclr/src/pal/src/include/pal/corunix.inl b/src/coreclr/pal/src/include/pal/corunix.inl similarity index 100% rename from src/coreclr/src/pal/src/include/pal/corunix.inl rename to src/coreclr/pal/src/include/pal/corunix.inl diff --git a/src/coreclr/src/pal/src/include/pal/critsect.h b/src/coreclr/pal/src/include/pal/critsect.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/critsect.h rename to src/coreclr/pal/src/include/pal/critsect.h diff --git a/src/coreclr/src/pal/src/include/pal/cruntime.h b/src/coreclr/pal/src/include/pal/cruntime.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/cruntime.h rename to src/coreclr/pal/src/include/pal/cruntime.h diff --git a/src/coreclr/src/pal/src/include/pal/cs.hpp b/src/coreclr/pal/src/include/pal/cs.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/cs.hpp rename to src/coreclr/pal/src/include/pal/cs.hpp diff --git a/src/coreclr/src/pal/src/include/pal/dbgmsg.h b/src/coreclr/pal/src/include/pal/dbgmsg.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/dbgmsg.h rename to src/coreclr/pal/src/include/pal/dbgmsg.h diff --git a/src/coreclr/src/pal/src/include/pal/debug.h b/src/coreclr/pal/src/include/pal/debug.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/debug.h rename to src/coreclr/pal/src/include/pal/debug.h diff --git a/src/coreclr/src/pal/src/include/pal/environ.h b/src/coreclr/pal/src/include/pal/environ.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/environ.h rename to src/coreclr/pal/src/include/pal/environ.h diff --git a/src/coreclr/src/pal/src/include/pal/event.hpp b/src/coreclr/pal/src/include/pal/event.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/event.hpp rename to src/coreclr/pal/src/include/pal/event.hpp diff --git a/src/coreclr/src/pal/src/include/pal/fakepoll.h b/src/coreclr/pal/src/include/pal/fakepoll.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/fakepoll.h rename to src/coreclr/pal/src/include/pal/fakepoll.h diff --git a/src/coreclr/src/pal/src/include/pal/file.h b/src/coreclr/pal/src/include/pal/file.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/file.h rename to src/coreclr/pal/src/include/pal/file.h diff --git a/src/coreclr/src/pal/src/include/pal/file.hpp b/src/coreclr/pal/src/include/pal/file.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/file.hpp rename to src/coreclr/pal/src/include/pal/file.hpp diff --git a/src/coreclr/src/pal/src/include/pal/filetime.h b/src/coreclr/pal/src/include/pal/filetime.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/filetime.h rename to src/coreclr/pal/src/include/pal/filetime.h diff --git a/src/coreclr/src/pal/src/include/pal/handleapi.hpp b/src/coreclr/pal/src/include/pal/handleapi.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/handleapi.hpp rename to src/coreclr/pal/src/include/pal/handleapi.hpp diff --git a/src/coreclr/src/pal/src/include/pal/handlemgr.hpp b/src/coreclr/pal/src/include/pal/handlemgr.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/handlemgr.hpp rename to src/coreclr/pal/src/include/pal/handlemgr.hpp diff --git a/src/coreclr/src/pal/src/include/pal/init.h b/src/coreclr/pal/src/include/pal/init.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/init.h rename to src/coreclr/pal/src/include/pal/init.h diff --git a/src/coreclr/src/pal/src/include/pal/list.h b/src/coreclr/pal/src/include/pal/list.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/list.h rename to src/coreclr/pal/src/include/pal/list.h diff --git a/src/coreclr/src/pal/src/include/pal/malloc.hpp b/src/coreclr/pal/src/include/pal/malloc.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/malloc.hpp rename to src/coreclr/pal/src/include/pal/malloc.hpp diff --git a/src/coreclr/src/pal/src/include/pal/map.h b/src/coreclr/pal/src/include/pal/map.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/map.h rename to src/coreclr/pal/src/include/pal/map.h diff --git a/src/coreclr/src/pal/src/include/pal/map.hpp b/src/coreclr/pal/src/include/pal/map.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/map.hpp rename to src/coreclr/pal/src/include/pal/map.hpp diff --git a/src/coreclr/src/pal/src/include/pal/misc.h b/src/coreclr/pal/src/include/pal/misc.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/misc.h rename to src/coreclr/pal/src/include/pal/misc.h diff --git a/src/coreclr/src/pal/src/include/pal/module.h b/src/coreclr/pal/src/include/pal/module.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/module.h rename to src/coreclr/pal/src/include/pal/module.h diff --git a/src/coreclr/src/pal/src/include/pal/modulename.h b/src/coreclr/pal/src/include/pal/modulename.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/modulename.h rename to src/coreclr/pal/src/include/pal/modulename.h diff --git a/src/coreclr/src/pal/src/include/pal/mutex.hpp b/src/coreclr/pal/src/include/pal/mutex.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/mutex.hpp rename to src/coreclr/pal/src/include/pal/mutex.hpp diff --git a/src/coreclr/src/pal/src/include/pal/numa.h b/src/coreclr/pal/src/include/pal/numa.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/numa.h rename to src/coreclr/pal/src/include/pal/numa.h diff --git a/src/coreclr/src/pal/src/include/pal/palinternal.h b/src/coreclr/pal/src/include/pal/palinternal.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/palinternal.h rename to src/coreclr/pal/src/include/pal/palinternal.h diff --git a/src/coreclr/src/pal/src/include/pal/perftrace.h b/src/coreclr/pal/src/include/pal/perftrace.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/perftrace.h rename to src/coreclr/pal/src/include/pal/perftrace.h diff --git a/src/coreclr/src/pal/src/include/pal/printfcpp.hpp b/src/coreclr/pal/src/include/pal/printfcpp.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/printfcpp.hpp rename to src/coreclr/pal/src/include/pal/printfcpp.hpp diff --git a/src/coreclr/src/pal/src/include/pal/process.h b/src/coreclr/pal/src/include/pal/process.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/process.h rename to src/coreclr/pal/src/include/pal/process.h diff --git a/src/coreclr/src/pal/src/include/pal/procobj.hpp b/src/coreclr/pal/src/include/pal/procobj.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/procobj.hpp rename to src/coreclr/pal/src/include/pal/procobj.hpp diff --git a/src/coreclr/src/pal/src/include/pal/seh.hpp b/src/coreclr/pal/src/include/pal/seh.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/seh.hpp rename to src/coreclr/pal/src/include/pal/seh.hpp diff --git a/src/coreclr/src/pal/src/include/pal/semaphore.hpp b/src/coreclr/pal/src/include/pal/semaphore.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/semaphore.hpp rename to src/coreclr/pal/src/include/pal/semaphore.hpp diff --git a/src/coreclr/src/pal/src/include/pal/sharedmemory.h b/src/coreclr/pal/src/include/pal/sharedmemory.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/sharedmemory.h rename to src/coreclr/pal/src/include/pal/sharedmemory.h diff --git a/src/coreclr/src/pal/src/include/pal/sharedmemory.inl b/src/coreclr/pal/src/include/pal/sharedmemory.inl similarity index 100% rename from src/coreclr/src/pal/src/include/pal/sharedmemory.inl rename to src/coreclr/pal/src/include/pal/sharedmemory.inl diff --git a/src/coreclr/src/pal/src/include/pal/shm.hpp b/src/coreclr/pal/src/include/pal/shm.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/shm.hpp rename to src/coreclr/pal/src/include/pal/shm.hpp diff --git a/src/coreclr/src/pal/src/include/pal/shmemory.h b/src/coreclr/pal/src/include/pal/shmemory.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/shmemory.h rename to src/coreclr/pal/src/include/pal/shmemory.h diff --git a/src/coreclr/src/pal/src/include/pal/signal.hpp b/src/coreclr/pal/src/include/pal/signal.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/signal.hpp rename to src/coreclr/pal/src/include/pal/signal.hpp diff --git a/src/coreclr/src/pal/src/include/pal/stackstring.hpp b/src/coreclr/pal/src/include/pal/stackstring.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/stackstring.hpp rename to src/coreclr/pal/src/include/pal/stackstring.hpp diff --git a/src/coreclr/src/pal/src/include/pal/synchcache.hpp b/src/coreclr/pal/src/include/pal/synchcache.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/synchcache.hpp rename to src/coreclr/pal/src/include/pal/synchcache.hpp diff --git a/src/coreclr/src/pal/src/include/pal/synchobjects.hpp b/src/coreclr/pal/src/include/pal/synchobjects.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/synchobjects.hpp rename to src/coreclr/pal/src/include/pal/synchobjects.hpp diff --git a/src/coreclr/src/pal/src/include/pal/thread.hpp b/src/coreclr/pal/src/include/pal/thread.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/thread.hpp rename to src/coreclr/pal/src/include/pal/thread.hpp diff --git a/src/coreclr/src/pal/src/include/pal/threadinfo.hpp b/src/coreclr/pal/src/include/pal/threadinfo.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/threadinfo.hpp rename to src/coreclr/pal/src/include/pal/threadinfo.hpp diff --git a/src/coreclr/src/pal/src/include/pal/threadsusp.hpp b/src/coreclr/pal/src/include/pal/threadsusp.hpp similarity index 100% rename from src/coreclr/src/pal/src/include/pal/threadsusp.hpp rename to src/coreclr/pal/src/include/pal/threadsusp.hpp diff --git a/src/coreclr/src/pal/src/include/pal/unicodedata.h b/src/coreclr/pal/src/include/pal/unicodedata.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/unicodedata.h rename to src/coreclr/pal/src/include/pal/unicodedata.h diff --git a/src/coreclr/src/pal/src/include/pal/utf8.h b/src/coreclr/pal/src/include/pal/utf8.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/utf8.h rename to src/coreclr/pal/src/include/pal/utf8.h diff --git a/src/coreclr/src/pal/src/include/pal/utils.h b/src/coreclr/pal/src/include/pal/utils.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/utils.h rename to src/coreclr/pal/src/include/pal/utils.h diff --git a/src/coreclr/src/pal/src/include/pal/virtual.h b/src/coreclr/pal/src/include/pal/virtual.h similarity index 100% rename from src/coreclr/src/pal/src/include/pal/virtual.h rename to src/coreclr/pal/src/include/pal/virtual.h diff --git a/src/coreclr/src/pal/src/init/pal.cpp b/src/coreclr/pal/src/init/pal.cpp similarity index 100% rename from src/coreclr/src/pal/src/init/pal.cpp rename to src/coreclr/pal/src/init/pal.cpp diff --git a/src/coreclr/src/pal/src/init/sxs.cpp b/src/coreclr/pal/src/init/sxs.cpp similarity index 100% rename from src/coreclr/src/pal/src/init/sxs.cpp rename to src/coreclr/pal/src/init/sxs.cpp diff --git a/src/coreclr/src/pal/src/libunwind/.gitignore b/src/coreclr/pal/src/libunwind/.gitignore similarity index 100% rename from src/coreclr/src/pal/src/libunwind/.gitignore rename to src/coreclr/pal/src/libunwind/.gitignore diff --git a/src/coreclr/src/pal/src/libunwind/.travis.yml b/src/coreclr/pal/src/libunwind/.travis.yml similarity index 100% rename from src/coreclr/src/pal/src/libunwind/.travis.yml rename to src/coreclr/pal/src/libunwind/.travis.yml diff --git a/src/coreclr/src/pal/src/libunwind/AUTHORS b/src/coreclr/pal/src/libunwind/AUTHORS similarity index 100% rename from src/coreclr/src/pal/src/libunwind/AUTHORS rename to src/coreclr/pal/src/libunwind/AUTHORS diff --git a/src/coreclr/src/pal/src/libunwind/CMakeLists.txt b/src/coreclr/pal/src/libunwind/CMakeLists.txt similarity index 100% rename from src/coreclr/src/pal/src/libunwind/CMakeLists.txt rename to src/coreclr/pal/src/libunwind/CMakeLists.txt diff --git a/src/coreclr/src/pal/src/libunwind/COPYING b/src/coreclr/pal/src/libunwind/COPYING similarity index 100% rename from src/coreclr/src/pal/src/libunwind/COPYING rename to src/coreclr/pal/src/libunwind/COPYING diff --git a/src/coreclr/src/pal/src/libunwind/ChangeLog b/src/coreclr/pal/src/libunwind/ChangeLog similarity index 100% rename from src/coreclr/src/pal/src/libunwind/ChangeLog rename to src/coreclr/pal/src/libunwind/ChangeLog diff --git a/src/coreclr/src/pal/src/libunwind/LICENSE b/src/coreclr/pal/src/libunwind/LICENSE similarity index 100% rename from src/coreclr/src/pal/src/libunwind/LICENSE rename to src/coreclr/pal/src/libunwind/LICENSE diff --git a/src/coreclr/src/pal/src/libunwind/Makefile.am b/src/coreclr/pal/src/libunwind/Makefile.am similarity index 100% rename from src/coreclr/src/pal/src/libunwind/Makefile.am rename to src/coreclr/pal/src/libunwind/Makefile.am diff --git a/src/coreclr/src/pal/src/libunwind/NEWS b/src/coreclr/pal/src/libunwind/NEWS similarity index 100% rename from src/coreclr/src/pal/src/libunwind/NEWS rename to src/coreclr/pal/src/libunwind/NEWS diff --git a/src/coreclr/src/pal/src/libunwind/README b/src/coreclr/pal/src/libunwind/README similarity index 100% rename from src/coreclr/src/pal/src/libunwind/README rename to src/coreclr/pal/src/libunwind/README diff --git a/src/coreclr/src/pal/src/libunwind/README.md b/src/coreclr/pal/src/libunwind/README.md similarity index 100% rename from src/coreclr/src/pal/src/libunwind/README.md rename to src/coreclr/pal/src/libunwind/README.md diff --git a/src/coreclr/src/pal/src/libunwind/TODO b/src/coreclr/pal/src/libunwind/TODO similarity index 100% rename from src/coreclr/src/pal/src/libunwind/TODO rename to src/coreclr/pal/src/libunwind/TODO diff --git a/src/coreclr/src/pal/src/libunwind/acinclude.m4 b/src/coreclr/pal/src/libunwind/acinclude.m4 similarity index 100% rename from src/coreclr/src/pal/src/libunwind/acinclude.m4 rename to src/coreclr/pal/src/libunwind/acinclude.m4 diff --git a/src/coreclr/src/pal/src/libunwind/autogen.sh b/src/coreclr/pal/src/libunwind/autogen.sh similarity index 100% rename from src/coreclr/src/pal/src/libunwind/autogen.sh rename to src/coreclr/pal/src/libunwind/autogen.sh diff --git a/src/coreclr/src/pal/src/libunwind/config.h.in b/src/coreclr/pal/src/libunwind/config.h.in similarity index 100% rename from src/coreclr/src/pal/src/libunwind/config.h.in rename to src/coreclr/pal/src/libunwind/config.h.in diff --git a/src/coreclr/src/pal/src/libunwind/configure.ac b/src/coreclr/pal/src/libunwind/configure.ac similarity index 100% rename from src/coreclr/src/pal/src/libunwind/configure.ac rename to src/coreclr/pal/src/libunwind/configure.ac diff --git a/src/coreclr/src/pal/src/libunwind/configure.cmake b/src/coreclr/pal/src/libunwind/configure.cmake similarity index 100% rename from src/coreclr/src/pal/src/libunwind/configure.cmake rename to src/coreclr/pal/src/libunwind/configure.cmake diff --git a/src/coreclr/src/pal/src/libunwind/doc/Makefile.am b/src/coreclr/pal/src/libunwind/doc/Makefile.am similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/Makefile.am rename to src/coreclr/pal/src/libunwind/doc/Makefile.am diff --git a/src/coreclr/src/pal/src/libunwind/doc/NOTES b/src/coreclr/pal/src/libunwind/doc/NOTES similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/NOTES rename to src/coreclr/pal/src/libunwind/doc/NOTES diff --git a/src/coreclr/src/pal/src/libunwind/doc/_U_dyn_cancel.man b/src/coreclr/pal/src/libunwind/doc/_U_dyn_cancel.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/_U_dyn_cancel.man rename to src/coreclr/pal/src/libunwind/doc/_U_dyn_cancel.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/_U_dyn_cancel.tex b/src/coreclr/pal/src/libunwind/doc/_U_dyn_cancel.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/_U_dyn_cancel.tex rename to src/coreclr/pal/src/libunwind/doc/_U_dyn_cancel.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/_U_dyn_register.man b/src/coreclr/pal/src/libunwind/doc/_U_dyn_register.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/_U_dyn_register.man rename to src/coreclr/pal/src/libunwind/doc/_U_dyn_register.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/_U_dyn_register.tex b/src/coreclr/pal/src/libunwind/doc/_U_dyn_register.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/_U_dyn_register.tex rename to src/coreclr/pal/src/libunwind/doc/_U_dyn_register.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/common.tex.in b/src/coreclr/pal/src/libunwind/doc/common.tex.in similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/common.tex.in rename to src/coreclr/pal/src/libunwind/doc/common.tex.in diff --git a/src/coreclr/src/pal/src/libunwind/doc/libunwind-dynamic.man b/src/coreclr/pal/src/libunwind/doc/libunwind-dynamic.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/libunwind-dynamic.man rename to src/coreclr/pal/src/libunwind/doc/libunwind-dynamic.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/libunwind-dynamic.tex b/src/coreclr/pal/src/libunwind/doc/libunwind-dynamic.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/libunwind-dynamic.tex rename to src/coreclr/pal/src/libunwind/doc/libunwind-dynamic.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/libunwind-ia64.man b/src/coreclr/pal/src/libunwind/doc/libunwind-ia64.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/libunwind-ia64.man rename to src/coreclr/pal/src/libunwind/doc/libunwind-ia64.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/libunwind-ia64.tex b/src/coreclr/pal/src/libunwind/doc/libunwind-ia64.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/libunwind-ia64.tex rename to src/coreclr/pal/src/libunwind/doc/libunwind-ia64.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/libunwind-ptrace.man b/src/coreclr/pal/src/libunwind/doc/libunwind-ptrace.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/libunwind-ptrace.man rename to src/coreclr/pal/src/libunwind/doc/libunwind-ptrace.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/libunwind-ptrace.tex b/src/coreclr/pal/src/libunwind/doc/libunwind-ptrace.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/libunwind-ptrace.tex rename to src/coreclr/pal/src/libunwind/doc/libunwind-ptrace.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/libunwind-setjmp.man b/src/coreclr/pal/src/libunwind/doc/libunwind-setjmp.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/libunwind-setjmp.man rename to src/coreclr/pal/src/libunwind/doc/libunwind-setjmp.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/libunwind-setjmp.tex b/src/coreclr/pal/src/libunwind/doc/libunwind-setjmp.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/libunwind-setjmp.tex rename to src/coreclr/pal/src/libunwind/doc/libunwind-setjmp.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/libunwind.man b/src/coreclr/pal/src/libunwind/doc/libunwind.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/libunwind.man rename to src/coreclr/pal/src/libunwind/doc/libunwind.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/libunwind.tex b/src/coreclr/pal/src/libunwind/doc/libunwind.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/libunwind.tex rename to src/coreclr/pal/src/libunwind/doc/libunwind.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/libunwind.trans b/src/coreclr/pal/src/libunwind/doc/libunwind.trans similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/libunwind.trans rename to src/coreclr/pal/src/libunwind/doc/libunwind.trans diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_apply_reg_state.man b/src/coreclr/pal/src/libunwind/doc/unw_apply_reg_state.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_apply_reg_state.man rename to src/coreclr/pal/src/libunwind/doc/unw_apply_reg_state.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_apply_reg_state.tex b/src/coreclr/pal/src/libunwind/doc/unw_apply_reg_state.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_apply_reg_state.tex rename to src/coreclr/pal/src/libunwind/doc/unw_apply_reg_state.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_backtrace.man b/src/coreclr/pal/src/libunwind/doc/unw_backtrace.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_backtrace.man rename to src/coreclr/pal/src/libunwind/doc/unw_backtrace.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_backtrace.tex b/src/coreclr/pal/src/libunwind/doc/unw_backtrace.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_backtrace.tex rename to src/coreclr/pal/src/libunwind/doc/unw_backtrace.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_create_addr_space.man b/src/coreclr/pal/src/libunwind/doc/unw_create_addr_space.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_create_addr_space.man rename to src/coreclr/pal/src/libunwind/doc/unw_create_addr_space.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_create_addr_space.tex b/src/coreclr/pal/src/libunwind/doc/unw_create_addr_space.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_create_addr_space.tex rename to src/coreclr/pal/src/libunwind/doc/unw_create_addr_space.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_destroy_addr_space.man b/src/coreclr/pal/src/libunwind/doc/unw_destroy_addr_space.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_destroy_addr_space.man rename to src/coreclr/pal/src/libunwind/doc/unw_destroy_addr_space.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_destroy_addr_space.tex b/src/coreclr/pal/src/libunwind/doc/unw_destroy_addr_space.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_destroy_addr_space.tex rename to src/coreclr/pal/src/libunwind/doc/unw_destroy_addr_space.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_flush_cache.man b/src/coreclr/pal/src/libunwind/doc/unw_flush_cache.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_flush_cache.man rename to src/coreclr/pal/src/libunwind/doc/unw_flush_cache.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_flush_cache.tex b/src/coreclr/pal/src/libunwind/doc/unw_flush_cache.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_flush_cache.tex rename to src/coreclr/pal/src/libunwind/doc/unw_flush_cache.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_get_accessors.man b/src/coreclr/pal/src/libunwind/doc/unw_get_accessors.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_get_accessors.man rename to src/coreclr/pal/src/libunwind/doc/unw_get_accessors.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_get_accessors.tex b/src/coreclr/pal/src/libunwind/doc/unw_get_accessors.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_get_accessors.tex rename to src/coreclr/pal/src/libunwind/doc/unw_get_accessors.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_get_fpreg.man b/src/coreclr/pal/src/libunwind/doc/unw_get_fpreg.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_get_fpreg.man rename to src/coreclr/pal/src/libunwind/doc/unw_get_fpreg.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_get_fpreg.tex b/src/coreclr/pal/src/libunwind/doc/unw_get_fpreg.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_get_fpreg.tex rename to src/coreclr/pal/src/libunwind/doc/unw_get_fpreg.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_get_proc_info.man b/src/coreclr/pal/src/libunwind/doc/unw_get_proc_info.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_get_proc_info.man rename to src/coreclr/pal/src/libunwind/doc/unw_get_proc_info.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_get_proc_info.tex b/src/coreclr/pal/src/libunwind/doc/unw_get_proc_info.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_get_proc_info.tex rename to src/coreclr/pal/src/libunwind/doc/unw_get_proc_info.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_get_proc_info_by_ip.man b/src/coreclr/pal/src/libunwind/doc/unw_get_proc_info_by_ip.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_get_proc_info_by_ip.man rename to src/coreclr/pal/src/libunwind/doc/unw_get_proc_info_by_ip.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_get_proc_info_by_ip.tex b/src/coreclr/pal/src/libunwind/doc/unw_get_proc_info_by_ip.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_get_proc_info_by_ip.tex rename to src/coreclr/pal/src/libunwind/doc/unw_get_proc_info_by_ip.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_get_proc_name.man b/src/coreclr/pal/src/libunwind/doc/unw_get_proc_name.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_get_proc_name.man rename to src/coreclr/pal/src/libunwind/doc/unw_get_proc_name.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_get_proc_name.tex b/src/coreclr/pal/src/libunwind/doc/unw_get_proc_name.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_get_proc_name.tex rename to src/coreclr/pal/src/libunwind/doc/unw_get_proc_name.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_get_reg.man b/src/coreclr/pal/src/libunwind/doc/unw_get_reg.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_get_reg.man rename to src/coreclr/pal/src/libunwind/doc/unw_get_reg.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_get_reg.tex b/src/coreclr/pal/src/libunwind/doc/unw_get_reg.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_get_reg.tex rename to src/coreclr/pal/src/libunwind/doc/unw_get_reg.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_getcontext.man b/src/coreclr/pal/src/libunwind/doc/unw_getcontext.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_getcontext.man rename to src/coreclr/pal/src/libunwind/doc/unw_getcontext.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_getcontext.tex b/src/coreclr/pal/src/libunwind/doc/unw_getcontext.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_getcontext.tex rename to src/coreclr/pal/src/libunwind/doc/unw_getcontext.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_init_local.man b/src/coreclr/pal/src/libunwind/doc/unw_init_local.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_init_local.man rename to src/coreclr/pal/src/libunwind/doc/unw_init_local.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_init_local.tex b/src/coreclr/pal/src/libunwind/doc/unw_init_local.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_init_local.tex rename to src/coreclr/pal/src/libunwind/doc/unw_init_local.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_init_local2.man b/src/coreclr/pal/src/libunwind/doc/unw_init_local2.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_init_local2.man rename to src/coreclr/pal/src/libunwind/doc/unw_init_local2.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_init_remote.man b/src/coreclr/pal/src/libunwind/doc/unw_init_remote.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_init_remote.man rename to src/coreclr/pal/src/libunwind/doc/unw_init_remote.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_init_remote.tex b/src/coreclr/pal/src/libunwind/doc/unw_init_remote.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_init_remote.tex rename to src/coreclr/pal/src/libunwind/doc/unw_init_remote.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_is_fpreg.man b/src/coreclr/pal/src/libunwind/doc/unw_is_fpreg.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_is_fpreg.man rename to src/coreclr/pal/src/libunwind/doc/unw_is_fpreg.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_is_fpreg.tex b/src/coreclr/pal/src/libunwind/doc/unw_is_fpreg.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_is_fpreg.tex rename to src/coreclr/pal/src/libunwind/doc/unw_is_fpreg.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_is_signal_frame.man b/src/coreclr/pal/src/libunwind/doc/unw_is_signal_frame.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_is_signal_frame.man rename to src/coreclr/pal/src/libunwind/doc/unw_is_signal_frame.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_is_signal_frame.tex b/src/coreclr/pal/src/libunwind/doc/unw_is_signal_frame.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_is_signal_frame.tex rename to src/coreclr/pal/src/libunwind/doc/unw_is_signal_frame.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_reg_states_iterate.man b/src/coreclr/pal/src/libunwind/doc/unw_reg_states_iterate.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_reg_states_iterate.man rename to src/coreclr/pal/src/libunwind/doc/unw_reg_states_iterate.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_reg_states_iterate.tex b/src/coreclr/pal/src/libunwind/doc/unw_reg_states_iterate.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_reg_states_iterate.tex rename to src/coreclr/pal/src/libunwind/doc/unw_reg_states_iterate.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_regname.man b/src/coreclr/pal/src/libunwind/doc/unw_regname.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_regname.man rename to src/coreclr/pal/src/libunwind/doc/unw_regname.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_regname.tex b/src/coreclr/pal/src/libunwind/doc/unw_regname.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_regname.tex rename to src/coreclr/pal/src/libunwind/doc/unw_regname.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_resume.man b/src/coreclr/pal/src/libunwind/doc/unw_resume.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_resume.man rename to src/coreclr/pal/src/libunwind/doc/unw_resume.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_resume.tex b/src/coreclr/pal/src/libunwind/doc/unw_resume.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_resume.tex rename to src/coreclr/pal/src/libunwind/doc/unw_resume.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_set_cache_size.man b/src/coreclr/pal/src/libunwind/doc/unw_set_cache_size.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_set_cache_size.man rename to src/coreclr/pal/src/libunwind/doc/unw_set_cache_size.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_set_cache_size.tex b/src/coreclr/pal/src/libunwind/doc/unw_set_cache_size.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_set_cache_size.tex rename to src/coreclr/pal/src/libunwind/doc/unw_set_cache_size.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_set_caching_policy.man b/src/coreclr/pal/src/libunwind/doc/unw_set_caching_policy.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_set_caching_policy.man rename to src/coreclr/pal/src/libunwind/doc/unw_set_caching_policy.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_set_caching_policy.tex b/src/coreclr/pal/src/libunwind/doc/unw_set_caching_policy.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_set_caching_policy.tex rename to src/coreclr/pal/src/libunwind/doc/unw_set_caching_policy.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_set_fpreg.man b/src/coreclr/pal/src/libunwind/doc/unw_set_fpreg.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_set_fpreg.man rename to src/coreclr/pal/src/libunwind/doc/unw_set_fpreg.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_set_fpreg.tex b/src/coreclr/pal/src/libunwind/doc/unw_set_fpreg.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_set_fpreg.tex rename to src/coreclr/pal/src/libunwind/doc/unw_set_fpreg.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_set_reg.man b/src/coreclr/pal/src/libunwind/doc/unw_set_reg.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_set_reg.man rename to src/coreclr/pal/src/libunwind/doc/unw_set_reg.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_set_reg.tex b/src/coreclr/pal/src/libunwind/doc/unw_set_reg.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_set_reg.tex rename to src/coreclr/pal/src/libunwind/doc/unw_set_reg.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_step.man b/src/coreclr/pal/src/libunwind/doc/unw_step.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_step.man rename to src/coreclr/pal/src/libunwind/doc/unw_step.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_step.tex b/src/coreclr/pal/src/libunwind/doc/unw_step.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_step.tex rename to src/coreclr/pal/src/libunwind/doc/unw_step.tex diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_strerror.man b/src/coreclr/pal/src/libunwind/doc/unw_strerror.man similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_strerror.man rename to src/coreclr/pal/src/libunwind/doc/unw_strerror.man diff --git a/src/coreclr/src/pal/src/libunwind/doc/unw_strerror.tex b/src/coreclr/pal/src/libunwind/doc/unw_strerror.tex similarity index 100% rename from src/coreclr/src/pal/src/libunwind/doc/unw_strerror.tex rename to src/coreclr/pal/src/libunwind/doc/unw_strerror.tex diff --git a/src/coreclr/src/pal/src/libunwind/include/compiler.h b/src/coreclr/pal/src/libunwind/include/compiler.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/compiler.h rename to src/coreclr/pal/src/libunwind/include/compiler.h diff --git a/src/coreclr/src/pal/src/libunwind/include/config.h.cmake.in b/src/coreclr/pal/src/libunwind/include/config.h.cmake.in similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/config.h.cmake.in rename to src/coreclr/pal/src/libunwind/include/config.h.cmake.in diff --git a/src/coreclr/src/pal/src/libunwind/include/dwarf-eh.h b/src/coreclr/pal/src/libunwind/include/dwarf-eh.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/dwarf-eh.h rename to src/coreclr/pal/src/libunwind/include/dwarf-eh.h diff --git a/src/coreclr/src/pal/src/libunwind/include/dwarf.h b/src/coreclr/pal/src/libunwind/include/dwarf.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/dwarf.h rename to src/coreclr/pal/src/libunwind/include/dwarf.h diff --git a/src/coreclr/src/pal/src/libunwind/include/dwarf_i.h b/src/coreclr/pal/src/libunwind/include/dwarf_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/dwarf_i.h rename to src/coreclr/pal/src/libunwind/include/dwarf_i.h diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind-aarch64.h b/src/coreclr/pal/src/libunwind/include/libunwind-aarch64.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind-aarch64.h rename to src/coreclr/pal/src/libunwind/include/libunwind-aarch64.h diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind-arm.h b/src/coreclr/pal/src/libunwind/include/libunwind-arm.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind-arm.h rename to src/coreclr/pal/src/libunwind/include/libunwind-arm.h diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind-common.h.in b/src/coreclr/pal/src/libunwind/include/libunwind-common.h.in similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind-common.h.in rename to src/coreclr/pal/src/libunwind/include/libunwind-common.h.in diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind-coredump.h b/src/coreclr/pal/src/libunwind/include/libunwind-coredump.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind-coredump.h rename to src/coreclr/pal/src/libunwind/include/libunwind-coredump.h diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind-dynamic.h b/src/coreclr/pal/src/libunwind/include/libunwind-dynamic.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind-dynamic.h rename to src/coreclr/pal/src/libunwind/include/libunwind-dynamic.h diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind-hppa.h b/src/coreclr/pal/src/libunwind/include/libunwind-hppa.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind-hppa.h rename to src/coreclr/pal/src/libunwind/include/libunwind-hppa.h diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind-ia64.h b/src/coreclr/pal/src/libunwind/include/libunwind-ia64.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind-ia64.h rename to src/coreclr/pal/src/libunwind/include/libunwind-ia64.h diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind-mips.h b/src/coreclr/pal/src/libunwind/include/libunwind-mips.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind-mips.h rename to src/coreclr/pal/src/libunwind/include/libunwind-mips.h diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind-ppc32.h b/src/coreclr/pal/src/libunwind/include/libunwind-ppc32.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind-ppc32.h rename to src/coreclr/pal/src/libunwind/include/libunwind-ppc32.h diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind-ppc64.h b/src/coreclr/pal/src/libunwind/include/libunwind-ppc64.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind-ppc64.h rename to src/coreclr/pal/src/libunwind/include/libunwind-ppc64.h diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind-ptrace.h b/src/coreclr/pal/src/libunwind/include/libunwind-ptrace.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind-ptrace.h rename to src/coreclr/pal/src/libunwind/include/libunwind-ptrace.h diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind-s390x.h b/src/coreclr/pal/src/libunwind/include/libunwind-s390x.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind-s390x.h rename to src/coreclr/pal/src/libunwind/include/libunwind-s390x.h diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind-sh.h b/src/coreclr/pal/src/libunwind/include/libunwind-sh.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind-sh.h rename to src/coreclr/pal/src/libunwind/include/libunwind-sh.h diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind-tilegx.h b/src/coreclr/pal/src/libunwind/include/libunwind-tilegx.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind-tilegx.h rename to src/coreclr/pal/src/libunwind/include/libunwind-tilegx.h diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind-x86.h b/src/coreclr/pal/src/libunwind/include/libunwind-x86.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind-x86.h rename to src/coreclr/pal/src/libunwind/include/libunwind-x86.h diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind-x86_64.h b/src/coreclr/pal/src/libunwind/include/libunwind-x86_64.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind-x86_64.h rename to src/coreclr/pal/src/libunwind/include/libunwind-x86_64.h diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind.h.in b/src/coreclr/pal/src/libunwind/include/libunwind.h.in similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind.h.in rename to src/coreclr/pal/src/libunwind/include/libunwind.h.in diff --git a/src/coreclr/src/pal/src/libunwind/include/libunwind_i.h b/src/coreclr/pal/src/libunwind/include/libunwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/libunwind_i.h rename to src/coreclr/pal/src/libunwind/include/libunwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/include/mempool.h b/src/coreclr/pal/src/libunwind/include/mempool.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/mempool.h rename to src/coreclr/pal/src/libunwind/include/mempool.h diff --git a/src/coreclr/src/pal/src/libunwind/include/remote.h b/src/coreclr/pal/src/libunwind/include/remote.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/remote.h rename to src/coreclr/pal/src/libunwind/include/remote.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-aarch64/dwarf-config.h b/src/coreclr/pal/src/libunwind/include/tdep-aarch64/dwarf-config.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-aarch64/dwarf-config.h rename to src/coreclr/pal/src/libunwind/include/tdep-aarch64/dwarf-config.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-aarch64/jmpbuf.h b/src/coreclr/pal/src/libunwind/include/tdep-aarch64/jmpbuf.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-aarch64/jmpbuf.h rename to src/coreclr/pal/src/libunwind/include/tdep-aarch64/jmpbuf.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-aarch64/libunwind_i.h b/src/coreclr/pal/src/libunwind/include/tdep-aarch64/libunwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-aarch64/libunwind_i.h rename to src/coreclr/pal/src/libunwind/include/tdep-aarch64/libunwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-arm/dwarf-config.h b/src/coreclr/pal/src/libunwind/include/tdep-arm/dwarf-config.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-arm/dwarf-config.h rename to src/coreclr/pal/src/libunwind/include/tdep-arm/dwarf-config.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-arm/ex_tables.h b/src/coreclr/pal/src/libunwind/include/tdep-arm/ex_tables.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-arm/ex_tables.h rename to src/coreclr/pal/src/libunwind/include/tdep-arm/ex_tables.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-arm/jmpbuf.h b/src/coreclr/pal/src/libunwind/include/tdep-arm/jmpbuf.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-arm/jmpbuf.h rename to src/coreclr/pal/src/libunwind/include/tdep-arm/jmpbuf.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-arm/libunwind_i.h b/src/coreclr/pal/src/libunwind/include/tdep-arm/libunwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-arm/libunwind_i.h rename to src/coreclr/pal/src/libunwind/include/tdep-arm/libunwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-hppa/dwarf-config.h b/src/coreclr/pal/src/libunwind/include/tdep-hppa/dwarf-config.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-hppa/dwarf-config.h rename to src/coreclr/pal/src/libunwind/include/tdep-hppa/dwarf-config.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-hppa/jmpbuf.h b/src/coreclr/pal/src/libunwind/include/tdep-hppa/jmpbuf.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-hppa/jmpbuf.h rename to src/coreclr/pal/src/libunwind/include/tdep-hppa/jmpbuf.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-hppa/libunwind_i.h b/src/coreclr/pal/src/libunwind/include/tdep-hppa/libunwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-hppa/libunwind_i.h rename to src/coreclr/pal/src/libunwind/include/tdep-hppa/libunwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-ia64/jmpbuf.h b/src/coreclr/pal/src/libunwind/include/tdep-ia64/jmpbuf.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-ia64/jmpbuf.h rename to src/coreclr/pal/src/libunwind/include/tdep-ia64/jmpbuf.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-ia64/libunwind_i.h b/src/coreclr/pal/src/libunwind/include/tdep-ia64/libunwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-ia64/libunwind_i.h rename to src/coreclr/pal/src/libunwind/include/tdep-ia64/libunwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-ia64/rse.h b/src/coreclr/pal/src/libunwind/include/tdep-ia64/rse.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-ia64/rse.h rename to src/coreclr/pal/src/libunwind/include/tdep-ia64/rse.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-ia64/script.h b/src/coreclr/pal/src/libunwind/include/tdep-ia64/script.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-ia64/script.h rename to src/coreclr/pal/src/libunwind/include/tdep-ia64/script.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-mips/dwarf-config.h b/src/coreclr/pal/src/libunwind/include/tdep-mips/dwarf-config.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-mips/dwarf-config.h rename to src/coreclr/pal/src/libunwind/include/tdep-mips/dwarf-config.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-mips/jmpbuf.h b/src/coreclr/pal/src/libunwind/include/tdep-mips/jmpbuf.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-mips/jmpbuf.h rename to src/coreclr/pal/src/libunwind/include/tdep-mips/jmpbuf.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-mips/libunwind_i.h b/src/coreclr/pal/src/libunwind/include/tdep-mips/libunwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-mips/libunwind_i.h rename to src/coreclr/pal/src/libunwind/include/tdep-mips/libunwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-ppc32/dwarf-config.h b/src/coreclr/pal/src/libunwind/include/tdep-ppc32/dwarf-config.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-ppc32/dwarf-config.h rename to src/coreclr/pal/src/libunwind/include/tdep-ppc32/dwarf-config.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-ppc32/jmpbuf.h b/src/coreclr/pal/src/libunwind/include/tdep-ppc32/jmpbuf.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-ppc32/jmpbuf.h rename to src/coreclr/pal/src/libunwind/include/tdep-ppc32/jmpbuf.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-ppc32/libunwind_i.h b/src/coreclr/pal/src/libunwind/include/tdep-ppc32/libunwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-ppc32/libunwind_i.h rename to src/coreclr/pal/src/libunwind/include/tdep-ppc32/libunwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-ppc64/dwarf-config.h b/src/coreclr/pal/src/libunwind/include/tdep-ppc64/dwarf-config.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-ppc64/dwarf-config.h rename to src/coreclr/pal/src/libunwind/include/tdep-ppc64/dwarf-config.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-ppc64/jmpbuf.h b/src/coreclr/pal/src/libunwind/include/tdep-ppc64/jmpbuf.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-ppc64/jmpbuf.h rename to src/coreclr/pal/src/libunwind/include/tdep-ppc64/jmpbuf.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-ppc64/libunwind_i.h b/src/coreclr/pal/src/libunwind/include/tdep-ppc64/libunwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-ppc64/libunwind_i.h rename to src/coreclr/pal/src/libunwind/include/tdep-ppc64/libunwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-s390x/dwarf-config.h b/src/coreclr/pal/src/libunwind/include/tdep-s390x/dwarf-config.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-s390x/dwarf-config.h rename to src/coreclr/pal/src/libunwind/include/tdep-s390x/dwarf-config.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-s390x/jmpbuf.h b/src/coreclr/pal/src/libunwind/include/tdep-s390x/jmpbuf.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-s390x/jmpbuf.h rename to src/coreclr/pal/src/libunwind/include/tdep-s390x/jmpbuf.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-s390x/libunwind_i.h b/src/coreclr/pal/src/libunwind/include/tdep-s390x/libunwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-s390x/libunwind_i.h rename to src/coreclr/pal/src/libunwind/include/tdep-s390x/libunwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-sh/dwarf-config.h b/src/coreclr/pal/src/libunwind/include/tdep-sh/dwarf-config.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-sh/dwarf-config.h rename to src/coreclr/pal/src/libunwind/include/tdep-sh/dwarf-config.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-sh/jmpbuf.h b/src/coreclr/pal/src/libunwind/include/tdep-sh/jmpbuf.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-sh/jmpbuf.h rename to src/coreclr/pal/src/libunwind/include/tdep-sh/jmpbuf.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-sh/libunwind_i.h b/src/coreclr/pal/src/libunwind/include/tdep-sh/libunwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-sh/libunwind_i.h rename to src/coreclr/pal/src/libunwind/include/tdep-sh/libunwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-tilegx/dwarf-config.h b/src/coreclr/pal/src/libunwind/include/tdep-tilegx/dwarf-config.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-tilegx/dwarf-config.h rename to src/coreclr/pal/src/libunwind/include/tdep-tilegx/dwarf-config.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-tilegx/jmpbuf.h b/src/coreclr/pal/src/libunwind/include/tdep-tilegx/jmpbuf.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-tilegx/jmpbuf.h rename to src/coreclr/pal/src/libunwind/include/tdep-tilegx/jmpbuf.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-tilegx/libunwind_i.h b/src/coreclr/pal/src/libunwind/include/tdep-tilegx/libunwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-tilegx/libunwind_i.h rename to src/coreclr/pal/src/libunwind/include/tdep-tilegx/libunwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-x86/dwarf-config.h b/src/coreclr/pal/src/libunwind/include/tdep-x86/dwarf-config.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-x86/dwarf-config.h rename to src/coreclr/pal/src/libunwind/include/tdep-x86/dwarf-config.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-x86/jmpbuf.h b/src/coreclr/pal/src/libunwind/include/tdep-x86/jmpbuf.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-x86/jmpbuf.h rename to src/coreclr/pal/src/libunwind/include/tdep-x86/jmpbuf.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-x86/libunwind_i.h b/src/coreclr/pal/src/libunwind/include/tdep-x86/libunwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-x86/libunwind_i.h rename to src/coreclr/pal/src/libunwind/include/tdep-x86/libunwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-x86_64/dwarf-config.h b/src/coreclr/pal/src/libunwind/include/tdep-x86_64/dwarf-config.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-x86_64/dwarf-config.h rename to src/coreclr/pal/src/libunwind/include/tdep-x86_64/dwarf-config.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-x86_64/jmpbuf.h b/src/coreclr/pal/src/libunwind/include/tdep-x86_64/jmpbuf.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-x86_64/jmpbuf.h rename to src/coreclr/pal/src/libunwind/include/tdep-x86_64/jmpbuf.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep-x86_64/libunwind_i.h b/src/coreclr/pal/src/libunwind/include/tdep-x86_64/libunwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep-x86_64/libunwind_i.h rename to src/coreclr/pal/src/libunwind/include/tdep-x86_64/libunwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep/dwarf-config.h b/src/coreclr/pal/src/libunwind/include/tdep/dwarf-config.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep/dwarf-config.h rename to src/coreclr/pal/src/libunwind/include/tdep/dwarf-config.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep/jmpbuf.h b/src/coreclr/pal/src/libunwind/include/tdep/jmpbuf.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep/jmpbuf.h rename to src/coreclr/pal/src/libunwind/include/tdep/jmpbuf.h diff --git a/src/coreclr/src/pal/src/libunwind/include/tdep/libunwind_i.h.in b/src/coreclr/pal/src/libunwind/include/tdep/libunwind_i.h.in similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/tdep/libunwind_i.h.in rename to src/coreclr/pal/src/libunwind/include/tdep/libunwind_i.h.in diff --git a/src/coreclr/src/pal/src/libunwind/include/unwind.h b/src/coreclr/pal/src/libunwind/include/unwind.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/unwind.h rename to src/coreclr/pal/src/libunwind/include/unwind.h diff --git a/src/coreclr/src/pal/src/libunwind/include/win/elf.h b/src/coreclr/pal/src/libunwind/include/win/elf.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/win/elf.h rename to src/coreclr/pal/src/libunwind/include/win/elf.h diff --git a/src/coreclr/src/pal/src/libunwind/include/win/endian.h b/src/coreclr/pal/src/libunwind/include/win/endian.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/win/endian.h rename to src/coreclr/pal/src/libunwind/include/win/endian.h diff --git a/src/coreclr/src/pal/src/libunwind/include/win/fakestdalign.h.in b/src/coreclr/pal/src/libunwind/include/win/fakestdalign.h.in similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/win/fakestdalign.h.in rename to src/coreclr/pal/src/libunwind/include/win/fakestdalign.h.in diff --git a/src/coreclr/src/pal/src/libunwind/include/win/fakestdatomic.h.in b/src/coreclr/pal/src/libunwind/include/win/fakestdatomic.h.in similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/win/fakestdatomic.h.in rename to src/coreclr/pal/src/libunwind/include/win/fakestdatomic.h.in diff --git a/src/coreclr/src/pal/src/libunwind/include/win/freebsd-elf32.h b/src/coreclr/pal/src/libunwind/include/win/freebsd-elf32.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/win/freebsd-elf32.h rename to src/coreclr/pal/src/libunwind/include/win/freebsd-elf32.h diff --git a/src/coreclr/src/pal/src/libunwind/include/win/freebsd-elf64.h b/src/coreclr/pal/src/libunwind/include/win/freebsd-elf64.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/win/freebsd-elf64.h rename to src/coreclr/pal/src/libunwind/include/win/freebsd-elf64.h diff --git a/src/coreclr/src/pal/src/libunwind/include/win/freebsd-elf_common.h b/src/coreclr/pal/src/libunwind/include/win/freebsd-elf_common.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/win/freebsd-elf_common.h rename to src/coreclr/pal/src/libunwind/include/win/freebsd-elf_common.h diff --git a/src/coreclr/src/pal/src/libunwind/include/win/pthread.h b/src/coreclr/pal/src/libunwind/include/win/pthread.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/win/pthread.h rename to src/coreclr/pal/src/libunwind/include/win/pthread.h diff --git a/src/coreclr/src/pal/src/libunwind/include/win/signal.h b/src/coreclr/pal/src/libunwind/include/win/signal.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/win/signal.h rename to src/coreclr/pal/src/libunwind/include/win/signal.h diff --git a/src/coreclr/src/pal/src/libunwind/include/win/sys/mman.h b/src/coreclr/pal/src/libunwind/include/win/sys/mman.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/win/sys/mman.h rename to src/coreclr/pal/src/libunwind/include/win/sys/mman.h diff --git a/src/coreclr/src/pal/src/libunwind/include/win/sys/syscall.h b/src/coreclr/pal/src/libunwind/include/win/sys/syscall.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/win/sys/syscall.h rename to src/coreclr/pal/src/libunwind/include/win/sys/syscall.h diff --git a/src/coreclr/src/pal/src/libunwind/include/win/sys/types.h b/src/coreclr/pal/src/libunwind/include/win/sys/types.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/win/sys/types.h rename to src/coreclr/pal/src/libunwind/include/win/sys/types.h diff --git a/src/coreclr/src/pal/src/libunwind/include/win/sys/ucontext.h b/src/coreclr/pal/src/libunwind/include/win/sys/ucontext.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/win/sys/ucontext.h rename to src/coreclr/pal/src/libunwind/include/win/sys/ucontext.h diff --git a/src/coreclr/src/pal/src/libunwind/include/win/ucontext.h b/src/coreclr/pal/src/libunwind/include/win/ucontext.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/win/ucontext.h rename to src/coreclr/pal/src/libunwind/include/win/ucontext.h diff --git a/src/coreclr/src/pal/src/libunwind/include/win/unistd.h b/src/coreclr/pal/src/libunwind/include/win/unistd.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/win/unistd.h rename to src/coreclr/pal/src/libunwind/include/win/unistd.h diff --git a/src/coreclr/src/pal/src/libunwind/include/x86/jmpbuf.h b/src/coreclr/pal/src/libunwind/include/x86/jmpbuf.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/include/x86/jmpbuf.h rename to src/coreclr/pal/src/libunwind/include/x86/jmpbuf.h diff --git a/src/coreclr/src/pal/src/libunwind/libunwind-version.txt b/src/coreclr/pal/src/libunwind/libunwind-version.txt similarity index 100% rename from src/coreclr/src/pal/src/libunwind/libunwind-version.txt rename to src/coreclr/pal/src/libunwind/libunwind-version.txt diff --git a/src/coreclr/src/pal/src/libunwind/scripts/kernel-diff.sh b/src/coreclr/pal/src/libunwind/scripts/kernel-diff.sh similarity index 100% rename from src/coreclr/src/pal/src/libunwind/scripts/kernel-diff.sh rename to src/coreclr/pal/src/libunwind/scripts/kernel-diff.sh diff --git a/src/coreclr/src/pal/src/libunwind/scripts/kernel-files.txt b/src/coreclr/pal/src/libunwind/scripts/kernel-files.txt similarity index 100% rename from src/coreclr/src/pal/src/libunwind/scripts/kernel-files.txt rename to src/coreclr/pal/src/libunwind/scripts/kernel-files.txt diff --git a/src/coreclr/src/pal/src/libunwind/scripts/make-L-files b/src/coreclr/pal/src/libunwind/scripts/make-L-files similarity index 100% rename from src/coreclr/src/pal/src/libunwind/scripts/make-L-files rename to src/coreclr/pal/src/libunwind/scripts/make-L-files diff --git a/src/coreclr/src/pal/src/libunwind/src/CMakeLists.txt b/src/coreclr/pal/src/libunwind/src/CMakeLists.txt similarity index 98% rename from src/coreclr/src/pal/src/libunwind/src/CMakeLists.txt rename to src/coreclr/pal/src/libunwind/src/CMakeLists.txt index 656f913ab0734..56420c1558f6c 100644 --- a/src/coreclr/src/pal/src/libunwind/src/CMakeLists.txt +++ b/src/coreclr/pal/src/libunwind/src/CMakeLists.txt @@ -342,7 +342,7 @@ else(CLR_CMAKE_HOST_UNIX) list(APPEND libunwind_setjmp_la_SOURCES x86_64/longjmp.S x86_64/siglongjmp.SA) endif() - set_source_files_properties(${CLR_DIR}/src/pal/src/exception/remote-unwind.cpp PROPERTIES COMPILE_FLAGS /TP INCLUDE_DIRECTORIES ${CLR_DIR}/src/inc) + set_source_files_properties(${CLR_DIR}/pal/src/exception/remote-unwind.cpp PROPERTIES COMPILE_FLAGS /TP INCLUDE_DIRECTORIES ${CLR_DIR}/inc) add_library(libunwind_xdac OBJECT diff --git a/src/coreclr/src/pal/src/libunwind/src/Makefile.am b/src/coreclr/pal/src/libunwind/src/Makefile.am similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/Makefile.am rename to src/coreclr/pal/src/libunwind/src/Makefile.am diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Gapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/aarch64/Gapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Gapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Gapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Gcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/aarch64/Gcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Gcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Gcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Gget_proc_info.c b/src/coreclr/pal/src/libunwind/src/aarch64/Gget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Gget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Gget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Gget_save_loc.c b/src/coreclr/pal/src/libunwind/src/aarch64/Gget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Gget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Gget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Gglobal.c b/src/coreclr/pal/src/libunwind/src/aarch64/Gglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Gglobal.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Gglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Ginit.c b/src/coreclr/pal/src/libunwind/src/aarch64/Ginit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Ginit.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Ginit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Ginit_local.c b/src/coreclr/pal/src/libunwind/src/aarch64/Ginit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Ginit_local.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Ginit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Ginit_remote.c b/src/coreclr/pal/src/libunwind/src/aarch64/Ginit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Ginit_remote.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Ginit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Gis_signal_frame.c b/src/coreclr/pal/src/libunwind/src/aarch64/Gis_signal_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Gis_signal_frame.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Gis_signal_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Greg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/aarch64/Greg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Greg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Greg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Gregs.c b/src/coreclr/pal/src/libunwind/src/aarch64/Gregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Gregs.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Gregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Gresume.c b/src/coreclr/pal/src/libunwind/src/aarch64/Gresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Gresume.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Gresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Gstash_frame.c b/src/coreclr/pal/src/libunwind/src/aarch64/Gstash_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Gstash_frame.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Gstash_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Gstep.c b/src/coreclr/pal/src/libunwind/src/aarch64/Gstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Gstep.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Gstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Gtrace.c b/src/coreclr/pal/src/libunwind/src/aarch64/Gtrace.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Gtrace.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Gtrace.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Lapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/aarch64/Lapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Lapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Lapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Lcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/aarch64/Lcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Lcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Lcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Lget_proc_info.c b/src/coreclr/pal/src/libunwind/src/aarch64/Lget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Lget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Lget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Lget_save_loc.c b/src/coreclr/pal/src/libunwind/src/aarch64/Lget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Lget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Lget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Lglobal.c b/src/coreclr/pal/src/libunwind/src/aarch64/Lglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Lglobal.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Lglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Linit.c b/src/coreclr/pal/src/libunwind/src/aarch64/Linit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Linit.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Linit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Linit_local.c b/src/coreclr/pal/src/libunwind/src/aarch64/Linit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Linit_local.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Linit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Linit_remote.c b/src/coreclr/pal/src/libunwind/src/aarch64/Linit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Linit_remote.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Linit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Lis_signal_frame.c b/src/coreclr/pal/src/libunwind/src/aarch64/Lis_signal_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Lis_signal_frame.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Lis_signal_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Lreg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/aarch64/Lreg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Lreg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Lreg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Lregs.c b/src/coreclr/pal/src/libunwind/src/aarch64/Lregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Lregs.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Lregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Lresume.c b/src/coreclr/pal/src/libunwind/src/aarch64/Lresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Lresume.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Lresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Lstash_frame.c b/src/coreclr/pal/src/libunwind/src/aarch64/Lstash_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Lstash_frame.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Lstash_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Lstep.c b/src/coreclr/pal/src/libunwind/src/aarch64/Lstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Lstep.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Lstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/Ltrace.c b/src/coreclr/pal/src/libunwind/src/aarch64/Ltrace.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/Ltrace.c rename to src/coreclr/pal/src/libunwind/src/aarch64/Ltrace.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/gen-offsets.c b/src/coreclr/pal/src/libunwind/src/aarch64/gen-offsets.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/gen-offsets.c rename to src/coreclr/pal/src/libunwind/src/aarch64/gen-offsets.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/getcontext.S b/src/coreclr/pal/src/libunwind/src/aarch64/getcontext.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/getcontext.S rename to src/coreclr/pal/src/libunwind/src/aarch64/getcontext.S diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/init.h b/src/coreclr/pal/src/libunwind/src/aarch64/init.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/init.h rename to src/coreclr/pal/src/libunwind/src/aarch64/init.h diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/is_fpreg.c b/src/coreclr/pal/src/libunwind/src/aarch64/is_fpreg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/is_fpreg.c rename to src/coreclr/pal/src/libunwind/src/aarch64/is_fpreg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/offsets.h b/src/coreclr/pal/src/libunwind/src/aarch64/offsets.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/offsets.h rename to src/coreclr/pal/src/libunwind/src/aarch64/offsets.h diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/regname.c b/src/coreclr/pal/src/libunwind/src/aarch64/regname.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/regname.c rename to src/coreclr/pal/src/libunwind/src/aarch64/regname.c diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/siglongjmp.S b/src/coreclr/pal/src/libunwind/src/aarch64/siglongjmp.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/siglongjmp.S rename to src/coreclr/pal/src/libunwind/src/aarch64/siglongjmp.S diff --git a/src/coreclr/src/pal/src/libunwind/src/aarch64/unwind_i.h b/src/coreclr/pal/src/libunwind/src/aarch64/unwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/aarch64/unwind_i.h rename to src/coreclr/pal/src/libunwind/src/aarch64/unwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Gapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/arm/Gapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Gapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/arm/Gapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Gcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/arm/Gcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Gcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/arm/Gcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Gex_tables.c b/src/coreclr/pal/src/libunwind/src/arm/Gex_tables.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Gex_tables.c rename to src/coreclr/pal/src/libunwind/src/arm/Gex_tables.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Gget_proc_info.c b/src/coreclr/pal/src/libunwind/src/arm/Gget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Gget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/arm/Gget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Gget_save_loc.c b/src/coreclr/pal/src/libunwind/src/arm/Gget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Gget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/arm/Gget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Gglobal.c b/src/coreclr/pal/src/libunwind/src/arm/Gglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Gglobal.c rename to src/coreclr/pal/src/libunwind/src/arm/Gglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Ginit.c b/src/coreclr/pal/src/libunwind/src/arm/Ginit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Ginit.c rename to src/coreclr/pal/src/libunwind/src/arm/Ginit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Ginit_local.c b/src/coreclr/pal/src/libunwind/src/arm/Ginit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Ginit_local.c rename to src/coreclr/pal/src/libunwind/src/arm/Ginit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Ginit_remote.c b/src/coreclr/pal/src/libunwind/src/arm/Ginit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Ginit_remote.c rename to src/coreclr/pal/src/libunwind/src/arm/Ginit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Gos-freebsd.c b/src/coreclr/pal/src/libunwind/src/arm/Gos-freebsd.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Gos-freebsd.c rename to src/coreclr/pal/src/libunwind/src/arm/Gos-freebsd.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Gos-linux.c b/src/coreclr/pal/src/libunwind/src/arm/Gos-linux.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Gos-linux.c rename to src/coreclr/pal/src/libunwind/src/arm/Gos-linux.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Gos-other.c b/src/coreclr/pal/src/libunwind/src/arm/Gos-other.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Gos-other.c rename to src/coreclr/pal/src/libunwind/src/arm/Gos-other.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Greg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/arm/Greg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Greg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/arm/Greg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Gregs.c b/src/coreclr/pal/src/libunwind/src/arm/Gregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Gregs.c rename to src/coreclr/pal/src/libunwind/src/arm/Gregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Gresume.c b/src/coreclr/pal/src/libunwind/src/arm/Gresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Gresume.c rename to src/coreclr/pal/src/libunwind/src/arm/Gresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Gstash_frame.c b/src/coreclr/pal/src/libunwind/src/arm/Gstash_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Gstash_frame.c rename to src/coreclr/pal/src/libunwind/src/arm/Gstash_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Gstep.c b/src/coreclr/pal/src/libunwind/src/arm/Gstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Gstep.c rename to src/coreclr/pal/src/libunwind/src/arm/Gstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Gtrace.c b/src/coreclr/pal/src/libunwind/src/arm/Gtrace.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Gtrace.c rename to src/coreclr/pal/src/libunwind/src/arm/Gtrace.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Lapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/arm/Lapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Lapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/arm/Lapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Lcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/arm/Lcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Lcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/arm/Lcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Lex_tables.c b/src/coreclr/pal/src/libunwind/src/arm/Lex_tables.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Lex_tables.c rename to src/coreclr/pal/src/libunwind/src/arm/Lex_tables.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Lget_proc_info.c b/src/coreclr/pal/src/libunwind/src/arm/Lget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Lget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/arm/Lget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Lget_save_loc.c b/src/coreclr/pal/src/libunwind/src/arm/Lget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Lget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/arm/Lget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Lglobal.c b/src/coreclr/pal/src/libunwind/src/arm/Lglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Lglobal.c rename to src/coreclr/pal/src/libunwind/src/arm/Lglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Linit.c b/src/coreclr/pal/src/libunwind/src/arm/Linit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Linit.c rename to src/coreclr/pal/src/libunwind/src/arm/Linit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Linit_local.c b/src/coreclr/pal/src/libunwind/src/arm/Linit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Linit_local.c rename to src/coreclr/pal/src/libunwind/src/arm/Linit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Linit_remote.c b/src/coreclr/pal/src/libunwind/src/arm/Linit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Linit_remote.c rename to src/coreclr/pal/src/libunwind/src/arm/Linit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Lis_signal_frame.c b/src/coreclr/pal/src/libunwind/src/arm/Lis_signal_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Lis_signal_frame.c rename to src/coreclr/pal/src/libunwind/src/arm/Lis_signal_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Los-freebsd.c b/src/coreclr/pal/src/libunwind/src/arm/Los-freebsd.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Los-freebsd.c rename to src/coreclr/pal/src/libunwind/src/arm/Los-freebsd.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Los-linux.c b/src/coreclr/pal/src/libunwind/src/arm/Los-linux.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Los-linux.c rename to src/coreclr/pal/src/libunwind/src/arm/Los-linux.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Los-other.c b/src/coreclr/pal/src/libunwind/src/arm/Los-other.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Los-other.c rename to src/coreclr/pal/src/libunwind/src/arm/Los-other.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Lreg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/arm/Lreg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Lreg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/arm/Lreg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Lregs.c b/src/coreclr/pal/src/libunwind/src/arm/Lregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Lregs.c rename to src/coreclr/pal/src/libunwind/src/arm/Lregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Lresume.c b/src/coreclr/pal/src/libunwind/src/arm/Lresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Lresume.c rename to src/coreclr/pal/src/libunwind/src/arm/Lresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Lstash_frame.c b/src/coreclr/pal/src/libunwind/src/arm/Lstash_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Lstash_frame.c rename to src/coreclr/pal/src/libunwind/src/arm/Lstash_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Lstep.c b/src/coreclr/pal/src/libunwind/src/arm/Lstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Lstep.c rename to src/coreclr/pal/src/libunwind/src/arm/Lstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/Ltrace.c b/src/coreclr/pal/src/libunwind/src/arm/Ltrace.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/Ltrace.c rename to src/coreclr/pal/src/libunwind/src/arm/Ltrace.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/gen-offsets.c b/src/coreclr/pal/src/libunwind/src/arm/gen-offsets.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/gen-offsets.c rename to src/coreclr/pal/src/libunwind/src/arm/gen-offsets.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/getcontext.S b/src/coreclr/pal/src/libunwind/src/arm/getcontext.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/getcontext.S rename to src/coreclr/pal/src/libunwind/src/arm/getcontext.S diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/init.h b/src/coreclr/pal/src/libunwind/src/arm/init.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/init.h rename to src/coreclr/pal/src/libunwind/src/arm/init.h diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/is_fpreg.c b/src/coreclr/pal/src/libunwind/src/arm/is_fpreg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/is_fpreg.c rename to src/coreclr/pal/src/libunwind/src/arm/is_fpreg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/offsets.h b/src/coreclr/pal/src/libunwind/src/arm/offsets.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/offsets.h rename to src/coreclr/pal/src/libunwind/src/arm/offsets.h diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/regname.c b/src/coreclr/pal/src/libunwind/src/arm/regname.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/regname.c rename to src/coreclr/pal/src/libunwind/src/arm/regname.c diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/siglongjmp.S b/src/coreclr/pal/src/libunwind/src/arm/siglongjmp.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/siglongjmp.S rename to src/coreclr/pal/src/libunwind/src/arm/siglongjmp.S diff --git a/src/coreclr/src/pal/src/libunwind/src/arm/unwind_i.h b/src/coreclr/pal/src/libunwind/src/arm/unwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/arm/unwind_i.h rename to src/coreclr/pal/src/libunwind/src/arm/unwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/README b/src/coreclr/pal/src/libunwind/src/coredump/README similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/README rename to src/coreclr/pal/src/libunwind/src/coredump/README diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_access_mem.c b/src/coreclr/pal/src/libunwind/src/coredump/_UCD_access_mem.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_access_mem.c rename to src/coreclr/pal/src/libunwind/src/coredump/_UCD_access_mem.c diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_access_reg_freebsd.c b/src/coreclr/pal/src/libunwind/src/coredump/_UCD_access_reg_freebsd.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_access_reg_freebsd.c rename to src/coreclr/pal/src/libunwind/src/coredump/_UCD_access_reg_freebsd.c diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_access_reg_linux.c b/src/coreclr/pal/src/libunwind/src/coredump/_UCD_access_reg_linux.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_access_reg_linux.c rename to src/coreclr/pal/src/libunwind/src/coredump/_UCD_access_reg_linux.c diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_accessors.c b/src/coreclr/pal/src/libunwind/src/coredump/_UCD_accessors.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_accessors.c rename to src/coreclr/pal/src/libunwind/src/coredump/_UCD_accessors.c diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_create.c b/src/coreclr/pal/src/libunwind/src/coredump/_UCD_create.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_create.c rename to src/coreclr/pal/src/libunwind/src/coredump/_UCD_create.c diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_destroy.c b/src/coreclr/pal/src/libunwind/src/coredump/_UCD_destroy.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_destroy.c rename to src/coreclr/pal/src/libunwind/src/coredump/_UCD_destroy.c diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_elf_map_image.c b/src/coreclr/pal/src/libunwind/src/coredump/_UCD_elf_map_image.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_elf_map_image.c rename to src/coreclr/pal/src/libunwind/src/coredump/_UCD_elf_map_image.c diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_find_proc_info.c b/src/coreclr/pal/src/libunwind/src/coredump/_UCD_find_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_find_proc_info.c rename to src/coreclr/pal/src/libunwind/src/coredump/_UCD_find_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_get_proc_name.c b/src/coreclr/pal/src/libunwind/src/coredump/_UCD_get_proc_name.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_get_proc_name.c rename to src/coreclr/pal/src/libunwind/src/coredump/_UCD_get_proc_name.c diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_internal.h b/src/coreclr/pal/src/libunwind/src/coredump/_UCD_internal.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_internal.h rename to src/coreclr/pal/src/libunwind/src/coredump/_UCD_internal.h diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_lib.h b/src/coreclr/pal/src/libunwind/src/coredump/_UCD_lib.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/_UCD_lib.h rename to src/coreclr/pal/src/libunwind/src/coredump/_UCD_lib.h diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/_UPT_access_fpreg.c b/src/coreclr/pal/src/libunwind/src/coredump/_UPT_access_fpreg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/_UPT_access_fpreg.c rename to src/coreclr/pal/src/libunwind/src/coredump/_UPT_access_fpreg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/_UPT_elf.c b/src/coreclr/pal/src/libunwind/src/coredump/_UPT_elf.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/_UPT_elf.c rename to src/coreclr/pal/src/libunwind/src/coredump/_UPT_elf.c diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/_UPT_get_dyn_info_list_addr.c b/src/coreclr/pal/src/libunwind/src/coredump/_UPT_get_dyn_info_list_addr.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/_UPT_get_dyn_info_list_addr.c rename to src/coreclr/pal/src/libunwind/src/coredump/_UPT_get_dyn_info_list_addr.c diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/_UPT_put_unwind_info.c b/src/coreclr/pal/src/libunwind/src/coredump/_UPT_put_unwind_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/_UPT_put_unwind_info.c rename to src/coreclr/pal/src/libunwind/src/coredump/_UPT_put_unwind_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/_UPT_resume.c b/src/coreclr/pal/src/libunwind/src/coredump/_UPT_resume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/_UPT_resume.c rename to src/coreclr/pal/src/libunwind/src/coredump/_UPT_resume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/coredump/libunwind-coredump.pc.in b/src/coreclr/pal/src/libunwind/src/coredump/libunwind-coredump.pc.in similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/coredump/libunwind-coredump.pc.in rename to src/coreclr/pal/src/libunwind/src/coredump/libunwind-coredump.pc.in diff --git a/src/coreclr/src/pal/src/libunwind/src/dwarf/Gexpr.c b/src/coreclr/pal/src/libunwind/src/dwarf/Gexpr.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/dwarf/Gexpr.c rename to src/coreclr/pal/src/libunwind/src/dwarf/Gexpr.c diff --git a/src/coreclr/src/pal/src/libunwind/src/dwarf/Gfde.c b/src/coreclr/pal/src/libunwind/src/dwarf/Gfde.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/dwarf/Gfde.c rename to src/coreclr/pal/src/libunwind/src/dwarf/Gfde.c diff --git a/src/coreclr/src/pal/src/libunwind/src/dwarf/Gfind_proc_info-lsb.c b/src/coreclr/pal/src/libunwind/src/dwarf/Gfind_proc_info-lsb.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/dwarf/Gfind_proc_info-lsb.c rename to src/coreclr/pal/src/libunwind/src/dwarf/Gfind_proc_info-lsb.c diff --git a/src/coreclr/src/pal/src/libunwind/src/dwarf/Gfind_unwind_table.c b/src/coreclr/pal/src/libunwind/src/dwarf/Gfind_unwind_table.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/dwarf/Gfind_unwind_table.c rename to src/coreclr/pal/src/libunwind/src/dwarf/Gfind_unwind_table.c diff --git a/src/coreclr/src/pal/src/libunwind/src/dwarf/Gparser.c b/src/coreclr/pal/src/libunwind/src/dwarf/Gparser.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/dwarf/Gparser.c rename to src/coreclr/pal/src/libunwind/src/dwarf/Gparser.c diff --git a/src/coreclr/src/pal/src/libunwind/src/dwarf/Gpe.c b/src/coreclr/pal/src/libunwind/src/dwarf/Gpe.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/dwarf/Gpe.c rename to src/coreclr/pal/src/libunwind/src/dwarf/Gpe.c diff --git a/src/coreclr/src/pal/src/libunwind/src/dwarf/Lexpr.c b/src/coreclr/pal/src/libunwind/src/dwarf/Lexpr.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/dwarf/Lexpr.c rename to src/coreclr/pal/src/libunwind/src/dwarf/Lexpr.c diff --git a/src/coreclr/src/pal/src/libunwind/src/dwarf/Lfde.c b/src/coreclr/pal/src/libunwind/src/dwarf/Lfde.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/dwarf/Lfde.c rename to src/coreclr/pal/src/libunwind/src/dwarf/Lfde.c diff --git a/src/coreclr/src/pal/src/libunwind/src/dwarf/Lfind_proc_info-lsb.c b/src/coreclr/pal/src/libunwind/src/dwarf/Lfind_proc_info-lsb.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/dwarf/Lfind_proc_info-lsb.c rename to src/coreclr/pal/src/libunwind/src/dwarf/Lfind_proc_info-lsb.c diff --git a/src/coreclr/src/pal/src/libunwind/src/dwarf/Lfind_unwind_table.c b/src/coreclr/pal/src/libunwind/src/dwarf/Lfind_unwind_table.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/dwarf/Lfind_unwind_table.c rename to src/coreclr/pal/src/libunwind/src/dwarf/Lfind_unwind_table.c diff --git a/src/coreclr/src/pal/src/libunwind/src/dwarf/Lparser.c b/src/coreclr/pal/src/libunwind/src/dwarf/Lparser.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/dwarf/Lparser.c rename to src/coreclr/pal/src/libunwind/src/dwarf/Lparser.c diff --git a/src/coreclr/src/pal/src/libunwind/src/dwarf/Lpe.c b/src/coreclr/pal/src/libunwind/src/dwarf/Lpe.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/dwarf/Lpe.c rename to src/coreclr/pal/src/libunwind/src/dwarf/Lpe.c diff --git a/src/coreclr/src/pal/src/libunwind/src/dwarf/global.c b/src/coreclr/pal/src/libunwind/src/dwarf/global.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/dwarf/global.c rename to src/coreclr/pal/src/libunwind/src/dwarf/global.c diff --git a/src/coreclr/src/pal/src/libunwind/src/elf32.c b/src/coreclr/pal/src/libunwind/src/elf32.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/elf32.c rename to src/coreclr/pal/src/libunwind/src/elf32.c diff --git a/src/coreclr/src/pal/src/libunwind/src/elf32.h b/src/coreclr/pal/src/libunwind/src/elf32.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/elf32.h rename to src/coreclr/pal/src/libunwind/src/elf32.h diff --git a/src/coreclr/src/pal/src/libunwind/src/elf64.c b/src/coreclr/pal/src/libunwind/src/elf64.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/elf64.c rename to src/coreclr/pal/src/libunwind/src/elf64.c diff --git a/src/coreclr/src/pal/src/libunwind/src/elf64.h b/src/coreclr/pal/src/libunwind/src/elf64.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/elf64.h rename to src/coreclr/pal/src/libunwind/src/elf64.h diff --git a/src/coreclr/src/pal/src/libunwind/src/elfxx.c b/src/coreclr/pal/src/libunwind/src/elfxx.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/elfxx.c rename to src/coreclr/pal/src/libunwind/src/elfxx.c diff --git a/src/coreclr/src/pal/src/libunwind/src/elfxx.h b/src/coreclr/pal/src/libunwind/src/elfxx.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/elfxx.h rename to src/coreclr/pal/src/libunwind/src/elfxx.h diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Gapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/hppa/Gapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Gapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/hppa/Gapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Gcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/hppa/Gcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Gcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/hppa/Gcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Gget_proc_info.c b/src/coreclr/pal/src/libunwind/src/hppa/Gget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Gget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/hppa/Gget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Gget_save_loc.c b/src/coreclr/pal/src/libunwind/src/hppa/Gget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Gget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/hppa/Gget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Gglobal.c b/src/coreclr/pal/src/libunwind/src/hppa/Gglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Gglobal.c rename to src/coreclr/pal/src/libunwind/src/hppa/Gglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Ginit.c b/src/coreclr/pal/src/libunwind/src/hppa/Ginit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Ginit.c rename to src/coreclr/pal/src/libunwind/src/hppa/Ginit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Ginit_local.c b/src/coreclr/pal/src/libunwind/src/hppa/Ginit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Ginit_local.c rename to src/coreclr/pal/src/libunwind/src/hppa/Ginit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Ginit_remote.c b/src/coreclr/pal/src/libunwind/src/hppa/Ginit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Ginit_remote.c rename to src/coreclr/pal/src/libunwind/src/hppa/Ginit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Gis_signal_frame.c b/src/coreclr/pal/src/libunwind/src/hppa/Gis_signal_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Gis_signal_frame.c rename to src/coreclr/pal/src/libunwind/src/hppa/Gis_signal_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Greg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/hppa/Greg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Greg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/hppa/Greg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Gregs.c b/src/coreclr/pal/src/libunwind/src/hppa/Gregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Gregs.c rename to src/coreclr/pal/src/libunwind/src/hppa/Gregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Gresume.c b/src/coreclr/pal/src/libunwind/src/hppa/Gresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Gresume.c rename to src/coreclr/pal/src/libunwind/src/hppa/Gresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Gstep.c b/src/coreclr/pal/src/libunwind/src/hppa/Gstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Gstep.c rename to src/coreclr/pal/src/libunwind/src/hppa/Gstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Lapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/hppa/Lapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Lapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/hppa/Lapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Lcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/hppa/Lcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Lcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/hppa/Lcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Lget_proc_info.c b/src/coreclr/pal/src/libunwind/src/hppa/Lget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Lget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/hppa/Lget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Lget_save_loc.c b/src/coreclr/pal/src/libunwind/src/hppa/Lget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Lget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/hppa/Lget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Lglobal.c b/src/coreclr/pal/src/libunwind/src/hppa/Lglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Lglobal.c rename to src/coreclr/pal/src/libunwind/src/hppa/Lglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Linit.c b/src/coreclr/pal/src/libunwind/src/hppa/Linit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Linit.c rename to src/coreclr/pal/src/libunwind/src/hppa/Linit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Linit_local.c b/src/coreclr/pal/src/libunwind/src/hppa/Linit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Linit_local.c rename to src/coreclr/pal/src/libunwind/src/hppa/Linit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Linit_remote.c b/src/coreclr/pal/src/libunwind/src/hppa/Linit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Linit_remote.c rename to src/coreclr/pal/src/libunwind/src/hppa/Linit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Lis_signal_frame.c b/src/coreclr/pal/src/libunwind/src/hppa/Lis_signal_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Lis_signal_frame.c rename to src/coreclr/pal/src/libunwind/src/hppa/Lis_signal_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Lreg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/hppa/Lreg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Lreg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/hppa/Lreg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Lregs.c b/src/coreclr/pal/src/libunwind/src/hppa/Lregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Lregs.c rename to src/coreclr/pal/src/libunwind/src/hppa/Lregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Lresume.c b/src/coreclr/pal/src/libunwind/src/hppa/Lresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Lresume.c rename to src/coreclr/pal/src/libunwind/src/hppa/Lresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/Lstep.c b/src/coreclr/pal/src/libunwind/src/hppa/Lstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/Lstep.c rename to src/coreclr/pal/src/libunwind/src/hppa/Lstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/get_accessors.c b/src/coreclr/pal/src/libunwind/src/hppa/get_accessors.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/get_accessors.c rename to src/coreclr/pal/src/libunwind/src/hppa/get_accessors.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/getcontext.S b/src/coreclr/pal/src/libunwind/src/hppa/getcontext.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/getcontext.S rename to src/coreclr/pal/src/libunwind/src/hppa/getcontext.S diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/init.h b/src/coreclr/pal/src/libunwind/src/hppa/init.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/init.h rename to src/coreclr/pal/src/libunwind/src/hppa/init.h diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/offsets.h b/src/coreclr/pal/src/libunwind/src/hppa/offsets.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/offsets.h rename to src/coreclr/pal/src/libunwind/src/hppa/offsets.h diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/regname.c b/src/coreclr/pal/src/libunwind/src/hppa/regname.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/regname.c rename to src/coreclr/pal/src/libunwind/src/hppa/regname.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/setcontext.S b/src/coreclr/pal/src/libunwind/src/hppa/setcontext.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/setcontext.S rename to src/coreclr/pal/src/libunwind/src/hppa/setcontext.S diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/siglongjmp.S b/src/coreclr/pal/src/libunwind/src/hppa/siglongjmp.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/siglongjmp.S rename to src/coreclr/pal/src/libunwind/src/hppa/siglongjmp.S diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/tables.c b/src/coreclr/pal/src/libunwind/src/hppa/tables.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/tables.c rename to src/coreclr/pal/src/libunwind/src/hppa/tables.c diff --git a/src/coreclr/src/pal/src/libunwind/src/hppa/unwind_i.h b/src/coreclr/pal/src/libunwind/src/hppa/unwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/hppa/unwind_i.h rename to src/coreclr/pal/src/libunwind/src/hppa/unwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Gapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/ia64/Gapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Gapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/ia64/Gapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Gcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/ia64/Gcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Gcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/ia64/Gcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Gfind_unwind_table.c b/src/coreclr/pal/src/libunwind/src/ia64/Gfind_unwind_table.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Gfind_unwind_table.c rename to src/coreclr/pal/src/libunwind/src/ia64/Gfind_unwind_table.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Gget_proc_info.c b/src/coreclr/pal/src/libunwind/src/ia64/Gget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Gget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/ia64/Gget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Gget_save_loc.c b/src/coreclr/pal/src/libunwind/src/ia64/Gget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Gget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/ia64/Gget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Gglobal.c b/src/coreclr/pal/src/libunwind/src/ia64/Gglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Gglobal.c rename to src/coreclr/pal/src/libunwind/src/ia64/Gglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Ginit.c b/src/coreclr/pal/src/libunwind/src/ia64/Ginit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Ginit.c rename to src/coreclr/pal/src/libunwind/src/ia64/Ginit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Ginit_local.c b/src/coreclr/pal/src/libunwind/src/ia64/Ginit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Ginit_local.c rename to src/coreclr/pal/src/libunwind/src/ia64/Ginit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Ginit_remote.c b/src/coreclr/pal/src/libunwind/src/ia64/Ginit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Ginit_remote.c rename to src/coreclr/pal/src/libunwind/src/ia64/Ginit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Ginstall_cursor.S b/src/coreclr/pal/src/libunwind/src/ia64/Ginstall_cursor.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Ginstall_cursor.S rename to src/coreclr/pal/src/libunwind/src/ia64/Ginstall_cursor.S diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Gis_signal_frame.c b/src/coreclr/pal/src/libunwind/src/ia64/Gis_signal_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Gis_signal_frame.c rename to src/coreclr/pal/src/libunwind/src/ia64/Gis_signal_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Gparser.c b/src/coreclr/pal/src/libunwind/src/ia64/Gparser.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Gparser.c rename to src/coreclr/pal/src/libunwind/src/ia64/Gparser.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Grbs.c b/src/coreclr/pal/src/libunwind/src/ia64/Grbs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Grbs.c rename to src/coreclr/pal/src/libunwind/src/ia64/Grbs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Greg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/ia64/Greg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Greg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/ia64/Greg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Gregs.c b/src/coreclr/pal/src/libunwind/src/ia64/Gregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Gregs.c rename to src/coreclr/pal/src/libunwind/src/ia64/Gregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Gresume.c b/src/coreclr/pal/src/libunwind/src/ia64/Gresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Gresume.c rename to src/coreclr/pal/src/libunwind/src/ia64/Gresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Gscript.c b/src/coreclr/pal/src/libunwind/src/ia64/Gscript.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Gscript.c rename to src/coreclr/pal/src/libunwind/src/ia64/Gscript.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Gstep.c b/src/coreclr/pal/src/libunwind/src/ia64/Gstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Gstep.c rename to src/coreclr/pal/src/libunwind/src/ia64/Gstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Gtables.c b/src/coreclr/pal/src/libunwind/src/ia64/Gtables.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Gtables.c rename to src/coreclr/pal/src/libunwind/src/ia64/Gtables.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Lapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/ia64/Lapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Lapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/ia64/Lapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Lcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/ia64/Lcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Lcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/ia64/Lcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Lfind_unwind_table.c b/src/coreclr/pal/src/libunwind/src/ia64/Lfind_unwind_table.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Lfind_unwind_table.c rename to src/coreclr/pal/src/libunwind/src/ia64/Lfind_unwind_table.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Lget_proc_info.c b/src/coreclr/pal/src/libunwind/src/ia64/Lget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Lget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/ia64/Lget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Lget_save_loc.c b/src/coreclr/pal/src/libunwind/src/ia64/Lget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Lget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/ia64/Lget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Lglobal.c b/src/coreclr/pal/src/libunwind/src/ia64/Lglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Lglobal.c rename to src/coreclr/pal/src/libunwind/src/ia64/Lglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Linit.c b/src/coreclr/pal/src/libunwind/src/ia64/Linit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Linit.c rename to src/coreclr/pal/src/libunwind/src/ia64/Linit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Linit_local.c b/src/coreclr/pal/src/libunwind/src/ia64/Linit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Linit_local.c rename to src/coreclr/pal/src/libunwind/src/ia64/Linit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Linit_remote.c b/src/coreclr/pal/src/libunwind/src/ia64/Linit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Linit_remote.c rename to src/coreclr/pal/src/libunwind/src/ia64/Linit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Linstall_cursor.S b/src/coreclr/pal/src/libunwind/src/ia64/Linstall_cursor.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Linstall_cursor.S rename to src/coreclr/pal/src/libunwind/src/ia64/Linstall_cursor.S diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Lis_signal_frame.c b/src/coreclr/pal/src/libunwind/src/ia64/Lis_signal_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Lis_signal_frame.c rename to src/coreclr/pal/src/libunwind/src/ia64/Lis_signal_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Lparser.c b/src/coreclr/pal/src/libunwind/src/ia64/Lparser.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Lparser.c rename to src/coreclr/pal/src/libunwind/src/ia64/Lparser.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Lrbs.c b/src/coreclr/pal/src/libunwind/src/ia64/Lrbs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Lrbs.c rename to src/coreclr/pal/src/libunwind/src/ia64/Lrbs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Lreg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/ia64/Lreg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Lreg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/ia64/Lreg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Lregs.c b/src/coreclr/pal/src/libunwind/src/ia64/Lregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Lregs.c rename to src/coreclr/pal/src/libunwind/src/ia64/Lregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Lresume.c b/src/coreclr/pal/src/libunwind/src/ia64/Lresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Lresume.c rename to src/coreclr/pal/src/libunwind/src/ia64/Lresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Lscript.c b/src/coreclr/pal/src/libunwind/src/ia64/Lscript.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Lscript.c rename to src/coreclr/pal/src/libunwind/src/ia64/Lscript.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Lstep.c b/src/coreclr/pal/src/libunwind/src/ia64/Lstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Lstep.c rename to src/coreclr/pal/src/libunwind/src/ia64/Lstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/Ltables.c b/src/coreclr/pal/src/libunwind/src/ia64/Ltables.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/Ltables.c rename to src/coreclr/pal/src/libunwind/src/ia64/Ltables.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/NOTES b/src/coreclr/pal/src/libunwind/src/ia64/NOTES similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/NOTES rename to src/coreclr/pal/src/libunwind/src/ia64/NOTES diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/dyn_info_list.S b/src/coreclr/pal/src/libunwind/src/ia64/dyn_info_list.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/dyn_info_list.S rename to src/coreclr/pal/src/libunwind/src/ia64/dyn_info_list.S diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/getcontext.S b/src/coreclr/pal/src/libunwind/src/ia64/getcontext.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/getcontext.S rename to src/coreclr/pal/src/libunwind/src/ia64/getcontext.S diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/init.h b/src/coreclr/pal/src/libunwind/src/ia64/init.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/init.h rename to src/coreclr/pal/src/libunwind/src/ia64/init.h diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/longjmp.S b/src/coreclr/pal/src/libunwind/src/ia64/longjmp.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/longjmp.S rename to src/coreclr/pal/src/libunwind/src/ia64/longjmp.S diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/mk_cursor_i b/src/coreclr/pal/src/libunwind/src/ia64/mk_cursor_i similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/mk_cursor_i rename to src/coreclr/pal/src/libunwind/src/ia64/mk_cursor_i diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/offsets.h b/src/coreclr/pal/src/libunwind/src/ia64/offsets.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/offsets.h rename to src/coreclr/pal/src/libunwind/src/ia64/offsets.h diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/regname.c b/src/coreclr/pal/src/libunwind/src/ia64/regname.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/regname.c rename to src/coreclr/pal/src/libunwind/src/ia64/regname.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/regs.h b/src/coreclr/pal/src/libunwind/src/ia64/regs.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/regs.h rename to src/coreclr/pal/src/libunwind/src/ia64/regs.h diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/setjmp.S b/src/coreclr/pal/src/libunwind/src/ia64/setjmp.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/setjmp.S rename to src/coreclr/pal/src/libunwind/src/ia64/setjmp.S diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/siglongjmp.S b/src/coreclr/pal/src/libunwind/src/ia64/siglongjmp.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/siglongjmp.S rename to src/coreclr/pal/src/libunwind/src/ia64/siglongjmp.S diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/sigsetjmp.S b/src/coreclr/pal/src/libunwind/src/ia64/sigsetjmp.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/sigsetjmp.S rename to src/coreclr/pal/src/libunwind/src/ia64/sigsetjmp.S diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/ucontext_i.h b/src/coreclr/pal/src/libunwind/src/ia64/ucontext_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/ucontext_i.h rename to src/coreclr/pal/src/libunwind/src/ia64/ucontext_i.h diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/unwind_decoder.h b/src/coreclr/pal/src/libunwind/src/ia64/unwind_decoder.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/unwind_decoder.h rename to src/coreclr/pal/src/libunwind/src/ia64/unwind_decoder.h diff --git a/src/coreclr/src/pal/src/libunwind/src/ia64/unwind_i.h b/src/coreclr/pal/src/libunwind/src/ia64/unwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ia64/unwind_i.h rename to src/coreclr/pal/src/libunwind/src/ia64/unwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/src/libunwind-generic.pc.in b/src/coreclr/pal/src/libunwind/src/libunwind-generic.pc.in similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/libunwind-generic.pc.in rename to src/coreclr/pal/src/libunwind/src/libunwind-generic.pc.in diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Gdestroy_addr_space.c b/src/coreclr/pal/src/libunwind/src/mi/Gdestroy_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Gdestroy_addr_space.c rename to src/coreclr/pal/src/libunwind/src/mi/Gdestroy_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Gdyn-extract.c b/src/coreclr/pal/src/libunwind/src/mi/Gdyn-extract.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Gdyn-extract.c rename to src/coreclr/pal/src/libunwind/src/mi/Gdyn-extract.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Gdyn-remote.c b/src/coreclr/pal/src/libunwind/src/mi/Gdyn-remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Gdyn-remote.c rename to src/coreclr/pal/src/libunwind/src/mi/Gdyn-remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Gfind_dynamic_proc_info.c b/src/coreclr/pal/src/libunwind/src/mi/Gfind_dynamic_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Gfind_dynamic_proc_info.c rename to src/coreclr/pal/src/libunwind/src/mi/Gfind_dynamic_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Gget_accessors.c b/src/coreclr/pal/src/libunwind/src/mi/Gget_accessors.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Gget_accessors.c rename to src/coreclr/pal/src/libunwind/src/mi/Gget_accessors.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Gget_fpreg.c b/src/coreclr/pal/src/libunwind/src/mi/Gget_fpreg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Gget_fpreg.c rename to src/coreclr/pal/src/libunwind/src/mi/Gget_fpreg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Gget_proc_info_by_ip.c b/src/coreclr/pal/src/libunwind/src/mi/Gget_proc_info_by_ip.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Gget_proc_info_by_ip.c rename to src/coreclr/pal/src/libunwind/src/mi/Gget_proc_info_by_ip.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Gget_proc_name.c b/src/coreclr/pal/src/libunwind/src/mi/Gget_proc_name.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Gget_proc_name.c rename to src/coreclr/pal/src/libunwind/src/mi/Gget_proc_name.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Gget_reg.c b/src/coreclr/pal/src/libunwind/src/mi/Gget_reg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Gget_reg.c rename to src/coreclr/pal/src/libunwind/src/mi/Gget_reg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Gput_dynamic_unwind_info.c b/src/coreclr/pal/src/libunwind/src/mi/Gput_dynamic_unwind_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Gput_dynamic_unwind_info.c rename to src/coreclr/pal/src/libunwind/src/mi/Gput_dynamic_unwind_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Gset_cache_size.c b/src/coreclr/pal/src/libunwind/src/mi/Gset_cache_size.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Gset_cache_size.c rename to src/coreclr/pal/src/libunwind/src/mi/Gset_cache_size.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Gset_caching_policy.c b/src/coreclr/pal/src/libunwind/src/mi/Gset_caching_policy.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Gset_caching_policy.c rename to src/coreclr/pal/src/libunwind/src/mi/Gset_caching_policy.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Gset_fpreg.c b/src/coreclr/pal/src/libunwind/src/mi/Gset_fpreg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Gset_fpreg.c rename to src/coreclr/pal/src/libunwind/src/mi/Gset_fpreg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Gset_reg.c b/src/coreclr/pal/src/libunwind/src/mi/Gset_reg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Gset_reg.c rename to src/coreclr/pal/src/libunwind/src/mi/Gset_reg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Ldestroy_addr_space.c b/src/coreclr/pal/src/libunwind/src/mi/Ldestroy_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Ldestroy_addr_space.c rename to src/coreclr/pal/src/libunwind/src/mi/Ldestroy_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Ldyn-extract.c b/src/coreclr/pal/src/libunwind/src/mi/Ldyn-extract.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Ldyn-extract.c rename to src/coreclr/pal/src/libunwind/src/mi/Ldyn-extract.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Ldyn-remote.c b/src/coreclr/pal/src/libunwind/src/mi/Ldyn-remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Ldyn-remote.c rename to src/coreclr/pal/src/libunwind/src/mi/Ldyn-remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Lfind_dynamic_proc_info.c b/src/coreclr/pal/src/libunwind/src/mi/Lfind_dynamic_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Lfind_dynamic_proc_info.c rename to src/coreclr/pal/src/libunwind/src/mi/Lfind_dynamic_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Lget_accessors.c b/src/coreclr/pal/src/libunwind/src/mi/Lget_accessors.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Lget_accessors.c rename to src/coreclr/pal/src/libunwind/src/mi/Lget_accessors.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Lget_fpreg.c b/src/coreclr/pal/src/libunwind/src/mi/Lget_fpreg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Lget_fpreg.c rename to src/coreclr/pal/src/libunwind/src/mi/Lget_fpreg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Lget_proc_info_by_ip.c b/src/coreclr/pal/src/libunwind/src/mi/Lget_proc_info_by_ip.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Lget_proc_info_by_ip.c rename to src/coreclr/pal/src/libunwind/src/mi/Lget_proc_info_by_ip.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Lget_proc_name.c b/src/coreclr/pal/src/libunwind/src/mi/Lget_proc_name.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Lget_proc_name.c rename to src/coreclr/pal/src/libunwind/src/mi/Lget_proc_name.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Lget_reg.c b/src/coreclr/pal/src/libunwind/src/mi/Lget_reg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Lget_reg.c rename to src/coreclr/pal/src/libunwind/src/mi/Lget_reg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Lput_dynamic_unwind_info.c b/src/coreclr/pal/src/libunwind/src/mi/Lput_dynamic_unwind_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Lput_dynamic_unwind_info.c rename to src/coreclr/pal/src/libunwind/src/mi/Lput_dynamic_unwind_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Lset_cache_size.c b/src/coreclr/pal/src/libunwind/src/mi/Lset_cache_size.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Lset_cache_size.c rename to src/coreclr/pal/src/libunwind/src/mi/Lset_cache_size.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Lset_caching_policy.c b/src/coreclr/pal/src/libunwind/src/mi/Lset_caching_policy.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Lset_caching_policy.c rename to src/coreclr/pal/src/libunwind/src/mi/Lset_caching_policy.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Lset_fpreg.c b/src/coreclr/pal/src/libunwind/src/mi/Lset_fpreg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Lset_fpreg.c rename to src/coreclr/pal/src/libunwind/src/mi/Lset_fpreg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/Lset_reg.c b/src/coreclr/pal/src/libunwind/src/mi/Lset_reg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/Lset_reg.c rename to src/coreclr/pal/src/libunwind/src/mi/Lset_reg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/_ReadSLEB.c b/src/coreclr/pal/src/libunwind/src/mi/_ReadSLEB.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/_ReadSLEB.c rename to src/coreclr/pal/src/libunwind/src/mi/_ReadSLEB.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/_ReadULEB.c b/src/coreclr/pal/src/libunwind/src/mi/_ReadULEB.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/_ReadULEB.c rename to src/coreclr/pal/src/libunwind/src/mi/_ReadULEB.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/backtrace.c b/src/coreclr/pal/src/libunwind/src/mi/backtrace.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/backtrace.c rename to src/coreclr/pal/src/libunwind/src/mi/backtrace.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/dyn-cancel.c b/src/coreclr/pal/src/libunwind/src/mi/dyn-cancel.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/dyn-cancel.c rename to src/coreclr/pal/src/libunwind/src/mi/dyn-cancel.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/dyn-info-list.c b/src/coreclr/pal/src/libunwind/src/mi/dyn-info-list.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/dyn-info-list.c rename to src/coreclr/pal/src/libunwind/src/mi/dyn-info-list.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/dyn-register.c b/src/coreclr/pal/src/libunwind/src/mi/dyn-register.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/dyn-register.c rename to src/coreclr/pal/src/libunwind/src/mi/dyn-register.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/flush_cache.c b/src/coreclr/pal/src/libunwind/src/mi/flush_cache.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/flush_cache.c rename to src/coreclr/pal/src/libunwind/src/mi/flush_cache.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/init.c b/src/coreclr/pal/src/libunwind/src/mi/init.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/init.c rename to src/coreclr/pal/src/libunwind/src/mi/init.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/mempool.c b/src/coreclr/pal/src/libunwind/src/mi/mempool.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/mempool.c rename to src/coreclr/pal/src/libunwind/src/mi/mempool.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mi/strerror.c b/src/coreclr/pal/src/libunwind/src/mi/strerror.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mi/strerror.c rename to src/coreclr/pal/src/libunwind/src/mi/strerror.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Gapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/mips/Gapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Gapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/mips/Gapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Gcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/mips/Gcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Gcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/mips/Gcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Gget_proc_info.c b/src/coreclr/pal/src/libunwind/src/mips/Gget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Gget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/mips/Gget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Gget_save_loc.c b/src/coreclr/pal/src/libunwind/src/mips/Gget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Gget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/mips/Gget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Gglobal.c b/src/coreclr/pal/src/libunwind/src/mips/Gglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Gglobal.c rename to src/coreclr/pal/src/libunwind/src/mips/Gglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Ginit.c b/src/coreclr/pal/src/libunwind/src/mips/Ginit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Ginit.c rename to src/coreclr/pal/src/libunwind/src/mips/Ginit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Ginit_local.c b/src/coreclr/pal/src/libunwind/src/mips/Ginit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Ginit_local.c rename to src/coreclr/pal/src/libunwind/src/mips/Ginit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Ginit_remote.c b/src/coreclr/pal/src/libunwind/src/mips/Ginit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Ginit_remote.c rename to src/coreclr/pal/src/libunwind/src/mips/Ginit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Gis_signal_frame.c b/src/coreclr/pal/src/libunwind/src/mips/Gis_signal_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Gis_signal_frame.c rename to src/coreclr/pal/src/libunwind/src/mips/Gis_signal_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Greg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/mips/Greg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Greg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/mips/Greg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Gregs.c b/src/coreclr/pal/src/libunwind/src/mips/Gregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Gregs.c rename to src/coreclr/pal/src/libunwind/src/mips/Gregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Gresume.c b/src/coreclr/pal/src/libunwind/src/mips/Gresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Gresume.c rename to src/coreclr/pal/src/libunwind/src/mips/Gresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Gstep.c b/src/coreclr/pal/src/libunwind/src/mips/Gstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Gstep.c rename to src/coreclr/pal/src/libunwind/src/mips/Gstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Lapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/mips/Lapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Lapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/mips/Lapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Lcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/mips/Lcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Lcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/mips/Lcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Lget_proc_info.c b/src/coreclr/pal/src/libunwind/src/mips/Lget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Lget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/mips/Lget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Lget_save_loc.c b/src/coreclr/pal/src/libunwind/src/mips/Lget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Lget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/mips/Lget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Lglobal.c b/src/coreclr/pal/src/libunwind/src/mips/Lglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Lglobal.c rename to src/coreclr/pal/src/libunwind/src/mips/Lglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Linit.c b/src/coreclr/pal/src/libunwind/src/mips/Linit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Linit.c rename to src/coreclr/pal/src/libunwind/src/mips/Linit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Linit_local.c b/src/coreclr/pal/src/libunwind/src/mips/Linit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Linit_local.c rename to src/coreclr/pal/src/libunwind/src/mips/Linit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Linit_remote.c b/src/coreclr/pal/src/libunwind/src/mips/Linit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Linit_remote.c rename to src/coreclr/pal/src/libunwind/src/mips/Linit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Lis_signal_frame.c b/src/coreclr/pal/src/libunwind/src/mips/Lis_signal_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Lis_signal_frame.c rename to src/coreclr/pal/src/libunwind/src/mips/Lis_signal_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Lreg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/mips/Lreg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Lreg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/mips/Lreg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Lregs.c b/src/coreclr/pal/src/libunwind/src/mips/Lregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Lregs.c rename to src/coreclr/pal/src/libunwind/src/mips/Lregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Lresume.c b/src/coreclr/pal/src/libunwind/src/mips/Lresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Lresume.c rename to src/coreclr/pal/src/libunwind/src/mips/Lresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/Lstep.c b/src/coreclr/pal/src/libunwind/src/mips/Lstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/Lstep.c rename to src/coreclr/pal/src/libunwind/src/mips/Lstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/elfxx.c b/src/coreclr/pal/src/libunwind/src/mips/elfxx.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/elfxx.c rename to src/coreclr/pal/src/libunwind/src/mips/elfxx.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/gen-offsets.c b/src/coreclr/pal/src/libunwind/src/mips/gen-offsets.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/gen-offsets.c rename to src/coreclr/pal/src/libunwind/src/mips/gen-offsets.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/getcontext.S b/src/coreclr/pal/src/libunwind/src/mips/getcontext.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/getcontext.S rename to src/coreclr/pal/src/libunwind/src/mips/getcontext.S diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/init.h b/src/coreclr/pal/src/libunwind/src/mips/init.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/init.h rename to src/coreclr/pal/src/libunwind/src/mips/init.h diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/is_fpreg.c b/src/coreclr/pal/src/libunwind/src/mips/is_fpreg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/is_fpreg.c rename to src/coreclr/pal/src/libunwind/src/mips/is_fpreg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/offsets.h b/src/coreclr/pal/src/libunwind/src/mips/offsets.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/offsets.h rename to src/coreclr/pal/src/libunwind/src/mips/offsets.h diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/regname.c b/src/coreclr/pal/src/libunwind/src/mips/regname.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/regname.c rename to src/coreclr/pal/src/libunwind/src/mips/regname.c diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/siglongjmp.S b/src/coreclr/pal/src/libunwind/src/mips/siglongjmp.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/siglongjmp.S rename to src/coreclr/pal/src/libunwind/src/mips/siglongjmp.S diff --git a/src/coreclr/src/pal/src/libunwind/src/mips/unwind_i.h b/src/coreclr/pal/src/libunwind/src/mips/unwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/mips/unwind_i.h rename to src/coreclr/pal/src/libunwind/src/mips/unwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/src/oop/_OOP_find_proc_info.c b/src/coreclr/pal/src/libunwind/src/oop/_OOP_find_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/oop/_OOP_find_proc_info.c rename to src/coreclr/pal/src/libunwind/src/oop/_OOP_find_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/oop/_OOP_internal.h b/src/coreclr/pal/src/libunwind/src/oop/_OOP_internal.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/oop/_OOP_internal.h rename to src/coreclr/pal/src/libunwind/src/oop/_OOP_internal.h diff --git a/src/coreclr/src/pal/src/libunwind/src/os-freebsd.c b/src/coreclr/pal/src/libunwind/src/os-freebsd.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/os-freebsd.c rename to src/coreclr/pal/src/libunwind/src/os-freebsd.c diff --git a/src/coreclr/src/pal/src/libunwind/src/os-hpux.c b/src/coreclr/pal/src/libunwind/src/os-hpux.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/os-hpux.c rename to src/coreclr/pal/src/libunwind/src/os-hpux.c diff --git a/src/coreclr/src/pal/src/libunwind/src/os-linux.c b/src/coreclr/pal/src/libunwind/src/os-linux.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/os-linux.c rename to src/coreclr/pal/src/libunwind/src/os-linux.c diff --git a/src/coreclr/src/pal/src/libunwind/src/os-linux.h b/src/coreclr/pal/src/libunwind/src/os-linux.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/os-linux.h rename to src/coreclr/pal/src/libunwind/src/os-linux.h diff --git a/src/coreclr/src/pal/src/libunwind/src/os-qnx.c b/src/coreclr/pal/src/libunwind/src/os-qnx.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/os-qnx.c rename to src/coreclr/pal/src/libunwind/src/os-qnx.c diff --git a/src/coreclr/src/pal/src/libunwind/src/os-solaris.c b/src/coreclr/pal/src/libunwind/src/os-solaris.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/os-solaris.c rename to src/coreclr/pal/src/libunwind/src/os-solaris.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc/Gapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/ppc/Gapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc/Gapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/ppc/Gapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc/Gget_proc_info.c b/src/coreclr/pal/src/libunwind/src/ppc/Gget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc/Gget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/ppc/Gget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc/Gget_save_loc.c b/src/coreclr/pal/src/libunwind/src/ppc/Gget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc/Gget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/ppc/Gget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc/Ginit_local.c b/src/coreclr/pal/src/libunwind/src/ppc/Ginit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc/Ginit_local.c rename to src/coreclr/pal/src/libunwind/src/ppc/Ginit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc/Ginit_remote.c b/src/coreclr/pal/src/libunwind/src/ppc/Ginit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc/Ginit_remote.c rename to src/coreclr/pal/src/libunwind/src/ppc/Ginit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc/Gis_signal_frame.c b/src/coreclr/pal/src/libunwind/src/ppc/Gis_signal_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc/Gis_signal_frame.c rename to src/coreclr/pal/src/libunwind/src/ppc/Gis_signal_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc/Greg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/ppc/Greg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc/Greg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/ppc/Greg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc/Lapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/ppc/Lapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc/Lapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/ppc/Lapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc/Lget_proc_info.c b/src/coreclr/pal/src/libunwind/src/ppc/Lget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc/Lget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/ppc/Lget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc/Lget_save_loc.c b/src/coreclr/pal/src/libunwind/src/ppc/Lget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc/Lget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/ppc/Lget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc/Linit_local.c b/src/coreclr/pal/src/libunwind/src/ppc/Linit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc/Linit_local.c rename to src/coreclr/pal/src/libunwind/src/ppc/Linit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc/Linit_remote.c b/src/coreclr/pal/src/libunwind/src/ppc/Linit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc/Linit_remote.c rename to src/coreclr/pal/src/libunwind/src/ppc/Linit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc/Lis_signal_frame.c b/src/coreclr/pal/src/libunwind/src/ppc/Lis_signal_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc/Lis_signal_frame.c rename to src/coreclr/pal/src/libunwind/src/ppc/Lis_signal_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc/Lreg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/ppc/Lreg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc/Lreg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/ppc/Lreg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc/longjmp.S b/src/coreclr/pal/src/libunwind/src/ppc/longjmp.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc/longjmp.S rename to src/coreclr/pal/src/libunwind/src/ppc/longjmp.S diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc/siglongjmp.S b/src/coreclr/pal/src/libunwind/src/ppc/siglongjmp.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc/siglongjmp.S rename to src/coreclr/pal/src/libunwind/src/ppc/siglongjmp.S diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/Gapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/ppc32/Gapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/Gapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/ppc32/Gapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/Gcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/ppc32/Gcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/Gcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/ppc32/Gcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/Gglobal.c b/src/coreclr/pal/src/libunwind/src/ppc32/Gglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/Gglobal.c rename to src/coreclr/pal/src/libunwind/src/ppc32/Gglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/Ginit.c b/src/coreclr/pal/src/libunwind/src/ppc32/Ginit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/Ginit.c rename to src/coreclr/pal/src/libunwind/src/ppc32/Ginit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/Greg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/ppc32/Greg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/Greg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/ppc32/Greg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/Gregs.c b/src/coreclr/pal/src/libunwind/src/ppc32/Gregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/Gregs.c rename to src/coreclr/pal/src/libunwind/src/ppc32/Gregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/Gresume.c b/src/coreclr/pal/src/libunwind/src/ppc32/Gresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/Gresume.c rename to src/coreclr/pal/src/libunwind/src/ppc32/Gresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/Gstep.c b/src/coreclr/pal/src/libunwind/src/ppc32/Gstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/Gstep.c rename to src/coreclr/pal/src/libunwind/src/ppc32/Gstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/Lapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/ppc32/Lapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/Lapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/ppc32/Lapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/Lcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/ppc32/Lcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/Lcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/ppc32/Lcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/Lglobal.c b/src/coreclr/pal/src/libunwind/src/ppc32/Lglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/Lglobal.c rename to src/coreclr/pal/src/libunwind/src/ppc32/Lglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/Linit.c b/src/coreclr/pal/src/libunwind/src/ppc32/Linit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/Linit.c rename to src/coreclr/pal/src/libunwind/src/ppc32/Linit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/Lreg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/ppc32/Lreg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/Lreg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/ppc32/Lreg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/Lregs.c b/src/coreclr/pal/src/libunwind/src/ppc32/Lregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/Lregs.c rename to src/coreclr/pal/src/libunwind/src/ppc32/Lregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/Lresume.c b/src/coreclr/pal/src/libunwind/src/ppc32/Lresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/Lresume.c rename to src/coreclr/pal/src/libunwind/src/ppc32/Lresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/Lstep.c b/src/coreclr/pal/src/libunwind/src/ppc32/Lstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/Lstep.c rename to src/coreclr/pal/src/libunwind/src/ppc32/Lstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/Make-arch.in b/src/coreclr/pal/src/libunwind/src/ppc32/Make-arch.in similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/Make-arch.in rename to src/coreclr/pal/src/libunwind/src/ppc32/Make-arch.in diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/get_func_addr.c b/src/coreclr/pal/src/libunwind/src/ppc32/get_func_addr.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/get_func_addr.c rename to src/coreclr/pal/src/libunwind/src/ppc32/get_func_addr.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/init.h b/src/coreclr/pal/src/libunwind/src/ppc32/init.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/init.h rename to src/coreclr/pal/src/libunwind/src/ppc32/init.h diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/is_fpreg.c b/src/coreclr/pal/src/libunwind/src/ppc32/is_fpreg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/is_fpreg.c rename to src/coreclr/pal/src/libunwind/src/ppc32/is_fpreg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/regname.c b/src/coreclr/pal/src/libunwind/src/ppc32/regname.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/regname.c rename to src/coreclr/pal/src/libunwind/src/ppc32/regname.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/setcontext.S b/src/coreclr/pal/src/libunwind/src/ppc32/setcontext.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/setcontext.S rename to src/coreclr/pal/src/libunwind/src/ppc32/setcontext.S diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/ucontext_i.h b/src/coreclr/pal/src/libunwind/src/ppc32/ucontext_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/ucontext_i.h rename to src/coreclr/pal/src/libunwind/src/ppc32/ucontext_i.h diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc32/unwind_i.h b/src/coreclr/pal/src/libunwind/src/ppc32/unwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc32/unwind_i.h rename to src/coreclr/pal/src/libunwind/src/ppc32/unwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/Gapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/ppc64/Gapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/Gapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/ppc64/Gapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/Gcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/ppc64/Gcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/Gcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/ppc64/Gcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/Gglobal.c b/src/coreclr/pal/src/libunwind/src/ppc64/Gglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/Gglobal.c rename to src/coreclr/pal/src/libunwind/src/ppc64/Gglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/Ginit.c b/src/coreclr/pal/src/libunwind/src/ppc64/Ginit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/Ginit.c rename to src/coreclr/pal/src/libunwind/src/ppc64/Ginit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/Greg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/ppc64/Greg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/Greg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/ppc64/Greg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/Gregs.c b/src/coreclr/pal/src/libunwind/src/ppc64/Gregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/Gregs.c rename to src/coreclr/pal/src/libunwind/src/ppc64/Gregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/Gresume.c b/src/coreclr/pal/src/libunwind/src/ppc64/Gresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/Gresume.c rename to src/coreclr/pal/src/libunwind/src/ppc64/Gresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/Gstep.c b/src/coreclr/pal/src/libunwind/src/ppc64/Gstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/Gstep.c rename to src/coreclr/pal/src/libunwind/src/ppc64/Gstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/Lapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/ppc64/Lapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/Lapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/ppc64/Lapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/Lcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/ppc64/Lcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/Lcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/ppc64/Lcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/Lglobal.c b/src/coreclr/pal/src/libunwind/src/ppc64/Lglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/Lglobal.c rename to src/coreclr/pal/src/libunwind/src/ppc64/Lglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/Linit.c b/src/coreclr/pal/src/libunwind/src/ppc64/Linit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/Linit.c rename to src/coreclr/pal/src/libunwind/src/ppc64/Linit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/Lreg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/ppc64/Lreg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/Lreg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/ppc64/Lreg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/Lregs.c b/src/coreclr/pal/src/libunwind/src/ppc64/Lregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/Lregs.c rename to src/coreclr/pal/src/libunwind/src/ppc64/Lregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/Lresume.c b/src/coreclr/pal/src/libunwind/src/ppc64/Lresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/Lresume.c rename to src/coreclr/pal/src/libunwind/src/ppc64/Lresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/Lstep.c b/src/coreclr/pal/src/libunwind/src/ppc64/Lstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/Lstep.c rename to src/coreclr/pal/src/libunwind/src/ppc64/Lstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/get_func_addr.c b/src/coreclr/pal/src/libunwind/src/ppc64/get_func_addr.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/get_func_addr.c rename to src/coreclr/pal/src/libunwind/src/ppc64/get_func_addr.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/init.h b/src/coreclr/pal/src/libunwind/src/ppc64/init.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/init.h rename to src/coreclr/pal/src/libunwind/src/ppc64/init.h diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/is_fpreg.c b/src/coreclr/pal/src/libunwind/src/ppc64/is_fpreg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/is_fpreg.c rename to src/coreclr/pal/src/libunwind/src/ppc64/is_fpreg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/regname.c b/src/coreclr/pal/src/libunwind/src/ppc64/regname.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/regname.c rename to src/coreclr/pal/src/libunwind/src/ppc64/regname.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/setcontext.S b/src/coreclr/pal/src/libunwind/src/ppc64/setcontext.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/setcontext.S rename to src/coreclr/pal/src/libunwind/src/ppc64/setcontext.S diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/ucontext_i.h b/src/coreclr/pal/src/libunwind/src/ppc64/ucontext_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/ucontext_i.h rename to src/coreclr/pal/src/libunwind/src/ppc64/ucontext_i.h diff --git a/src/coreclr/src/pal/src/libunwind/src/ppc64/unwind_i.h b/src/coreclr/pal/src/libunwind/src/ppc64/unwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ppc64/unwind_i.h rename to src/coreclr/pal/src/libunwind/src/ppc64/unwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_access_fpreg.c b/src/coreclr/pal/src/libunwind/src/ptrace/_UPT_access_fpreg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_access_fpreg.c rename to src/coreclr/pal/src/libunwind/src/ptrace/_UPT_access_fpreg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_access_mem.c b/src/coreclr/pal/src/libunwind/src/ptrace/_UPT_access_mem.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_access_mem.c rename to src/coreclr/pal/src/libunwind/src/ptrace/_UPT_access_mem.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_access_reg.c b/src/coreclr/pal/src/libunwind/src/ptrace/_UPT_access_reg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_access_reg.c rename to src/coreclr/pal/src/libunwind/src/ptrace/_UPT_access_reg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_accessors.c b/src/coreclr/pal/src/libunwind/src/ptrace/_UPT_accessors.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_accessors.c rename to src/coreclr/pal/src/libunwind/src/ptrace/_UPT_accessors.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_create.c b/src/coreclr/pal/src/libunwind/src/ptrace/_UPT_create.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_create.c rename to src/coreclr/pal/src/libunwind/src/ptrace/_UPT_create.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_destroy.c b/src/coreclr/pal/src/libunwind/src/ptrace/_UPT_destroy.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_destroy.c rename to src/coreclr/pal/src/libunwind/src/ptrace/_UPT_destroy.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_elf.c b/src/coreclr/pal/src/libunwind/src/ptrace/_UPT_elf.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_elf.c rename to src/coreclr/pal/src/libunwind/src/ptrace/_UPT_elf.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_find_proc_info.c b/src/coreclr/pal/src/libunwind/src/ptrace/_UPT_find_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_find_proc_info.c rename to src/coreclr/pal/src/libunwind/src/ptrace/_UPT_find_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_get_dyn_info_list_addr.c b/src/coreclr/pal/src/libunwind/src/ptrace/_UPT_get_dyn_info_list_addr.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_get_dyn_info_list_addr.c rename to src/coreclr/pal/src/libunwind/src/ptrace/_UPT_get_dyn_info_list_addr.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_get_proc_name.c b/src/coreclr/pal/src/libunwind/src/ptrace/_UPT_get_proc_name.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_get_proc_name.c rename to src/coreclr/pal/src/libunwind/src/ptrace/_UPT_get_proc_name.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_internal.h b/src/coreclr/pal/src/libunwind/src/ptrace/_UPT_internal.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_internal.h rename to src/coreclr/pal/src/libunwind/src/ptrace/_UPT_internal.h diff --git a/src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_put_unwind_info.c b/src/coreclr/pal/src/libunwind/src/ptrace/_UPT_put_unwind_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_put_unwind_info.c rename to src/coreclr/pal/src/libunwind/src/ptrace/_UPT_put_unwind_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_reg_offset.c b/src/coreclr/pal/src/libunwind/src/ptrace/_UPT_reg_offset.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_reg_offset.c rename to src/coreclr/pal/src/libunwind/src/ptrace/_UPT_reg_offset.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_resume.c b/src/coreclr/pal/src/libunwind/src/ptrace/_UPT_resume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ptrace/_UPT_resume.c rename to src/coreclr/pal/src/libunwind/src/ptrace/_UPT_resume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/ptrace/libunwind-ptrace.pc.in b/src/coreclr/pal/src/libunwind/src/ptrace/libunwind-ptrace.pc.in similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/ptrace/libunwind-ptrace.pc.in rename to src/coreclr/pal/src/libunwind/src/ptrace/libunwind-ptrace.pc.in diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Gapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/s390x/Gapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Gapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/s390x/Gapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Gcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/s390x/Gcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Gcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/s390x/Gcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Gget_proc_info.c b/src/coreclr/pal/src/libunwind/src/s390x/Gget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Gget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/s390x/Gget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Gget_save_loc.c b/src/coreclr/pal/src/libunwind/src/s390x/Gget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Gget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/s390x/Gget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Gglobal.c b/src/coreclr/pal/src/libunwind/src/s390x/Gglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Gglobal.c rename to src/coreclr/pal/src/libunwind/src/s390x/Gglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Ginit.c b/src/coreclr/pal/src/libunwind/src/s390x/Ginit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Ginit.c rename to src/coreclr/pal/src/libunwind/src/s390x/Ginit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Ginit_local.c b/src/coreclr/pal/src/libunwind/src/s390x/Ginit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Ginit_local.c rename to src/coreclr/pal/src/libunwind/src/s390x/Ginit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Ginit_remote.c b/src/coreclr/pal/src/libunwind/src/s390x/Ginit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Ginit_remote.c rename to src/coreclr/pal/src/libunwind/src/s390x/Ginit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Gis_signal_frame.c b/src/coreclr/pal/src/libunwind/src/s390x/Gis_signal_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Gis_signal_frame.c rename to src/coreclr/pal/src/libunwind/src/s390x/Gis_signal_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Greg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/s390x/Greg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Greg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/s390x/Greg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Gregs.c b/src/coreclr/pal/src/libunwind/src/s390x/Gregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Gregs.c rename to src/coreclr/pal/src/libunwind/src/s390x/Gregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Gresume.c b/src/coreclr/pal/src/libunwind/src/s390x/Gresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Gresume.c rename to src/coreclr/pal/src/libunwind/src/s390x/Gresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Gstep.c b/src/coreclr/pal/src/libunwind/src/s390x/Gstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Gstep.c rename to src/coreclr/pal/src/libunwind/src/s390x/Gstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Lapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/s390x/Lapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Lapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/s390x/Lapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Lcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/s390x/Lcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Lcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/s390x/Lcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Lget_proc_info.c b/src/coreclr/pal/src/libunwind/src/s390x/Lget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Lget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/s390x/Lget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Lget_save_loc.c b/src/coreclr/pal/src/libunwind/src/s390x/Lget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Lget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/s390x/Lget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Lglobal.c b/src/coreclr/pal/src/libunwind/src/s390x/Lglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Lglobal.c rename to src/coreclr/pal/src/libunwind/src/s390x/Lglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Linit.c b/src/coreclr/pal/src/libunwind/src/s390x/Linit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Linit.c rename to src/coreclr/pal/src/libunwind/src/s390x/Linit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Linit_local.c b/src/coreclr/pal/src/libunwind/src/s390x/Linit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Linit_local.c rename to src/coreclr/pal/src/libunwind/src/s390x/Linit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Linit_remote.c b/src/coreclr/pal/src/libunwind/src/s390x/Linit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Linit_remote.c rename to src/coreclr/pal/src/libunwind/src/s390x/Linit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Lis_signal_frame.c b/src/coreclr/pal/src/libunwind/src/s390x/Lis_signal_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Lis_signal_frame.c rename to src/coreclr/pal/src/libunwind/src/s390x/Lis_signal_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Lreg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/s390x/Lreg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Lreg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/s390x/Lreg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Lregs.c b/src/coreclr/pal/src/libunwind/src/s390x/Lregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Lregs.c rename to src/coreclr/pal/src/libunwind/src/s390x/Lregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Lresume.c b/src/coreclr/pal/src/libunwind/src/s390x/Lresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Lresume.c rename to src/coreclr/pal/src/libunwind/src/s390x/Lresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/Lstep.c b/src/coreclr/pal/src/libunwind/src/s390x/Lstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/Lstep.c rename to src/coreclr/pal/src/libunwind/src/s390x/Lstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/getcontext.S b/src/coreclr/pal/src/libunwind/src/s390x/getcontext.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/getcontext.S rename to src/coreclr/pal/src/libunwind/src/s390x/getcontext.S diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/init.h b/src/coreclr/pal/src/libunwind/src/s390x/init.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/init.h rename to src/coreclr/pal/src/libunwind/src/s390x/init.h diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/is_fpreg.c b/src/coreclr/pal/src/libunwind/src/s390x/is_fpreg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/is_fpreg.c rename to src/coreclr/pal/src/libunwind/src/s390x/is_fpreg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/regname.c b/src/coreclr/pal/src/libunwind/src/s390x/regname.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/regname.c rename to src/coreclr/pal/src/libunwind/src/s390x/regname.c diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/setcontext.S b/src/coreclr/pal/src/libunwind/src/s390x/setcontext.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/setcontext.S rename to src/coreclr/pal/src/libunwind/src/s390x/setcontext.S diff --git a/src/coreclr/src/pal/src/libunwind/src/s390x/unwind_i.h b/src/coreclr/pal/src/libunwind/src/s390x/unwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/s390x/unwind_i.h rename to src/coreclr/pal/src/libunwind/src/s390x/unwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/src/setjmp/libunwind-setjmp.pc.in b/src/coreclr/pal/src/libunwind/src/setjmp/libunwind-setjmp.pc.in similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/setjmp/libunwind-setjmp.pc.in rename to src/coreclr/pal/src/libunwind/src/setjmp/libunwind-setjmp.pc.in diff --git a/src/coreclr/src/pal/src/libunwind/src/setjmp/longjmp.c b/src/coreclr/pal/src/libunwind/src/setjmp/longjmp.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/setjmp/longjmp.c rename to src/coreclr/pal/src/libunwind/src/setjmp/longjmp.c diff --git a/src/coreclr/src/pal/src/libunwind/src/setjmp/setjmp.c b/src/coreclr/pal/src/libunwind/src/setjmp/setjmp.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/setjmp/setjmp.c rename to src/coreclr/pal/src/libunwind/src/setjmp/setjmp.c diff --git a/src/coreclr/src/pal/src/libunwind/src/setjmp/setjmp_i.h b/src/coreclr/pal/src/libunwind/src/setjmp/setjmp_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/setjmp/setjmp_i.h rename to src/coreclr/pal/src/libunwind/src/setjmp/setjmp_i.h diff --git a/src/coreclr/src/pal/src/libunwind/src/setjmp/siglongjmp.c b/src/coreclr/pal/src/libunwind/src/setjmp/siglongjmp.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/setjmp/siglongjmp.c rename to src/coreclr/pal/src/libunwind/src/setjmp/siglongjmp.c diff --git a/src/coreclr/src/pal/src/libunwind/src/setjmp/sigsetjmp.c b/src/coreclr/pal/src/libunwind/src/setjmp/sigsetjmp.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/setjmp/sigsetjmp.c rename to src/coreclr/pal/src/libunwind/src/setjmp/sigsetjmp.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Gapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/sh/Gapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Gapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/sh/Gapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Gcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/sh/Gcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Gcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/sh/Gcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Gget_proc_info.c b/src/coreclr/pal/src/libunwind/src/sh/Gget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Gget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/sh/Gget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Gget_save_loc.c b/src/coreclr/pal/src/libunwind/src/sh/Gget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Gget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/sh/Gget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Gglobal.c b/src/coreclr/pal/src/libunwind/src/sh/Gglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Gglobal.c rename to src/coreclr/pal/src/libunwind/src/sh/Gglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Ginit.c b/src/coreclr/pal/src/libunwind/src/sh/Ginit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Ginit.c rename to src/coreclr/pal/src/libunwind/src/sh/Ginit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Ginit_local.c b/src/coreclr/pal/src/libunwind/src/sh/Ginit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Ginit_local.c rename to src/coreclr/pal/src/libunwind/src/sh/Ginit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Ginit_remote.c b/src/coreclr/pal/src/libunwind/src/sh/Ginit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Ginit_remote.c rename to src/coreclr/pal/src/libunwind/src/sh/Ginit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Gis_signal_frame.c b/src/coreclr/pal/src/libunwind/src/sh/Gis_signal_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Gis_signal_frame.c rename to src/coreclr/pal/src/libunwind/src/sh/Gis_signal_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Greg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/sh/Greg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Greg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/sh/Greg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Gregs.c b/src/coreclr/pal/src/libunwind/src/sh/Gregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Gregs.c rename to src/coreclr/pal/src/libunwind/src/sh/Gregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Gresume.c b/src/coreclr/pal/src/libunwind/src/sh/Gresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Gresume.c rename to src/coreclr/pal/src/libunwind/src/sh/Gresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Gstep.c b/src/coreclr/pal/src/libunwind/src/sh/Gstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Gstep.c rename to src/coreclr/pal/src/libunwind/src/sh/Gstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Lapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/sh/Lapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Lapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/sh/Lapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Lcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/sh/Lcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Lcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/sh/Lcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Lget_proc_info.c b/src/coreclr/pal/src/libunwind/src/sh/Lget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Lget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/sh/Lget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Lget_save_loc.c b/src/coreclr/pal/src/libunwind/src/sh/Lget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Lget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/sh/Lget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Lglobal.c b/src/coreclr/pal/src/libunwind/src/sh/Lglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Lglobal.c rename to src/coreclr/pal/src/libunwind/src/sh/Lglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Linit.c b/src/coreclr/pal/src/libunwind/src/sh/Linit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Linit.c rename to src/coreclr/pal/src/libunwind/src/sh/Linit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Linit_local.c b/src/coreclr/pal/src/libunwind/src/sh/Linit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Linit_local.c rename to src/coreclr/pal/src/libunwind/src/sh/Linit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Linit_remote.c b/src/coreclr/pal/src/libunwind/src/sh/Linit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Linit_remote.c rename to src/coreclr/pal/src/libunwind/src/sh/Linit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Lis_signal_frame.c b/src/coreclr/pal/src/libunwind/src/sh/Lis_signal_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Lis_signal_frame.c rename to src/coreclr/pal/src/libunwind/src/sh/Lis_signal_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Lreg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/sh/Lreg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Lreg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/sh/Lreg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Lregs.c b/src/coreclr/pal/src/libunwind/src/sh/Lregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Lregs.c rename to src/coreclr/pal/src/libunwind/src/sh/Lregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Lresume.c b/src/coreclr/pal/src/libunwind/src/sh/Lresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Lresume.c rename to src/coreclr/pal/src/libunwind/src/sh/Lresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/Lstep.c b/src/coreclr/pal/src/libunwind/src/sh/Lstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/Lstep.c rename to src/coreclr/pal/src/libunwind/src/sh/Lstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/gen-offsets.c b/src/coreclr/pal/src/libunwind/src/sh/gen-offsets.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/gen-offsets.c rename to src/coreclr/pal/src/libunwind/src/sh/gen-offsets.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/init.h b/src/coreclr/pal/src/libunwind/src/sh/init.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/init.h rename to src/coreclr/pal/src/libunwind/src/sh/init.h diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/is_fpreg.c b/src/coreclr/pal/src/libunwind/src/sh/is_fpreg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/is_fpreg.c rename to src/coreclr/pal/src/libunwind/src/sh/is_fpreg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/offsets.h b/src/coreclr/pal/src/libunwind/src/sh/offsets.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/offsets.h rename to src/coreclr/pal/src/libunwind/src/sh/offsets.h diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/regname.c b/src/coreclr/pal/src/libunwind/src/sh/regname.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/regname.c rename to src/coreclr/pal/src/libunwind/src/sh/regname.c diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/siglongjmp.S b/src/coreclr/pal/src/libunwind/src/sh/siglongjmp.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/siglongjmp.S rename to src/coreclr/pal/src/libunwind/src/sh/siglongjmp.S diff --git a/src/coreclr/src/pal/src/libunwind/src/sh/unwind_i.h b/src/coreclr/pal/src/libunwind/src/sh/unwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/sh/unwind_i.h rename to src/coreclr/pal/src/libunwind/src/sh/unwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Gapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/tilegx/Gapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Gapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Gapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Gcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/tilegx/Gcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Gcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Gcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Gget_proc_info.c b/src/coreclr/pal/src/libunwind/src/tilegx/Gget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Gget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Gget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Gget_save_loc.c b/src/coreclr/pal/src/libunwind/src/tilegx/Gget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Gget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Gget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Gglobal.c b/src/coreclr/pal/src/libunwind/src/tilegx/Gglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Gglobal.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Gglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Ginit.c b/src/coreclr/pal/src/libunwind/src/tilegx/Ginit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Ginit.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Ginit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Ginit_local.c b/src/coreclr/pal/src/libunwind/src/tilegx/Ginit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Ginit_local.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Ginit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Ginit_remote.c b/src/coreclr/pal/src/libunwind/src/tilegx/Ginit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Ginit_remote.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Ginit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Gis_signal_frame.c b/src/coreclr/pal/src/libunwind/src/tilegx/Gis_signal_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Gis_signal_frame.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Gis_signal_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Greg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/tilegx/Greg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Greg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Greg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Gregs.c b/src/coreclr/pal/src/libunwind/src/tilegx/Gregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Gregs.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Gregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Gresume.c b/src/coreclr/pal/src/libunwind/src/tilegx/Gresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Gresume.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Gresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Gstep.c b/src/coreclr/pal/src/libunwind/src/tilegx/Gstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Gstep.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Gstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Lapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/tilegx/Lapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Lapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Lapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Lcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/tilegx/Lcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Lcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Lcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Lget_proc_info.c b/src/coreclr/pal/src/libunwind/src/tilegx/Lget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Lget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Lget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Lget_save_loc.c b/src/coreclr/pal/src/libunwind/src/tilegx/Lget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Lget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Lget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Lglobal.c b/src/coreclr/pal/src/libunwind/src/tilegx/Lglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Lglobal.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Lglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Linit.c b/src/coreclr/pal/src/libunwind/src/tilegx/Linit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Linit.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Linit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Linit_local.c b/src/coreclr/pal/src/libunwind/src/tilegx/Linit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Linit_local.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Linit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Linit_remote.c b/src/coreclr/pal/src/libunwind/src/tilegx/Linit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Linit_remote.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Linit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Lis_signal_frame.c b/src/coreclr/pal/src/libunwind/src/tilegx/Lis_signal_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Lis_signal_frame.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Lis_signal_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Lreg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/tilegx/Lreg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Lreg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Lreg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Lregs.c b/src/coreclr/pal/src/libunwind/src/tilegx/Lregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Lregs.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Lregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Lresume.c b/src/coreclr/pal/src/libunwind/src/tilegx/Lresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Lresume.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Lresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/Lstep.c b/src/coreclr/pal/src/libunwind/src/tilegx/Lstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/Lstep.c rename to src/coreclr/pal/src/libunwind/src/tilegx/Lstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/elfxx.c b/src/coreclr/pal/src/libunwind/src/tilegx/elfxx.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/elfxx.c rename to src/coreclr/pal/src/libunwind/src/tilegx/elfxx.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/gen-offsets.c b/src/coreclr/pal/src/libunwind/src/tilegx/gen-offsets.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/gen-offsets.c rename to src/coreclr/pal/src/libunwind/src/tilegx/gen-offsets.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/getcontext.S b/src/coreclr/pal/src/libunwind/src/tilegx/getcontext.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/getcontext.S rename to src/coreclr/pal/src/libunwind/src/tilegx/getcontext.S diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/init.h b/src/coreclr/pal/src/libunwind/src/tilegx/init.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/init.h rename to src/coreclr/pal/src/libunwind/src/tilegx/init.h diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/is_fpreg.c b/src/coreclr/pal/src/libunwind/src/tilegx/is_fpreg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/is_fpreg.c rename to src/coreclr/pal/src/libunwind/src/tilegx/is_fpreg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/offsets.h b/src/coreclr/pal/src/libunwind/src/tilegx/offsets.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/offsets.h rename to src/coreclr/pal/src/libunwind/src/tilegx/offsets.h diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/regname.c b/src/coreclr/pal/src/libunwind/src/tilegx/regname.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/regname.c rename to src/coreclr/pal/src/libunwind/src/tilegx/regname.c diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/siglongjmp.S b/src/coreclr/pal/src/libunwind/src/tilegx/siglongjmp.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/siglongjmp.S rename to src/coreclr/pal/src/libunwind/src/tilegx/siglongjmp.S diff --git a/src/coreclr/src/pal/src/libunwind/src/tilegx/unwind_i.h b/src/coreclr/pal/src/libunwind/src/tilegx/unwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/tilegx/unwind_i.h rename to src/coreclr/pal/src/libunwind/src/tilegx/unwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/Backtrace.c b/src/coreclr/pal/src/libunwind/src/unwind/Backtrace.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/Backtrace.c rename to src/coreclr/pal/src/libunwind/src/unwind/Backtrace.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/DeleteException.c b/src/coreclr/pal/src/libunwind/src/unwind/DeleteException.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/DeleteException.c rename to src/coreclr/pal/src/libunwind/src/unwind/DeleteException.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/FindEnclosingFunction.c b/src/coreclr/pal/src/libunwind/src/unwind/FindEnclosingFunction.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/FindEnclosingFunction.c rename to src/coreclr/pal/src/libunwind/src/unwind/FindEnclosingFunction.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/ForcedUnwind.c b/src/coreclr/pal/src/libunwind/src/unwind/ForcedUnwind.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/ForcedUnwind.c rename to src/coreclr/pal/src/libunwind/src/unwind/ForcedUnwind.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/GetBSP.c b/src/coreclr/pal/src/libunwind/src/unwind/GetBSP.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/GetBSP.c rename to src/coreclr/pal/src/libunwind/src/unwind/GetBSP.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/GetCFA.c b/src/coreclr/pal/src/libunwind/src/unwind/GetCFA.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/GetCFA.c rename to src/coreclr/pal/src/libunwind/src/unwind/GetCFA.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/GetDataRelBase.c b/src/coreclr/pal/src/libunwind/src/unwind/GetDataRelBase.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/GetDataRelBase.c rename to src/coreclr/pal/src/libunwind/src/unwind/GetDataRelBase.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/GetGR.c b/src/coreclr/pal/src/libunwind/src/unwind/GetGR.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/GetGR.c rename to src/coreclr/pal/src/libunwind/src/unwind/GetGR.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/GetIP.c b/src/coreclr/pal/src/libunwind/src/unwind/GetIP.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/GetIP.c rename to src/coreclr/pal/src/libunwind/src/unwind/GetIP.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/GetIPInfo.c b/src/coreclr/pal/src/libunwind/src/unwind/GetIPInfo.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/GetIPInfo.c rename to src/coreclr/pal/src/libunwind/src/unwind/GetIPInfo.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/GetLanguageSpecificData.c b/src/coreclr/pal/src/libunwind/src/unwind/GetLanguageSpecificData.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/GetLanguageSpecificData.c rename to src/coreclr/pal/src/libunwind/src/unwind/GetLanguageSpecificData.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/GetRegionStart.c b/src/coreclr/pal/src/libunwind/src/unwind/GetRegionStart.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/GetRegionStart.c rename to src/coreclr/pal/src/libunwind/src/unwind/GetRegionStart.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/GetTextRelBase.c b/src/coreclr/pal/src/libunwind/src/unwind/GetTextRelBase.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/GetTextRelBase.c rename to src/coreclr/pal/src/libunwind/src/unwind/GetTextRelBase.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/RaiseException.c b/src/coreclr/pal/src/libunwind/src/unwind/RaiseException.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/RaiseException.c rename to src/coreclr/pal/src/libunwind/src/unwind/RaiseException.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/Resume.c b/src/coreclr/pal/src/libunwind/src/unwind/Resume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/Resume.c rename to src/coreclr/pal/src/libunwind/src/unwind/Resume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/Resume_or_Rethrow.c b/src/coreclr/pal/src/libunwind/src/unwind/Resume_or_Rethrow.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/Resume_or_Rethrow.c rename to src/coreclr/pal/src/libunwind/src/unwind/Resume_or_Rethrow.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/SetGR.c b/src/coreclr/pal/src/libunwind/src/unwind/SetGR.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/SetGR.c rename to src/coreclr/pal/src/libunwind/src/unwind/SetGR.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/SetIP.c b/src/coreclr/pal/src/libunwind/src/unwind/SetIP.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/SetIP.c rename to src/coreclr/pal/src/libunwind/src/unwind/SetIP.c diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/libunwind.pc.in b/src/coreclr/pal/src/libunwind/src/unwind/libunwind.pc.in similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/libunwind.pc.in rename to src/coreclr/pal/src/libunwind/src/unwind/libunwind.pc.in diff --git a/src/coreclr/src/pal/src/libunwind/src/unwind/unwind-internal.h b/src/coreclr/pal/src/libunwind/src/unwind/unwind-internal.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/unwind/unwind-internal.h rename to src/coreclr/pal/src/libunwind/src/unwind/unwind-internal.h diff --git a/src/coreclr/src/pal/src/libunwind/src/win/pal-single-threaded.c b/src/coreclr/pal/src/libunwind/src/win/pal-single-threaded.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/win/pal-single-threaded.c rename to src/coreclr/pal/src/libunwind/src/win/pal-single-threaded.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Gapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/x86/Gapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Gapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/x86/Gapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Gcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/x86/Gcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Gcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/x86/Gcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Gget_proc_info.c b/src/coreclr/pal/src/libunwind/src/x86/Gget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Gget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/x86/Gget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Gget_save_loc.c b/src/coreclr/pal/src/libunwind/src/x86/Gget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Gget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/x86/Gget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Gglobal.c b/src/coreclr/pal/src/libunwind/src/x86/Gglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Gglobal.c rename to src/coreclr/pal/src/libunwind/src/x86/Gglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Ginit.c b/src/coreclr/pal/src/libunwind/src/x86/Ginit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Ginit.c rename to src/coreclr/pal/src/libunwind/src/x86/Ginit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Ginit_local.c b/src/coreclr/pal/src/libunwind/src/x86/Ginit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Ginit_local.c rename to src/coreclr/pal/src/libunwind/src/x86/Ginit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Ginit_remote.c b/src/coreclr/pal/src/libunwind/src/x86/Ginit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Ginit_remote.c rename to src/coreclr/pal/src/libunwind/src/x86/Ginit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Gos-freebsd.c b/src/coreclr/pal/src/libunwind/src/x86/Gos-freebsd.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Gos-freebsd.c rename to src/coreclr/pal/src/libunwind/src/x86/Gos-freebsd.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Gos-linux.c b/src/coreclr/pal/src/libunwind/src/x86/Gos-linux.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Gos-linux.c rename to src/coreclr/pal/src/libunwind/src/x86/Gos-linux.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Greg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/x86/Greg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Greg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/x86/Greg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Gregs.c b/src/coreclr/pal/src/libunwind/src/x86/Gregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Gregs.c rename to src/coreclr/pal/src/libunwind/src/x86/Gregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Gresume.c b/src/coreclr/pal/src/libunwind/src/x86/Gresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Gresume.c rename to src/coreclr/pal/src/libunwind/src/x86/Gresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Gstep.c b/src/coreclr/pal/src/libunwind/src/x86/Gstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Gstep.c rename to src/coreclr/pal/src/libunwind/src/x86/Gstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Lapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/x86/Lapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Lapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/x86/Lapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Lcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/x86/Lcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Lcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/x86/Lcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Lget_proc_info.c b/src/coreclr/pal/src/libunwind/src/x86/Lget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Lget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/x86/Lget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Lget_save_loc.c b/src/coreclr/pal/src/libunwind/src/x86/Lget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Lget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/x86/Lget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Lglobal.c b/src/coreclr/pal/src/libunwind/src/x86/Lglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Lglobal.c rename to src/coreclr/pal/src/libunwind/src/x86/Lglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Linit.c b/src/coreclr/pal/src/libunwind/src/x86/Linit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Linit.c rename to src/coreclr/pal/src/libunwind/src/x86/Linit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Linit_local.c b/src/coreclr/pal/src/libunwind/src/x86/Linit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Linit_local.c rename to src/coreclr/pal/src/libunwind/src/x86/Linit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Linit_remote.c b/src/coreclr/pal/src/libunwind/src/x86/Linit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Linit_remote.c rename to src/coreclr/pal/src/libunwind/src/x86/Linit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Los-freebsd.c b/src/coreclr/pal/src/libunwind/src/x86/Los-freebsd.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Los-freebsd.c rename to src/coreclr/pal/src/libunwind/src/x86/Los-freebsd.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Los-linux.c b/src/coreclr/pal/src/libunwind/src/x86/Los-linux.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Los-linux.c rename to src/coreclr/pal/src/libunwind/src/x86/Los-linux.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Lreg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/x86/Lreg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Lreg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/x86/Lreg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Lregs.c b/src/coreclr/pal/src/libunwind/src/x86/Lregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Lregs.c rename to src/coreclr/pal/src/libunwind/src/x86/Lregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Lresume.c b/src/coreclr/pal/src/libunwind/src/x86/Lresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Lresume.c rename to src/coreclr/pal/src/libunwind/src/x86/Lresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/Lstep.c b/src/coreclr/pal/src/libunwind/src/x86/Lstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/Lstep.c rename to src/coreclr/pal/src/libunwind/src/x86/Lstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/getcontext-freebsd.S b/src/coreclr/pal/src/libunwind/src/x86/getcontext-freebsd.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/getcontext-freebsd.S rename to src/coreclr/pal/src/libunwind/src/x86/getcontext-freebsd.S diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/getcontext-linux.S b/src/coreclr/pal/src/libunwind/src/x86/getcontext-linux.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/getcontext-linux.S rename to src/coreclr/pal/src/libunwind/src/x86/getcontext-linux.S diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/init.h b/src/coreclr/pal/src/libunwind/src/x86/init.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/init.h rename to src/coreclr/pal/src/libunwind/src/x86/init.h diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/is_fpreg.c b/src/coreclr/pal/src/libunwind/src/x86/is_fpreg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/is_fpreg.c rename to src/coreclr/pal/src/libunwind/src/x86/is_fpreg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/longjmp.S b/src/coreclr/pal/src/libunwind/src/x86/longjmp.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/longjmp.S rename to src/coreclr/pal/src/libunwind/src/x86/longjmp.S diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/offsets.h b/src/coreclr/pal/src/libunwind/src/x86/offsets.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/offsets.h rename to src/coreclr/pal/src/libunwind/src/x86/offsets.h diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/regname.c b/src/coreclr/pal/src/libunwind/src/x86/regname.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/regname.c rename to src/coreclr/pal/src/libunwind/src/x86/regname.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/siglongjmp.S b/src/coreclr/pal/src/libunwind/src/x86/siglongjmp.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/siglongjmp.S rename to src/coreclr/pal/src/libunwind/src/x86/siglongjmp.S diff --git a/src/coreclr/src/pal/src/libunwind/src/x86/unwind_i.h b/src/coreclr/pal/src/libunwind/src/x86/unwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86/unwind_i.h rename to src/coreclr/pal/src/libunwind/src/x86/unwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Gapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/x86_64/Gapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Gapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Gapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Gcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/x86_64/Gcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Gcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Gcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Gget_proc_info.c b/src/coreclr/pal/src/libunwind/src/x86_64/Gget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Gget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Gget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Gget_save_loc.c b/src/coreclr/pal/src/libunwind/src/x86_64/Gget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Gget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Gget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Gglobal.c b/src/coreclr/pal/src/libunwind/src/x86_64/Gglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Gglobal.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Gglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Ginit.c b/src/coreclr/pal/src/libunwind/src/x86_64/Ginit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Ginit.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Ginit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Ginit_local.c b/src/coreclr/pal/src/libunwind/src/x86_64/Ginit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Ginit_local.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Ginit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Ginit_remote.c b/src/coreclr/pal/src/libunwind/src/x86_64/Ginit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Ginit_remote.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Ginit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Gos-freebsd.c b/src/coreclr/pal/src/libunwind/src/x86_64/Gos-freebsd.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Gos-freebsd.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Gos-freebsd.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Gos-linux.c b/src/coreclr/pal/src/libunwind/src/x86_64/Gos-linux.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Gos-linux.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Gos-linux.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Gos-solaris.c b/src/coreclr/pal/src/libunwind/src/x86_64/Gos-solaris.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Gos-solaris.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Gos-solaris.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Greg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/x86_64/Greg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Greg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Greg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Gregs.c b/src/coreclr/pal/src/libunwind/src/x86_64/Gregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Gregs.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Gregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Gresume.c b/src/coreclr/pal/src/libunwind/src/x86_64/Gresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Gresume.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Gresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Gstash_frame.c b/src/coreclr/pal/src/libunwind/src/x86_64/Gstash_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Gstash_frame.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Gstash_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Gstep.c b/src/coreclr/pal/src/libunwind/src/x86_64/Gstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Gstep.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Gstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Gtrace.c b/src/coreclr/pal/src/libunwind/src/x86_64/Gtrace.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Gtrace.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Gtrace.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Lapply_reg_state.c b/src/coreclr/pal/src/libunwind/src/x86_64/Lapply_reg_state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Lapply_reg_state.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Lapply_reg_state.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Lcreate_addr_space.c b/src/coreclr/pal/src/libunwind/src/x86_64/Lcreate_addr_space.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Lcreate_addr_space.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Lcreate_addr_space.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Lget_proc_info.c b/src/coreclr/pal/src/libunwind/src/x86_64/Lget_proc_info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Lget_proc_info.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Lget_proc_info.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Lget_save_loc.c b/src/coreclr/pal/src/libunwind/src/x86_64/Lget_save_loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Lget_save_loc.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Lget_save_loc.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Lglobal.c b/src/coreclr/pal/src/libunwind/src/x86_64/Lglobal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Lglobal.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Lglobal.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Linit.c b/src/coreclr/pal/src/libunwind/src/x86_64/Linit.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Linit.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Linit.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Linit_local.c b/src/coreclr/pal/src/libunwind/src/x86_64/Linit_local.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Linit_local.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Linit_local.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Linit_remote.c b/src/coreclr/pal/src/libunwind/src/x86_64/Linit_remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Linit_remote.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Linit_remote.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Los-freebsd.c b/src/coreclr/pal/src/libunwind/src/x86_64/Los-freebsd.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Los-freebsd.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Los-freebsd.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Los-linux.c b/src/coreclr/pal/src/libunwind/src/x86_64/Los-linux.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Los-linux.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Los-linux.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Los-solaris.c b/src/coreclr/pal/src/libunwind/src/x86_64/Los-solaris.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Los-solaris.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Los-solaris.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Lreg_states_iterate.c b/src/coreclr/pal/src/libunwind/src/x86_64/Lreg_states_iterate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Lreg_states_iterate.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Lreg_states_iterate.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Lregs.c b/src/coreclr/pal/src/libunwind/src/x86_64/Lregs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Lregs.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Lregs.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Lresume.c b/src/coreclr/pal/src/libunwind/src/x86_64/Lresume.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Lresume.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Lresume.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Lstash_frame.c b/src/coreclr/pal/src/libunwind/src/x86_64/Lstash_frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Lstash_frame.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Lstash_frame.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Lstep.c b/src/coreclr/pal/src/libunwind/src/x86_64/Lstep.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Lstep.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Lstep.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/Ltrace.c b/src/coreclr/pal/src/libunwind/src/x86_64/Ltrace.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/Ltrace.c rename to src/coreclr/pal/src/libunwind/src/x86_64/Ltrace.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/getcontext.S b/src/coreclr/pal/src/libunwind/src/x86_64/getcontext.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/getcontext.S rename to src/coreclr/pal/src/libunwind/src/x86_64/getcontext.S diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/init.h b/src/coreclr/pal/src/libunwind/src/x86_64/init.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/init.h rename to src/coreclr/pal/src/libunwind/src/x86_64/init.h diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/is_fpreg.c b/src/coreclr/pal/src/libunwind/src/x86_64/is_fpreg.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/is_fpreg.c rename to src/coreclr/pal/src/libunwind/src/x86_64/is_fpreg.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/longjmp.S b/src/coreclr/pal/src/libunwind/src/x86_64/longjmp.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/longjmp.S rename to src/coreclr/pal/src/libunwind/src/x86_64/longjmp.S diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/offsets.h b/src/coreclr/pal/src/libunwind/src/x86_64/offsets.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/offsets.h rename to src/coreclr/pal/src/libunwind/src/x86_64/offsets.h diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/regname.c b/src/coreclr/pal/src/libunwind/src/x86_64/regname.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/regname.c rename to src/coreclr/pal/src/libunwind/src/x86_64/regname.c diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/setcontext.S b/src/coreclr/pal/src/libunwind/src/x86_64/setcontext.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/setcontext.S rename to src/coreclr/pal/src/libunwind/src/x86_64/setcontext.S diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/siglongjmp.S b/src/coreclr/pal/src/libunwind/src/x86_64/siglongjmp.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/siglongjmp.S rename to src/coreclr/pal/src/libunwind/src/x86_64/siglongjmp.S diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/ucontext_i.h b/src/coreclr/pal/src/libunwind/src/x86_64/ucontext_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/ucontext_i.h rename to src/coreclr/pal/src/libunwind/src/x86_64/ucontext_i.h diff --git a/src/coreclr/src/pal/src/libunwind/src/x86_64/unwind_i.h b/src/coreclr/pal/src/libunwind/src/x86_64/unwind_i.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/src/x86_64/unwind_i.h rename to src/coreclr/pal/src/libunwind/src/x86_64/unwind_i.h diff --git a/src/coreclr/src/pal/src/libunwind/tests/Gia64-test-nat.c b/src/coreclr/pal/src/libunwind/tests/Gia64-test-nat.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Gia64-test-nat.c rename to src/coreclr/pal/src/libunwind/tests/Gia64-test-nat.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Gia64-test-rbs.c b/src/coreclr/pal/src/libunwind/tests/Gia64-test-rbs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Gia64-test-rbs.c rename to src/coreclr/pal/src/libunwind/tests/Gia64-test-rbs.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Gia64-test-readonly.c b/src/coreclr/pal/src/libunwind/tests/Gia64-test-readonly.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Gia64-test-readonly.c rename to src/coreclr/pal/src/libunwind/tests/Gia64-test-readonly.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Gia64-test-stack.c b/src/coreclr/pal/src/libunwind/tests/Gia64-test-stack.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Gia64-test-stack.c rename to src/coreclr/pal/src/libunwind/tests/Gia64-test-stack.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Gperf-simple.c b/src/coreclr/pal/src/libunwind/tests/Gperf-simple.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Gperf-simple.c rename to src/coreclr/pal/src/libunwind/tests/Gperf-simple.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Gperf-trace.c b/src/coreclr/pal/src/libunwind/tests/Gperf-trace.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Gperf-trace.c rename to src/coreclr/pal/src/libunwind/tests/Gperf-trace.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Gtest-bt.c b/src/coreclr/pal/src/libunwind/tests/Gtest-bt.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Gtest-bt.c rename to src/coreclr/pal/src/libunwind/tests/Gtest-bt.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Gtest-concurrent.c b/src/coreclr/pal/src/libunwind/tests/Gtest-concurrent.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Gtest-concurrent.c rename to src/coreclr/pal/src/libunwind/tests/Gtest-concurrent.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Gtest-dyn1.c b/src/coreclr/pal/src/libunwind/tests/Gtest-dyn1.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Gtest-dyn1.c rename to src/coreclr/pal/src/libunwind/tests/Gtest-dyn1.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Gtest-exc.c b/src/coreclr/pal/src/libunwind/tests/Gtest-exc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Gtest-exc.c rename to src/coreclr/pal/src/libunwind/tests/Gtest-exc.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Gtest-init.cxx b/src/coreclr/pal/src/libunwind/tests/Gtest-init.cxx similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Gtest-init.cxx rename to src/coreclr/pal/src/libunwind/tests/Gtest-init.cxx diff --git a/src/coreclr/src/pal/src/libunwind/tests/Gtest-nomalloc.c b/src/coreclr/pal/src/libunwind/tests/Gtest-nomalloc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Gtest-nomalloc.c rename to src/coreclr/pal/src/libunwind/tests/Gtest-nomalloc.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Gtest-resume-sig-rt.c b/src/coreclr/pal/src/libunwind/tests/Gtest-resume-sig-rt.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Gtest-resume-sig-rt.c rename to src/coreclr/pal/src/libunwind/tests/Gtest-resume-sig-rt.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Gtest-resume-sig.c b/src/coreclr/pal/src/libunwind/tests/Gtest-resume-sig.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Gtest-resume-sig.c rename to src/coreclr/pal/src/libunwind/tests/Gtest-resume-sig.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Gtest-trace.c b/src/coreclr/pal/src/libunwind/tests/Gtest-trace.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Gtest-trace.c rename to src/coreclr/pal/src/libunwind/tests/Gtest-trace.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Gx64-test-dwarf-expressions.c b/src/coreclr/pal/src/libunwind/tests/Gx64-test-dwarf-expressions.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Gx64-test-dwarf-expressions.c rename to src/coreclr/pal/src/libunwind/tests/Gx64-test-dwarf-expressions.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Lia64-test-nat.c b/src/coreclr/pal/src/libunwind/tests/Lia64-test-nat.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Lia64-test-nat.c rename to src/coreclr/pal/src/libunwind/tests/Lia64-test-nat.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Lia64-test-rbs.c b/src/coreclr/pal/src/libunwind/tests/Lia64-test-rbs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Lia64-test-rbs.c rename to src/coreclr/pal/src/libunwind/tests/Lia64-test-rbs.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Lia64-test-readonly.c b/src/coreclr/pal/src/libunwind/tests/Lia64-test-readonly.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Lia64-test-readonly.c rename to src/coreclr/pal/src/libunwind/tests/Lia64-test-readonly.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Lia64-test-stack.c b/src/coreclr/pal/src/libunwind/tests/Lia64-test-stack.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Lia64-test-stack.c rename to src/coreclr/pal/src/libunwind/tests/Lia64-test-stack.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Lperf-simple.c b/src/coreclr/pal/src/libunwind/tests/Lperf-simple.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Lperf-simple.c rename to src/coreclr/pal/src/libunwind/tests/Lperf-simple.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Lperf-trace.c b/src/coreclr/pal/src/libunwind/tests/Lperf-trace.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Lperf-trace.c rename to src/coreclr/pal/src/libunwind/tests/Lperf-trace.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Lrs-race.c b/src/coreclr/pal/src/libunwind/tests/Lrs-race.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Lrs-race.c rename to src/coreclr/pal/src/libunwind/tests/Lrs-race.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Ltest-bt.c b/src/coreclr/pal/src/libunwind/tests/Ltest-bt.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Ltest-bt.c rename to src/coreclr/pal/src/libunwind/tests/Ltest-bt.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Ltest-concurrent.c b/src/coreclr/pal/src/libunwind/tests/Ltest-concurrent.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Ltest-concurrent.c rename to src/coreclr/pal/src/libunwind/tests/Ltest-concurrent.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Ltest-cxx-exceptions.cxx b/src/coreclr/pal/src/libunwind/tests/Ltest-cxx-exceptions.cxx similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Ltest-cxx-exceptions.cxx rename to src/coreclr/pal/src/libunwind/tests/Ltest-cxx-exceptions.cxx diff --git a/src/coreclr/src/pal/src/libunwind/tests/Ltest-dyn1.c b/src/coreclr/pal/src/libunwind/tests/Ltest-dyn1.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Ltest-dyn1.c rename to src/coreclr/pal/src/libunwind/tests/Ltest-dyn1.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Ltest-exc.c b/src/coreclr/pal/src/libunwind/tests/Ltest-exc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Ltest-exc.c rename to src/coreclr/pal/src/libunwind/tests/Ltest-exc.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Ltest-init-local-signal-lib.c b/src/coreclr/pal/src/libunwind/tests/Ltest-init-local-signal-lib.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Ltest-init-local-signal-lib.c rename to src/coreclr/pal/src/libunwind/tests/Ltest-init-local-signal-lib.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Ltest-init-local-signal.c b/src/coreclr/pal/src/libunwind/tests/Ltest-init-local-signal.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Ltest-init-local-signal.c rename to src/coreclr/pal/src/libunwind/tests/Ltest-init-local-signal.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Ltest-init.cxx b/src/coreclr/pal/src/libunwind/tests/Ltest-init.cxx similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Ltest-init.cxx rename to src/coreclr/pal/src/libunwind/tests/Ltest-init.cxx diff --git a/src/coreclr/src/pal/src/libunwind/tests/Ltest-mem-validate.c b/src/coreclr/pal/src/libunwind/tests/Ltest-mem-validate.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Ltest-mem-validate.c rename to src/coreclr/pal/src/libunwind/tests/Ltest-mem-validate.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Ltest-nocalloc.c b/src/coreclr/pal/src/libunwind/tests/Ltest-nocalloc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Ltest-nocalloc.c rename to src/coreclr/pal/src/libunwind/tests/Ltest-nocalloc.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Ltest-nomalloc.c b/src/coreclr/pal/src/libunwind/tests/Ltest-nomalloc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Ltest-nomalloc.c rename to src/coreclr/pal/src/libunwind/tests/Ltest-nomalloc.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Ltest-resume-sig-rt.c b/src/coreclr/pal/src/libunwind/tests/Ltest-resume-sig-rt.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Ltest-resume-sig-rt.c rename to src/coreclr/pal/src/libunwind/tests/Ltest-resume-sig-rt.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Ltest-resume-sig.c b/src/coreclr/pal/src/libunwind/tests/Ltest-resume-sig.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Ltest-resume-sig.c rename to src/coreclr/pal/src/libunwind/tests/Ltest-resume-sig.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Ltest-trace.c b/src/coreclr/pal/src/libunwind/tests/Ltest-trace.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Ltest-trace.c rename to src/coreclr/pal/src/libunwind/tests/Ltest-trace.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Ltest-varargs.c b/src/coreclr/pal/src/libunwind/tests/Ltest-varargs.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Ltest-varargs.c rename to src/coreclr/pal/src/libunwind/tests/Ltest-varargs.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Lx64-test-dwarf-expressions.c b/src/coreclr/pal/src/libunwind/tests/Lx64-test-dwarf-expressions.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Lx64-test-dwarf-expressions.c rename to src/coreclr/pal/src/libunwind/tests/Lx64-test-dwarf-expressions.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/Makefile.am b/src/coreclr/pal/src/libunwind/tests/Makefile.am similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/Makefile.am rename to src/coreclr/pal/src/libunwind/tests/Makefile.am diff --git a/src/coreclr/src/pal/src/libunwind/tests/check-namespace.sh.in b/src/coreclr/pal/src/libunwind/tests/check-namespace.sh.in similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/check-namespace.sh.in rename to src/coreclr/pal/src/libunwind/tests/check-namespace.sh.in diff --git a/src/coreclr/src/pal/src/libunwind/tests/crasher.c b/src/coreclr/pal/src/libunwind/tests/crasher.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/crasher.c rename to src/coreclr/pal/src/libunwind/tests/crasher.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/flush-cache.S b/src/coreclr/pal/src/libunwind/tests/flush-cache.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/flush-cache.S rename to src/coreclr/pal/src/libunwind/tests/flush-cache.S diff --git a/src/coreclr/src/pal/src/libunwind/tests/flush-cache.h b/src/coreclr/pal/src/libunwind/tests/flush-cache.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/flush-cache.h rename to src/coreclr/pal/src/libunwind/tests/flush-cache.h diff --git a/src/coreclr/src/pal/src/libunwind/tests/forker.c b/src/coreclr/pal/src/libunwind/tests/forker.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/forker.c rename to src/coreclr/pal/src/libunwind/tests/forker.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/ia64-dyn-asm.S b/src/coreclr/pal/src/libunwind/tests/ia64-dyn-asm.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/ia64-dyn-asm.S rename to src/coreclr/pal/src/libunwind/tests/ia64-dyn-asm.S diff --git a/src/coreclr/src/pal/src/libunwind/tests/ia64-test-dyn1.c b/src/coreclr/pal/src/libunwind/tests/ia64-test-dyn1.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/ia64-test-dyn1.c rename to src/coreclr/pal/src/libunwind/tests/ia64-test-dyn1.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/ia64-test-nat-asm.S b/src/coreclr/pal/src/libunwind/tests/ia64-test-nat-asm.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/ia64-test-nat-asm.S rename to src/coreclr/pal/src/libunwind/tests/ia64-test-nat-asm.S diff --git a/src/coreclr/src/pal/src/libunwind/tests/ia64-test-rbs-asm.S b/src/coreclr/pal/src/libunwind/tests/ia64-test-rbs-asm.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/ia64-test-rbs-asm.S rename to src/coreclr/pal/src/libunwind/tests/ia64-test-rbs-asm.S diff --git a/src/coreclr/src/pal/src/libunwind/tests/ia64-test-rbs.h b/src/coreclr/pal/src/libunwind/tests/ia64-test-rbs.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/ia64-test-rbs.h rename to src/coreclr/pal/src/libunwind/tests/ia64-test-rbs.h diff --git a/src/coreclr/src/pal/src/libunwind/tests/ia64-test-readonly-asm.S b/src/coreclr/pal/src/libunwind/tests/ia64-test-readonly-asm.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/ia64-test-readonly-asm.S rename to src/coreclr/pal/src/libunwind/tests/ia64-test-readonly-asm.S diff --git a/src/coreclr/src/pal/src/libunwind/tests/ia64-test-setjmp.c b/src/coreclr/pal/src/libunwind/tests/ia64-test-setjmp.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/ia64-test-setjmp.c rename to src/coreclr/pal/src/libunwind/tests/ia64-test-setjmp.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/ia64-test-sig.c b/src/coreclr/pal/src/libunwind/tests/ia64-test-sig.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/ia64-test-sig.c rename to src/coreclr/pal/src/libunwind/tests/ia64-test-sig.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/ia64-test-stack-asm.S b/src/coreclr/pal/src/libunwind/tests/ia64-test-stack-asm.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/ia64-test-stack-asm.S rename to src/coreclr/pal/src/libunwind/tests/ia64-test-stack-asm.S diff --git a/src/coreclr/src/pal/src/libunwind/tests/ia64-test-stack.h b/src/coreclr/pal/src/libunwind/tests/ia64-test-stack.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/ia64-test-stack.h rename to src/coreclr/pal/src/libunwind/tests/ia64-test-stack.h diff --git a/src/coreclr/src/pal/src/libunwind/tests/ident.c b/src/coreclr/pal/src/libunwind/tests/ident.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/ident.c rename to src/coreclr/pal/src/libunwind/tests/ident.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/mapper.c b/src/coreclr/pal/src/libunwind/tests/mapper.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/mapper.c rename to src/coreclr/pal/src/libunwind/tests/mapper.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/perf-startup b/src/coreclr/pal/src/libunwind/tests/perf-startup similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/perf-startup rename to src/coreclr/pal/src/libunwind/tests/perf-startup diff --git a/src/coreclr/src/pal/src/libunwind/tests/ppc64-test-altivec-utils.c b/src/coreclr/pal/src/libunwind/tests/ppc64-test-altivec-utils.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/ppc64-test-altivec-utils.c rename to src/coreclr/pal/src/libunwind/tests/ppc64-test-altivec-utils.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/ppc64-test-altivec.c b/src/coreclr/pal/src/libunwind/tests/ppc64-test-altivec.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/ppc64-test-altivec.c rename to src/coreclr/pal/src/libunwind/tests/ppc64-test-altivec.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/run-check-namespace b/src/coreclr/pal/src/libunwind/tests/run-check-namespace similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/run-check-namespace rename to src/coreclr/pal/src/libunwind/tests/run-check-namespace diff --git a/src/coreclr/src/pal/src/libunwind/tests/run-coredump-unwind b/src/coreclr/pal/src/libunwind/tests/run-coredump-unwind similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/run-coredump-unwind rename to src/coreclr/pal/src/libunwind/tests/run-coredump-unwind diff --git a/src/coreclr/src/pal/src/libunwind/tests/run-coredump-unwind-mdi b/src/coreclr/pal/src/libunwind/tests/run-coredump-unwind-mdi similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/run-coredump-unwind-mdi rename to src/coreclr/pal/src/libunwind/tests/run-coredump-unwind-mdi diff --git a/src/coreclr/src/pal/src/libunwind/tests/run-ia64-test-dyn1 b/src/coreclr/pal/src/libunwind/tests/run-ia64-test-dyn1 similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/run-ia64-test-dyn1 rename to src/coreclr/pal/src/libunwind/tests/run-ia64-test-dyn1 diff --git a/src/coreclr/src/pal/src/libunwind/tests/run-ptrace-mapper b/src/coreclr/pal/src/libunwind/tests/run-ptrace-mapper similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/run-ptrace-mapper rename to src/coreclr/pal/src/libunwind/tests/run-ptrace-mapper diff --git a/src/coreclr/src/pal/src/libunwind/tests/run-ptrace-misc b/src/coreclr/pal/src/libunwind/tests/run-ptrace-misc similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/run-ptrace-misc rename to src/coreclr/pal/src/libunwind/tests/run-ptrace-misc diff --git a/src/coreclr/src/pal/src/libunwind/tests/test-async-sig.c b/src/coreclr/pal/src/libunwind/tests/test-async-sig.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/test-async-sig.c rename to src/coreclr/pal/src/libunwind/tests/test-async-sig.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/test-coredump-unwind.c b/src/coreclr/pal/src/libunwind/tests/test-coredump-unwind.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/test-coredump-unwind.c rename to src/coreclr/pal/src/libunwind/tests/test-coredump-unwind.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/test-flush-cache.c b/src/coreclr/pal/src/libunwind/tests/test-flush-cache.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/test-flush-cache.c rename to src/coreclr/pal/src/libunwind/tests/test-flush-cache.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/test-init-remote.c b/src/coreclr/pal/src/libunwind/tests/test-init-remote.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/test-init-remote.c rename to src/coreclr/pal/src/libunwind/tests/test-init-remote.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/test-mem.c b/src/coreclr/pal/src/libunwind/tests/test-mem.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/test-mem.c rename to src/coreclr/pal/src/libunwind/tests/test-mem.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/test-proc-info.c b/src/coreclr/pal/src/libunwind/tests/test-proc-info.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/test-proc-info.c rename to src/coreclr/pal/src/libunwind/tests/test-proc-info.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/test-ptrace-misc.c b/src/coreclr/pal/src/libunwind/tests/test-ptrace-misc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/test-ptrace-misc.c rename to src/coreclr/pal/src/libunwind/tests/test-ptrace-misc.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/test-ptrace.c b/src/coreclr/pal/src/libunwind/tests/test-ptrace.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/test-ptrace.c rename to src/coreclr/pal/src/libunwind/tests/test-ptrace.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/test-reg-state.c b/src/coreclr/pal/src/libunwind/tests/test-reg-state.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/test-reg-state.c rename to src/coreclr/pal/src/libunwind/tests/test-reg-state.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/test-setjmp.c b/src/coreclr/pal/src/libunwind/tests/test-setjmp.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/test-setjmp.c rename to src/coreclr/pal/src/libunwind/tests/test-setjmp.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/test-static-link-gen.c b/src/coreclr/pal/src/libunwind/tests/test-static-link-gen.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/test-static-link-gen.c rename to src/coreclr/pal/src/libunwind/tests/test-static-link-gen.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/test-static-link-loc.c b/src/coreclr/pal/src/libunwind/tests/test-static-link-loc.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/test-static-link-loc.c rename to src/coreclr/pal/src/libunwind/tests/test-static-link-loc.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/test-strerror.c b/src/coreclr/pal/src/libunwind/tests/test-strerror.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/test-strerror.c rename to src/coreclr/pal/src/libunwind/tests/test-strerror.c diff --git a/src/coreclr/src/pal/src/libunwind/tests/x64-test-dwarf-expressions.S b/src/coreclr/pal/src/libunwind/tests/x64-test-dwarf-expressions.S similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/x64-test-dwarf-expressions.S rename to src/coreclr/pal/src/libunwind/tests/x64-test-dwarf-expressions.S diff --git a/src/coreclr/src/pal/src/libunwind/tests/x64-unwind-badjmp-signal-frame.c b/src/coreclr/pal/src/libunwind/tests/x64-unwind-badjmp-signal-frame.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind/tests/x64-unwind-badjmp-signal-frame.c rename to src/coreclr/pal/src/libunwind/tests/x64-unwind-badjmp-signal-frame.c diff --git a/src/coreclr/src/pal/src/libunwind_mac/include/elf.h b/src/coreclr/pal/src/libunwind_mac/include/elf.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind_mac/include/elf.h rename to src/coreclr/pal/src/libunwind_mac/include/elf.h diff --git a/src/coreclr/src/pal/src/libunwind_mac/include/endian.h b/src/coreclr/pal/src/libunwind_mac/include/endian.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind_mac/include/endian.h rename to src/coreclr/pal/src/libunwind_mac/include/endian.h diff --git a/src/coreclr/src/pal/src/libunwind_mac/include/fakestdalign.h.in b/src/coreclr/pal/src/libunwind_mac/include/fakestdalign.h.in similarity index 100% rename from src/coreclr/src/pal/src/libunwind_mac/include/fakestdalign.h.in rename to src/coreclr/pal/src/libunwind_mac/include/fakestdalign.h.in diff --git a/src/coreclr/src/pal/src/libunwind_mac/include/fakestdatomic.h.in b/src/coreclr/pal/src/libunwind_mac/include/fakestdatomic.h.in similarity index 100% rename from src/coreclr/src/pal/src/libunwind_mac/include/fakestdatomic.h.in rename to src/coreclr/pal/src/libunwind_mac/include/fakestdatomic.h.in diff --git a/src/coreclr/src/pal/src/libunwind_mac/include/freebsd-elf32.h b/src/coreclr/pal/src/libunwind_mac/include/freebsd-elf32.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind_mac/include/freebsd-elf32.h rename to src/coreclr/pal/src/libunwind_mac/include/freebsd-elf32.h diff --git a/src/coreclr/src/pal/src/libunwind_mac/include/freebsd-elf64.h b/src/coreclr/pal/src/libunwind_mac/include/freebsd-elf64.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind_mac/include/freebsd-elf64.h rename to src/coreclr/pal/src/libunwind_mac/include/freebsd-elf64.h diff --git a/src/coreclr/src/pal/src/libunwind_mac/include/freebsd-elf_common.h b/src/coreclr/pal/src/libunwind_mac/include/freebsd-elf_common.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind_mac/include/freebsd-elf_common.h rename to src/coreclr/pal/src/libunwind_mac/include/freebsd-elf_common.h diff --git a/src/coreclr/src/pal/src/libunwind_mac/include/ucontext.h b/src/coreclr/pal/src/libunwind_mac/include/ucontext.h similarity index 100% rename from src/coreclr/src/pal/src/libunwind_mac/include/ucontext.h rename to src/coreclr/pal/src/libunwind_mac/include/ucontext.h diff --git a/src/coreclr/src/pal/src/libunwind_mac/src/missing-functions.c b/src/coreclr/pal/src/libunwind_mac/src/missing-functions.c similarity index 100% rename from src/coreclr/src/pal/src/libunwind_mac/src/missing-functions.c rename to src/coreclr/pal/src/libunwind_mac/src/missing-functions.c diff --git a/src/coreclr/src/pal/src/loader/module.cpp b/src/coreclr/pal/src/loader/module.cpp similarity index 100% rename from src/coreclr/src/pal/src/loader/module.cpp rename to src/coreclr/pal/src/loader/module.cpp diff --git a/src/coreclr/src/pal/src/loader/modulename.cpp b/src/coreclr/pal/src/loader/modulename.cpp similarity index 100% rename from src/coreclr/src/pal/src/loader/modulename.cpp rename to src/coreclr/pal/src/loader/modulename.cpp diff --git a/src/coreclr/src/pal/src/locale/unicode.cpp b/src/coreclr/pal/src/locale/unicode.cpp similarity index 100% rename from src/coreclr/src/pal/src/locale/unicode.cpp rename to src/coreclr/pal/src/locale/unicode.cpp diff --git a/src/coreclr/src/pal/src/locale/unicodedata.cpp b/src/coreclr/pal/src/locale/unicodedata.cpp similarity index 100% rename from src/coreclr/src/pal/src/locale/unicodedata.cpp rename to src/coreclr/pal/src/locale/unicodedata.cpp diff --git a/src/coreclr/src/pal/src/locale/unicodedata.cs b/src/coreclr/pal/src/locale/unicodedata.cs similarity index 100% rename from src/coreclr/src/pal/src/locale/unicodedata.cs rename to src/coreclr/pal/src/locale/unicodedata.cs diff --git a/src/coreclr/src/pal/src/locale/utf8.cpp b/src/coreclr/pal/src/locale/utf8.cpp similarity index 100% rename from src/coreclr/src/pal/src/locale/utf8.cpp rename to src/coreclr/pal/src/locale/utf8.cpp diff --git a/src/coreclr/src/pal/src/map/common.cpp b/src/coreclr/pal/src/map/common.cpp similarity index 100% rename from src/coreclr/src/pal/src/map/common.cpp rename to src/coreclr/pal/src/map/common.cpp diff --git a/src/coreclr/src/pal/src/map/common.h b/src/coreclr/pal/src/map/common.h similarity index 100% rename from src/coreclr/src/pal/src/map/common.h rename to src/coreclr/pal/src/map/common.h diff --git a/src/coreclr/src/pal/src/map/map.cpp b/src/coreclr/pal/src/map/map.cpp similarity index 100% rename from src/coreclr/src/pal/src/map/map.cpp rename to src/coreclr/pal/src/map/map.cpp diff --git a/src/coreclr/src/pal/src/map/virtual.cpp b/src/coreclr/pal/src/map/virtual.cpp similarity index 100% rename from src/coreclr/src/pal/src/map/virtual.cpp rename to src/coreclr/pal/src/map/virtual.cpp diff --git a/src/coreclr/src/pal/src/memory/local.cpp b/src/coreclr/pal/src/memory/local.cpp similarity index 100% rename from src/coreclr/src/pal/src/memory/local.cpp rename to src/coreclr/pal/src/memory/local.cpp diff --git a/src/coreclr/src/pal/src/misc/cgroup.cpp b/src/coreclr/pal/src/misc/cgroup.cpp similarity index 100% rename from src/coreclr/src/pal/src/misc/cgroup.cpp rename to src/coreclr/pal/src/misc/cgroup.cpp diff --git a/src/coreclr/src/pal/src/misc/dbgmsg.cpp b/src/coreclr/pal/src/misc/dbgmsg.cpp similarity index 100% rename from src/coreclr/src/pal/src/misc/dbgmsg.cpp rename to src/coreclr/pal/src/misc/dbgmsg.cpp diff --git a/src/coreclr/src/pal/src/misc/environ.cpp b/src/coreclr/pal/src/misc/environ.cpp similarity index 100% rename from src/coreclr/src/pal/src/misc/environ.cpp rename to src/coreclr/pal/src/misc/environ.cpp diff --git a/src/coreclr/src/pal/src/misc/error.cpp b/src/coreclr/pal/src/misc/error.cpp similarity index 100% rename from src/coreclr/src/pal/src/misc/error.cpp rename to src/coreclr/pal/src/misc/error.cpp diff --git a/src/coreclr/src/pal/src/misc/errorstrings.cpp b/src/coreclr/pal/src/misc/errorstrings.cpp similarity index 100% rename from src/coreclr/src/pal/src/misc/errorstrings.cpp rename to src/coreclr/pal/src/misc/errorstrings.cpp diff --git a/src/coreclr/src/pal/src/misc/errorstrings.h b/src/coreclr/pal/src/misc/errorstrings.h similarity index 100% rename from src/coreclr/src/pal/src/misc/errorstrings.h rename to src/coreclr/pal/src/misc/errorstrings.h diff --git a/src/coreclr/src/pal/src/misc/fmtmessage.cpp b/src/coreclr/pal/src/misc/fmtmessage.cpp similarity index 100% rename from src/coreclr/src/pal/src/misc/fmtmessage.cpp rename to src/coreclr/pal/src/misc/fmtmessage.cpp diff --git a/src/coreclr/src/pal/src/misc/jitsupport.cpp b/src/coreclr/pal/src/misc/jitsupport.cpp similarity index 100% rename from src/coreclr/src/pal/src/misc/jitsupport.cpp rename to src/coreclr/pal/src/misc/jitsupport.cpp diff --git a/src/coreclr/src/pal/src/misc/miscpalapi.cpp b/src/coreclr/pal/src/misc/miscpalapi.cpp similarity index 100% rename from src/coreclr/src/pal/src/misc/miscpalapi.cpp rename to src/coreclr/pal/src/misc/miscpalapi.cpp diff --git a/src/coreclr/src/pal/src/misc/msgbox.cpp b/src/coreclr/pal/src/misc/msgbox.cpp similarity index 100% rename from src/coreclr/src/pal/src/misc/msgbox.cpp rename to src/coreclr/pal/src/misc/msgbox.cpp diff --git a/src/coreclr/src/pal/src/misc/perfjitdump.cpp b/src/coreclr/pal/src/misc/perfjitdump.cpp similarity index 100% rename from src/coreclr/src/pal/src/misc/perfjitdump.cpp rename to src/coreclr/pal/src/misc/perfjitdump.cpp diff --git a/src/coreclr/src/pal/src/misc/perftrace.cpp b/src/coreclr/pal/src/misc/perftrace.cpp similarity index 100% rename from src/coreclr/src/pal/src/misc/perftrace.cpp rename to src/coreclr/pal/src/misc/perftrace.cpp diff --git a/src/coreclr/src/pal/src/misc/strutil.cpp b/src/coreclr/pal/src/misc/strutil.cpp similarity index 100% rename from src/coreclr/src/pal/src/misc/strutil.cpp rename to src/coreclr/pal/src/misc/strutil.cpp diff --git a/src/coreclr/src/pal/src/misc/sysinfo.cpp b/src/coreclr/pal/src/misc/sysinfo.cpp similarity index 100% rename from src/coreclr/src/pal/src/misc/sysinfo.cpp rename to src/coreclr/pal/src/misc/sysinfo.cpp diff --git a/src/coreclr/src/pal/src/misc/time.cpp b/src/coreclr/pal/src/misc/time.cpp similarity index 100% rename from src/coreclr/src/pal/src/misc/time.cpp rename to src/coreclr/pal/src/misc/time.cpp diff --git a/src/coreclr/src/pal/src/misc/tracepointprovider.cpp b/src/coreclr/pal/src/misc/tracepointprovider.cpp similarity index 100% rename from src/coreclr/src/pal/src/misc/tracepointprovider.cpp rename to src/coreclr/pal/src/misc/tracepointprovider.cpp diff --git a/src/coreclr/src/pal/src/misc/utils.cpp b/src/coreclr/pal/src/misc/utils.cpp similarity index 100% rename from src/coreclr/src/pal/src/misc/utils.cpp rename to src/coreclr/pal/src/misc/utils.cpp diff --git a/src/coreclr/src/pal/src/numa/numa.cpp b/src/coreclr/pal/src/numa/numa.cpp similarity index 100% rename from src/coreclr/src/pal/src/numa/numa.cpp rename to src/coreclr/pal/src/numa/numa.cpp diff --git a/src/coreclr/src/pal/src/numa/numashim.h b/src/coreclr/pal/src/numa/numashim.h similarity index 100% rename from src/coreclr/src/pal/src/numa/numashim.h rename to src/coreclr/pal/src/numa/numashim.h diff --git a/src/coreclr/src/pal/src/objmgr/palobjbase.cpp b/src/coreclr/pal/src/objmgr/palobjbase.cpp similarity index 100% rename from src/coreclr/src/pal/src/objmgr/palobjbase.cpp rename to src/coreclr/pal/src/objmgr/palobjbase.cpp diff --git a/src/coreclr/src/pal/src/objmgr/palobjbase.hpp b/src/coreclr/pal/src/objmgr/palobjbase.hpp similarity index 100% rename from src/coreclr/src/pal/src/objmgr/palobjbase.hpp rename to src/coreclr/pal/src/objmgr/palobjbase.hpp diff --git a/src/coreclr/src/pal/src/objmgr/shmobject.cpp b/src/coreclr/pal/src/objmgr/shmobject.cpp similarity index 100% rename from src/coreclr/src/pal/src/objmgr/shmobject.cpp rename to src/coreclr/pal/src/objmgr/shmobject.cpp diff --git a/src/coreclr/src/pal/src/objmgr/shmobject.hpp b/src/coreclr/pal/src/objmgr/shmobject.hpp similarity index 100% rename from src/coreclr/src/pal/src/objmgr/shmobject.hpp rename to src/coreclr/pal/src/objmgr/shmobject.hpp diff --git a/src/coreclr/src/pal/src/objmgr/shmobjectmanager.cpp b/src/coreclr/pal/src/objmgr/shmobjectmanager.cpp similarity index 100% rename from src/coreclr/src/pal/src/objmgr/shmobjectmanager.cpp rename to src/coreclr/pal/src/objmgr/shmobjectmanager.cpp diff --git a/src/coreclr/src/pal/src/objmgr/shmobjectmanager.hpp b/src/coreclr/pal/src/objmgr/shmobjectmanager.hpp similarity index 100% rename from src/coreclr/src/pal/src/objmgr/shmobjectmanager.hpp rename to src/coreclr/pal/src/objmgr/shmobjectmanager.hpp diff --git a/src/coreclr/src/pal/src/safecrt/cruntime.h b/src/coreclr/pal/src/safecrt/cruntime.h similarity index 100% rename from src/coreclr/src/pal/src/safecrt/cruntime.h rename to src/coreclr/pal/src/safecrt/cruntime.h diff --git a/src/coreclr/src/pal/src/safecrt/input.inl b/src/coreclr/pal/src/safecrt/input.inl similarity index 100% rename from src/coreclr/src/pal/src/safecrt/input.inl rename to src/coreclr/pal/src/safecrt/input.inl diff --git a/src/coreclr/src/pal/src/safecrt/internal.h b/src/coreclr/pal/src/safecrt/internal.h similarity index 100% rename from src/coreclr/src/pal/src/safecrt/internal.h rename to src/coreclr/pal/src/safecrt/internal.h diff --git a/src/coreclr/src/pal/src/safecrt/internal_securecrt.h b/src/coreclr/pal/src/safecrt/internal_securecrt.h similarity index 100% rename from src/coreclr/src/pal/src/safecrt/internal_securecrt.h rename to src/coreclr/pal/src/safecrt/internal_securecrt.h diff --git a/src/coreclr/src/pal/src/safecrt/makepath_s.cpp b/src/coreclr/pal/src/safecrt/makepath_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/makepath_s.cpp rename to src/coreclr/pal/src/safecrt/makepath_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/mbusafecrt.cpp b/src/coreclr/pal/src/safecrt/mbusafecrt.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/mbusafecrt.cpp rename to src/coreclr/pal/src/safecrt/mbusafecrt.cpp diff --git a/src/coreclr/src/pal/src/safecrt/mbusafecrt_internal.h b/src/coreclr/pal/src/safecrt/mbusafecrt_internal.h similarity index 100% rename from src/coreclr/src/pal/src/safecrt/mbusafecrt_internal.h rename to src/coreclr/pal/src/safecrt/mbusafecrt_internal.h diff --git a/src/coreclr/src/pal/src/safecrt/memcpy_s.cpp b/src/coreclr/pal/src/safecrt/memcpy_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/memcpy_s.cpp rename to src/coreclr/pal/src/safecrt/memcpy_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/memmove_s.cpp b/src/coreclr/pal/src/safecrt/memmove_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/memmove_s.cpp rename to src/coreclr/pal/src/safecrt/memmove_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/output.inl b/src/coreclr/pal/src/safecrt/output.inl similarity index 100% rename from src/coreclr/src/pal/src/safecrt/output.inl rename to src/coreclr/pal/src/safecrt/output.inl diff --git a/src/coreclr/src/pal/src/safecrt/safecrt_input_s.cpp b/src/coreclr/pal/src/safecrt/safecrt_input_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/safecrt_input_s.cpp rename to src/coreclr/pal/src/safecrt/safecrt_input_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/safecrt_output_l.cpp b/src/coreclr/pal/src/safecrt/safecrt_output_l.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/safecrt_output_l.cpp rename to src/coreclr/pal/src/safecrt/safecrt_output_l.cpp diff --git a/src/coreclr/src/pal/src/safecrt/safecrt_output_s.cpp b/src/coreclr/pal/src/safecrt/safecrt_output_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/safecrt_output_s.cpp rename to src/coreclr/pal/src/safecrt/safecrt_output_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/safecrt_winput_s.cpp b/src/coreclr/pal/src/safecrt/safecrt_winput_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/safecrt_winput_s.cpp rename to src/coreclr/pal/src/safecrt/safecrt_winput_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/safecrt_woutput_s.cpp b/src/coreclr/pal/src/safecrt/safecrt_woutput_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/safecrt_woutput_s.cpp rename to src/coreclr/pal/src/safecrt/safecrt_woutput_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/splitpath_s.cpp b/src/coreclr/pal/src/safecrt/splitpath_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/splitpath_s.cpp rename to src/coreclr/pal/src/safecrt/splitpath_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/sprintf_s.cpp b/src/coreclr/pal/src/safecrt/sprintf_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/sprintf_s.cpp rename to src/coreclr/pal/src/safecrt/sprintf_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/sscanf_s.cpp b/src/coreclr/pal/src/safecrt/sscanf_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/sscanf_s.cpp rename to src/coreclr/pal/src/safecrt/sscanf_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/strcat_s.cpp b/src/coreclr/pal/src/safecrt/strcat_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/strcat_s.cpp rename to src/coreclr/pal/src/safecrt/strcat_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/strcpy_s.cpp b/src/coreclr/pal/src/safecrt/strcpy_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/strcpy_s.cpp rename to src/coreclr/pal/src/safecrt/strcpy_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/strlen_s.cpp b/src/coreclr/pal/src/safecrt/strlen_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/strlen_s.cpp rename to src/coreclr/pal/src/safecrt/strlen_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/strncat_s.cpp b/src/coreclr/pal/src/safecrt/strncat_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/strncat_s.cpp rename to src/coreclr/pal/src/safecrt/strncat_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/strncpy_s.cpp b/src/coreclr/pal/src/safecrt/strncpy_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/strncpy_s.cpp rename to src/coreclr/pal/src/safecrt/strncpy_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/strtok_s.cpp b/src/coreclr/pal/src/safecrt/strtok_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/strtok_s.cpp rename to src/coreclr/pal/src/safecrt/strtok_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/swprintf.cpp b/src/coreclr/pal/src/safecrt/swprintf.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/swprintf.cpp rename to src/coreclr/pal/src/safecrt/swprintf.cpp diff --git a/src/coreclr/src/pal/src/safecrt/tcscat_s.inl b/src/coreclr/pal/src/safecrt/tcscat_s.inl similarity index 100% rename from src/coreclr/src/pal/src/safecrt/tcscat_s.inl rename to src/coreclr/pal/src/safecrt/tcscat_s.inl diff --git a/src/coreclr/src/pal/src/safecrt/tcscpy_s.inl b/src/coreclr/pal/src/safecrt/tcscpy_s.inl similarity index 100% rename from src/coreclr/src/pal/src/safecrt/tcscpy_s.inl rename to src/coreclr/pal/src/safecrt/tcscpy_s.inl diff --git a/src/coreclr/src/pal/src/safecrt/tcsncat_s.inl b/src/coreclr/pal/src/safecrt/tcsncat_s.inl similarity index 100% rename from src/coreclr/src/pal/src/safecrt/tcsncat_s.inl rename to src/coreclr/pal/src/safecrt/tcsncat_s.inl diff --git a/src/coreclr/src/pal/src/safecrt/tcsncpy_s.inl b/src/coreclr/pal/src/safecrt/tcsncpy_s.inl similarity index 100% rename from src/coreclr/src/pal/src/safecrt/tcsncpy_s.inl rename to src/coreclr/pal/src/safecrt/tcsncpy_s.inl diff --git a/src/coreclr/src/pal/src/safecrt/tcstok_s.inl b/src/coreclr/pal/src/safecrt/tcstok_s.inl similarity index 100% rename from src/coreclr/src/pal/src/safecrt/tcstok_s.inl rename to src/coreclr/pal/src/safecrt/tcstok_s.inl diff --git a/src/coreclr/src/pal/src/safecrt/tmakepath_s.inl b/src/coreclr/pal/src/safecrt/tmakepath_s.inl similarity index 100% rename from src/coreclr/src/pal/src/safecrt/tmakepath_s.inl rename to src/coreclr/pal/src/safecrt/tmakepath_s.inl diff --git a/src/coreclr/src/pal/src/safecrt/tsplitpath_s.inl b/src/coreclr/pal/src/safecrt/tsplitpath_s.inl similarity index 100% rename from src/coreclr/src/pal/src/safecrt/tsplitpath_s.inl rename to src/coreclr/pal/src/safecrt/tsplitpath_s.inl diff --git a/src/coreclr/src/pal/src/safecrt/vsprintf.cpp b/src/coreclr/pal/src/safecrt/vsprintf.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/vsprintf.cpp rename to src/coreclr/pal/src/safecrt/vsprintf.cpp diff --git a/src/coreclr/src/pal/src/safecrt/vswprint.cpp b/src/coreclr/pal/src/safecrt/vswprint.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/vswprint.cpp rename to src/coreclr/pal/src/safecrt/vswprint.cpp diff --git a/src/coreclr/src/pal/src/safecrt/wcscat_s.cpp b/src/coreclr/pal/src/safecrt/wcscat_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/wcscat_s.cpp rename to src/coreclr/pal/src/safecrt/wcscat_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/wcscpy_s.cpp b/src/coreclr/pal/src/safecrt/wcscpy_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/wcscpy_s.cpp rename to src/coreclr/pal/src/safecrt/wcscpy_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/wcslen_s.cpp b/src/coreclr/pal/src/safecrt/wcslen_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/wcslen_s.cpp rename to src/coreclr/pal/src/safecrt/wcslen_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/wcslwr_s.cpp b/src/coreclr/pal/src/safecrt/wcslwr_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/wcslwr_s.cpp rename to src/coreclr/pal/src/safecrt/wcslwr_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/wcsncat_s.cpp b/src/coreclr/pal/src/safecrt/wcsncat_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/wcsncat_s.cpp rename to src/coreclr/pal/src/safecrt/wcsncat_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/wcsncpy_s.cpp b/src/coreclr/pal/src/safecrt/wcsncpy_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/wcsncpy_s.cpp rename to src/coreclr/pal/src/safecrt/wcsncpy_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/wcstok_s.cpp b/src/coreclr/pal/src/safecrt/wcstok_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/wcstok_s.cpp rename to src/coreclr/pal/src/safecrt/wcstok_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/wmakepath_s.cpp b/src/coreclr/pal/src/safecrt/wmakepath_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/wmakepath_s.cpp rename to src/coreclr/pal/src/safecrt/wmakepath_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/wsplitpath_s.cpp b/src/coreclr/pal/src/safecrt/wsplitpath_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/wsplitpath_s.cpp rename to src/coreclr/pal/src/safecrt/wsplitpath_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/xtoa_s.cpp b/src/coreclr/pal/src/safecrt/xtoa_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/xtoa_s.cpp rename to src/coreclr/pal/src/safecrt/xtoa_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/xtow_s.cpp b/src/coreclr/pal/src/safecrt/xtow_s.cpp similarity index 100% rename from src/coreclr/src/pal/src/safecrt/xtow_s.cpp rename to src/coreclr/pal/src/safecrt/xtow_s.cpp diff --git a/src/coreclr/src/pal/src/safecrt/xtox_s.inl b/src/coreclr/pal/src/safecrt/xtox_s.inl similarity index 100% rename from src/coreclr/src/pal/src/safecrt/xtox_s.inl rename to src/coreclr/pal/src/safecrt/xtox_s.inl diff --git a/src/coreclr/src/pal/src/sharedmemory/sharedmemory.cpp b/src/coreclr/pal/src/sharedmemory/sharedmemory.cpp similarity index 100% rename from src/coreclr/src/pal/src/sharedmemory/sharedmemory.cpp rename to src/coreclr/pal/src/sharedmemory/sharedmemory.cpp diff --git a/src/coreclr/src/pal/src/shmemory/shmemory.cpp b/src/coreclr/pal/src/shmemory/shmemory.cpp similarity index 100% rename from src/coreclr/src/pal/src/shmemory/shmemory.cpp rename to src/coreclr/pal/src/shmemory/shmemory.cpp diff --git a/src/coreclr/src/pal/src/sync/cs.cpp b/src/coreclr/pal/src/sync/cs.cpp similarity index 100% rename from src/coreclr/src/pal/src/sync/cs.cpp rename to src/coreclr/pal/src/sync/cs.cpp diff --git a/src/coreclr/src/pal/src/synchmgr/synchcontrollers.cpp b/src/coreclr/pal/src/synchmgr/synchcontrollers.cpp similarity index 100% rename from src/coreclr/src/pal/src/synchmgr/synchcontrollers.cpp rename to src/coreclr/pal/src/synchmgr/synchcontrollers.cpp diff --git a/src/coreclr/src/pal/src/synchmgr/synchmanager.cpp b/src/coreclr/pal/src/synchmgr/synchmanager.cpp similarity index 100% rename from src/coreclr/src/pal/src/synchmgr/synchmanager.cpp rename to src/coreclr/pal/src/synchmgr/synchmanager.cpp diff --git a/src/coreclr/src/pal/src/synchmgr/synchmanager.hpp b/src/coreclr/pal/src/synchmgr/synchmanager.hpp similarity index 100% rename from src/coreclr/src/pal/src/synchmgr/synchmanager.hpp rename to src/coreclr/pal/src/synchmgr/synchmanager.hpp diff --git a/src/coreclr/src/pal/src/synchmgr/wait.cpp b/src/coreclr/pal/src/synchmgr/wait.cpp similarity index 100% rename from src/coreclr/src/pal/src/synchmgr/wait.cpp rename to src/coreclr/pal/src/synchmgr/wait.cpp diff --git a/src/coreclr/src/pal/src/synchobj/event.cpp b/src/coreclr/pal/src/synchobj/event.cpp similarity index 100% rename from src/coreclr/src/pal/src/synchobj/event.cpp rename to src/coreclr/pal/src/synchobj/event.cpp diff --git a/src/coreclr/src/pal/src/synchobj/mutex.cpp b/src/coreclr/pal/src/synchobj/mutex.cpp similarity index 100% rename from src/coreclr/src/pal/src/synchobj/mutex.cpp rename to src/coreclr/pal/src/synchobj/mutex.cpp diff --git a/src/coreclr/src/pal/src/synchobj/semaphore.cpp b/src/coreclr/pal/src/synchobj/semaphore.cpp similarity index 100% rename from src/coreclr/src/pal/src/synchobj/semaphore.cpp rename to src/coreclr/pal/src/synchobj/semaphore.cpp diff --git a/src/coreclr/src/pal/src/thread/context.cpp b/src/coreclr/pal/src/thread/context.cpp similarity index 100% rename from src/coreclr/src/pal/src/thread/context.cpp rename to src/coreclr/pal/src/thread/context.cpp diff --git a/src/coreclr/src/pal/src/thread/process.cpp b/src/coreclr/pal/src/thread/process.cpp similarity index 100% rename from src/coreclr/src/pal/src/thread/process.cpp rename to src/coreclr/pal/src/thread/process.cpp diff --git a/src/coreclr/src/pal/src/thread/procprivate.hpp b/src/coreclr/pal/src/thread/procprivate.hpp similarity index 100% rename from src/coreclr/src/pal/src/thread/procprivate.hpp rename to src/coreclr/pal/src/thread/procprivate.hpp diff --git a/src/coreclr/src/pal/src/thread/thread.cpp b/src/coreclr/pal/src/thread/thread.cpp similarity index 100% rename from src/coreclr/src/pal/src/thread/thread.cpp rename to src/coreclr/pal/src/thread/thread.cpp diff --git a/src/coreclr/src/pal/src/thread/threadsusp.cpp b/src/coreclr/pal/src/thread/threadsusp.cpp similarity index 100% rename from src/coreclr/src/pal/src/thread/threadsusp.cpp rename to src/coreclr/pal/src/thread/threadsusp.cpp diff --git a/src/coreclr/src/pal/tests/CMakeLists.txt b/src/coreclr/pal/tests/CMakeLists.txt similarity index 100% rename from src/coreclr/src/pal/tests/CMakeLists.txt rename to src/coreclr/pal/tests/CMakeLists.txt diff --git a/src/coreclr/src/pal/tests/palsuite/CMakeLists.txt b/src/coreclr/pal/tests/palsuite/CMakeLists.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/CMakeLists.txt rename to src/coreclr/pal/tests/palsuite/CMakeLists.txt diff --git a/src/coreclr/src/pal/tests/palsuite/DisabledTests.txt b/src/coreclr/pal/tests/palsuite/DisabledTests.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/DisabledTests.txt rename to src/coreclr/pal/tests/palsuite/DisabledTests.txt diff --git a/src/coreclr/src/pal/tests/palsuite/README.txt b/src/coreclr/pal/tests/palsuite/README.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/README.txt rename to src/coreclr/pal/tests/palsuite/README.txt diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/__iscsym/test1/__iscsym.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/__iscsym/test1/__iscsym.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/__iscsym/test1/__iscsym.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/__iscsym/test1/__iscsym.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_alloca/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_alloca/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_alloca/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_alloca/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_fdopen/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_fdopen/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_fdopen/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_fdopen/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_finite/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_finite/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_finite/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_finite/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_finitef/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_finitef/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_finitef/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_finitef/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_gcvt/test1/_gcvt.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_gcvt/test1/_gcvt.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_gcvt/test1/_gcvt.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_gcvt/test1/_gcvt.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_gcvt/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_gcvt/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_gcvt/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_gcvt/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_isnan/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_isnan/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_isnan/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_isnan/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_isnanf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_isnanf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_isnanf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_isnanf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_itow/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_itow/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_itow/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_itow/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_putenv/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_putenv/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_putenv/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_putenv/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_putenv/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_putenv/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_putenv/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_putenv/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_putenv/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_putenv/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_putenv/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_putenv/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_putenv/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_putenv/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_putenv/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_putenv/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_rotl/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_rotl/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_rotl/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_rotl/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_rotr/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_rotr/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_rotr/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_rotr/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/_snprintf_s.h b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/_snprintf_s.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/_snprintf_s.h rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/_snprintf_s.h diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test10/test10.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test10/test10.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test10/test10.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test10/test10.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test11/test11.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test11/test11.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test11/test11.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test11/test11.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test12/test12.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test12/test12.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test12/test12.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test12/test12.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test13/test13.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test13/test13.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test13/test13.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test13/test13.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test14/test14.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test14/test14.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test14/test14.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test14/test14.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test15/test15.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test15/test15.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test15/test15.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test15/test15.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test16/test16.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test16/test16.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test16/test16.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test16/test16.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test17/test17.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test17/test17.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test17/test17.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test17/test17.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test18/test18.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test18/test18.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test18/test18.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test18/test18.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test19/test19.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test19/test19.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test19/test19.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test19/test19.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test8/test8.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test8/test8.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test8/test8.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test8/test8.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test9/test9.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test9/test9.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snprintf_s/test9/test9.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snprintf_s/test9/test9.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/_snwprintf_s.h b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/_snwprintf_s.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/_snwprintf_s.h rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/_snwprintf_s.h diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test10/test10.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test10/test10.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test10/test10.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test10/test10.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test11/test11.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test11/test11.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test11/test11.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test11/test11.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test12/test12.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test12/test12.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test12/test12.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test12/test12.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test13/test13.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test13/test13.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test13/test13.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test13/test13.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test14/test14.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test14/test14.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test14/test14.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test14/test14.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test15/test15.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test15/test15.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test15/test15.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test15/test15.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test16/test16.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test16/test16.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test16/test16.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test16/test16.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test17/test17.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test17/test17.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test17/test17.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test17/test17.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test18/test18.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test18/test18.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test18/test18.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test18/test18.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test19/test19.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test19/test19.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test19/test19.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test19/test19.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test8/test8.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test8/test8.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test8/test8.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test8/test8.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test9/test9.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test9/test9.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_snwprintf_s/test9/test9.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_snwprintf_s/test9/test9.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_stricmp/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_stricmp/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_stricmp/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_stricmp/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_strnicmp/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_strnicmp/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_strnicmp/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_strnicmp/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/_vsnprintf_s.h b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/_vsnprintf_s.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/_vsnprintf_s.h rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/_vsnprintf_s.h diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test10/test10.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test10/test10.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test10/test10.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test10/test10.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test11/test11.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test11/test11.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test11/test11.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test11/test11.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test12/test12.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test12/test12.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test12/test12.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test12/test12.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test13/test13.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test13/test13.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test13/test13.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test13/test13.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test14/test14.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test14/test14.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test14/test14.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test14/test14.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test15/test15.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test15/test15.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test15/test15.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test15/test15.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test16/test16.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test16/test16.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test16/test16.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test16/test16.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test17/test17.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test17/test17.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test17/test17.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test17/test17.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test18/test18.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test18/test18.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test18/test18.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test18/test18.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test19/test19.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test19/test19.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test19/test19.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test19/test19.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test8/test8.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test8/test8.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test8/test8.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test8/test8.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test9/test9.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test9/test9.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test9/test9.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnprintf_s/test9/test9.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/_vsnwprintf_s.h b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/_vsnwprintf_s.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/_vsnwprintf_s.h rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/_vsnwprintf_s.h diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test10/test10.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test10/test10.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test10/test10.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test10/test10.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test11/test11.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test11/test11.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test11/test11.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test11/test11.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test12/test12.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test12/test12.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test12/test12.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test12/test12.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test13/test13.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test13/test13.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test13/test13.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test13/test13.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test14/test14.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test14/test14.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test14/test14.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test14/test14.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test15/test15.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test15/test15.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test15/test15.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test15/test15.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test16/test16.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test16/test16.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test16/test16.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test16/test16.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test17/test17.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test17/test17.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test17/test17.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test17/test17.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test18/test18.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test18/test18.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test18/test18.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test18/test18.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test19/test19.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test19/test19.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test19/test19.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test19/test19.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test8/test8.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test8/test8.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test8/test8.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test8/test8.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test9/test9.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test9/test9.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test9/test9.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_vsnwprintf_s/test9/test9.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_wcsicmp/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_wcsicmp/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_wcsicmp/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_wcsicmp/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_wcslwr_s/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_wcslwr_s/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_wcslwr_s/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_wcslwr_s/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_wcsnicmp/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_wcsnicmp/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_wcsnicmp/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_wcsnicmp/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_wfopen/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_wfopen/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_wfopen/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_wfopen/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_wfopen/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_wfopen/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_wfopen/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_wfopen/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_wfopen/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_wfopen/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_wfopen/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_wfopen/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_wfopen/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_wfopen/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_wfopen/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_wfopen/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_wfopen/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_wfopen/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_wfopen/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_wfopen/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_wfopen/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_wfopen/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_wfopen/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_wfopen/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_wfopen/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_wfopen/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_wfopen/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_wfopen/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/_wtoi/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/_wtoi/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/_wtoi/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/_wtoi/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/abs/test1/abs.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/abs/test1/abs.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/abs/test1/abs.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/abs/test1/abs.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/acos/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/acos/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/acos/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/acos/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/acosf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/acosf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/acosf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/acosf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/acosh/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/acosh/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/acosh/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/acosh/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/acoshf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/acoshf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/acoshf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/acoshf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/asin/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/asin/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/asin/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/asin/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/asinf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/asinf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/asinf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/asinf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/asinh/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/asinh/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/asinh/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/asinh/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/asinhf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/asinhf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/asinhf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/asinhf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/atan/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/atan/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/atan/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/atan/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/atan2/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/atan2/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/atan2/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/atan2/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/atan2f/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/atan2f/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/atan2f/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/atan2f/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/atanf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/atanf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/atanf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/atanf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/atanh/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/atanh/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/atanh/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/atanh/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/atanhf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/atanhf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/atanhf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/atanhf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/atof/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/atof/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/atof/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/atof/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/atoi/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/atoi/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/atoi/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/atoi/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/bsearch/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/bsearch/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/bsearch/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/bsearch/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/bsearch/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/bsearch/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/bsearch/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/bsearch/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/cbrt/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/cbrt/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/cbrt/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/cbrt/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/cbrtf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/cbrtf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/cbrtf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/cbrtf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/ceil/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/ceil/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/ceil/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/ceil/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/ceilf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/ceilf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/ceilf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/ceilf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/cos/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/cos/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/cos/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/cos/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/cosf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/cosf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/cosf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/cosf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/cosh/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/cosh/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/cosh/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/cosh/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/coshf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/coshf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/coshf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/coshf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/errno/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/errno/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/errno/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/errno/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/errno/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/errno/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/errno/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/errno/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/exit/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/exit/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/exit/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/exit/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/exit/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/exit/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/exit/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/exit/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/exp/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/exp/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/exp/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/exp/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/expf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/expf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/expf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/expf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fabs/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fabs/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fabs/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fabs/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fabsf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fabsf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fabsf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fabsf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fclose/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fclose/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fclose/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fclose/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fclose/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fclose/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fclose/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fclose/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/ferror/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/ferror/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/ferror/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/ferror/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/ferror/test1/testfile b/src/coreclr/pal/tests/palsuite/c_runtime/ferror/test1/testfile similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/ferror/test1/testfile rename to src/coreclr/pal/tests/palsuite/c_runtime/ferror/test1/testfile diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/ferror/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/ferror/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/ferror/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/ferror/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/ferror/test2/testfile b/src/coreclr/pal/tests/palsuite/c_runtime/ferror/test2/testfile similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/ferror/test2/testfile rename to src/coreclr/pal/tests/palsuite/c_runtime/ferror/test2/testfile diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fflush/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fflush/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fflush/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fflush/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fgets/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fgets/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fgets/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fgets/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fgets/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fgets/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fgets/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fgets/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fgets/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fgets/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fgets/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fgets/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/floor/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/floor/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/floor/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/floor/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/floorf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/floorf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/floorf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/floorf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fma/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fma/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fma/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fma/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fmaf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fmaf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fmaf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fmaf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fmod/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fmod/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fmod/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fmod/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fmodf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fmodf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fmodf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fmodf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fopen/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fopen/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fopen/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fopen/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fopen/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fopen/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fopen/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fopen/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fopen/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fopen/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fopen/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fopen/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fopen/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fopen/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fopen/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fopen/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fopen/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fopen/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fopen/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fopen/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fopen/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fopen/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fopen/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fopen/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fopen/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fopen/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fopen/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fopen/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/fprintf.h b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/fprintf.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/fprintf.h rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/fprintf.h diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test10/test10.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test10/test10.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test10/test10.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test10/test10.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test11/test11.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test11/test11.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test11/test11.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test11/test11.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test12/test12.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test12/test12.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test12/test12.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test12/test12.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test13/test13.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test13/test13.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test13/test13.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test13/test13.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test14/test14.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test14/test14.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test14/test14.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test14/test14.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test15/test15.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test15/test15.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test15/test15.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test15/test15.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test16/test16.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test16/test16.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test16/test16.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test16/test16.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test17/test17.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test17/test17.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test17/test17.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test17/test17.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test18/test18.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test18/test18.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test18/test18.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test18/test18.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test19/test19.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test19/test19.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test19/test19.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test19/test19.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test8/test8.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test8/test8.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test8/test8.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test8/test8.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test9/test9.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test9/test9.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fprintf/test9/test9.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fprintf/test9/test9.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fputs/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fputs/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fputs/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fputs/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fputs/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fputs/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fputs/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fputs/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fread/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fread/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fread/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fread/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fread/test1/testfile b/src/coreclr/pal/tests/palsuite/c_runtime/fread/test1/testfile similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fread/test1/testfile rename to src/coreclr/pal/tests/palsuite/c_runtime/fread/test1/testfile diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fread/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fread/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fread/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fread/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fread/test2/testfile b/src/coreclr/pal/tests/palsuite/c_runtime/fread/test2/testfile similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fread/test2/testfile rename to src/coreclr/pal/tests/palsuite/c_runtime/fread/test2/testfile diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fread/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fread/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fread/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fread/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fread/test3/testfile b/src/coreclr/pal/tests/palsuite/c_runtime/fread/test3/testfile similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fread/test3/testfile rename to src/coreclr/pal/tests/palsuite/c_runtime/fread/test3/testfile diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/free/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/free/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/free/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/free/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fseek/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fseek/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fseek/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fseek/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/ftell/test1/ftell.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/ftell/test1/ftell.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/ftell/test1/ftell.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/ftell/test1/ftell.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/ftell/test1/testfile.txt b/src/coreclr/pal/tests/palsuite/c_runtime/ftell/test1/testfile.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/ftell/test1/testfile.txt rename to src/coreclr/pal/tests/palsuite/c_runtime/ftell/test1/testfile.txt diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/fwprintf.h b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/fwprintf.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/fwprintf.h rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/fwprintf.h diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test10/test10.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test10/test10.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test10/test10.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test10/test10.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test11/test11.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test11/test11.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test11/test11.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test11/test11.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test12/test12.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test12/test12.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test12/test12.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test12/test12.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test13/test13.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test13/test13.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test13/test13.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test13/test13.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test14/test14.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test14/test14.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test14/test14.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test14/test14.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test15/test15.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test15/test15.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test15/test15.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test15/test15.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test16/test16.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test16/test16.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test16/test16.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test16/test16.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test17/test17.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test17/test17.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test17/test17.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test17/test17.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test18/test18.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test18/test18.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test18/test18.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test18/test18.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test19/test19.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test19/test19.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test19/test19.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test19/test19.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test8/test8.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test8/test8.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test8/test8.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test8/test8.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test9/test9.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test9/test9.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwprintf/test9/test9.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwprintf/test9/test9.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/fwrite/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/fwrite/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/fwrite/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/fwrite/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/getenv/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/getenv/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/getenv/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/getenv/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/getenv/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/getenv/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/getenv/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/getenv/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/getenv/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/getenv/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/getenv/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/getenv/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/ilogb/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/ilogb/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/ilogb/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/ilogb/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/ilogbf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/ilogbf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/ilogbf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/ilogbf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/isalnum/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/isalnum/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/isalnum/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/isalnum/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/isalpha/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/isalpha/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/isalpha/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/isalpha/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/isdigit/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/isdigit/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/isdigit/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/isdigit/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/islower/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/islower/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/islower/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/islower/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/isprint/test1/isprint.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/isprint/test1/isprint.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/isprint/test1/isprint.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/isprint/test1/isprint.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/isprint/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/isprint/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/isprint/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/isprint/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/isspace/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/isspace/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/isspace/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/isspace/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/isupper/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/isupper/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/isupper/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/isupper/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/iswdigit/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/iswdigit/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/iswdigit/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/iswdigit/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/iswprint/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/iswprint/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/iswprint/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/iswprint/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/iswspace/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/iswspace/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/iswspace/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/iswspace/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/iswupper/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/iswupper/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/iswupper/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/iswupper/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/isxdigit/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/isxdigit/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/isxdigit/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/isxdigit/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/llabs/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/llabs/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/llabs/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/llabs/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/log/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/log/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/log/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/log/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/log10/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/log10/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/log10/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/log10/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/log10f/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/log10f/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/log10f/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/log10f/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/log2/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/log2/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/log2/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/log2/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/log2f/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/log2f/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/log2f/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/log2f/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/logf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/logf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/logf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/logf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/malloc/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/malloc/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/malloc/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/malloc/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/malloc/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/malloc/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/malloc/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/malloc/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/memchr/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/memchr/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/memchr/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/memchr/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/memcmp/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/memcmp/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/memcmp/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/memcmp/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/memcpy/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/memcpy/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/memcpy/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/memcpy/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/memmove/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/memmove/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/memmove/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/memmove/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/memset/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/memset/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/memset/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/memset/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/modf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/modf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/modf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/modf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/modff/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/modff/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/modff/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/modff/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/pow/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/pow/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/pow/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/pow/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/powf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/powf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/powf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/powf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/printf.h b/src/coreclr/pal/tests/palsuite/c_runtime/printf/printf.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/printf.h rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/printf.h diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test10/test10.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test10/test10.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test10/test10.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test10/test10.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test11/test11.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test11/test11.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test11/test11.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test11/test11.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test12/test12.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test12/test12.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test12/test12.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test12/test12.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test13/test13.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test13/test13.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test13/test13.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test13/test13.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test14/test14.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test14/test14.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test14/test14.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test14/test14.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test15/test15.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test15/test15.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test15/test15.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test15/test15.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test16/test16.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test16/test16.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test16/test16.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test16/test16.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test17/test17.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test17/test17.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test17/test17.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test17/test17.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test18/test18.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test18/test18.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test18/test18.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test18/test18.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test19/test19.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test19/test19.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test19/test19.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test19/test19.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test8/test8.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test8/test8.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test8/test8.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test8/test8.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test9/test9.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/printf/test9/test9.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/printf/test9/test9.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/printf/test9/test9.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/qsort/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/qsort/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/qsort/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/qsort/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/qsort/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/qsort/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/qsort/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/qsort/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/rand_srand/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/rand_srand/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/rand_srand/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/rand_srand/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/realloc/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/realloc/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/realloc/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/realloc/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/scalbn/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/scalbn/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/scalbn/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/scalbn/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/scalbnf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/scalbnf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/scalbnf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/scalbnf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sin/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sin/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sin/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sin/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sinf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sinf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sinf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sinf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sinh/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sinh/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sinh/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sinh/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sinhf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sinhf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sinhf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sinhf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/sprintf_s.h b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/sprintf_s.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/sprintf_s.h rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/sprintf_s.h diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test10/test10.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test10/test10.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test10/test10.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test10/test10.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test11/test11.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test11/test11.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test11/test11.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test11/test11.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test12/test12.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test12/test12.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test12/test12.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test12/test12.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test13/test13.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test13/test13.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test13/test13.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test13/test13.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test14/test14.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test14/test14.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test14/test14.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test14/test14.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test15/test15.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test15/test15.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test15/test15.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test15/test15.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test16/test16.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test16/test16.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test16/test16.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test16/test16.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test17/test17.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test17/test17.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test17/test17.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test17/test17.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test18/test18.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test18/test18.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test18/test18.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test18/test18.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test19/test19.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test19/test19.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test19/test19.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test19/test19.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test8/test8.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test8/test8.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test8/test8.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test8/test8.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test9/test9.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test9/test9.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sprintf_s/test9/test9.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sprintf_s/test9/test9.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sqrt/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sqrt/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sqrt/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sqrt/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sqrtf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sqrtf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sqrtf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sqrtf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/sscanf_s.h b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/sscanf_s.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/sscanf_s.h rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/sscanf_s.h diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test10/test10.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test10/test10.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test10/test10.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test10/test10.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test11/test11.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test11/test11.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test11/test11.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test11/test11.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test12/test12.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test12/test12.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test12/test12.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test12/test12.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test13/test13.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test13/test13.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test13/test13.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test13/test13.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test14/test14.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test14/test14.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test14/test14.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test14/test14.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test15/test15.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test15/test15.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test15/test15.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test15/test15.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test16/test16.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test16/test16.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test16/test16.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test16/test16.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test17/test17.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test17/test17.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test17/test17.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test17/test17.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test8/test8.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test8/test8.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test8/test8.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test8/test8.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test9/test9.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test9/test9.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/sscanf_s/test9/test9.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/sscanf_s/test9/test9.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/strcat/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/strcat/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/strcat/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/strcat/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/strchr/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/strchr/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/strchr/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/strchr/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/strcmp/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/strcmp/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/strcmp/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/strcmp/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/strcpy/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/strcpy/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/strcpy/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/strcpy/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/strcspn/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/strcspn/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/strcspn/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/strcspn/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/strlen/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/strlen/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/strlen/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/strlen/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/strncat/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/strncat/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/strncat/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/strncat/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/strncmp/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/strncmp/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/strncmp/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/strncmp/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/strncpy/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/strncpy/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/strncpy/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/strncpy/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/strpbrk/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/strpbrk/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/strpbrk/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/strpbrk/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/strrchr/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/strrchr/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/strrchr/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/strrchr/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/strspn/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/strspn/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/strspn/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/strspn/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/strstr/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/strstr/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/strstr/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/strstr/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/strtod/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/strtod/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/strtod/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/strtod/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/strtod/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/strtod/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/strtod/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/strtod/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/strtok/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/strtok/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/strtok/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/strtok/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/strtoul/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/strtoul/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/strtoul/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/strtoul/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/swprintf.h b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/swprintf.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/swprintf.h rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/swprintf.h diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test10/test10.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test10/test10.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test10/test10.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test10/test10.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test11/test11.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test11/test11.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test11/test11.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test11/test11.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test12/test12.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test12/test12.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test12/test12.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test12/test12.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test13/test13.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test13/test13.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test13/test13.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test13/test13.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test14/test14.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test14/test14.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test14/test14.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test14/test14.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test15/test15.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test15/test15.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test15/test15.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test15/test15.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test16/test16.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test16/test16.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test16/test16.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test16/test16.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test17/test17.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test17/test17.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test17/test17.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test17/test17.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test18/test18.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test18/test18.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test18/test18.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test18/test18.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test19/test19.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test19/test19.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test19/test19.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test19/test19.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test8/test8.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test8/test8.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test8/test8.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test8/test8.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test9/test9.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test9/test9.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swprintf/test9/test9.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swprintf/test9/test9.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/swscanf.h b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/swscanf.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/swscanf.h rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/swscanf.h diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test10/test10.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test10/test10.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test10/test10.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test10/test10.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test11/test11.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test11/test11.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test11/test11.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test11/test11.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test12/test12.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test12/test12.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test12/test12.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test12/test12.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test13/test13.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test13/test13.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test13/test13.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test13/test13.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test14/test14.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test14/test14.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test14/test14.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test14/test14.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test15/test15.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test15/test15.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test15/test15.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test15/test15.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test16/test16.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test16/test16.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test16/test16.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test16/test16.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test17/test17.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test17/test17.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test17/test17.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test17/test17.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test8/test8.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test8/test8.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test8/test8.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test8/test8.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test9/test9.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test9/test9.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/swscanf/test9/test9.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/swscanf/test9/test9.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/tan/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/tan/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/tan/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/tan/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/tanf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/tanf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/tanf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/tanf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/tanh/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/tanh/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/tanh/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/tanh/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/tanhf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/tanhf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/tanhf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/tanhf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/time/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/time/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/time/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/time/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/tolower/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/tolower/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/tolower/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/tolower/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/toupper/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/toupper/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/toupper/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/toupper/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/towlower/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/towlower/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/towlower/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/towlower/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/towupper/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/towupper/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/towupper/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/towupper/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test10/test10.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test10/test10.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test10/test10.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test10/test10.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test11/test11.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test11/test11.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test11/test11.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test11/test11.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test12/test12.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test12/test12.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test12/test12.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test12/test12.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test13/test13.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test13/test13.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test13/test13.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test13/test13.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test14/test14.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test14/test14.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test14/test14.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test14/test14.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test15/test15.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test15/test15.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test15/test15.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test15/test15.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test16/test16.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test16/test16.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test16/test16.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test16/test16.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test17/test17.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test17/test17.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test17/test17.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test17/test17.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test18/test18.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test18/test18.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test18/test18.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test18/test18.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test19/test19.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test19/test19.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test19/test19.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test19/test19.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test8/test8.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test8/test8.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test8/test8.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test8/test8.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test9/test9.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test9/test9.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/test9/test9.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/test9/test9.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/vfprintf.h b/src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/vfprintf.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vfprintf/vfprintf.h rename to src/coreclr/pal/tests/palsuite/c_runtime/vfprintf/vfprintf.h diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test10/test10.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test10/test10.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test10/test10.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test10/test10.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test11/test11.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test11/test11.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test11/test11.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test11/test11.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test12/test12.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test12/test12.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test12/test12.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test12/test12.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test13/test13.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test13/test13.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test13/test13.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test13/test13.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test14/test14.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test14/test14.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test14/test14.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test14/test14.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test15/test15.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test15/test15.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test15/test15.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test15/test15.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test16/test16.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test16/test16.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test16/test16.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test16/test16.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test17/test17.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test17/test17.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test17/test17.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test17/test17.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test18/test18.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test18/test18.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test18/test18.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test18/test18.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test19/test19.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test19/test19.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test19/test19.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test19/test19.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test8/test8.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test8/test8.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test8/test8.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test8/test8.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test9/test9.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test9/test9.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/test9/test9.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/test9/test9.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/vprintf.h b/src/coreclr/pal/tests/palsuite/c_runtime/vprintf/vprintf.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vprintf/vprintf.h rename to src/coreclr/pal/tests/palsuite/c_runtime/vprintf/vprintf.h diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test10/test10.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test10/test10.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test10/test10.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test10/test10.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test11/test11.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test11/test11.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test11/test11.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test11/test11.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test12/test12.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test12/test12.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test12/test12.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test12/test12.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test13/test13.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test13/test13.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test13/test13.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test13/test13.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test14/test14.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test14/test14.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test14/test14.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test14/test14.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test15/test15.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test15/test15.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test15/test15.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test15/test15.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test16/test16.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test16/test16.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test16/test16.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test16/test16.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test17/test17.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test17/test17.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test17/test17.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test17/test17.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test18/test18.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test18/test18.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test18/test18.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test18/test18.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test19/test19.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test19/test19.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test19/test19.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test19/test19.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test8/test8.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test8/test8.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test8/test8.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test8/test8.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test9/test9.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test9/test9.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/test9/test9.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/test9/test9.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/vsprintf.h b/src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/vsprintf.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vsprintf/vsprintf.h rename to src/coreclr/pal/tests/palsuite/c_runtime/vsprintf/vsprintf.h diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test10/test10.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test10/test10.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test10/test10.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test10/test10.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test11/test11.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test11/test11.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test11/test11.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test11/test11.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test12/test12.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test12/test12.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test12/test12.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test12/test12.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test13/test13.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test13/test13.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test13/test13.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test13/test13.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test14/test14.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test14/test14.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test14/test14.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test14/test14.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test15/test15.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test15/test15.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test15/test15.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test15/test15.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test16/test16.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test16/test16.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test16/test16.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test16/test16.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test17/test17.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test17/test17.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test17/test17.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test17/test17.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test18/test18.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test18/test18.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test18/test18.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test18/test18.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test19/test19.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test19/test19.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test19/test19.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test19/test19.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test8/test8.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test8/test8.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test8/test8.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test8/test8.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test9/test9.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test9/test9.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/test9/test9.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/test9/test9.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/vswprintf.h b/src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/vswprintf.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/vswprintf/vswprintf.h rename to src/coreclr/pal/tests/palsuite/c_runtime/vswprintf/vswprintf.h diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcscat/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcscat/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcscat/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcscat/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcschr/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcschr/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcschr/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcschr/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcscmp/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcscmp/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcscmp/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcscmp/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcscpy/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcscpy/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcscpy/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcscpy/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcslen/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcslen/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcslen/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcslen/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcsncmp/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcsncmp/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcsncmp/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcsncmp/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcsncpy/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcsncpy/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcsncpy/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcsncpy/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcspbrk/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcspbrk/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcspbrk/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcspbrk/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcsrchr/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcsrchr/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcsrchr/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcsrchr/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcsstr/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcsstr/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcsstr/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcsstr/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcstod/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcstod/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcstod/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcstod/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcstod/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcstod/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcstod/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcstod/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcstok/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcstok/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcstok/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcstok/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcstoul/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcstoul/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcstoul/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcstoul/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcstoul/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcstoul/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcstoul/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcstoul/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcstoul/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcstoul/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcstoul/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcstoul/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcstoul/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcstoul/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcstoul/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcstoul/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcstoul/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcstoul/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcstoul/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcstoul/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wcstoul/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wcstoul/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wcstoul/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wcstoul/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wprintf/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wprintf/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wprintf/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wprintf/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wprintf/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/c_runtime/wprintf/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wprintf/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/c_runtime/wprintf/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/c_runtime/wprintf/wprintf.h b/src/coreclr/pal/tests/palsuite/c_runtime/wprintf/wprintf.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/c_runtime/wprintf/wprintf.h rename to src/coreclr/pal/tests/palsuite/c_runtime/wprintf/wprintf.h diff --git a/src/coreclr/src/pal/tests/palsuite/common/palsuite.cpp b/src/coreclr/pal/tests/palsuite/common/palsuite.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/common/palsuite.cpp rename to src/coreclr/pal/tests/palsuite/common/palsuite.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/common/palsuite.h b/src/coreclr/pal/tests/palsuite/common/palsuite.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/common/palsuite.h rename to src/coreclr/pal/tests/palsuite/common/palsuite.h diff --git a/src/coreclr/src/pal/tests/palsuite/compilableTests.txt b/src/coreclr/pal/tests/palsuite/compilableTests.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/compilableTests.txt rename to src/coreclr/pal/tests/palsuite/compilableTests.txt diff --git a/src/coreclr/src/pal/tests/palsuite/compileDisabledTests.txt b/src/coreclr/pal/tests/palsuite/compileDisabledTests.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/compileDisabledTests.txt rename to src/coreclr/pal/tests/palsuite/compileDisabledTests.txt diff --git a/src/coreclr/src/pal/tests/palsuite/composite/object_management/event/nonshared/event.cpp b/src/coreclr/pal/tests/palsuite/composite/object_management/event/nonshared/event.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/object_management/event/nonshared/event.cpp rename to src/coreclr/pal/tests/palsuite/composite/object_management/event/nonshared/event.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/object_management/event/nonshared/main.cpp b/src/coreclr/pal/tests/palsuite/composite/object_management/event/nonshared/main.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/object_management/event/nonshared/main.cpp rename to src/coreclr/pal/tests/palsuite/composite/object_management/event/nonshared/main.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/object_management/event/shared/event.cpp b/src/coreclr/pal/tests/palsuite/composite/object_management/event/shared/event.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/object_management/event/shared/event.cpp rename to src/coreclr/pal/tests/palsuite/composite/object_management/event/shared/event.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/object_management/event/shared/main.cpp b/src/coreclr/pal/tests/palsuite/composite/object_management/event/shared/main.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/object_management/event/shared/main.cpp rename to src/coreclr/pal/tests/palsuite/composite/object_management/event/shared/main.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/object_management/mutex/nonshared/main.cpp b/src/coreclr/pal/tests/palsuite/composite/object_management/mutex/nonshared/main.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/object_management/mutex/nonshared/main.cpp rename to src/coreclr/pal/tests/palsuite/composite/object_management/mutex/nonshared/main.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/object_management/mutex/nonshared/mutex.cpp b/src/coreclr/pal/tests/palsuite/composite/object_management/mutex/nonshared/mutex.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/object_management/mutex/nonshared/mutex.cpp rename to src/coreclr/pal/tests/palsuite/composite/object_management/mutex/nonshared/mutex.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/object_management/mutex/shared/main.cpp b/src/coreclr/pal/tests/palsuite/composite/object_management/mutex/shared/main.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/object_management/mutex/shared/main.cpp rename to src/coreclr/pal/tests/palsuite/composite/object_management/mutex/shared/main.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/object_management/mutex/shared/mutex.cpp b/src/coreclr/pal/tests/palsuite/composite/object_management/mutex/shared/mutex.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/object_management/mutex/shared/mutex.cpp rename to src/coreclr/pal/tests/palsuite/composite/object_management/mutex/shared/mutex.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/object_management/readme.txt b/src/coreclr/pal/tests/palsuite/composite/object_management/readme.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/object_management/readme.txt rename to src/coreclr/pal/tests/palsuite/composite/object_management/readme.txt diff --git a/src/coreclr/src/pal/tests/palsuite/composite/object_management/semaphore/nonshared/main.cpp b/src/coreclr/pal/tests/palsuite/composite/object_management/semaphore/nonshared/main.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/object_management/semaphore/nonshared/main.cpp rename to src/coreclr/pal/tests/palsuite/composite/object_management/semaphore/nonshared/main.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/object_management/semaphore/nonshared/semaphore.cpp b/src/coreclr/pal/tests/palsuite/composite/object_management/semaphore/nonshared/semaphore.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/object_management/semaphore/nonshared/semaphore.cpp rename to src/coreclr/pal/tests/palsuite/composite/object_management/semaphore/nonshared/semaphore.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/object_management/semaphore/shared/main.cpp b/src/coreclr/pal/tests/palsuite/composite/object_management/semaphore/shared/main.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/object_management/semaphore/shared/main.cpp rename to src/coreclr/pal/tests/palsuite/composite/object_management/semaphore/shared/main.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/object_management/semaphore/shared/semaphore.cpp b/src/coreclr/pal/tests/palsuite/composite/object_management/semaphore/shared/semaphore.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/object_management/semaphore/shared/semaphore.cpp rename to src/coreclr/pal/tests/palsuite/composite/object_management/semaphore/shared/semaphore.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/criticalsection/criticalsection.cpp b/src/coreclr/pal/tests/palsuite/composite/synchronization/criticalsection/criticalsection.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/criticalsection/criticalsection.cpp rename to src/coreclr/pal/tests/palsuite/composite/synchronization/criticalsection/criticalsection.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/criticalsection/mainWrapper.cpp b/src/coreclr/pal/tests/palsuite/composite/synchronization/criticalsection/mainWrapper.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/criticalsection/mainWrapper.cpp rename to src/coreclr/pal/tests/palsuite/composite/synchronization/criticalsection/mainWrapper.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/criticalsection/readme.txt b/src/coreclr/pal/tests/palsuite/composite/synchronization/criticalsection/readme.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/criticalsection/readme.txt rename to src/coreclr/pal/tests/palsuite/composite/synchronization/criticalsection/readme.txt diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecriticalsection/mtx_critsect.cpp b/src/coreclr/pal/tests/palsuite/composite/synchronization/nativecriticalsection/mtx_critsect.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecriticalsection/mtx_critsect.cpp rename to src/coreclr/pal/tests/palsuite/composite/synchronization/nativecriticalsection/mtx_critsect.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecriticalsection/mtx_critsect.h b/src/coreclr/pal/tests/palsuite/composite/synchronization/nativecriticalsection/mtx_critsect.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecriticalsection/mtx_critsect.h rename to src/coreclr/pal/tests/palsuite/composite/synchronization/nativecriticalsection/mtx_critsect.h diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecriticalsection/pal_composite_native_cs.cpp b/src/coreclr/pal/tests/palsuite/composite/synchronization/nativecriticalsection/pal_composite_native_cs.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecriticalsection/pal_composite_native_cs.cpp rename to src/coreclr/pal/tests/palsuite/composite/synchronization/nativecriticalsection/pal_composite_native_cs.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecriticalsection/readme.txt b/src/coreclr/pal/tests/palsuite/composite/synchronization/nativecriticalsection/readme.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecriticalsection/readme.txt rename to src/coreclr/pal/tests/palsuite/composite/synchronization/nativecriticalsection/readme.txt diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecriticalsection/resultbuffer.cpp b/src/coreclr/pal/tests/palsuite/composite/synchronization/nativecriticalsection/resultbuffer.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecriticalsection/resultbuffer.cpp rename to src/coreclr/pal/tests/palsuite/composite/synchronization/nativecriticalsection/resultbuffer.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecriticalsection/resultbuffer.h b/src/coreclr/pal/tests/palsuite/composite/synchronization/nativecriticalsection/resultbuffer.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecriticalsection/resultbuffer.h rename to src/coreclr/pal/tests/palsuite/composite/synchronization/nativecriticalsection/resultbuffer.h diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/hpitinterlock.s b/src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/hpitinterlock.s similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/hpitinterlock.s rename to src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/hpitinterlock.s diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/interlocked.cpp b/src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/interlocked.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/interlocked.cpp rename to src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/interlocked.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/makefile b/src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/makefile similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/makefile rename to src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/makefile diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/mtx_critsect.cpp b/src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/mtx_critsect.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/mtx_critsect.cpp rename to src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/mtx_critsect.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/mtx_critsect.h b/src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/mtx_critsect.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/mtx_critsect.h rename to src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/mtx_critsect.h diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/notes.txt b/src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/notes.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/notes.txt rename to src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/notes.txt diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/pal_composite_native_cs.cpp b/src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/pal_composite_native_cs.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/pal_composite_native_cs.cpp rename to src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/pal_composite_native_cs.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/readme.txt b/src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/readme.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/readme.txt rename to src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/readme.txt diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/resultbuffer.cpp b/src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/resultbuffer.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/resultbuffer.cpp rename to src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/resultbuffer.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/resultbuffer.h b/src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/resultbuffer.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/resultbuffer.h rename to src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/resultbuffer.h diff --git a/src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/sparcinterloc.s b/src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/sparcinterloc.s similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/sparcinterloc.s rename to src/coreclr/pal/tests/palsuite/composite/synchronization/nativecs_interlocked/sparcinterloc.s diff --git a/src/coreclr/src/pal/tests/palsuite/composite/threading/threadsuspension/mainWrapper.cpp b/src/coreclr/pal/tests/palsuite/composite/threading/threadsuspension/mainWrapper.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/threading/threadsuspension/mainWrapper.cpp rename to src/coreclr/pal/tests/palsuite/composite/threading/threadsuspension/mainWrapper.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/threading/threadsuspension/readme.txt b/src/coreclr/pal/tests/palsuite/composite/threading/threadsuspension/readme.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/threading/threadsuspension/readme.txt rename to src/coreclr/pal/tests/palsuite/composite/threading/threadsuspension/readme.txt diff --git a/src/coreclr/src/pal/tests/palsuite/composite/threading/threadsuspension/threadsuspension.cpp b/src/coreclr/pal/tests/palsuite/composite/threading/threadsuspension/threadsuspension.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/threading/threadsuspension/threadsuspension.cpp rename to src/coreclr/pal/tests/palsuite/composite/threading/threadsuspension/threadsuspension.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/threading/threadsuspension_switchthread/mainWrapper.cpp b/src/coreclr/pal/tests/palsuite/composite/threading/threadsuspension_switchthread/mainWrapper.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/threading/threadsuspension_switchthread/mainWrapper.cpp rename to src/coreclr/pal/tests/palsuite/composite/threading/threadsuspension_switchthread/mainWrapper.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/threading/threadsuspension_switchthread/readme.txt b/src/coreclr/pal/tests/palsuite/composite/threading/threadsuspension_switchthread/readme.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/threading/threadsuspension_switchthread/readme.txt rename to src/coreclr/pal/tests/palsuite/composite/threading/threadsuspension_switchthread/readme.txt diff --git a/src/coreclr/src/pal/tests/palsuite/composite/threading/threadsuspension_switchthread/threadsuspension.cpp b/src/coreclr/pal/tests/palsuite/composite/threading/threadsuspension_switchthread/threadsuspension.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/threading/threadsuspension_switchthread/threadsuspension.cpp rename to src/coreclr/pal/tests/palsuite/composite/threading/threadsuspension_switchthread/threadsuspension.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/wfmo/main.cpp b/src/coreclr/pal/tests/palsuite/composite/wfmo/main.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/wfmo/main.cpp rename to src/coreclr/pal/tests/palsuite/composite/wfmo/main.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/wfmo/mutex.cpp b/src/coreclr/pal/tests/palsuite/composite/wfmo/mutex.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/wfmo/mutex.cpp rename to src/coreclr/pal/tests/palsuite/composite/wfmo/mutex.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/composite/wfmo/readme.txt b/src/coreclr/pal/tests/palsuite/composite/wfmo/readme.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/composite/wfmo/readme.txt rename to src/coreclr/pal/tests/palsuite/composite/wfmo/readme.txt diff --git a/src/coreclr/src/pal/tests/palsuite/debug_api/DebugBreak/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/debug_api/DebugBreak/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/debug_api/DebugBreak/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/debug_api/DebugBreak/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/debug_api/OutputDebugStringA/test1/helper.cpp b/src/coreclr/pal/tests/palsuite/debug_api/OutputDebugStringA/test1/helper.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/debug_api/OutputDebugStringA/test1/helper.cpp rename to src/coreclr/pal/tests/palsuite/debug_api/OutputDebugStringA/test1/helper.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/debug_api/OutputDebugStringA/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/debug_api/OutputDebugStringA/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/debug_api/OutputDebugStringA/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/debug_api/OutputDebugStringA/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/debug_api/OutputDebugStringW/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/debug_api/OutputDebugStringW/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/debug_api/OutputDebugStringW/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/debug_api/OutputDebugStringW/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/debug_api/WriteProcessMemory/test1/commonconsts.h b/src/coreclr/pal/tests/palsuite/debug_api/WriteProcessMemory/test1/commonconsts.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/debug_api/WriteProcessMemory/test1/commonconsts.h rename to src/coreclr/pal/tests/palsuite/debug_api/WriteProcessMemory/test1/commonconsts.h diff --git a/src/coreclr/src/pal/tests/palsuite/debug_api/WriteProcessMemory/test1/helper.cpp b/src/coreclr/pal/tests/palsuite/debug_api/WriteProcessMemory/test1/helper.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/debug_api/WriteProcessMemory/test1/helper.cpp rename to src/coreclr/pal/tests/palsuite/debug_api/WriteProcessMemory/test1/helper.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/debug_api/WriteProcessMemory/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/debug_api/WriteProcessMemory/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/debug_api/WriteProcessMemory/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/debug_api/WriteProcessMemory/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/debug_api/WriteProcessMemory/test3/commonconsts.h b/src/coreclr/pal/tests/palsuite/debug_api/WriteProcessMemory/test3/commonconsts.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/debug_api/WriteProcessMemory/test3/commonconsts.h rename to src/coreclr/pal/tests/palsuite/debug_api/WriteProcessMemory/test3/commonconsts.h diff --git a/src/coreclr/src/pal/tests/palsuite/debug_api/WriteProcessMemory/test3/helper.cpp b/src/coreclr/pal/tests/palsuite/debug_api/WriteProcessMemory/test3/helper.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/debug_api/WriteProcessMemory/test3/helper.cpp rename to src/coreclr/pal/tests/palsuite/debug_api/WriteProcessMemory/test3/helper.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/debug_api/WriteProcessMemory/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/debug_api/WriteProcessMemory/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/debug_api/WriteProcessMemory/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/debug_api/WriteProcessMemory/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/debug_api/WriteProcessMemory/test4/helper.cpp b/src/coreclr/pal/tests/palsuite/debug_api/WriteProcessMemory/test4/helper.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/debug_api/WriteProcessMemory/test4/helper.cpp rename to src/coreclr/pal/tests/palsuite/debug_api/WriteProcessMemory/test4/helper.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/debug_api/WriteProcessMemory/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/debug_api/WriteProcessMemory/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/debug_api/WriteProcessMemory/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/debug_api/WriteProcessMemory/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/eventprovider/CMakeLists.txt b/src/coreclr/pal/tests/palsuite/eventprovider/CMakeLists.txt similarity index 95% rename from src/coreclr/src/pal/tests/palsuite/eventprovider/CMakeLists.txt rename to src/coreclr/pal/tests/palsuite/eventprovider/CMakeLists.txt index 87a2b12f08c14..ccb40b05444a2 100644 --- a/src/coreclr/src/pal/tests/palsuite/eventprovider/CMakeLists.txt +++ b/src/coreclr/pal/tests/palsuite/eventprovider/CMakeLists.txt @@ -4,7 +4,7 @@ set(SOURCES ) set(EVENT_MANIFEST ${VM_DIR}/ClrEtwAll.man) -set(TEST_GENERATOR ${CLR_DIR}/src/scripts/genEventingTests.py) +set(TEST_GENERATOR ${CLR_DIR}/scripts/genEventingTests.py) include(FindPythonInterp) diff --git a/src/coreclr/src/pal/tests/palsuite/eventprovider/EnableEventLogging.cpp b/src/coreclr/pal/tests/palsuite/eventprovider/EnableEventLogging.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/eventprovider/EnableEventLogging.cpp rename to src/coreclr/pal/tests/palsuite/eventprovider/EnableEventLogging.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER/test1/PAL_EXCEPT_FILTER.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER/test1/PAL_EXCEPT_FILTER.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER/test1/PAL_EXCEPT_FILTER.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER/test1/PAL_EXCEPT_FILTER.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER/test2/pal_except_filter.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER/test2/pal_except_filter.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER/test2/pal_except_filter.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER/test2/pal_except_filter.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER/test3/pal_except_filter.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER/test3/pal_except_filter.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER/test3/pal_except_filter.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER/test3/pal_except_filter.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER_EX/test1/PAL_EXCEPT_FILTER_EX.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER_EX/test1/PAL_EXCEPT_FILTER_EX.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER_EX/test1/PAL_EXCEPT_FILTER_EX.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER_EX/test1/PAL_EXCEPT_FILTER_EX.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER_EX/test2/pal_except_filter_ex.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER_EX/test2/pal_except_filter_ex.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER_EX/test2/pal_except_filter_ex.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER_EX/test2/pal_except_filter_ex.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER_EX/test3/pal_except_filter.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER_EX/test3/pal_except_filter.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER_EX/test3/pal_except_filter.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/PAL_EXCEPT_FILTER_EX/test3/pal_except_filter.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT/test1/PAL_TRY_EXCEPT.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT/test1/PAL_TRY_EXCEPT.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT/test1/PAL_TRY_EXCEPT.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT/test1/PAL_TRY_EXCEPT.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT/test2/PAL_TRY_EXCEPT.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT/test2/PAL_TRY_EXCEPT.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT/test2/PAL_TRY_EXCEPT.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT/test2/PAL_TRY_EXCEPT.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT_EX/test1/PAL_TRY_EXCEPT_EX.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT_EX/test1/PAL_TRY_EXCEPT_EX.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT_EX/test1/PAL_TRY_EXCEPT_EX.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT_EX/test1/PAL_TRY_EXCEPT_EX.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT_EX/test2/PAL_TRY_EXCEPT_EX.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT_EX/test2/PAL_TRY_EXCEPT_EX.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT_EX/test2/PAL_TRY_EXCEPT_EX.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT_EX/test2/PAL_TRY_EXCEPT_EX.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT_EX/test3/PAL_TRY_EXCEPT_EX.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT_EX/test3/PAL_TRY_EXCEPT_EX.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT_EX/test3/PAL_TRY_EXCEPT_EX.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/PAL_TRY_EXCEPT_EX/test3/PAL_TRY_EXCEPT_EX.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_TRY_LEAVE_FINALLY/test1/PAL_TRY_LEAVE_FINALLY.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/PAL_TRY_LEAVE_FINALLY/test1/PAL_TRY_LEAVE_FINALLY.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/PAL_TRY_LEAVE_FINALLY/test1/PAL_TRY_LEAVE_FINALLY.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/PAL_TRY_LEAVE_FINALLY/test1/PAL_TRY_LEAVE_FINALLY.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/RaiseException/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/RaiseException/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/RaiseException/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/RaiseException/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/RaiseException/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/RaiseException/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/RaiseException/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/RaiseException/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/RaiseException/test3/test.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/RaiseException/test3/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/RaiseException/test3/test.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/RaiseException/test3/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_except/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/pal_except/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/pal_except/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/pal_except/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_except/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/pal_except/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/pal_except/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/pal_except/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_except/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/pal_except/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/pal_except/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/pal_except/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_except/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/pal_except/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/pal_except/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/pal_except/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_except/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/pal_except/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/pal_except/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/pal_except/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_except/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/pal_except/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/pal_except/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/pal_except/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_except/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/pal_except/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/pal_except/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/pal_except/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_finally/test1/pal_finally.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/pal_finally/test1/pal_finally.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/pal_finally/test1/pal_finally.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/pal_finally/test1/pal_finally.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/CMakeLists.txt b/src/coreclr/pal/tests/palsuite/exception_handling/pal_sxs/test1/CMakeLists.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/CMakeLists.txt rename to src/coreclr/pal/tests/palsuite/exception_handling/pal_sxs/test1/CMakeLists.txt diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest1.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest1.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest1.src b/src/coreclr/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest1.src similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest1.src rename to src/coreclr/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest1.src diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest2.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest2.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest2.src b/src/coreclr/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest2.src similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest2.src rename to src/coreclr/pal/tests/palsuite/exception_handling/pal_sxs/test1/dlltest2.src diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/exceptionsxs.cpp b/src/coreclr/pal/tests/palsuite/exception_handling/pal_sxs/test1/exceptionsxs.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/exceptionsxs.cpp rename to src/coreclr/pal/tests/palsuite/exception_handling/pal_sxs/test1/exceptionsxs.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/testinfo.dat b/src/coreclr/pal/tests/palsuite/exception_handling/pal_sxs/test1/testinfo.dat similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/testinfo.dat rename to src/coreclr/pal/tests/palsuite/exception_handling/pal_sxs/test1/testinfo.dat diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/CopyFileA/test1/CopyFileA.cpp b/src/coreclr/pal/tests/palsuite/file_io/CopyFileA/test1/CopyFileA.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/CopyFileA/test1/CopyFileA.cpp rename to src/coreclr/pal/tests/palsuite/file_io/CopyFileA/test1/CopyFileA.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/CopyFileA/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/file_io/CopyFileA/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/CopyFileA/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/file_io/CopyFileA/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/CopyFileA/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/file_io/CopyFileA/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/CopyFileA/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/file_io/CopyFileA/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/CopyFileA/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/file_io/CopyFileA/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/CopyFileA/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/file_io/CopyFileA/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/CopyFileW/test1/CopyFileW.cpp b/src/coreclr/pal/tests/palsuite/file_io/CopyFileW/test1/CopyFileW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/CopyFileW/test1/CopyFileW.cpp rename to src/coreclr/pal/tests/palsuite/file_io/CopyFileW/test1/CopyFileW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/CopyFileW/test1/ExpectedResults.txt b/src/coreclr/pal/tests/palsuite/file_io/CopyFileW/test1/ExpectedResults.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/CopyFileW/test1/ExpectedResults.txt rename to src/coreclr/pal/tests/palsuite/file_io/CopyFileW/test1/ExpectedResults.txt diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/CopyFileW/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/file_io/CopyFileW/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/CopyFileW/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/file_io/CopyFileW/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/CopyFileW/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/file_io/CopyFileW/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/CopyFileW/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/file_io/CopyFileW/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/CreateFileA/test1/CreateFileA.cpp b/src/coreclr/pal/tests/palsuite/file_io/CreateFileA/test1/CreateFileA.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/CreateFileA/test1/CreateFileA.cpp rename to src/coreclr/pal/tests/palsuite/file_io/CreateFileA/test1/CreateFileA.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/CreateFileA/test1/winoutput b/src/coreclr/pal/tests/palsuite/file_io/CreateFileA/test1/winoutput similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/CreateFileA/test1/winoutput rename to src/coreclr/pal/tests/palsuite/file_io/CreateFileA/test1/winoutput diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/CreateFileW/test1/CreateFileW.cpp b/src/coreclr/pal/tests/palsuite/file_io/CreateFileW/test1/CreateFileW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/CreateFileW/test1/CreateFileW.cpp rename to src/coreclr/pal/tests/palsuite/file_io/CreateFileW/test1/CreateFileW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/CreateFileW/test1/winoutput b/src/coreclr/pal/tests/palsuite/file_io/CreateFileW/test1/winoutput similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/CreateFileW/test1/winoutput rename to src/coreclr/pal/tests/palsuite/file_io/CreateFileW/test1/winoutput diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/DeleteFileA/test1/DeleteFileA.cpp b/src/coreclr/pal/tests/palsuite/file_io/DeleteFileA/test1/DeleteFileA.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/DeleteFileA/test1/DeleteFileA.cpp rename to src/coreclr/pal/tests/palsuite/file_io/DeleteFileA/test1/DeleteFileA.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/DeleteFileW/test1/DeleteFileW.cpp b/src/coreclr/pal/tests/palsuite/file_io/DeleteFileW/test1/DeleteFileW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/DeleteFileW/test1/DeleteFileW.cpp rename to src/coreclr/pal/tests/palsuite/file_io/DeleteFileW/test1/DeleteFileW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/FILECanonicalizePath/FILECanonicalizePath.cpp b/src/coreclr/pal/tests/palsuite/file_io/FILECanonicalizePath/FILECanonicalizePath.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/FILECanonicalizePath/FILECanonicalizePath.cpp rename to src/coreclr/pal/tests/palsuite/file_io/FILECanonicalizePath/FILECanonicalizePath.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/FindClose/test1/FindClose.cpp b/src/coreclr/pal/tests/palsuite/file_io/FindClose/test1/FindClose.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/FindClose/test1/FindClose.cpp rename to src/coreclr/pal/tests/palsuite/file_io/FindClose/test1/FindClose.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/FindFirstFileA/test1/FindFirstFileA.cpp b/src/coreclr/pal/tests/palsuite/file_io/FindFirstFileA/test1/FindFirstFileA.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/FindFirstFileA/test1/FindFirstFileA.cpp rename to src/coreclr/pal/tests/palsuite/file_io/FindFirstFileA/test1/FindFirstFileA.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/FindFirstFileW/test1/FindFirstFileW.cpp b/src/coreclr/pal/tests/palsuite/file_io/FindFirstFileW/test1/FindFirstFileW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/FindFirstFileW/test1/FindFirstFileW.cpp rename to src/coreclr/pal/tests/palsuite/file_io/FindFirstFileW/test1/FindFirstFileW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/FindNextFileA/test1/FindNextFileA.cpp b/src/coreclr/pal/tests/palsuite/file_io/FindNextFileA/test1/FindNextFileA.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/FindNextFileA/test1/FindNextFileA.cpp rename to src/coreclr/pal/tests/palsuite/file_io/FindNextFileA/test1/FindNextFileA.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/FindNextFileA/test2/findnextfilea.cpp b/src/coreclr/pal/tests/palsuite/file_io/FindNextFileA/test2/findnextfilea.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/FindNextFileA/test2/findnextfilea.cpp rename to src/coreclr/pal/tests/palsuite/file_io/FindNextFileA/test2/findnextfilea.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/FindNextFileW/test1/FindNextFileW.cpp b/src/coreclr/pal/tests/palsuite/file_io/FindNextFileW/test1/FindNextFileW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/FindNextFileW/test1/FindNextFileW.cpp rename to src/coreclr/pal/tests/palsuite/file_io/FindNextFileW/test1/FindNextFileW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/FindNextFileW/test2/findnextfilew.cpp b/src/coreclr/pal/tests/palsuite/file_io/FindNextFileW/test2/findnextfilew.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/FindNextFileW/test2/findnextfilew.cpp rename to src/coreclr/pal/tests/palsuite/file_io/FindNextFileW/test2/findnextfilew.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/FlushFileBuffers/test1/FlushFileBuffers.cpp b/src/coreclr/pal/tests/palsuite/file_io/FlushFileBuffers/test1/FlushFileBuffers.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/FlushFileBuffers/test1/FlushFileBuffers.cpp rename to src/coreclr/pal/tests/palsuite/file_io/FlushFileBuffers/test1/FlushFileBuffers.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetConsoleOutputCP/test1/GetConsoleOutputCP.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetConsoleOutputCP/test1/GetConsoleOutputCP.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetConsoleOutputCP/test1/GetConsoleOutputCP.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetConsoleOutputCP/test1/GetConsoleOutputCP.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetCurrentDirectoryA/test1/GetCurrentDirectoryA.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetCurrentDirectoryA/test1/GetCurrentDirectoryA.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetCurrentDirectoryA/test1/GetCurrentDirectoryA.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetCurrentDirectoryA/test1/GetCurrentDirectoryA.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetCurrentDirectoryW/test1/GetCurrentDirectoryW.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetCurrentDirectoryW/test1/GetCurrentDirectoryW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetCurrentDirectoryW/test1/GetCurrentDirectoryW.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetCurrentDirectoryW/test1/GetCurrentDirectoryW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_directory/keepme b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_directory/keepme similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_directory/keepme rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_directory/keepme diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_file b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_file similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_file rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_file diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_ro_directory/keepme b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_ro_directory/keepme similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_ro_directory/keepme rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_ro_directory/keepme diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_ro_file b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_ro_file similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_ro_file rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/.hidden_ro_file diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/GetFileAttributesA.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/GetFileAttributesA.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/GetFileAttributesA.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/GetFileAttributesA.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/no_directory/keepme b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/no_directory/keepme similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/no_directory/keepme rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/no_directory/keepme diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/no_file b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/no_file similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/no_file rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/no_file diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/normal_test_directory/keepme b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/normal_test_directory/keepme similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/normal_test_directory/keepme rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/normal_test_directory/keepme diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/normal_test_file b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/normal_test_file similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/normal_test_file rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/normal_test_file diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/ro_test_directory/keepme b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/ro_test_directory/keepme similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/ro_test_directory/keepme rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/ro_test_directory/keepme diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/ro_test_file b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/ro_test_file similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/ro_test_file rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/ro_test_file diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/rw_directory/keepme b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/rw_directory/keepme similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/rw_directory/keepme rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/rw_directory/keepme diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/rw_file b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/rw_file similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesA/test1/rw_file rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesA/test1/rw_file diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/.hidden_directory/anchor.txt b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/.hidden_directory/anchor.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/.hidden_directory/anchor.txt rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/.hidden_directory/anchor.txt diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/.hidden_file b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/.hidden_file similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/.hidden_file rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/.hidden_file diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/normal_test_directory/keepme b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/normal_test_directory/keepme similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/normal_test_directory/keepme rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/normal_test_directory/keepme diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/normal_test_file b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/normal_test_file similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/normal_test_file rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/normal_test_file diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/ro_test_directory/keepme b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/ro_test_directory/keepme similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/ro_test_directory/keepme rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/ro_test_directory/keepme diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/ro_test_file b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/ro_test_file similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/ro_test_file rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/ro_test_file diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesExW/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesExW/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesExW/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesExW/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesExW/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_directory/keepme b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_directory/keepme similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_directory/keepme rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_directory/keepme diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_file b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_file similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_file rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_file diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_ro_directory/keepme b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_ro_directory/keepme similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_ro_directory/keepme rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_ro_directory/keepme diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_ro_file b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_ro_file similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_ro_file rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/.hidden_ro_file diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/GetFileAttributesW.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/GetFileAttributesW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/GetFileAttributesW.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/GetFileAttributesW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/no_directory/keepme b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/no_directory/keepme similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/no_directory/keepme rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/no_directory/keepme diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/no_file b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/no_file similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/no_file rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/no_file diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/normal_test_directory/keepme b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/normal_test_directory/keepme similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/normal_test_directory/keepme rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/normal_test_directory/keepme diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/normal_test_file b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/normal_test_file similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/normal_test_file rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/normal_test_file diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/ro_test_directory/keepme b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/ro_test_directory/keepme similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/ro_test_directory/keepme rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/ro_test_directory/keepme diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/ro_test_file b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/ro_test_file similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/ro_test_file rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/ro_test_file diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/rw_file b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/rw_file similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/rw_file rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/rw_file diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/rw_test_directory/keepme b/src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/rw_test_directory/keepme similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileAttributesW/test1/rw_test_directory/keepme rename to src/coreclr/pal/tests/palsuite/file_io/GetFileAttributesW/test1/rw_test_directory/keepme diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileSize/test1/GetFileSize.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetFileSize/test1/GetFileSize.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileSize/test1/GetFileSize.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetFileSize/test1/GetFileSize.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFileSizeEx/test1/GetFileSizeEx.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetFileSizeEx/test1/GetFileSizeEx.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFileSizeEx/test1/GetFileSizeEx.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetFileSizeEx/test1/GetFileSizeEx.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFullPathNameA/test1/GetFullPathNameA.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetFullPathNameA/test1/GetFullPathNameA.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFullPathNameA/test1/GetFullPathNameA.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetFullPathNameA/test1/GetFullPathNameA.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFullPathNameA/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetFullPathNameA/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFullPathNameA/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetFullPathNameA/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFullPathNameA/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetFullPathNameA/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFullPathNameA/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetFullPathNameA/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFullPathNameA/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetFullPathNameA/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFullPathNameA/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetFullPathNameA/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFullPathNameW/test1/GetFullPathNameW.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetFullPathNameW/test1/GetFullPathNameW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFullPathNameW/test1/GetFullPathNameW.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetFullPathNameW/test1/GetFullPathNameW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFullPathNameW/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetFullPathNameW/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFullPathNameW/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetFullPathNameW/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFullPathNameW/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetFullPathNameW/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFullPathNameW/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetFullPathNameW/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetFullPathNameW/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetFullPathNameW/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetFullPathNameW/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetFullPathNameW/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetStdHandle/test1/GetStdHandle.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetStdHandle/test1/GetStdHandle.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetStdHandle/test1/GetStdHandle.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetStdHandle/test1/GetStdHandle.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetStdHandle/test2/GetStdHandle.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetStdHandle/test2/GetStdHandle.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetStdHandle/test2/GetStdHandle.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetStdHandle/test2/GetStdHandle.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetSystemTime/test1/test.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetSystemTime/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetSystemTime/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetSystemTime/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetSystemTimeAsFileTime/test1/GetSystemTimeAsFileTime.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetSystemTimeAsFileTime/test1/GetSystemTimeAsFileTime.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetSystemTimeAsFileTime/test1/GetSystemTimeAsFileTime.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetSystemTimeAsFileTime/test1/GetSystemTimeAsFileTime.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetTempFileNameA/test1/GetTempFileNameA.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetTempFileNameA/test1/GetTempFileNameA.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetTempFileNameA/test1/GetTempFileNameA.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetTempFileNameA/test1/GetTempFileNameA.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetTempFileNameA/test2/GetTempFileNameA.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetTempFileNameA/test2/GetTempFileNameA.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetTempFileNameA/test2/GetTempFileNameA.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetTempFileNameA/test2/GetTempFileNameA.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetTempFileNameA/test3/gettempfilenamea.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetTempFileNameA/test3/gettempfilenamea.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetTempFileNameA/test3/gettempfilenamea.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetTempFileNameA/test3/gettempfilenamea.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/GetTempFileNameW.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetTempFileNameW/test1/GetTempFileNameW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/GetTempFileNameW.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetTempFileNameW/test1/GetTempFileNameW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetTempFileNameW/test2/GetTempFileNameW.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetTempFileNameW/test2/GetTempFileNameW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetTempFileNameW/test2/GetTempFileNameW.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetTempFileNameW/test2/GetTempFileNameW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetTempFileNameW/test3/gettempfilenamew.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetTempFileNameW/test3/gettempfilenamew.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetTempFileNameW/test3/gettempfilenamew.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetTempFileNameW/test3/gettempfilenamew.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/GetTempPathW/test1/GetTempPathW.cpp b/src/coreclr/pal/tests/palsuite/file_io/GetTempPathW/test1/GetTempPathW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/GetTempPathW/test1/GetTempPathW.cpp rename to src/coreclr/pal/tests/palsuite/file_io/GetTempPathW/test1/GetTempPathW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/MoveFileExA/test1/ExpectedResults.txt b/src/coreclr/pal/tests/palsuite/file_io/MoveFileExA/test1/ExpectedResults.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/MoveFileExA/test1/ExpectedResults.txt rename to src/coreclr/pal/tests/palsuite/file_io/MoveFileExA/test1/ExpectedResults.txt diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/MoveFileExA/test1/MoveFileExA.cpp b/src/coreclr/pal/tests/palsuite/file_io/MoveFileExA/test1/MoveFileExA.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/MoveFileExA/test1/MoveFileExA.cpp rename to src/coreclr/pal/tests/palsuite/file_io/MoveFileExA/test1/MoveFileExA.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/MoveFileExW/test1/ExpectedResults.txt b/src/coreclr/pal/tests/palsuite/file_io/MoveFileExW/test1/ExpectedResults.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/MoveFileExW/test1/ExpectedResults.txt rename to src/coreclr/pal/tests/palsuite/file_io/MoveFileExW/test1/ExpectedResults.txt diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/MoveFileExW/test1/MoveFileExW.cpp b/src/coreclr/pal/tests/palsuite/file_io/MoveFileExW/test1/MoveFileExW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/MoveFileExW/test1/MoveFileExW.cpp rename to src/coreclr/pal/tests/palsuite/file_io/MoveFileExW/test1/MoveFileExW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/ReadFile/test1/NonReadableFile.txt b/src/coreclr/pal/tests/palsuite/file_io/ReadFile/test1/NonReadableFile.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/ReadFile/test1/NonReadableFile.txt rename to src/coreclr/pal/tests/palsuite/file_io/ReadFile/test1/NonReadableFile.txt diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/ReadFile/test1/ReadFile.cpp b/src/coreclr/pal/tests/palsuite/file_io/ReadFile/test1/ReadFile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/ReadFile/test1/ReadFile.cpp rename to src/coreclr/pal/tests/palsuite/file_io/ReadFile/test1/ReadFile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/ReadFile/test2/ReadFile.cpp b/src/coreclr/pal/tests/palsuite/file_io/ReadFile/test2/ReadFile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/ReadFile/test2/ReadFile.cpp rename to src/coreclr/pal/tests/palsuite/file_io/ReadFile/test2/ReadFile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/ReadFile/test3/ReadFile.cpp b/src/coreclr/pal/tests/palsuite/file_io/ReadFile/test3/ReadFile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/ReadFile/test3/ReadFile.cpp rename to src/coreclr/pal/tests/palsuite/file_io/ReadFile/test3/ReadFile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/ReadFile/test4/readfile.cpp b/src/coreclr/pal/tests/palsuite/file_io/ReadFile/test4/readfile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/ReadFile/test4/readfile.cpp rename to src/coreclr/pal/tests/palsuite/file_io/ReadFile/test4/readfile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/SearchPathW/test1/SearchPathW.cpp b/src/coreclr/pal/tests/palsuite/file_io/SearchPathW/test1/SearchPathW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/SearchPathW/test1/SearchPathW.cpp rename to src/coreclr/pal/tests/palsuite/file_io/SearchPathW/test1/SearchPathW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/SetEndOfFile/test1/SetEndOfFile.cpp b/src/coreclr/pal/tests/palsuite/file_io/SetEndOfFile/test1/SetEndOfFile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/SetEndOfFile/test1/SetEndOfFile.cpp rename to src/coreclr/pal/tests/palsuite/file_io/SetEndOfFile/test1/SetEndOfFile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/SetEndOfFile/test2/SetEndOfFile.cpp b/src/coreclr/pal/tests/palsuite/file_io/SetEndOfFile/test2/SetEndOfFile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/SetEndOfFile/test2/SetEndOfFile.cpp rename to src/coreclr/pal/tests/palsuite/file_io/SetEndOfFile/test2/SetEndOfFile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/SetEndOfFile/test3/SetEndOfFile.cpp b/src/coreclr/pal/tests/palsuite/file_io/SetEndOfFile/test3/SetEndOfFile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/SetEndOfFile/test3/SetEndOfFile.cpp rename to src/coreclr/pal/tests/palsuite/file_io/SetEndOfFile/test3/SetEndOfFile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/SetEndOfFile/test4/setendoffile.cpp b/src/coreclr/pal/tests/palsuite/file_io/SetEndOfFile/test4/setendoffile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/SetEndOfFile/test4/setendoffile.cpp rename to src/coreclr/pal/tests/palsuite/file_io/SetEndOfFile/test4/setendoffile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/SetEndOfFile/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/file_io/SetEndOfFile/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/SetEndOfFile/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/file_io/SetEndOfFile/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/SetFilePointer/test1/SetFilePointer.cpp b/src/coreclr/pal/tests/palsuite/file_io/SetFilePointer/test1/SetFilePointer.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/SetFilePointer/test1/SetFilePointer.cpp rename to src/coreclr/pal/tests/palsuite/file_io/SetFilePointer/test1/SetFilePointer.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/SetFilePointer/test2/SetFilePointer.cpp b/src/coreclr/pal/tests/palsuite/file_io/SetFilePointer/test2/SetFilePointer.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/SetFilePointer/test2/SetFilePointer.cpp rename to src/coreclr/pal/tests/palsuite/file_io/SetFilePointer/test2/SetFilePointer.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/SetFilePointer/test3/SetFilePointer.cpp b/src/coreclr/pal/tests/palsuite/file_io/SetFilePointer/test3/SetFilePointer.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/SetFilePointer/test3/SetFilePointer.cpp rename to src/coreclr/pal/tests/palsuite/file_io/SetFilePointer/test3/SetFilePointer.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/SetFilePointer/test4/SetFilePointer.cpp b/src/coreclr/pal/tests/palsuite/file_io/SetFilePointer/test4/SetFilePointer.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/SetFilePointer/test4/SetFilePointer.cpp rename to src/coreclr/pal/tests/palsuite/file_io/SetFilePointer/test4/SetFilePointer.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/SetFilePointer/test5/SetFilePointer.cpp b/src/coreclr/pal/tests/palsuite/file_io/SetFilePointer/test5/SetFilePointer.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/SetFilePointer/test5/SetFilePointer.cpp rename to src/coreclr/pal/tests/palsuite/file_io/SetFilePointer/test5/SetFilePointer.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/SetFilePointer/test6/SetFilePointer.cpp b/src/coreclr/pal/tests/palsuite/file_io/SetFilePointer/test6/SetFilePointer.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/SetFilePointer/test6/SetFilePointer.cpp rename to src/coreclr/pal/tests/palsuite/file_io/SetFilePointer/test6/SetFilePointer.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/SetFilePointer/test7/SetFilePointer.cpp b/src/coreclr/pal/tests/palsuite/file_io/SetFilePointer/test7/SetFilePointer.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/SetFilePointer/test7/SetFilePointer.cpp rename to src/coreclr/pal/tests/palsuite/file_io/SetFilePointer/test7/SetFilePointer.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/WriteFile/test1/WriteFile.cpp b/src/coreclr/pal/tests/palsuite/file_io/WriteFile/test1/WriteFile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/WriteFile/test1/WriteFile.cpp rename to src/coreclr/pal/tests/palsuite/file_io/WriteFile/test1/WriteFile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/WriteFile/test2/Results.txt b/src/coreclr/pal/tests/palsuite/file_io/WriteFile/test2/Results.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/WriteFile/test2/Results.txt rename to src/coreclr/pal/tests/palsuite/file_io/WriteFile/test2/Results.txt diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/WriteFile/test2/WriteFile.cpp b/src/coreclr/pal/tests/palsuite/file_io/WriteFile/test2/WriteFile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/WriteFile/test2/WriteFile.cpp rename to src/coreclr/pal/tests/palsuite/file_io/WriteFile/test2/WriteFile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/WriteFile/test3/WriteFile.cpp b/src/coreclr/pal/tests/palsuite/file_io/WriteFile/test3/WriteFile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/WriteFile/test3/WriteFile.cpp rename to src/coreclr/pal/tests/palsuite/file_io/WriteFile/test3/WriteFile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/WriteFile/test4/writefile.cpp b/src/coreclr/pal/tests/palsuite/file_io/WriteFile/test4/writefile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/WriteFile/test4/writefile.cpp rename to src/coreclr/pal/tests/palsuite/file_io/WriteFile/test4/writefile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/WriteFile/test5/writefile.cpp b/src/coreclr/pal/tests/palsuite/file_io/WriteFile/test5/writefile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/WriteFile/test5/writefile.cpp rename to src/coreclr/pal/tests/palsuite/file_io/WriteFile/test5/writefile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/errorpathnotfound/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/file_io/errorpathnotfound/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/errorpathnotfound/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/file_io/errorpathnotfound/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/errorpathnotfound/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/file_io/errorpathnotfound/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/errorpathnotfound/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/file_io/errorpathnotfound/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/file_io/gettemppatha/test1/gettemppatha.cpp b/src/coreclr/pal/tests/palsuite/file_io/gettemppatha/test1/gettemppatha.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/file_io/gettemppatha/test1/gettemppatha.cpp rename to src/coreclr/pal/tests/palsuite/file_io/gettemppatha/test1/gettemppatha.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/CreateFileMapping_neg1/CreateFileMapping_neg.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/CreateFileMapping_neg1/CreateFileMapping_neg.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/CreateFileMapping_neg1/CreateFileMapping_neg.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/CreateFileMapping_neg1/CreateFileMapping_neg.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test1/CreateFileMappingW.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test1/CreateFileMappingW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test1/CreateFileMappingW.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test1/CreateFileMappingW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test2/CreateFileMappingW.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test2/CreateFileMappingW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test2/CreateFileMappingW.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test2/CreateFileMappingW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test3/CreateFileMappingW.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test3/CreateFileMappingW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test3/CreateFileMappingW.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test3/CreateFileMappingW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test4/CreateFileMappingW.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test4/CreateFileMappingW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test4/CreateFileMappingW.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test4/CreateFileMappingW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test5/CreateFileMappingW.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test5/CreateFileMappingW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test5/CreateFileMappingW.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test5/CreateFileMappingW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test6/CreateFileMappingW.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test6/CreateFileMappingW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test6/CreateFileMappingW.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test6/CreateFileMappingW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test7/createfilemapping.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test7/createfilemapping.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test7/createfilemapping.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test7/createfilemapping.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test8/createfilemapping.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test8/createfilemapping.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test8/createfilemapping.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test8/createfilemapping.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test9/createfilemapping.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test9/createfilemapping.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test9/createfilemapping.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/CreateFileMappingW/test9/createfilemapping.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/FreeLibrary/test1/FreeLibrary.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/FreeLibrary/test1/FreeLibrary.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/FreeLibrary/test1/FreeLibrary.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/FreeLibrary/test1/FreeLibrary.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/FreeLibrary/test1/dlltest.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/FreeLibrary/test1/dlltest.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/FreeLibrary/test1/dlltest.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/FreeLibrary/test1/dlltest.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/FreeLibrary/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/FreeLibrary/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/FreeLibrary/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/FreeLibrary/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/FreeLibraryAndExitThread/test1/dlltest.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/FreeLibraryAndExitThread/test1/dlltest.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/FreeLibraryAndExitThread/test1/dlltest.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/FreeLibraryAndExitThread/test1/dlltest.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/FreeLibraryAndExitThread/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/FreeLibraryAndExitThread/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/FreeLibraryAndExitThread/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/FreeLibraryAndExitThread/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameA/test1/GetModuleFileNameA.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameA/test1/GetModuleFileNameA.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameA/test1/GetModuleFileNameA.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameA/test1/GetModuleFileNameA.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameA/test2/GetModuleFileNameA.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameA/test2/GetModuleFileNameA.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameA/test2/GetModuleFileNameA.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameA/test2/GetModuleFileNameA.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameW/test1/GetModuleFileNameW.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameW/test1/GetModuleFileNameW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameW/test1/GetModuleFileNameW.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameW/test1/GetModuleFileNameW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameW/test2/GetModuleFileNameW.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameW/test2/GetModuleFileNameW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameW/test2/GetModuleFileNameW.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/GetModuleFileNameW/test2/GetModuleFileNameW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test1/testlib.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test1/testlib.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test1/testlib.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test1/testlib.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test2/testlib.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test2/testlib.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test2/testlib.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/GetProcAddress/test2/testlib.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/LocalAlloc/test1/LocalAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/LocalAlloc/test1/LocalAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/LocalAlloc/test1/LocalAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/LocalAlloc/test1/LocalAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/LocalFree/test1/LocalFree.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/LocalFree/test1/LocalFree.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/LocalFree/test1/LocalFree.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/LocalFree/test1/LocalFree.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/LocalFree/test2/LocalFree.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/LocalFree/test2/LocalFree.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/LocalFree/test2/LocalFree.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/LocalFree/test2/LocalFree.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test1/MapViewOfFile.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test1/MapViewOfFile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test1/MapViewOfFile.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test1/MapViewOfFile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test2/MapViewOfFile.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test2/MapViewOfFile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test2/MapViewOfFile.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test2/MapViewOfFile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test3/MapViewOfFile.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test3/MapViewOfFile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test3/MapViewOfFile.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test3/MapViewOfFile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test4/mapviewoffile.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test4/mapviewoffile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test4/mapviewoffile.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test4/mapviewoffile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test5/mapviewoffile.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test5/mapviewoffile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test5/mapviewoffile.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test5/mapviewoffile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test6/mapviewoffile.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test6/mapviewoffile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test6/mapviewoffile.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/MapViewOfFile/test6/mapviewoffile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/OpenFileMappingW/test1/OpenFileMappingW.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/OpenFileMappingW/test1/OpenFileMappingW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/OpenFileMappingW/test1/OpenFileMappingW.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/OpenFileMappingW/test1/OpenFileMappingW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/OpenFileMappingW/test2/OpenFileMappingW.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/OpenFileMappingW/test2/OpenFileMappingW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/OpenFileMappingW/test2/OpenFileMappingW.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/OpenFileMappingW/test2/OpenFileMappingW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/OpenFileMappingW/test3/OpenFileMappingW.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/OpenFileMappingW/test3/OpenFileMappingW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/OpenFileMappingW/test3/OpenFileMappingW.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/OpenFileMappingW/test3/OpenFileMappingW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/ProbeMemory/ProbeMemory_neg1/ProbeMemory_neg.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/ProbeMemory/ProbeMemory_neg1/ProbeMemory_neg.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/ProbeMemory/ProbeMemory_neg1/ProbeMemory_neg.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/ProbeMemory/ProbeMemory_neg1/ProbeMemory_neg.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/ProbeMemory/test1/ProbeMemory.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/ProbeMemory/test1/ProbeMemory.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/ProbeMemory/test1/ProbeMemory.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/ProbeMemory/test1/ProbeMemory.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/UnmapViewOfFile/test1/UnmapViewOfFile.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/UnmapViewOfFile/test1/UnmapViewOfFile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/UnmapViewOfFile/test1/UnmapViewOfFile.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/UnmapViewOfFile/test1/UnmapViewOfFile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/UnmapViewOfFile/test2/unmapviewoffile.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/UnmapViewOfFile/test2/unmapviewoffile.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/UnmapViewOfFile/test2/unmapviewoffile.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/UnmapViewOfFile/test2/unmapviewoffile.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test1/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test1/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test1/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test1/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test10/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test10/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test10/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test10/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test11/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test11/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test11/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test11/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test12/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test12/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test12/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test12/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test13/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test13/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test13/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test13/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test14/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test14/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test14/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test14/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test15/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test15/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test15/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test15/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test16/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test16/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test16/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test16/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test17/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test17/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test17/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test17/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test18/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test18/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test18/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test18/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test19/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test19/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test19/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test19/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test2/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test2/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test2/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test2/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test20/virtualalloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test20/virtualalloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test20/virtualalloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test20/virtualalloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test21/virtualalloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test21/virtualalloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test21/virtualalloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test21/virtualalloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test22/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test22/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test22/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test22/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test3/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test3/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test3/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test3/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test4/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test4/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test4/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test4/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test5/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test5/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test5/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test5/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test6/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test6/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test6/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test6/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test7/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test7/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test7/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test7/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test8/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test8/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test8/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test8/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test9/VirtualAlloc.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test9/VirtualAlloc.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test9/VirtualAlloc.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualAlloc/test9/VirtualAlloc.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualFree/test1/VirtualFree.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualFree/test1/VirtualFree.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualFree/test1/VirtualFree.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualFree/test1/VirtualFree.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualFree/test2/VirtualFree.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualFree/test2/VirtualFree.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualFree/test2/VirtualFree.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualFree/test2/VirtualFree.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualFree/test3/VirtualFree.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualFree/test3/VirtualFree.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualFree/test3/VirtualFree.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualFree/test3/VirtualFree.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test1/VirtualProtect.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test1/VirtualProtect.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test1/VirtualProtect.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test1/VirtualProtect.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test2/VirtualProtect.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test2/VirtualProtect.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test2/VirtualProtect.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test2/VirtualProtect.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test3/VirtualProtect.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test3/VirtualProtect.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test3/VirtualProtect.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test3/VirtualProtect.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test4/VirtualProtect.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test4/VirtualProtect.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test4/VirtualProtect.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test4/VirtualProtect.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test6/VirtualProtect.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test6/VirtualProtect.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test6/VirtualProtect.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test6/VirtualProtect.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test7/VirtualProtect.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test7/VirtualProtect.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test7/VirtualProtect.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualProtect/test7/VirtualProtect.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualQuery/test1/VirtualQuery.cpp b/src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualQuery/test1/VirtualQuery.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/filemapping_memmgt/VirtualQuery/test1/VirtualQuery.cpp rename to src/coreclr/pal/tests/palsuite/filemapping_memmgt/VirtualQuery/test1/VirtualQuery.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/issues.targets b/src/coreclr/pal/tests/palsuite/issues.targets similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/issues.targets rename to src/coreclr/pal/tests/palsuite/issues.targets diff --git a/src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test1/LoadLibraryA.cpp b/src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test1/LoadLibraryA.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test1/LoadLibraryA.cpp rename to src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test1/LoadLibraryA.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test2/LoadLibraryA.cpp b/src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test2/LoadLibraryA.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test2/LoadLibraryA.cpp rename to src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test2/LoadLibraryA.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test3/loadlibrarya.cpp b/src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test3/loadlibrarya.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test3/loadlibrarya.cpp rename to src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test3/loadlibrarya.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test5/loadlibrarya.cpp b/src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test5/loadlibrarya.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test5/loadlibrarya.cpp rename to src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test5/loadlibrarya.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test6/dlltest.cpp b/src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test6/dlltest.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test6/dlltest.cpp rename to src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test6/dlltest.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test6/loadlibrarya.cpp b/src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test6/loadlibrarya.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test6/loadlibrarya.cpp rename to src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test6/loadlibrarya.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test7/LoadLibraryA.cpp b/src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test7/LoadLibraryA.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test7/LoadLibraryA.cpp rename to src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test7/LoadLibraryA.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test8/dlltest.cpp b/src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test8/dlltest.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test8/dlltest.cpp rename to src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test8/dlltest.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test8/loadlibrarya.cpp b/src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test8/loadlibrarya.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryA/test8/loadlibrarya.cpp rename to src/coreclr/pal/tests/palsuite/loader/LoadLibraryA/test8/loadlibrarya.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryW/test1/LoadLibraryW.cpp b/src/coreclr/pal/tests/palsuite/loader/LoadLibraryW/test1/LoadLibraryW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryW/test1/LoadLibraryW.cpp rename to src/coreclr/pal/tests/palsuite/loader/LoadLibraryW/test1/LoadLibraryW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryW/test2/loadlibraryw.cpp b/src/coreclr/pal/tests/palsuite/loader/LoadLibraryW/test2/loadlibraryw.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryW/test2/loadlibraryw.cpp rename to src/coreclr/pal/tests/palsuite/loader/LoadLibraryW/test2/loadlibraryw.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryW/test3/loadlibraryw.cpp b/src/coreclr/pal/tests/palsuite/loader/LoadLibraryW/test3/loadlibraryw.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryW/test3/loadlibraryw.cpp rename to src/coreclr/pal/tests/palsuite/loader/LoadLibraryW/test3/loadlibraryw.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryW/test5/loadlibraryw.cpp b/src/coreclr/pal/tests/palsuite/loader/LoadLibraryW/test5/loadlibraryw.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/loader/LoadLibraryW/test5/loadlibraryw.cpp rename to src/coreclr/pal/tests/palsuite/loader/LoadLibraryW/test5/loadlibraryw.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/locale_info/CompareStringA/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/locale_info/CompareStringA/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/locale_info/CompareStringA/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/locale_info/CompareStringA/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/locale_info/CompareStringW/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/locale_info/CompareStringW/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/locale_info/CompareStringW/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/locale_info/CompareStringW/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/locale_info/GetACP/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/locale_info/GetACP/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/locale_info/GetACP/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/locale_info/GetACP/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/locale_info/GetLocaleInfoW/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/locale_info/GetLocaleInfoW/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/locale_info/GetLocaleInfoW/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/locale_info/GetLocaleInfoW/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/locale_info/GetLocaleInfoW/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/locale_info/GetLocaleInfoW/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/locale_info/GetLocaleInfoW/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/locale_info/GetLocaleInfoW/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/locale_info/MultiByteToWideChar/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/locale_info/MultiByteToWideChar/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/locale_info/MultiByteToWideChar/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/locale_info/MultiByteToWideChar/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/locale_info/MultiByteToWideChar/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/locale_info/MultiByteToWideChar/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/locale_info/MultiByteToWideChar/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/locale_info/MultiByteToWideChar/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/locale_info/MultiByteToWideChar/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/locale_info/MultiByteToWideChar/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/locale_info/MultiByteToWideChar/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/locale_info/MultiByteToWideChar/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/locale_info/MultiByteToWideChar/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/locale_info/MultiByteToWideChar/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/locale_info/MultiByteToWideChar/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/locale_info/MultiByteToWideChar/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/locale_info/WideCharToMultiByte/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/locale_info/WideCharToMultiByte/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/locale_info/WideCharToMultiByte/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/locale_info/WideCharToMultiByte/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/locale_info/WideCharToMultiByte/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/locale_info/WideCharToMultiByte/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/locale_info/WideCharToMultiByte/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/locale_info/WideCharToMultiByte/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/locale_info/WideCharToMultiByte/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/locale_info/WideCharToMultiByte/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/locale_info/WideCharToMultiByte/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/locale_info/WideCharToMultiByte/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/locale_info/WideCharToMultiByte/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/locale_info/WideCharToMultiByte/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/locale_info/WideCharToMultiByte/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/locale_info/WideCharToMultiByte/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/locale_info/WideCharToMultiByte/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/locale_info/WideCharToMultiByte/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/locale_info/WideCharToMultiByte/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/locale_info/WideCharToMultiByte/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/manual-inspect.dat b/src/coreclr/pal/tests/palsuite/manual-inspect.dat similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/manual-inspect.dat rename to src/coreclr/pal/tests/palsuite/manual-inspect.dat diff --git a/src/coreclr/src/pal/tests/palsuite/manual-unautomatable.dat b/src/coreclr/pal/tests/palsuite/manual-unautomatable.dat similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/manual-unautomatable.dat rename to src/coreclr/pal/tests/palsuite/manual-unautomatable.dat diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/CGroup/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/CGroup/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/CGroup/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/CGroup/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/CloseHandle/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/CloseHandle/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/CloseHandle/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/CloseHandle/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/CloseHandle/test2/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/CloseHandle/test2/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/CloseHandle/test2/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/CloseHandle/test2/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/CreatePipe/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/CreatePipe/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/CreatePipe/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/CreatePipe/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/FlushInstructionCache/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/FlushInstructionCache/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/FlushInstructionCache/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/FlushInstructionCache/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/FormatMessageW/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/FormatMessageW/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/FormatMessageW/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/FormatMessageW/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/FormatMessageW/test2/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/FormatMessageW/test2/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/FormatMessageW/test2/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/FormatMessageW/test2/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/FormatMessageW/test3/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/FormatMessageW/test3/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/FormatMessageW/test3/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/FormatMessageW/test3/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/FormatMessageW/test4/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/FormatMessageW/test4/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/FormatMessageW/test4/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/FormatMessageW/test4/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/FormatMessageW/test5/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/FormatMessageW/test5/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/FormatMessageW/test5/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/FormatMessageW/test5/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/FormatMessageW/test6/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/FormatMessageW/test6/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/FormatMessageW/test6/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/FormatMessageW/test6/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/FreeEnvironmentStringsW/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/FreeEnvironmentStringsW/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/FreeEnvironmentStringsW/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/FreeEnvironmentStringsW/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/FreeEnvironmentStringsW/test2/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/FreeEnvironmentStringsW/test2/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/FreeEnvironmentStringsW/test2/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/FreeEnvironmentStringsW/test2/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GetCommandLineW/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GetCommandLineW/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GetCommandLineW/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GetCommandLineW/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentStringsW/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentStringsW/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentStringsW/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentStringsW/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test2/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test2/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test2/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test2/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test3/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test3/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test3/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test3/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test4/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test4/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test4/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test4/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableA/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test2/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test2/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test2/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test2/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test3/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test3/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test3/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test3/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test4/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test4/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test4/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test4/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GetEnvironmentVariableW/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GetLastError/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GetLastError/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GetLastError/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GetLastError/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GetSystemInfo/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GetSystemInfo/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GetSystemInfo/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GetSystemInfo/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GetTickCount/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GetTickCount/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GetTickCount/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GetTickCount/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/GlobalMemoryStatusEx/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/GlobalMemoryStatusEx/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/GlobalMemoryStatusEx/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/GlobalMemoryStatusEx/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterLockedExchangeAdd/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterLockedExchangeAdd/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterLockedExchangeAdd/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterLockedExchangeAdd/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedBit/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedBit/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedBit/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedBit/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedBit/test2/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedBit/test2/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedBit/test2/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedBit/test2/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange/test2/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange/test2/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange/test2/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange/test2/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange64/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange64/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange64/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange64/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange64/test2/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange64/test2/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange64/test2/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedCompareExchange64/test2/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedCompareExchangePointer/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedCompareExchangePointer/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedCompareExchangePointer/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedCompareExchangePointer/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedDecrement/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedDecrement/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedDecrement/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedDecrement/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedDecrement/test2/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedDecrement/test2/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedDecrement/test2/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedDecrement/test2/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedDecrement64/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedDecrement64/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedDecrement64/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedDecrement64/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedDecrement64/test2/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedDecrement64/test2/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedDecrement64/test2/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedDecrement64/test2/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedExchange/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedExchange/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedExchange/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedExchange/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedExchange64/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedExchange64/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedExchange64/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedExchange64/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedExchangePointer/test1/InterlockedExchangePointer.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedExchangePointer/test1/InterlockedExchangePointer.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedExchangePointer/test1/InterlockedExchangePointer.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedExchangePointer/test1/InterlockedExchangePointer.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedIncrement/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedIncrement/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedIncrement/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedIncrement/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedIncrement/test2/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedIncrement/test2/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedIncrement/test2/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedIncrement/test2/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedIncrement64/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedIncrement64/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedIncrement64/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedIncrement64/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedIncrement64/test2/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedIncrement64/test2/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/InterlockedIncrement64/test2/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/InterlockedIncrement64/test2/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/IsBadCodePtr/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/IsBadCodePtr/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/IsBadCodePtr/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/IsBadCodePtr/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/IsBadReadPtr/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/IsBadReadPtr/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/IsBadReadPtr/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/IsBadReadPtr/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/IsBadWritePtr/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/IsBadWritePtr/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/IsBadWritePtr/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/IsBadWritePtr/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/IsBadWritePtr/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/IsBadWritePtr/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/IsBadWritePtr/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/IsBadWritePtr/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/IsBadWritePtr/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/IsBadWritePtr/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/IsBadWritePtr/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/IsBadWritePtr/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/MessageBoxW/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/MessageBoxW/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/MessageBoxW/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/MessageBoxW/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/MessageBoxW/test2/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/MessageBoxW/test2/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/MessageBoxW/test2/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/MessageBoxW/test2/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableA/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test2/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test2/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test2/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test2/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/SetLastError/test1/test.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/SetLastError/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/SetLastError/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/SetLastError/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/_i64tow/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/_i64tow/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/_i64tow/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/_i64tow/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/queryperformancecounter/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/queryperformancecounter/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/queryperformancecounter/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/queryperformancecounter/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/miscellaneous/queryperformancefrequency/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/miscellaneous/queryperformancefrequency/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/miscellaneous/queryperformancefrequency/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/miscellaneous/queryperformancefrequency/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_GetUserTempDirectoryW/test1/PAL_GetUserTempDirectoryW.cpp b/src/coreclr/pal/tests/palsuite/pal_specific/PAL_GetUserTempDirectoryW/test1/PAL_GetUserTempDirectoryW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_GetUserTempDirectoryW/test1/PAL_GetUserTempDirectoryW.cpp rename to src/coreclr/pal/tests/palsuite/pal_specific/PAL_GetUserTempDirectoryW/test1/PAL_GetUserTempDirectoryW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_Initialize_Terminate/test1/PAL_Initialize_Terminate.cpp b/src/coreclr/pal/tests/palsuite/pal_specific/PAL_Initialize_Terminate/test1/PAL_Initialize_Terminate.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_Initialize_Terminate/test1/PAL_Initialize_Terminate.cpp rename to src/coreclr/pal/tests/palsuite/pal_specific/PAL_Initialize_Terminate/test1/PAL_Initialize_Terminate.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_Initialize_Terminate/test2/pal_initialize_twice.cpp b/src/coreclr/pal/tests/palsuite/pal_specific/PAL_Initialize_Terminate/test2/pal_initialize_twice.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_Initialize_Terminate/test2/pal_initialize_twice.cpp rename to src/coreclr/pal/tests/palsuite/pal_specific/PAL_Initialize_Terminate/test2/pal_initialize_twice.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_RegisterLibraryW_UnregisterLibraryW/test1/PAL_RegisterLibraryW_UnregisterLibraryW.cpp b/src/coreclr/pal/tests/palsuite/pal_specific/PAL_RegisterLibraryW_UnregisterLibraryW/test1/PAL_RegisterLibraryW_UnregisterLibraryW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_RegisterLibraryW_UnregisterLibraryW/test1/PAL_RegisterLibraryW_UnregisterLibraryW.cpp rename to src/coreclr/pal/tests/palsuite/pal_specific/PAL_RegisterLibraryW_UnregisterLibraryW/test1/PAL_RegisterLibraryW_UnregisterLibraryW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_RegisterLibraryW_UnregisterLibraryW/test2_neg/reg_unreg_libraryw_neg.cpp b/src/coreclr/pal/tests/palsuite/pal_specific/PAL_RegisterLibraryW_UnregisterLibraryW/test2_neg/reg_unreg_libraryw_neg.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_RegisterLibraryW_UnregisterLibraryW/test2_neg/reg_unreg_libraryw_neg.cpp rename to src/coreclr/pal/tests/palsuite/pal_specific/PAL_RegisterLibraryW_UnregisterLibraryW/test2_neg/reg_unreg_libraryw_neg.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_errno/test1/PAL_errno.cpp b/src/coreclr/pal/tests/palsuite/pal_specific/PAL_errno/test1/PAL_errno.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_errno/test1/PAL_errno.cpp rename to src/coreclr/pal/tests/palsuite/pal_specific/PAL_errno/test1/PAL_errno.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_get_stderr/test1/PAL_get_stderr.cpp b/src/coreclr/pal/tests/palsuite/pal_specific/PAL_get_stderr/test1/PAL_get_stderr.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_get_stderr/test1/PAL_get_stderr.cpp rename to src/coreclr/pal/tests/palsuite/pal_specific/PAL_get_stderr/test1/PAL_get_stderr.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_get_stdin/test1/PAL_get_stdin.cpp b/src/coreclr/pal/tests/palsuite/pal_specific/PAL_get_stdin/test1/PAL_get_stdin.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_get_stdin/test1/PAL_get_stdin.cpp rename to src/coreclr/pal/tests/palsuite/pal_specific/PAL_get_stdin/test1/PAL_get_stdin.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_get_stdout/test1/PAL_get_stdout.cpp b/src/coreclr/pal/tests/palsuite/pal_specific/PAL_get_stdout/test1/PAL_get_stdout.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/pal_specific/PAL_get_stdout/test1/PAL_get_stdout.cpp rename to src/coreclr/pal/tests/palsuite/pal_specific/PAL_get_stdout/test1/PAL_get_stdout.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/paltestlist.txt b/src/coreclr/pal/tests/palsuite/paltestlist.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/paltestlist.txt rename to src/coreclr/pal/tests/palsuite/paltestlist.txt diff --git a/src/coreclr/src/pal/tests/palsuite/paltestlist_to_be_reviewed.txt b/src/coreclr/pal/tests/palsuite/paltestlist_to_be_reviewed.txt similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/paltestlist_to_be_reviewed.txt rename to src/coreclr/pal/tests/palsuite/paltestlist_to_be_reviewed.txt diff --git a/src/coreclr/src/pal/tests/palsuite/paltests.cpp b/src/coreclr/pal/tests/palsuite/paltests.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/paltests.cpp rename to src/coreclr/pal/tests/palsuite/paltests.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/producepaltestlist.proj b/src/coreclr/pal/tests/palsuite/producepaltestlist.proj similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/producepaltestlist.proj rename to src/coreclr/pal/tests/palsuite/producepaltestlist.proj diff --git a/src/coreclr/src/pal/tests/palsuite/runpaltests.sh b/src/coreclr/pal/tests/palsuite/runpaltests.sh similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/runpaltests.sh rename to src/coreclr/pal/tests/palsuite/runpaltests.sh diff --git a/src/coreclr/src/pal/tests/palsuite/runpaltestshelix.sh b/src/coreclr/pal/tests/palsuite/runpaltestshelix.sh similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/runpaltestshelix.sh rename to src/coreclr/pal/tests/palsuite/runpaltestshelix.sh diff --git a/src/coreclr/src/pal/tests/palsuite/samples/test1/test.cpp b/src/coreclr/pal/tests/palsuite/samples/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/samples/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/samples/test1/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/samples/test2/test.cpp b/src/coreclr/pal/tests/palsuite/samples/test2/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/samples/test2/test.cpp rename to src/coreclr/pal/tests/palsuite/samples/test2/test.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/smoketest.script b/src/coreclr/pal/tests/palsuite/smoketest.script similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/smoketest.script rename to src/coreclr/pal/tests/palsuite/smoketest.script diff --git a/src/coreclr/src/pal/tests/palsuite/tests-manual.dat b/src/coreclr/pal/tests/palsuite/tests-manual.dat similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/tests-manual.dat rename to src/coreclr/pal/tests/palsuite/tests-manual.dat diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CreateEventW/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/CreateEventW/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CreateEventW/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/CreateEventW/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CreateEventW/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/threading/CreateEventW/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CreateEventW/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/threading/CreateEventW/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CreateEventW/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/threading/CreateEventW/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CreateEventW/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/threading/CreateEventW/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CreateMutexW_ReleaseMutex/test1/CreateMutexW.cpp b/src/coreclr/pal/tests/palsuite/threading/CreateMutexW_ReleaseMutex/test1/CreateMutexW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CreateMutexW_ReleaseMutex/test1/CreateMutexW.cpp rename to src/coreclr/pal/tests/palsuite/threading/CreateMutexW_ReleaseMutex/test1/CreateMutexW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CreateMutexW_ReleaseMutex/test2/CreateMutexW.cpp b/src/coreclr/pal/tests/palsuite/threading/CreateMutexW_ReleaseMutex/test2/CreateMutexW.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CreateMutexW_ReleaseMutex/test2/CreateMutexW.cpp rename to src/coreclr/pal/tests/palsuite/threading/CreateMutexW_ReleaseMutex/test2/CreateMutexW.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CreateProcessW/test1/childProcess.cpp b/src/coreclr/pal/tests/palsuite/threading/CreateProcessW/test1/childProcess.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CreateProcessW/test1/childProcess.cpp rename to src/coreclr/pal/tests/palsuite/threading/CreateProcessW/test1/childProcess.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CreateProcessW/test1/parentProcess.cpp b/src/coreclr/pal/tests/palsuite/threading/CreateProcessW/test1/parentProcess.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CreateProcessW/test1/parentProcess.cpp rename to src/coreclr/pal/tests/palsuite/threading/CreateProcessW/test1/parentProcess.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CreateProcessW/test2/childprocess.cpp b/src/coreclr/pal/tests/palsuite/threading/CreateProcessW/test2/childprocess.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CreateProcessW/test2/childprocess.cpp rename to src/coreclr/pal/tests/palsuite/threading/CreateProcessW/test2/childprocess.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CreateProcessW/test2/parentprocess.cpp b/src/coreclr/pal/tests/palsuite/threading/CreateProcessW/test2/parentprocess.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CreateProcessW/test2/parentprocess.cpp rename to src/coreclr/pal/tests/palsuite/threading/CreateProcessW/test2/parentprocess.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CreateProcessW/test2/test2.h b/src/coreclr/pal/tests/palsuite/threading/CreateProcessW/test2/test2.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CreateProcessW/test2/test2.h rename to src/coreclr/pal/tests/palsuite/threading/CreateProcessW/test2/test2.h diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CreateSemaphoreW_ReleaseSemaphore/test1/CreateSemaphore.cpp b/src/coreclr/pal/tests/palsuite/threading/CreateSemaphoreW_ReleaseSemaphore/test1/CreateSemaphore.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CreateSemaphoreW_ReleaseSemaphore/test1/CreateSemaphore.cpp rename to src/coreclr/pal/tests/palsuite/threading/CreateSemaphoreW_ReleaseSemaphore/test1/CreateSemaphore.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CreateSemaphoreW_ReleaseSemaphore/test2/CreateSemaphore.cpp b/src/coreclr/pal/tests/palsuite/threading/CreateSemaphoreW_ReleaseSemaphore/test2/CreateSemaphore.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CreateSemaphoreW_ReleaseSemaphore/test2/CreateSemaphore.cpp rename to src/coreclr/pal/tests/palsuite/threading/CreateSemaphoreW_ReleaseSemaphore/test2/CreateSemaphore.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CreateSemaphoreW_ReleaseSemaphore/test3/createsemaphore.cpp b/src/coreclr/pal/tests/palsuite/threading/CreateSemaphoreW_ReleaseSemaphore/test3/createsemaphore.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CreateSemaphoreW_ReleaseSemaphore/test3/createsemaphore.cpp rename to src/coreclr/pal/tests/palsuite/threading/CreateSemaphoreW_ReleaseSemaphore/test3/createsemaphore.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CreateThread/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/CreateThread/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CreateThread/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/CreateThread/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CreateThread/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/threading/CreateThread/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CreateThread/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/threading/CreateThread/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CreateThread/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/threading/CreateThread/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CreateThread/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/threading/CreateThread/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CriticalSectionFunctions/test1/InitializeCriticalSection.cpp b/src/coreclr/pal/tests/palsuite/threading/CriticalSectionFunctions/test1/InitializeCriticalSection.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CriticalSectionFunctions/test1/InitializeCriticalSection.cpp rename to src/coreclr/pal/tests/palsuite/threading/CriticalSectionFunctions/test1/InitializeCriticalSection.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CriticalSectionFunctions/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/threading/CriticalSectionFunctions/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CriticalSectionFunctions/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/threading/CriticalSectionFunctions/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CriticalSectionFunctions/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/threading/CriticalSectionFunctions/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CriticalSectionFunctions/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/threading/CriticalSectionFunctions/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CriticalSectionFunctions/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/threading/CriticalSectionFunctions/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CriticalSectionFunctions/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/threading/CriticalSectionFunctions/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CriticalSectionFunctions/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/threading/CriticalSectionFunctions/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CriticalSectionFunctions/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/threading/CriticalSectionFunctions/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CriticalSectionFunctions/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/threading/CriticalSectionFunctions/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CriticalSectionFunctions/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/threading/CriticalSectionFunctions/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CriticalSectionFunctions/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/threading/CriticalSectionFunctions/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CriticalSectionFunctions/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/threading/CriticalSectionFunctions/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/CriticalSectionFunctions/test8/test8.cpp b/src/coreclr/pal/tests/palsuite/threading/CriticalSectionFunctions/test8/test8.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/CriticalSectionFunctions/test8/test8.cpp rename to src/coreclr/pal/tests/palsuite/threading/CriticalSectionFunctions/test8/test8.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test1/testinfo.dat b/src/coreclr/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test1/testinfo.dat similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test1/testinfo.dat rename to src/coreclr/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test1/testinfo.dat diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test1/testlib.cpp b/src/coreclr/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test1/testlib.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test1/testlib.cpp rename to src/coreclr/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test1/testlib.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test2/testinfo.dat b/src/coreclr/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test2/testinfo.dat similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test2/testinfo.dat rename to src/coreclr/pal/tests/palsuite/threading/DisableThreadLibraryCalls/test2/testinfo.dat diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test10/test10.cpp b/src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test10/test10.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test10/test10.cpp rename to src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test10/test10.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test11/childprocess.cpp b/src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test11/childprocess.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test11/childprocess.cpp rename to src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test11/childprocess.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test11/myexitcode.h b/src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test11/myexitcode.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test11/myexitcode.h rename to src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test11/myexitcode.h diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test11/test11.cpp b/src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test11/test11.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test11/test11.cpp rename to src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test11/test11.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test12/test12.cpp b/src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test12/test12.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test12/test12.cpp rename to src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test12/test12.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test8/test8.cpp b/src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test8/test8.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test8/test8.cpp rename to src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test8/test8.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test9/test9.cpp b/src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test9/test9.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/DuplicateHandle/test9/test9.cpp rename to src/coreclr/pal/tests/palsuite/threading/DuplicateHandle/test9/test9.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/ExitProcess/test1/ExitProcess.cpp b/src/coreclr/pal/tests/palsuite/threading/ExitProcess/test1/ExitProcess.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/ExitProcess/test1/ExitProcess.cpp rename to src/coreclr/pal/tests/palsuite/threading/ExitProcess/test1/ExitProcess.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/ExitProcess/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/threading/ExitProcess/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/ExitProcess/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/threading/ExitProcess/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/ExitProcess/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/threading/ExitProcess/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/ExitProcess/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/threading/ExitProcess/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/ExitThread/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/ExitThread/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/ExitThread/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/ExitThread/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/ExitThread/test2/childprocess.cpp b/src/coreclr/pal/tests/palsuite/threading/ExitThread/test2/childprocess.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/ExitThread/test2/childprocess.cpp rename to src/coreclr/pal/tests/palsuite/threading/ExitThread/test2/childprocess.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/ExitThread/test2/myexitcode.h b/src/coreclr/pal/tests/palsuite/threading/ExitThread/test2/myexitcode.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/ExitThread/test2/myexitcode.h rename to src/coreclr/pal/tests/palsuite/threading/ExitThread/test2/myexitcode.h diff --git a/src/coreclr/src/pal/tests/palsuite/threading/ExitThread/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/threading/ExitThread/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/ExitThread/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/threading/ExitThread/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/ExitThread/test3/dllmain.cpp b/src/coreclr/pal/tests/palsuite/threading/ExitThread/test3/dllmain.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/ExitThread/test3/dllmain.cpp rename to src/coreclr/pal/tests/palsuite/threading/ExitThread/test3/dllmain.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/ExitThread/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/threading/ExitThread/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/ExitThread/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/threading/ExitThread/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/ExitThread/test3/testinfo.dat b/src/coreclr/pal/tests/palsuite/threading/ExitThread/test3/testinfo.dat similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/ExitThread/test3/testinfo.dat rename to src/coreclr/pal/tests/palsuite/threading/ExitThread/test3/testinfo.dat diff --git a/src/coreclr/src/pal/tests/palsuite/threading/GetCurrentProcess/test1/process.cpp b/src/coreclr/pal/tests/palsuite/threading/GetCurrentProcess/test1/process.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/GetCurrentProcess/test1/process.cpp rename to src/coreclr/pal/tests/palsuite/threading/GetCurrentProcess/test1/process.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/GetCurrentProcessId/test1/processId.cpp b/src/coreclr/pal/tests/palsuite/threading/GetCurrentProcessId/test1/processId.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/GetCurrentProcessId/test1/processId.cpp rename to src/coreclr/pal/tests/palsuite/threading/GetCurrentProcessId/test1/processId.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/GetCurrentThread/test1/thread.cpp b/src/coreclr/pal/tests/palsuite/threading/GetCurrentThread/test1/thread.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/GetCurrentThread/test1/thread.cpp rename to src/coreclr/pal/tests/palsuite/threading/GetCurrentThread/test1/thread.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/GetCurrentThread/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/threading/GetCurrentThread/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/GetCurrentThread/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/threading/GetCurrentThread/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/GetCurrentThreadId/test1/threadId.cpp b/src/coreclr/pal/tests/palsuite/threading/GetCurrentThreadId/test1/threadId.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/GetCurrentThreadId/test1/threadId.cpp rename to src/coreclr/pal/tests/palsuite/threading/GetCurrentThreadId/test1/threadId.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/GetExitCodeProcess/test1/childProcess.cpp b/src/coreclr/pal/tests/palsuite/threading/GetExitCodeProcess/test1/childProcess.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/GetExitCodeProcess/test1/childProcess.cpp rename to src/coreclr/pal/tests/palsuite/threading/GetExitCodeProcess/test1/childProcess.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/GetExitCodeProcess/test1/myexitcode.h b/src/coreclr/pal/tests/palsuite/threading/GetExitCodeProcess/test1/myexitcode.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/GetExitCodeProcess/test1/myexitcode.h rename to src/coreclr/pal/tests/palsuite/threading/GetExitCodeProcess/test1/myexitcode.h diff --git a/src/coreclr/src/pal/tests/palsuite/threading/GetExitCodeProcess/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/GetExitCodeProcess/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/GetExitCodeProcess/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/GetExitCodeProcess/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/GetProcessTimes/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/threading/GetProcessTimes/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/GetProcessTimes/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/threading/GetProcessTimes/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/GetThreadTimes/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/GetThreadTimes/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/GetThreadTimes/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/GetThreadTimes/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/NamedMutex/test1/namedmutex.cpp b/src/coreclr/pal/tests/palsuite/threading/NamedMutex/test1/namedmutex.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/NamedMutex/test1/namedmutex.cpp rename to src/coreclr/pal/tests/palsuite/threading/NamedMutex/test1/namedmutex.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/NamedMutex/test1/nopal.cpp b/src/coreclr/pal/tests/palsuite/threading/NamedMutex/test1/nopal.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/NamedMutex/test1/nopal.cpp rename to src/coreclr/pal/tests/palsuite/threading/NamedMutex/test1/nopal.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/OpenEventW/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/OpenEventW/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/OpenEventW/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/OpenEventW/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/OpenEventW/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/threading/OpenEventW/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/OpenEventW/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/threading/OpenEventW/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/OpenEventW/test3/childprocess.cpp b/src/coreclr/pal/tests/palsuite/threading/OpenEventW/test3/childprocess.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/OpenEventW/test3/childprocess.cpp rename to src/coreclr/pal/tests/palsuite/threading/OpenEventW/test3/childprocess.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/OpenEventW/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/threading/OpenEventW/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/OpenEventW/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/threading/OpenEventW/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/OpenEventW/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/threading/OpenEventW/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/OpenEventW/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/threading/OpenEventW/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/OpenEventW/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/threading/OpenEventW/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/OpenEventW/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/threading/OpenEventW/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/OpenProcess/test1/childProcess.cpp b/src/coreclr/pal/tests/palsuite/threading/OpenProcess/test1/childProcess.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/OpenProcess/test1/childProcess.cpp rename to src/coreclr/pal/tests/palsuite/threading/OpenProcess/test1/childProcess.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/OpenProcess/test1/myexitcode.h b/src/coreclr/pal/tests/palsuite/threading/OpenProcess/test1/myexitcode.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/OpenProcess/test1/myexitcode.h rename to src/coreclr/pal/tests/palsuite/threading/OpenProcess/test1/myexitcode.h diff --git a/src/coreclr/src/pal/tests/palsuite/threading/OpenProcess/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/OpenProcess/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/OpenProcess/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/OpenProcess/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/QueryThreadCycleTime/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/QueryThreadCycleTime/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/QueryThreadCycleTime/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/QueryThreadCycleTime/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/QueueUserAPC/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/QueueUserAPC/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/QueueUserAPC/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/QueueUserAPC/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/QueueUserAPC/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/threading/QueueUserAPC/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/QueueUserAPC/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/threading/QueueUserAPC/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/QueueUserAPC/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/threading/QueueUserAPC/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/QueueUserAPC/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/threading/QueueUserAPC/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/QueueUserAPC/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/threading/QueueUserAPC/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/QueueUserAPC/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/threading/QueueUserAPC/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/QueueUserAPC/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/threading/QueueUserAPC/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/QueueUserAPC/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/threading/QueueUserAPC/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/QueueUserAPC/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/threading/QueueUserAPC/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/QueueUserAPC/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/threading/QueueUserAPC/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/QueueUserAPC/test7/test7.cpp b/src/coreclr/pal/tests/palsuite/threading/QueueUserAPC/test7/test7.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/QueueUserAPC/test7/test7.cpp rename to src/coreclr/pal/tests/palsuite/threading/QueueUserAPC/test7/test7.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/ReleaseMutex/test3/ReleaseMutex.cpp b/src/coreclr/pal/tests/palsuite/threading/ReleaseMutex/test3/ReleaseMutex.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/ReleaseMutex/test3/ReleaseMutex.cpp rename to src/coreclr/pal/tests/palsuite/threading/ReleaseMutex/test3/ReleaseMutex.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/ResetEvent/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/ResetEvent/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/ResetEvent/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/ResetEvent/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/ResetEvent/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/threading/ResetEvent/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/ResetEvent/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/threading/ResetEvent/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/ResetEvent/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/threading/ResetEvent/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/ResetEvent/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/threading/ResetEvent/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/ResetEvent/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/threading/ResetEvent/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/ResetEvent/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/threading/ResetEvent/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/ResumeThread/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/ResumeThread/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/ResumeThread/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/ResumeThread/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/SetErrorMode/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/SetErrorMode/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/SetErrorMode/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/SetErrorMode/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/SetEvent/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/SetEvent/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/SetEvent/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/SetEvent/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/SetEvent/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/threading/SetEvent/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/SetEvent/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/threading/SetEvent/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/SetEvent/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/threading/SetEvent/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/SetEvent/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/threading/SetEvent/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/SetEvent/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/threading/SetEvent/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/SetEvent/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/threading/SetEvent/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/SignalObjectAndWait/SignalObjectAndWaitTest.cpp b/src/coreclr/pal/tests/palsuite/threading/SignalObjectAndWait/SignalObjectAndWaitTest.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/SignalObjectAndWait/SignalObjectAndWaitTest.cpp rename to src/coreclr/pal/tests/palsuite/threading/SignalObjectAndWait/SignalObjectAndWaitTest.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/Sleep/test1/Sleep.cpp b/src/coreclr/pal/tests/palsuite/threading/Sleep/test1/Sleep.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/Sleep/test1/Sleep.cpp rename to src/coreclr/pal/tests/palsuite/threading/Sleep/test1/Sleep.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/Sleep/test2/sleep.cpp b/src/coreclr/pal/tests/palsuite/threading/Sleep/test2/sleep.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/Sleep/test2/sleep.cpp rename to src/coreclr/pal/tests/palsuite/threading/Sleep/test2/sleep.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/SleepEx/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/SleepEx/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/SleepEx/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/SleepEx/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/SleepEx/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/threading/SleepEx/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/SleepEx/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/threading/SleepEx/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/SwitchToThread/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/SwitchToThread/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/SwitchToThread/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/SwitchToThread/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/TerminateProcess/test1/TerminateProcess.cpp b/src/coreclr/pal/tests/palsuite/threading/TerminateProcess/test1/TerminateProcess.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/TerminateProcess/test1/TerminateProcess.cpp rename to src/coreclr/pal/tests/palsuite/threading/TerminateProcess/test1/TerminateProcess.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/ThreadPriority/test1/ThreadPriority.cpp b/src/coreclr/pal/tests/palsuite/threading/ThreadPriority/test1/ThreadPriority.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/ThreadPriority/test1/ThreadPriority.cpp rename to src/coreclr/pal/tests/palsuite/threading/ThreadPriority/test1/ThreadPriority.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjects/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjects/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjects/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjects/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test2/test2.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test2/test2.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test2/test2.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test2/test2.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test3/test3.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test3/test3.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test3/test3.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test3/test3.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test4/test4.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test4/test4.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test4/test4.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test4/test4.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test5/commonconsts.h b/src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test5/commonconsts.h similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test5/commonconsts.h rename to src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test5/commonconsts.h diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test5/helper.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test5/helper.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test5/helper.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test5/helper.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test5/test5.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test5/test5.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test5/test5.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test5/test5.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test6/child6.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test6/child6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test6/child6.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test6/child6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test6/test6.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test6/test6.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test6/test6.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForMultipleObjectsEx/test6/test6.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/WFSOExMutexTest/WFSOExMutexTest.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/WFSOExMutexTest/WFSOExMutexTest.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/WFSOExMutexTest/WFSOExMutexTest.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/WFSOExMutexTest/WFSOExMutexTest.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/WFSOExSemaphoreTest/WFSOExSemaphoreTest.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/WFSOExSemaphoreTest/WFSOExSemaphoreTest.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/WFSOExSemaphoreTest/WFSOExSemaphoreTest.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/WFSOExSemaphoreTest/WFSOExSemaphoreTest.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/WFSOExThreadTest/WFSOExThreadTest.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/WFSOExThreadTest/WFSOExThreadTest.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/WFSOExThreadTest/WFSOExThreadTest.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/WFSOExThreadTest/WFSOExThreadTest.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/WFSOMutexTest/WFSOMutexTest.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/WFSOMutexTest/WFSOMutexTest.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/WFSOMutexTest/WFSOMutexTest.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/WFSOMutexTest/WFSOMutexTest.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/WFSOProcessTest/ChildProcess.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/WFSOProcessTest/ChildProcess.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/WFSOProcessTest/ChildProcess.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/WFSOProcessTest/ChildProcess.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/WFSOProcessTest/WFSOProcessTest.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/WFSOProcessTest/WFSOProcessTest.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/WFSOProcessTest/WFSOProcessTest.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/WFSOProcessTest/WFSOProcessTest.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/WFSOSemaphoreTest/WFSOSemaphoreTest.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/WFSOSemaphoreTest/WFSOSemaphoreTest.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/WFSOSemaphoreTest/WFSOSemaphoreTest.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/WFSOSemaphoreTest/WFSOSemaphoreTest.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/WFSOThreadTest/WFSOThreadTest.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/WFSOThreadTest/WFSOThreadTest.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/WFSOThreadTest/WFSOThreadTest.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/WFSOThreadTest/WFSOThreadTest.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/WaitForSingleObject/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/WaitForSingleObject/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/YieldProcessor/test1/test1.cpp b/src/coreclr/pal/tests/palsuite/threading/YieldProcessor/test1/test1.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/YieldProcessor/test1/test1.cpp rename to src/coreclr/pal/tests/palsuite/threading/YieldProcessor/test1/test1.cpp diff --git a/src/coreclr/src/pal/tests/palsuite/threading/releasesemaphore/test1/test.cpp b/src/coreclr/pal/tests/palsuite/threading/releasesemaphore/test1/test.cpp similarity index 100% rename from src/coreclr/src/pal/tests/palsuite/threading/releasesemaphore/test1/test.cpp rename to src/coreclr/pal/tests/palsuite/threading/releasesemaphore/test1/test.cpp diff --git a/src/coreclr/src/pal/tools/gen-dactable-rva.sh b/src/coreclr/pal/tools/gen-dactable-rva.sh similarity index 100% rename from src/coreclr/src/pal/tools/gen-dactable-rva.sh rename to src/coreclr/pal/tools/gen-dactable-rva.sh diff --git a/src/coreclr/src/pal/tools/preptests.sh b/src/coreclr/pal/tools/preptests.sh similarity index 100% rename from src/coreclr/src/pal/tools/preptests.sh rename to src/coreclr/pal/tools/preptests.sh diff --git a/src/coreclr/src/pal/tools/setup-ubuntuvm.sh b/src/coreclr/pal/tools/setup-ubuntuvm.sh similarity index 100% rename from src/coreclr/src/pal/tools/setup-ubuntuvm.sh rename to src/coreclr/pal/tools/setup-ubuntuvm.sh diff --git a/src/coreclr/src/pal/tools/smarty.sh b/src/coreclr/pal/tools/smarty.sh similarity index 100% rename from src/coreclr/src/pal/tools/smarty.sh rename to src/coreclr/pal/tools/smarty.sh diff --git a/src/coreclr/src/palrt/CMakeLists.txt b/src/coreclr/palrt/CMakeLists.txt similarity index 100% rename from src/coreclr/src/palrt/CMakeLists.txt rename to src/coreclr/palrt/CMakeLists.txt diff --git a/src/coreclr/src/palrt/bstr.cpp b/src/coreclr/palrt/bstr.cpp similarity index 100% rename from src/coreclr/src/palrt/bstr.cpp rename to src/coreclr/palrt/bstr.cpp diff --git a/src/coreclr/src/palrt/coguid.cpp b/src/coreclr/palrt/coguid.cpp similarity index 100% rename from src/coreclr/src/palrt/coguid.cpp rename to src/coreclr/palrt/coguid.cpp diff --git a/src/coreclr/src/palrt/comem.cpp b/src/coreclr/palrt/comem.cpp similarity index 100% rename from src/coreclr/src/palrt/comem.cpp rename to src/coreclr/palrt/comem.cpp diff --git a/src/coreclr/src/palrt/common.h b/src/coreclr/palrt/common.h similarity index 100% rename from src/coreclr/src/palrt/common.h rename to src/coreclr/palrt/common.h diff --git a/src/coreclr/src/palrt/guid.cpp b/src/coreclr/palrt/guid.cpp similarity index 100% rename from src/coreclr/src/palrt/guid.cpp rename to src/coreclr/palrt/guid.cpp diff --git a/src/coreclr/src/palrt/memorystream.cpp b/src/coreclr/palrt/memorystream.cpp similarity index 100% rename from src/coreclr/src/palrt/memorystream.cpp rename to src/coreclr/palrt/memorystream.cpp diff --git a/src/coreclr/src/palrt/path.cpp b/src/coreclr/palrt/path.cpp similarity index 100% rename from src/coreclr/src/palrt/path.cpp rename to src/coreclr/palrt/path.cpp diff --git a/src/coreclr/src/palrt/shlwapip.h b/src/coreclr/palrt/shlwapip.h similarity index 100% rename from src/coreclr/src/palrt/shlwapip.h rename to src/coreclr/palrt/shlwapip.h diff --git a/src/coreclr/src/palrt/variant.cpp b/src/coreclr/palrt/variant.cpp similarity index 100% rename from src/coreclr/src/palrt/variant.cpp rename to src/coreclr/palrt/variant.cpp diff --git a/src/coreclr/src/scripts/genDummyProvider.py b/src/coreclr/scripts/genDummyProvider.py similarity index 100% rename from src/coreclr/src/scripts/genDummyProvider.py rename to src/coreclr/scripts/genDummyProvider.py diff --git a/src/coreclr/src/scripts/genEtwProvider.py b/src/coreclr/scripts/genEtwProvider.py similarity index 100% rename from src/coreclr/src/scripts/genEtwProvider.py rename to src/coreclr/scripts/genEtwProvider.py diff --git a/src/coreclr/src/scripts/genEventPipe.py b/src/coreclr/scripts/genEventPipe.py similarity index 100% rename from src/coreclr/src/scripts/genEventPipe.py rename to src/coreclr/scripts/genEventPipe.py diff --git a/src/coreclr/src/scripts/genEventing.py b/src/coreclr/scripts/genEventing.py similarity index 100% rename from src/coreclr/src/scripts/genEventing.py rename to src/coreclr/scripts/genEventing.py diff --git a/src/coreclr/src/scripts/genEventingTests.py b/src/coreclr/scripts/genEventingTests.py similarity index 100% rename from src/coreclr/src/scripts/genEventingTests.py rename to src/coreclr/scripts/genEventingTests.py diff --git a/src/coreclr/src/scripts/genLttngProvider.py b/src/coreclr/scripts/genLttngProvider.py similarity index 100% rename from src/coreclr/src/scripts/genLttngProvider.py rename to src/coreclr/scripts/genLttngProvider.py diff --git a/src/coreclr/src/scripts/genRuntimeEventSources.py b/src/coreclr/scripts/genRuntimeEventSources.py similarity index 100% rename from src/coreclr/src/scripts/genRuntimeEventSources.py rename to src/coreclr/scripts/genRuntimeEventSources.py diff --git a/src/coreclr/src/scripts/pgocheck.py b/src/coreclr/scripts/pgocheck.py similarity index 100% rename from src/coreclr/src/scripts/pgocheck.py rename to src/coreclr/scripts/pgocheck.py diff --git a/src/coreclr/src/scripts/scripts.pyproj b/src/coreclr/scripts/scripts.pyproj similarity index 100% rename from src/coreclr/src/scripts/scripts.pyproj rename to src/coreclr/scripts/scripts.pyproj diff --git a/src/coreclr/scripts/superpmi.py b/src/coreclr/scripts/superpmi.py index 81b40197cabed..2c91b2c38209e 100755 --- a/src/coreclr/scripts/superpmi.py +++ b/src/coreclr/scripts/superpmi.py @@ -1817,7 +1817,7 @@ def determine_jit_ee_version(coreclr_args): """ Determine the JIT-EE version to use. The JIT-EE version is used for determining which MCH files to download and use. It is determined as follows: - 1. Try to parse it out of the source code. If we can find src\\coreclr\\src\\inc\\jiteeversionguid.h in the source + 1. Try to parse it out of the source code. If we can find src\\coreclr\\inc\\jiteeversionguid.h in the source tree (and we're already assuming we can find the repo root from the relative path of this script), then the JIT-EE version lives in jiteeversionguid.h as follows: @@ -1845,7 +1845,7 @@ def determine_jit_ee_version(coreclr_args): (str) The JIT-EE version to use """ - jiteeversionguid_h_path = os.path.join(coreclr_args.coreclr_dir, "src", "inc", "jiteeversionguid.h") + jiteeversionguid_h_path = os.path.join(coreclr_args.coreclr_dir, "inc", "jiteeversionguid.h") if os.path.isfile(jiteeversionguid_h_path): # The string is near the beginning of the somewhat large file, so just read a line at a time when searching. with open(jiteeversionguid_h_path, 'r') as file_handle: @@ -2403,7 +2403,7 @@ def process_base_jit_path_arg(coreclr_args): 3. If the `-base_git_hash` argument is used, use that directly as the exact git hash of the baseline JIT to use. 4. Otherwise, figure out the latest hash, starting with `base_git_hash`, that contains any changes to - the src\\coreclr\\src\\jit directory. (We do this because the JIT rolling build only includes + the src\\coreclr\\jit directory. (We do this because the JIT rolling build only includes builds for changes to this directory. So, this logic needs to stay in sync with the logic that determines what causes the JIT directory to be rebuilt. E.g., it should also get rebuilt if the JIT-EE interface GUID changes. Alternatively, we can take the entire list @@ -2468,7 +2468,7 @@ def process_base_jit_path_arg(coreclr_args): if coreclr_args.base_git_hash is None: # Enumerate the last 20 changes, starting with the baseline, that included JIT changes. - command = [ "git", "log", "--pretty=format:%H", baseline_hash, "-20", "--", "src/coreclr/src/jit/*" ] + command = [ "git", "log", "--pretty=format:%H", baseline_hash, "-20", "--", "src/coreclr/jit/*" ] logging.debug("Invoking: %s", " ".join(command)) proc = subprocess.Popen(command, stdout=subprocess.PIPE) stdout_change_list, _ = proc.communicate() diff --git a/src/coreclr/src/scripts/utilities.py b/src/coreclr/scripts/utilities.py similarity index 100% rename from src/coreclr/src/scripts/utilities.py rename to src/coreclr/scripts/utilities.py diff --git a/src/coreclr/src/CMakeLists.txt b/src/coreclr/src/CMakeLists.txt deleted file mode 100644 index 9285c57a3bbe0..0000000000000 --- a/src/coreclr/src/CMakeLists.txt +++ /dev/null @@ -1,102 +0,0 @@ -include_directories("inc") -include_directories("debug/inc") -include_directories("debug/inc/${ARCH_SOURCES_DIR}") -include_directories("debug/inc/dump") -include_directories("md/inc") -include_directories("classlibnative/bcltype") -include_directories("classlibnative/cryptography") -include_directories("classlibnative/inc") -include_directories("${GENERATED_INCLUDE_DIR}") -include_directories("hosts/inc") - -if(CLR_CMAKE_TARGET_WIN32 AND FEATURE_EVENT_TRACE) - include_directories("${GENERATED_INCLUDE_DIR}/etw") -endif(CLR_CMAKE_TARGET_WIN32 AND FEATURE_EVENT_TRACE) - -add_subdirectory(debug/dbgutil) - -if(CLR_CMAKE_HOST_UNIX) - if(CLR_CMAKE_BUILD_SUBSET_RUNTIME) - if(CLR_CMAKE_HOST_OSX OR (CLR_CMAKE_HOST_LINUX AND NOT CLR_CMAKE_HOST_UNIX_X86 AND NOT CLR_CMAKE_HOST_ANDROID)) - add_subdirectory(debug/createdump) - endif(CLR_CMAKE_HOST_OSX OR (CLR_CMAKE_HOST_LINUX AND NOT CLR_CMAKE_HOST_UNIX_X86 AND NOT CLR_CMAKE_HOST_ANDROID)) - endif(CLR_CMAKE_BUILD_SUBSET_RUNTIME) - - # Include the dummy c++ include files - include_directories("pal/inc/rt/cpp") - - # This prevents inclusion of standard C compiler headers - add_compile_options(-nostdinc) - - set (NATIVE_RESOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/nativeresources) - include_directories(${NATIVE_RESOURCE_DIR}) - set (RC_TO_CPP ${NATIVE_RESOURCE_DIR}/rctocpp.awk) - set (PROCESS_RC ${NATIVE_RESOURCE_DIR}/processrc.awk) - set (RESOURCE_STRING_HEADER_DIR ${NATIVE_RESOURCE_DIR}) - - # Create a command to create a C++ source file containing an array of - # NativeStringResource structs which represent the information from a - # given Windows .rc file. The target C++ file path is returned in the - # variable specified by the TARGET_FILE parameter. - function(build_resources SOURCE TARGET_NAME TARGET_FILE) - - set(PREPROCESSED_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}.rc.i) - - preprocess_file(${SOURCE} ${PREPROCESSED_SOURCE}) - - set(RESOURCE_ENTRY_ARRAY_CPP ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}.cpp) - - add_custom_command( - OUTPUT ${RESOURCE_ENTRY_ARRAY_CPP} - # Convert the preprocessed .rc file to a C++ file which will be used to make a static lib. - COMMAND ${AWK} -v name=${TARGET_NAME} -f ${RC_TO_CPP} -f ${PROCESS_RC} ${PREPROCESSED_SOURCE} >${RESOURCE_ENTRY_ARRAY_CPP} - DEPENDS ${PREPROCESSED_SOURCE} ${RC_TO_CPP} ${PROCESS_RC} - ) - - include_directories(${RESOURCE_STRING_HEADER_DIR}) - set(${TARGET_FILE} ${RESOURCE_ENTRY_ARRAY_CPP} PARENT_SCOPE) - - endfunction() - - add_subdirectory(nativeresources) -endif(CLR_CMAKE_HOST_UNIX) - -if ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 10.0)) - add_compile_options(-Wno-error=stringop-overflow=) -endif() - -add_subdirectory(utilcode) -add_subdirectory(gcinfo) -add_subdirectory(jit) -add_subdirectory(inc) - -if(CLR_CMAKE_HOST_UNIX) - add_subdirectory(palrt) -endif(CLR_CMAKE_HOST_UNIX) - -add_subdirectory(vm) -if (CLR_CMAKE_BUILD_SUBSET_RUNTIME) - add_subdirectory(md) - add_subdirectory(debug) - add_subdirectory(binder) - add_subdirectory(classlibnative) - add_subdirectory(dlls) - add_subdirectory(ToolBox) - add_subdirectory(tools) - add_subdirectory(unwinder) - add_subdirectory(ildasm) - add_subdirectory(ilasm) - add_subdirectory(interop) - - if(CLR_CMAKE_HOST_WIN32) - add_subdirectory(hosts) - endif(CLR_CMAKE_HOST_WIN32) -else() - if(CLR_CMAKE_HOST_UNIX) - # this is needed to compile the jit on unix platforms. - # When the runtime subset is compiled, the add_subdirectory(dlls) above - # brings the mscorrc library into the build graph - add_subdirectory(dlls/mscorrc) - endif(CLR_CMAKE_HOST_UNIX) -endif(CLR_CMAKE_BUILD_SUBSET_RUNTIME) - diff --git a/src/coreclr/src/Directory.Build.props b/src/coreclr/src/Directory.Build.props deleted file mode 100644 index d07cd53645db0..0000000000000 --- a/src/coreclr/src/Directory.Build.props +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - Microsoft Corporation - Microsoft%AE .NET - - diff --git a/src/coreclr/src/Directory.Build.targets b/src/coreclr/src/Directory.Build.targets deleted file mode 100644 index bc0daa25262ba..0000000000000 --- a/src/coreclr/src/Directory.Build.targets +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/coreclr/src/tools/CMakeLists.txt b/src/coreclr/tools/CMakeLists.txt similarity index 100% rename from src/coreclr/src/tools/CMakeLists.txt rename to src/coreclr/tools/CMakeLists.txt diff --git a/src/coreclr/src/tools/Common/CommandLine/Argument.cs b/src/coreclr/tools/Common/CommandLine/Argument.cs similarity index 100% rename from src/coreclr/src/tools/Common/CommandLine/Argument.cs rename to src/coreclr/tools/Common/CommandLine/Argument.cs diff --git a/src/coreclr/src/tools/Common/CommandLine/ArgumentCommand.cs b/src/coreclr/tools/Common/CommandLine/ArgumentCommand.cs similarity index 100% rename from src/coreclr/src/tools/Common/CommandLine/ArgumentCommand.cs rename to src/coreclr/tools/Common/CommandLine/ArgumentCommand.cs diff --git a/src/coreclr/src/tools/Common/CommandLine/ArgumentCommand_1.cs b/src/coreclr/tools/Common/CommandLine/ArgumentCommand_1.cs similarity index 100% rename from src/coreclr/src/tools/Common/CommandLine/ArgumentCommand_1.cs rename to src/coreclr/tools/Common/CommandLine/ArgumentCommand_1.cs diff --git a/src/coreclr/src/tools/Common/CommandLine/ArgumentLexer.cs b/src/coreclr/tools/Common/CommandLine/ArgumentLexer.cs similarity index 100% rename from src/coreclr/src/tools/Common/CommandLine/ArgumentLexer.cs rename to src/coreclr/tools/Common/CommandLine/ArgumentLexer.cs diff --git a/src/coreclr/src/tools/Common/CommandLine/ArgumentList_1.cs b/src/coreclr/tools/Common/CommandLine/ArgumentList_1.cs similarity index 100% rename from src/coreclr/src/tools/Common/CommandLine/ArgumentList_1.cs rename to src/coreclr/tools/Common/CommandLine/ArgumentList_1.cs diff --git a/src/coreclr/src/tools/Common/CommandLine/ArgumentParser.cs b/src/coreclr/tools/Common/CommandLine/ArgumentParser.cs similarity index 100% rename from src/coreclr/src/tools/Common/CommandLine/ArgumentParser.cs rename to src/coreclr/tools/Common/CommandLine/ArgumentParser.cs diff --git a/src/coreclr/src/tools/Common/CommandLine/ArgumentSyntax.cs b/src/coreclr/tools/Common/CommandLine/ArgumentSyntax.cs similarity index 100% rename from src/coreclr/src/tools/Common/CommandLine/ArgumentSyntax.cs rename to src/coreclr/tools/Common/CommandLine/ArgumentSyntax.cs diff --git a/src/coreclr/src/tools/Common/CommandLine/ArgumentSyntaxException.cs b/src/coreclr/tools/Common/CommandLine/ArgumentSyntaxException.cs similarity index 100% rename from src/coreclr/src/tools/Common/CommandLine/ArgumentSyntaxException.cs rename to src/coreclr/tools/Common/CommandLine/ArgumentSyntaxException.cs diff --git a/src/coreclr/src/tools/Common/CommandLine/ArgumentSyntax_Definers.cs b/src/coreclr/tools/Common/CommandLine/ArgumentSyntax_Definers.cs similarity index 100% rename from src/coreclr/src/tools/Common/CommandLine/ArgumentSyntax_Definers.cs rename to src/coreclr/tools/Common/CommandLine/ArgumentSyntax_Definers.cs diff --git a/src/coreclr/src/tools/Common/CommandLine/ArgumentToken.cs b/src/coreclr/tools/Common/CommandLine/ArgumentToken.cs similarity index 100% rename from src/coreclr/src/tools/Common/CommandLine/ArgumentToken.cs rename to src/coreclr/tools/Common/CommandLine/ArgumentToken.cs diff --git a/src/coreclr/src/tools/Common/CommandLine/Argument_1.cs b/src/coreclr/tools/Common/CommandLine/Argument_1.cs similarity index 100% rename from src/coreclr/src/tools/Common/CommandLine/Argument_1.cs rename to src/coreclr/tools/Common/CommandLine/Argument_1.cs diff --git a/src/coreclr/src/tools/Common/CommandLine/CommandLineException.cs b/src/coreclr/tools/Common/CommandLine/CommandLineException.cs similarity index 100% rename from src/coreclr/src/tools/Common/CommandLine/CommandLineException.cs rename to src/coreclr/tools/Common/CommandLine/CommandLineException.cs diff --git a/src/coreclr/src/tools/Common/CommandLine/CommandLineHelpers.cs b/src/coreclr/tools/Common/CommandLine/CommandLineHelpers.cs similarity index 100% rename from src/coreclr/src/tools/Common/CommandLine/CommandLineHelpers.cs rename to src/coreclr/tools/Common/CommandLine/CommandLineHelpers.cs diff --git a/src/coreclr/src/tools/Common/CommandLine/Enumerable.cs b/src/coreclr/tools/Common/CommandLine/Enumerable.cs similarity index 100% rename from src/coreclr/src/tools/Common/CommandLine/Enumerable.cs rename to src/coreclr/tools/Common/CommandLine/Enumerable.cs diff --git a/src/coreclr/src/tools/Common/CommandLine/HelpTextGenerator.cs b/src/coreclr/tools/Common/CommandLine/HelpTextGenerator.cs similarity index 100% rename from src/coreclr/src/tools/Common/CommandLine/HelpTextGenerator.cs rename to src/coreclr/tools/Common/CommandLine/HelpTextGenerator.cs diff --git a/src/coreclr/src/tools/Common/CommandLine/Resources/Strings.resx b/src/coreclr/tools/Common/CommandLine/Resources/Strings.resx similarity index 100% rename from src/coreclr/src/tools/Common/CommandLine/Resources/Strings.resx rename to src/coreclr/tools/Common/CommandLine/Resources/Strings.resx diff --git a/src/coreclr/src/tools/Common/Compiler/CodeGenerationFailedException.cs b/src/coreclr/tools/Common/Compiler/CodeGenerationFailedException.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/CodeGenerationFailedException.cs rename to src/coreclr/tools/Common/Compiler/CodeGenerationFailedException.cs diff --git a/src/coreclr/src/tools/Common/Compiler/CompilationBuilder.cs b/src/coreclr/tools/Common/Compiler/CompilationBuilder.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/CompilationBuilder.cs rename to src/coreclr/tools/Common/Compiler/CompilationBuilder.cs diff --git a/src/coreclr/src/tools/Common/Compiler/CompilationModuleGroup.cs b/src/coreclr/tools/Common/Compiler/CompilationModuleGroup.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/CompilationModuleGroup.cs rename to src/coreclr/tools/Common/Compiler/CompilationModuleGroup.cs diff --git a/src/coreclr/src/tools/Common/Compiler/CompilerTypeSystemContext.Validation.cs b/src/coreclr/tools/Common/Compiler/CompilerTypeSystemContext.Validation.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/CompilerTypeSystemContext.Validation.cs rename to src/coreclr/tools/Common/Compiler/CompilerTypeSystemContext.Validation.cs diff --git a/src/coreclr/src/tools/Common/Compiler/CompilerTypeSystemContext.cs b/src/coreclr/tools/Common/Compiler/CompilerTypeSystemContext.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/CompilerTypeSystemContext.cs rename to src/coreclr/tools/Common/Compiler/CompilerTypeSystemContext.cs diff --git a/src/coreclr/src/tools/Common/Compiler/CoreRTNameMangler.cs b/src/coreclr/tools/Common/Compiler/CoreRTNameMangler.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/CoreRTNameMangler.cs rename to src/coreclr/tools/Common/Compiler/CoreRTNameMangler.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/AssemblyStubNode.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/AssemblyStubNode.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/AssemblyStubNode.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/AssemblyStubNode.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/CompilerComparer.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/CompilerComparer.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/CompilerComparer.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/CompilerComparer.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/EmbeddedDataContainerNode.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/EmbeddedDataContainerNode.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/EmbeddedDataContainerNode.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/EmbeddedDataContainerNode.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/IMethodBodyNode.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/IMethodBodyNode.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/IMethodBodyNode.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/IMethodBodyNode.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/IMethodNode.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/IMethodNode.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/IMethodNode.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/IMethodNode.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/INodeWithCodeInfo.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/INodeWithCodeInfo.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/INodeWithCodeInfo.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/INodeWithCodeInfo.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/INodeWithRuntimeDeterminedDependencies.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/INodeWithRuntimeDeterminedDependencies.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/INodeWithRuntimeDeterminedDependencies.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/INodeWithRuntimeDeterminedDependencies.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/ISortableNode.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/ISortableNode.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/ISortableNode.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/ISortableNode.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/ISymbolNode.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/ISymbolNode.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/ISymbolNode.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/ISymbolNode.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/MethodReadOnlyDataNode.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/MethodReadOnlyDataNode.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/MethodReadOnlyDataNode.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/MethodReadOnlyDataNode.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/ObjectAndOffsetSymbolNode.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/ObjectAndOffsetSymbolNode.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/ObjectAndOffsetSymbolNode.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/ObjectAndOffsetSymbolNode.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/ObjectDataBuilder.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/ObjectDataBuilder.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/ObjectDataBuilder.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/ObjectDataBuilder.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/ObjectNode.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/ObjectNode.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/ObjectNode.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/ObjectNode.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/ObjectNodeSection.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/ObjectNodeSection.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/ObjectNodeSection.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/ObjectNodeSection.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Relocation.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/Relocation.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Relocation.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/Relocation.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/ShadowConcreteMethodNode.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/ShadowConcreteMethodNode.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/ShadowConcreteMethodNode.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/ShadowConcreteMethodNode.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/SortableDependencyNode.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/SortableDependencyNode.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/SortableDependencyNode.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/SortableDependencyNode.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_ARM/ARMEmitter.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_ARM/ARMEmitter.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_ARM/ARMEmitter.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_ARM/ARMEmitter.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_ARM/Register.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_ARM/Register.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_ARM/Register.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_ARM/Register.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_ARM/TargetRegisterMap.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_ARM/TargetRegisterMap.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_ARM/TargetRegisterMap.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_ARM/TargetRegisterMap.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/ARM64Emitter.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/ARM64Emitter.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/ARM64Emitter.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/ARM64Emitter.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/AddrMode.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/AddrMode.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/AddrMode.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/AddrMode.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/Register.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/Register.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/Register.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/Register.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/TargetRegisterMap.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/TargetRegisterMap.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/TargetRegisterMap.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_ARM64/TargetRegisterMap.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_X64/AddrMode.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_X64/AddrMode.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_X64/AddrMode.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_X64/AddrMode.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_X64/Register.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_X64/Register.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_X64/Register.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_X64/Register.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_X64/TargetRegisterMap.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_X64/TargetRegisterMap.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_X64/TargetRegisterMap.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_X64/TargetRegisterMap.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_X64/X64Emitter.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_X64/X64Emitter.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_X64/X64Emitter.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_X64/X64Emitter.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_X86/AddrMode.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_X86/AddrMode.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_X86/AddrMode.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_X86/AddrMode.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_X86/Register.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_X86/Register.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_X86/Register.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_X86/Register.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_X86/TargetRegisterMap.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_X86/TargetRegisterMap.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_X86/TargetRegisterMap.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_X86/TargetRegisterMap.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_X86/X86Emitter.cs b/src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_X86/X86Emitter.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyAnalysis/Target_X86/X86Emitter.cs rename to src/coreclr/tools/Common/Compiler/DependencyAnalysis/Target_X86/X86Emitter.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DependencyTrackingLevel.cs b/src/coreclr/tools/Common/Compiler/DependencyTrackingLevel.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DependencyTrackingLevel.cs rename to src/coreclr/tools/Common/Compiler/DependencyTrackingLevel.cs diff --git a/src/coreclr/src/tools/Common/Compiler/DevirtualizationManager.cs b/src/coreclr/tools/Common/Compiler/DevirtualizationManager.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/DevirtualizationManager.cs rename to src/coreclr/tools/Common/Compiler/DevirtualizationManager.cs diff --git a/src/coreclr/src/tools/Common/Compiler/HardwareIntrinsicHelpers.cs b/src/coreclr/tools/Common/Compiler/HardwareIntrinsicHelpers.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/HardwareIntrinsicHelpers.cs rename to src/coreclr/tools/Common/Compiler/HardwareIntrinsicHelpers.cs diff --git a/src/coreclr/src/tools/Common/Compiler/ICompilationRootProvider.cs b/src/coreclr/tools/Common/Compiler/ICompilationRootProvider.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/ICompilationRootProvider.cs rename to src/coreclr/tools/Common/Compiler/ICompilationRootProvider.cs diff --git a/src/coreclr/src/tools/Common/Compiler/InstructionSetSupport.cs b/src/coreclr/tools/Common/Compiler/InstructionSetSupport.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/InstructionSetSupport.cs rename to src/coreclr/tools/Common/Compiler/InstructionSetSupport.cs diff --git a/src/coreclr/src/tools/Common/Compiler/InternalCompilerErrorException.cs b/src/coreclr/tools/Common/Compiler/InternalCompilerErrorException.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/InternalCompilerErrorException.cs rename to src/coreclr/tools/Common/Compiler/InternalCompilerErrorException.cs diff --git a/src/coreclr/src/tools/Common/Compiler/Logger.cs b/src/coreclr/tools/Common/Compiler/Logger.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/Logger.cs rename to src/coreclr/tools/Common/Compiler/Logger.cs diff --git a/src/coreclr/src/tools/Common/Compiler/NameMangler.cs b/src/coreclr/tools/Common/Compiler/NameMangler.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/NameMangler.cs rename to src/coreclr/tools/Common/Compiler/NameMangler.cs diff --git a/src/coreclr/src/tools/Common/Compiler/SingleMethodRootProvider.cs b/src/coreclr/tools/Common/Compiler/SingleMethodRootProvider.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/SingleMethodRootProvider.cs rename to src/coreclr/tools/Common/Compiler/SingleMethodRootProvider.cs diff --git a/src/coreclr/src/tools/Common/Compiler/TypeExtensions.cs b/src/coreclr/tools/Common/Compiler/TypeExtensions.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/TypeExtensions.cs rename to src/coreclr/tools/Common/Compiler/TypeExtensions.cs diff --git a/src/coreclr/src/tools/Common/Compiler/VectorFieldLayoutAlgorithm.cs b/src/coreclr/tools/Common/Compiler/VectorFieldLayoutAlgorithm.cs similarity index 100% rename from src/coreclr/src/tools/Common/Compiler/VectorFieldLayoutAlgorithm.cs rename to src/coreclr/tools/Common/Compiler/VectorFieldLayoutAlgorithm.cs diff --git a/src/coreclr/src/tools/Common/Internal/NativeFormat/NativeFormat.cs b/src/coreclr/tools/Common/Internal/NativeFormat/NativeFormat.cs similarity index 100% rename from src/coreclr/src/tools/Common/Internal/NativeFormat/NativeFormat.cs rename to src/coreclr/tools/Common/Internal/NativeFormat/NativeFormat.cs diff --git a/src/coreclr/src/tools/Common/Internal/NativeFormat/NativeFormatWriter.Primitives.cs b/src/coreclr/tools/Common/Internal/NativeFormat/NativeFormatWriter.Primitives.cs similarity index 100% rename from src/coreclr/src/tools/Common/Internal/NativeFormat/NativeFormatWriter.Primitives.cs rename to src/coreclr/tools/Common/Internal/NativeFormat/NativeFormatWriter.Primitives.cs diff --git a/src/coreclr/src/tools/Common/Internal/NativeFormat/NativeFormatWriter.cs b/src/coreclr/tools/Common/Internal/NativeFormat/NativeFormatWriter.cs similarity index 100% rename from src/coreclr/src/tools/Common/Internal/NativeFormat/NativeFormatWriter.cs rename to src/coreclr/tools/Common/Internal/NativeFormat/NativeFormatWriter.cs diff --git a/src/coreclr/src/tools/Common/Internal/Runtime/CorConstants.cs b/src/coreclr/tools/Common/Internal/Runtime/CorConstants.cs similarity index 100% rename from src/coreclr/src/tools/Common/Internal/Runtime/CorConstants.cs rename to src/coreclr/tools/Common/Internal/Runtime/CorConstants.cs diff --git a/src/coreclr/src/tools/Common/Internal/Runtime/ModuleHeaders.cs b/src/coreclr/tools/Common/Internal/Runtime/ModuleHeaders.cs similarity index 100% rename from src/coreclr/src/tools/Common/Internal/Runtime/ModuleHeaders.cs rename to src/coreclr/tools/Common/Internal/Runtime/ModuleHeaders.cs diff --git a/src/coreclr/src/tools/Common/Internal/Runtime/ReadyToRunConstants.cs b/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunConstants.cs similarity index 100% rename from src/coreclr/src/tools/Common/Internal/Runtime/ReadyToRunConstants.cs rename to src/coreclr/tools/Common/Internal/Runtime/ReadyToRunConstants.cs diff --git a/src/coreclr/src/tools/Common/Internal/Runtime/ReadyToRunInstructionSet.cs b/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSet.cs similarity index 100% rename from src/coreclr/src/tools/Common/Internal/Runtime/ReadyToRunInstructionSet.cs rename to src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSet.cs diff --git a/src/coreclr/src/tools/Common/Internal/Runtime/ReadyToRunInstructionSetHelper.cs b/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSetHelper.cs similarity index 100% rename from src/coreclr/src/tools/Common/Internal/Runtime/ReadyToRunInstructionSetHelper.cs rename to src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSetHelper.cs diff --git a/src/coreclr/src/tools/Common/Internal/Text/Utf8String.cs b/src/coreclr/tools/Common/Internal/Text/Utf8String.cs similarity index 100% rename from src/coreclr/src/tools/Common/Internal/Text/Utf8String.cs rename to src/coreclr/tools/Common/Internal/Text/Utf8String.cs diff --git a/src/coreclr/src/tools/Common/Internal/Text/Utf8StringBuilder.cs b/src/coreclr/tools/Common/Internal/Text/Utf8StringBuilder.cs similarity index 100% rename from src/coreclr/src/tools/Common/Internal/Text/Utf8StringBuilder.cs rename to src/coreclr/tools/Common/Internal/Text/Utf8StringBuilder.cs diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoBase.cs b/src/coreclr/tools/Common/JitInterface/CorInfoBase.cs similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/CorInfoBase.cs rename to src/coreclr/tools/Common/JitInterface/CorInfoBase.cs diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoHelpFunc.cs b/src/coreclr/tools/Common/JitInterface/CorInfoHelpFunc.cs similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/CorInfoHelpFunc.cs rename to src/coreclr/tools/Common/JitInterface/CorInfoHelpFunc.cs diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.Intrinsics.cs b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.Intrinsics.cs similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.Intrinsics.cs rename to src/coreclr/tools/Common/JitInterface/CorInfoImpl.Intrinsics.cs diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs rename to src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoInstructionSet.cs b/src/coreclr/tools/Common/JitInterface/CorInfoInstructionSet.cs similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/CorInfoInstructionSet.cs rename to src/coreclr/tools/Common/JitInterface/CorInfoInstructionSet.cs diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.VarInfo.cs b/src/coreclr/tools/Common/JitInterface/CorInfoTypes.VarInfo.cs similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.VarInfo.cs rename to src/coreclr/tools/Common/JitInterface/CorInfoTypes.VarInfo.cs diff --git a/src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.cs b/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.cs rename to src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs diff --git a/src/coreclr/src/tools/Common/JitInterface/JitConfigProvider.cs b/src/coreclr/tools/Common/JitInterface/JitConfigProvider.cs similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/JitConfigProvider.cs rename to src/coreclr/tools/Common/JitInterface/JitConfigProvider.cs diff --git a/src/coreclr/src/tools/Common/JitInterface/MemoryHelper.cs b/src/coreclr/tools/Common/JitInterface/MemoryHelper.cs similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/MemoryHelper.cs rename to src/coreclr/tools/Common/JitInterface/MemoryHelper.cs diff --git a/src/coreclr/src/tools/Common/JitInterface/SystemVStructClassificator.cs b/src/coreclr/tools/Common/JitInterface/SystemVStructClassificator.cs similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/SystemVStructClassificator.cs rename to src/coreclr/tools/Common/JitInterface/SystemVStructClassificator.cs diff --git a/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt rename to src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt diff --git a/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/InstructionSetGenerator.cs b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetGenerator.cs similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/InstructionSetGenerator.cs rename to src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetGenerator.cs diff --git a/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/Program.cs b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/Program.cs similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/Program.cs rename to src/coreclr/tools/Common/JitInterface/ThunkGenerator/Program.cs diff --git a/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/ThunkGenerator.csproj b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkGenerator.csproj similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/ThunkGenerator.csproj rename to src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkGenerator.csproj diff --git a/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt rename to src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt diff --git a/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/gen.bat b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/gen.bat similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/gen.bat rename to src/coreclr/tools/Common/JitInterface/ThunkGenerator/gen.bat diff --git a/src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/gen.sh b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/gen.sh similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/gen.sh rename to src/coreclr/tools/Common/JitInterface/ThunkGenerator/gen.sh diff --git a/src/coreclr/src/tools/Common/JitInterface/TypeString.cs b/src/coreclr/tools/Common/JitInterface/TypeString.cs similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/TypeString.cs rename to src/coreclr/tools/Common/JitInterface/TypeString.cs diff --git a/src/coreclr/src/tools/Common/JitInterface/UnboxingMethodDesc.cs b/src/coreclr/tools/Common/JitInterface/UnboxingMethodDesc.cs similarity index 100% rename from src/coreclr/src/tools/Common/JitInterface/UnboxingMethodDesc.cs rename to src/coreclr/tools/Common/JitInterface/UnboxingMethodDesc.cs diff --git a/src/coreclr/src/tools/Common/Sorting/ArrayAccessor.cs b/src/coreclr/tools/Common/Sorting/ArrayAccessor.cs similarity index 100% rename from src/coreclr/src/tools/Common/Sorting/ArrayAccessor.cs rename to src/coreclr/tools/Common/Sorting/ArrayAccessor.cs diff --git a/src/coreclr/src/tools/Common/Sorting/ICompareAsEqualAction.cs b/src/coreclr/tools/Common/Sorting/ICompareAsEqualAction.cs similarity index 100% rename from src/coreclr/src/tools/Common/Sorting/ICompareAsEqualAction.cs rename to src/coreclr/tools/Common/Sorting/ICompareAsEqualAction.cs diff --git a/src/coreclr/src/tools/Common/Sorting/ISortableDataStructureAccessor.cs b/src/coreclr/tools/Common/Sorting/ISortableDataStructureAccessor.cs similarity index 100% rename from src/coreclr/src/tools/Common/Sorting/ISortableDataStructureAccessor.cs rename to src/coreclr/tools/Common/Sorting/ISortableDataStructureAccessor.cs diff --git a/src/coreclr/src/tools/Common/Sorting/ListAccessor.cs b/src/coreclr/tools/Common/Sorting/ListAccessor.cs similarity index 100% rename from src/coreclr/src/tools/Common/Sorting/ListAccessor.cs rename to src/coreclr/tools/Common/Sorting/ListAccessor.cs diff --git a/src/coreclr/src/tools/Common/Sorting/MergeSort.cs b/src/coreclr/tools/Common/Sorting/MergeSort.cs similarity index 100% rename from src/coreclr/src/tools/Common/Sorting/MergeSort.cs rename to src/coreclr/tools/Common/Sorting/MergeSort.cs diff --git a/src/coreclr/src/tools/Common/Sorting/MergeSortCore.cs b/src/coreclr/tools/Common/Sorting/MergeSortCore.cs similarity index 100% rename from src/coreclr/src/tools/Common/Sorting/MergeSortCore.cs rename to src/coreclr/tools/Common/Sorting/MergeSortCore.cs diff --git a/src/coreclr/src/tools/Common/System/Collections/Generic/ArrayBuilder.cs b/src/coreclr/tools/Common/System/Collections/Generic/ArrayBuilder.cs similarity index 100% rename from src/coreclr/src/tools/Common/System/Collections/Generic/ArrayBuilder.cs rename to src/coreclr/tools/Common/System/Collections/Generic/ArrayBuilder.cs diff --git a/src/coreclr/src/tools/Common/System/FormattingHelpers.cs b/src/coreclr/tools/Common/System/FormattingHelpers.cs similarity index 100% rename from src/coreclr/src/tools/Common/System/FormattingHelpers.cs rename to src/coreclr/tools/Common/System/FormattingHelpers.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/ArrayType.Canon.cs b/src/coreclr/tools/Common/TypeSystem/Canon/ArrayType.Canon.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/ArrayType.Canon.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/ArrayType.Canon.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/ByRefType.Canon.cs b/src/coreclr/tools/Common/TypeSystem/Canon/ByRefType.Canon.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/ByRefType.Canon.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/ByRefType.Canon.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/CanonTypes.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/Canon/CanonTypes.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/CanonTypes.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/CanonTypes.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/CanonTypes.Interop.cs b/src/coreclr/tools/Common/TypeSystem/Canon/CanonTypes.Interop.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/CanonTypes.Interop.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/CanonTypes.Interop.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/CanonTypes.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Canon/CanonTypes.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/CanonTypes.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/CanonTypes.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/CanonTypes.cs b/src/coreclr/tools/Common/TypeSystem/Canon/CanonTypes.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/CanonTypes.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/CanonTypes.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/DefType.Canon.cs b/src/coreclr/tools/Common/TypeSystem/Canon/DefType.Canon.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/DefType.Canon.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/DefType.Canon.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/FunctionPointerType.Canon.cs b/src/coreclr/tools/Common/TypeSystem/Canon/FunctionPointerType.Canon.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/FunctionPointerType.Canon.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/FunctionPointerType.Canon.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/GenericParameterDesc.Canon.cs b/src/coreclr/tools/Common/TypeSystem/Canon/GenericParameterDesc.Canon.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/GenericParameterDesc.Canon.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/GenericParameterDesc.Canon.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/InstantiatedMethod.Canon.cs b/src/coreclr/tools/Common/TypeSystem/Canon/InstantiatedMethod.Canon.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/InstantiatedMethod.Canon.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/InstantiatedMethod.Canon.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/InstantiatedType.Canon.cs b/src/coreclr/tools/Common/TypeSystem/Canon/InstantiatedType.Canon.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/InstantiatedType.Canon.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/InstantiatedType.Canon.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/MetadataType.Canon.cs b/src/coreclr/tools/Common/TypeSystem/Canon/MetadataType.Canon.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/MetadataType.Canon.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/MetadataType.Canon.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/MethodDelegator.Canon.cs b/src/coreclr/tools/Common/TypeSystem/Canon/MethodDelegator.Canon.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/MethodDelegator.Canon.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/MethodDelegator.Canon.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/MethodDesc.Canon.cs b/src/coreclr/tools/Common/TypeSystem/Canon/MethodDesc.Canon.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/MethodDesc.Canon.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/MethodDesc.Canon.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/MethodForInstantiatedType.Canon.cs b/src/coreclr/tools/Common/TypeSystem/Canon/MethodForInstantiatedType.Canon.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/MethodForInstantiatedType.Canon.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/MethodForInstantiatedType.Canon.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/ParameterizedType.Canon.cs b/src/coreclr/tools/Common/TypeSystem/Canon/ParameterizedType.Canon.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/ParameterizedType.Canon.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/ParameterizedType.Canon.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/PointerType.Canon.cs b/src/coreclr/tools/Common/TypeSystem/Canon/PointerType.Canon.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/PointerType.Canon.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/PointerType.Canon.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/SignatureVariable.Canon.cs b/src/coreclr/tools/Common/TypeSystem/Canon/SignatureVariable.Canon.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/SignatureVariable.Canon.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/SignatureVariable.Canon.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/StandardCanonicalizationAlgorithm.cs b/src/coreclr/tools/Common/TypeSystem/Canon/StandardCanonicalizationAlgorithm.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/StandardCanonicalizationAlgorithm.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/StandardCanonicalizationAlgorithm.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/TypeDesc.Canon.cs b/src/coreclr/tools/Common/TypeSystem/Canon/TypeDesc.Canon.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/TypeDesc.Canon.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/TypeDesc.Canon.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Canon/TypeSystemContext.Canon.cs b/src/coreclr/tools/Common/TypeSystem/Canon/TypeSystemContext.Canon.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Canon/TypeSystemContext.Canon.cs rename to src/coreclr/tools/Common/TypeSystem/Canon/TypeSystemContext.Canon.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/CodeGen/FieldDesc.CodeGen.cs b/src/coreclr/tools/Common/TypeSystem/CodeGen/FieldDesc.CodeGen.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/CodeGen/FieldDesc.CodeGen.cs rename to src/coreclr/tools/Common/TypeSystem/CodeGen/FieldDesc.CodeGen.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/CodeGen/MethodDelegator.CodeGen.cs b/src/coreclr/tools/Common/TypeSystem/CodeGen/MethodDelegator.CodeGen.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/CodeGen/MethodDelegator.CodeGen.cs rename to src/coreclr/tools/Common/TypeSystem/CodeGen/MethodDelegator.CodeGen.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/CodeGen/MethodDesc.CodeGen.cs b/src/coreclr/tools/Common/TypeSystem/CodeGen/MethodDesc.CodeGen.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/CodeGen/MethodDesc.CodeGen.cs rename to src/coreclr/tools/Common/TypeSystem/CodeGen/MethodDesc.CodeGen.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/CodeGen/TargetDetails.CodeGen.cs b/src/coreclr/tools/Common/TypeSystem/CodeGen/TargetDetails.CodeGen.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/CodeGen/TargetDetails.CodeGen.cs rename to src/coreclr/tools/Common/TypeSystem/CodeGen/TargetDetails.CodeGen.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/CodeGen/TypeDesc.CodeGen.cs b/src/coreclr/tools/Common/TypeSystem/CodeGen/TypeDesc.CodeGen.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/CodeGen/TypeDesc.CodeGen.cs rename to src/coreclr/tools/Common/TypeSystem/CodeGen/TypeDesc.CodeGen.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/AlignmentHelper.cs b/src/coreclr/tools/Common/TypeSystem/Common/AlignmentHelper.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/AlignmentHelper.cs rename to src/coreclr/tools/Common/TypeSystem/Common/AlignmentHelper.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/ArrayMethod.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/Common/ArrayMethod.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/ArrayMethod.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/Common/ArrayMethod.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/ArrayOfTRuntimeInterfacesAlgorithm.cs b/src/coreclr/tools/Common/TypeSystem/Common/ArrayOfTRuntimeInterfacesAlgorithm.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/ArrayOfTRuntimeInterfacesAlgorithm.cs rename to src/coreclr/tools/Common/TypeSystem/Common/ArrayOfTRuntimeInterfacesAlgorithm.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/ArrayType.cs b/src/coreclr/tools/Common/TypeSystem/Common/ArrayType.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/ArrayType.cs rename to src/coreclr/tools/Common/TypeSystem/Common/ArrayType.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/BaseTypeRuntimeInterfacesAlgorithm.cs b/src/coreclr/tools/Common/TypeSystem/Common/BaseTypeRuntimeInterfacesAlgorithm.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/BaseTypeRuntimeInterfacesAlgorithm.cs rename to src/coreclr/tools/Common/TypeSystem/Common/BaseTypeRuntimeInterfacesAlgorithm.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/ByRefType.cs b/src/coreclr/tools/Common/TypeSystem/Common/ByRefType.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/ByRefType.cs rename to src/coreclr/tools/Common/TypeSystem/Common/ByRefType.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/CastingHelper.cs b/src/coreclr/tools/Common/TypeSystem/Common/CastingHelper.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/CastingHelper.cs rename to src/coreclr/tools/Common/TypeSystem/Common/CastingHelper.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/ConstructedTypeRewritingHelpers.cs b/src/coreclr/tools/Common/TypeSystem/Common/ConstructedTypeRewritingHelpers.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/ConstructedTypeRewritingHelpers.cs rename to src/coreclr/tools/Common/TypeSystem/Common/ConstructedTypeRewritingHelpers.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/DefType.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/Common/DefType.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/DefType.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/Common/DefType.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/DefType.Dummy.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/Common/DefType.Dummy.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/DefType.Dummy.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/Common/DefType.Dummy.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/DefType.FieldLayout.cs b/src/coreclr/tools/Common/TypeSystem/Common/DefType.FieldLayout.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/DefType.FieldLayout.cs rename to src/coreclr/tools/Common/TypeSystem/Common/DefType.FieldLayout.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/DefType.cs b/src/coreclr/tools/Common/TypeSystem/Common/DefType.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/DefType.cs rename to src/coreclr/tools/Common/TypeSystem/Common/DefType.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/ExceptionStringID.cs b/src/coreclr/tools/Common/TypeSystem/Common/ExceptionStringID.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/ExceptionStringID.cs rename to src/coreclr/tools/Common/TypeSystem/Common/ExceptionStringID.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/ExplicitLayoutValidator.cs b/src/coreclr/tools/Common/TypeSystem/Common/ExplicitLayoutValidator.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/ExplicitLayoutValidator.cs rename to src/coreclr/tools/Common/TypeSystem/Common/ExplicitLayoutValidator.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/FieldDesc.FieldLayout.cs b/src/coreclr/tools/Common/TypeSystem/Common/FieldDesc.FieldLayout.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/FieldDesc.FieldLayout.cs rename to src/coreclr/tools/Common/TypeSystem/Common/FieldDesc.FieldLayout.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/FieldDesc.ToString.cs b/src/coreclr/tools/Common/TypeSystem/Common/FieldDesc.ToString.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/FieldDesc.ToString.cs rename to src/coreclr/tools/Common/TypeSystem/Common/FieldDesc.ToString.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/FieldDesc.cs b/src/coreclr/tools/Common/TypeSystem/Common/FieldDesc.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/FieldDesc.cs rename to src/coreclr/tools/Common/TypeSystem/Common/FieldDesc.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/FieldForInstantiatedType.cs b/src/coreclr/tools/Common/TypeSystem/Common/FieldForInstantiatedType.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/FieldForInstantiatedType.cs rename to src/coreclr/tools/Common/TypeSystem/Common/FieldForInstantiatedType.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/FieldLayoutAlgorithm.cs b/src/coreclr/tools/Common/TypeSystem/Common/FieldLayoutAlgorithm.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/FieldLayoutAlgorithm.cs rename to src/coreclr/tools/Common/TypeSystem/Common/FieldLayoutAlgorithm.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/FunctionPointerType.cs b/src/coreclr/tools/Common/TypeSystem/Common/FunctionPointerType.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/FunctionPointerType.cs rename to src/coreclr/tools/Common/TypeSystem/Common/FunctionPointerType.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/GenericParameterDesc.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/Common/GenericParameterDesc.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/GenericParameterDesc.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/Common/GenericParameterDesc.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/GenericParameterDesc.Dummy.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/Common/GenericParameterDesc.Dummy.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/GenericParameterDesc.Dummy.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/Common/GenericParameterDesc.Dummy.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/GenericParameterDesc.cs b/src/coreclr/tools/Common/TypeSystem/Common/GenericParameterDesc.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/GenericParameterDesc.cs rename to src/coreclr/tools/Common/TypeSystem/Common/GenericParameterDesc.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/IAssemblyDesc.cs b/src/coreclr/tools/Common/TypeSystem/Common/IAssemblyDesc.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/IAssemblyDesc.cs rename to src/coreclr/tools/Common/TypeSystem/Common/IAssemblyDesc.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/IModuleResolver.cs b/src/coreclr/tools/Common/TypeSystem/Common/IModuleResolver.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/IModuleResolver.cs rename to src/coreclr/tools/Common/TypeSystem/Common/IModuleResolver.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/InstantiatedMethod.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/Common/InstantiatedMethod.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/InstantiatedMethod.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/Common/InstantiatedMethod.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/InstantiatedMethod.cs b/src/coreclr/tools/Common/TypeSystem/Common/InstantiatedMethod.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/InstantiatedMethod.cs rename to src/coreclr/tools/Common/TypeSystem/Common/InstantiatedMethod.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/InstantiatedType.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/Common/InstantiatedType.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/InstantiatedType.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/Common/InstantiatedType.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/InstantiatedType.Interfaces.cs b/src/coreclr/tools/Common/TypeSystem/Common/InstantiatedType.Interfaces.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/InstantiatedType.Interfaces.cs rename to src/coreclr/tools/Common/TypeSystem/Common/InstantiatedType.Interfaces.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/InstantiatedType.MethodImpls.cs b/src/coreclr/tools/Common/TypeSystem/Common/InstantiatedType.MethodImpls.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/InstantiatedType.MethodImpls.cs rename to src/coreclr/tools/Common/TypeSystem/Common/InstantiatedType.MethodImpls.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/InstantiatedType.cs b/src/coreclr/tools/Common/TypeSystem/Common/InstantiatedType.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/InstantiatedType.cs rename to src/coreclr/tools/Common/TypeSystem/Common/InstantiatedType.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/Instantiation.cs b/src/coreclr/tools/Common/TypeSystem/Common/Instantiation.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/Instantiation.cs rename to src/coreclr/tools/Common/TypeSystem/Common/Instantiation.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/LayoutInt.cs b/src/coreclr/tools/Common/TypeSystem/Common/LayoutInt.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/LayoutInt.cs rename to src/coreclr/tools/Common/TypeSystem/Common/LayoutInt.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/LinqPoison.cs b/src/coreclr/tools/Common/TypeSystem/Common/LinqPoison.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/LinqPoison.cs rename to src/coreclr/tools/Common/TypeSystem/Common/LinqPoison.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/LocalVariableDefinition.cs b/src/coreclr/tools/Common/TypeSystem/Common/LocalVariableDefinition.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/LocalVariableDefinition.cs rename to src/coreclr/tools/Common/TypeSystem/Common/LocalVariableDefinition.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/MetadataFieldLayoutAlgorithm.cs b/src/coreclr/tools/Common/TypeSystem/Common/MetadataFieldLayoutAlgorithm.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/MetadataFieldLayoutAlgorithm.cs rename to src/coreclr/tools/Common/TypeSystem/Common/MetadataFieldLayoutAlgorithm.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/MetadataRuntimeInterfacesAlgorithm.cs b/src/coreclr/tools/Common/TypeSystem/Common/MetadataRuntimeInterfacesAlgorithm.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/MetadataRuntimeInterfacesAlgorithm.cs rename to src/coreclr/tools/Common/TypeSystem/Common/MetadataRuntimeInterfacesAlgorithm.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/MetadataType.Interfaces.cs b/src/coreclr/tools/Common/TypeSystem/Common/MetadataType.Interfaces.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/MetadataType.Interfaces.cs rename to src/coreclr/tools/Common/TypeSystem/Common/MetadataType.Interfaces.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/MetadataType.MethodImpls.cs b/src/coreclr/tools/Common/TypeSystem/Common/MetadataType.MethodImpls.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/MetadataType.MethodImpls.cs rename to src/coreclr/tools/Common/TypeSystem/Common/MetadataType.MethodImpls.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/MetadataType.cs b/src/coreclr/tools/Common/TypeSystem/Common/MetadataType.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/MetadataType.cs rename to src/coreclr/tools/Common/TypeSystem/Common/MetadataType.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/MetadataTypeSystemContext.cs b/src/coreclr/tools/Common/TypeSystem/Common/MetadataTypeSystemContext.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/MetadataTypeSystemContext.cs rename to src/coreclr/tools/Common/TypeSystem/Common/MetadataTypeSystemContext.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/MetadataVirtualMethodAlgorithm.cs b/src/coreclr/tools/Common/TypeSystem/Common/MetadataVirtualMethodAlgorithm.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/MetadataVirtualMethodAlgorithm.cs rename to src/coreclr/tools/Common/TypeSystem/Common/MetadataVirtualMethodAlgorithm.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/MethodDelegator.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/Common/MethodDelegator.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/MethodDelegator.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/Common/MethodDelegator.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/MethodDelegator.cs b/src/coreclr/tools/Common/TypeSystem/Common/MethodDelegator.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/MethodDelegator.cs rename to src/coreclr/tools/Common/TypeSystem/Common/MethodDelegator.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/MethodDesc.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/Common/MethodDesc.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/MethodDesc.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/Common/MethodDesc.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/MethodDesc.Dummy.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/Common/MethodDesc.Dummy.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/MethodDesc.Dummy.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/Common/MethodDesc.Dummy.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/MethodDesc.ToString.cs b/src/coreclr/tools/Common/TypeSystem/Common/MethodDesc.ToString.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/MethodDesc.ToString.cs rename to src/coreclr/tools/Common/TypeSystem/Common/MethodDesc.ToString.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/MethodDesc.cs b/src/coreclr/tools/Common/TypeSystem/Common/MethodDesc.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/MethodDesc.cs rename to src/coreclr/tools/Common/TypeSystem/Common/MethodDesc.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/MethodForInstantiatedType.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/Common/MethodForInstantiatedType.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/MethodForInstantiatedType.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/Common/MethodForInstantiatedType.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/MethodForInstantiatedType.cs b/src/coreclr/tools/Common/TypeSystem/Common/MethodForInstantiatedType.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/MethodForInstantiatedType.cs rename to src/coreclr/tools/Common/TypeSystem/Common/MethodForInstantiatedType.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/ModuleDesc.cs b/src/coreclr/tools/Common/TypeSystem/Common/ModuleDesc.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/ModuleDesc.cs rename to src/coreclr/tools/Common/TypeSystem/Common/ModuleDesc.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/ParameterizedType.cs b/src/coreclr/tools/Common/TypeSystem/Common/ParameterizedType.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/ParameterizedType.cs rename to src/coreclr/tools/Common/TypeSystem/Common/ParameterizedType.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/PointerType.cs b/src/coreclr/tools/Common/TypeSystem/Common/PointerType.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/PointerType.cs rename to src/coreclr/tools/Common/TypeSystem/Common/PointerType.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/Properties/Resources.resx b/src/coreclr/tools/Common/TypeSystem/Common/Properties/Resources.resx similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/Properties/Resources.resx rename to src/coreclr/tools/Common/TypeSystem/Common/Properties/Resources.resx diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/PropertySignature.cs b/src/coreclr/tools/Common/TypeSystem/Common/PropertySignature.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/PropertySignature.cs rename to src/coreclr/tools/Common/TypeSystem/Common/PropertySignature.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/RuntimeInterfacesAlgorithm.cs b/src/coreclr/tools/Common/TypeSystem/Common/RuntimeInterfacesAlgorithm.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/RuntimeInterfacesAlgorithm.cs rename to src/coreclr/tools/Common/TypeSystem/Common/RuntimeInterfacesAlgorithm.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/SignatureVariable.cs b/src/coreclr/tools/Common/TypeSystem/Common/SignatureVariable.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/SignatureVariable.cs rename to src/coreclr/tools/Common/TypeSystem/Common/SignatureVariable.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/TargetDetails.ToString.cs b/src/coreclr/tools/Common/TypeSystem/Common/TargetDetails.ToString.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/TargetDetails.ToString.cs rename to src/coreclr/tools/Common/TypeSystem/Common/TargetDetails.ToString.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/TargetDetails.cs b/src/coreclr/tools/Common/TypeSystem/Common/TargetDetails.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/TargetDetails.cs rename to src/coreclr/tools/Common/TypeSystem/Common/TargetDetails.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/ThreadSafeFlags.cs b/src/coreclr/tools/Common/TypeSystem/Common/ThreadSafeFlags.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/ThreadSafeFlags.cs rename to src/coreclr/tools/Common/TypeSystem/Common/ThreadSafeFlags.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/ThrowHelper.Common.cs b/src/coreclr/tools/Common/TypeSystem/Common/ThrowHelper.Common.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/ThrowHelper.Common.cs rename to src/coreclr/tools/Common/TypeSystem/Common/ThrowHelper.Common.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/ThrowHelper.cs b/src/coreclr/tools/Common/TypeSystem/Common/ThrowHelper.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/ThrowHelper.cs rename to src/coreclr/tools/Common/TypeSystem/Common/ThrowHelper.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/TypeDesc.Interfaces.cs b/src/coreclr/tools/Common/TypeSystem/Common/TypeDesc.Interfaces.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/TypeDesc.Interfaces.cs rename to src/coreclr/tools/Common/TypeSystem/Common/TypeDesc.Interfaces.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/TypeDesc.ToString.cs b/src/coreclr/tools/Common/TypeSystem/Common/TypeDesc.ToString.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/TypeDesc.ToString.cs rename to src/coreclr/tools/Common/TypeSystem/Common/TypeDesc.ToString.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/TypeDesc.cs b/src/coreclr/tools/Common/TypeSystem/Common/TypeDesc.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/TypeDesc.cs rename to src/coreclr/tools/Common/TypeSystem/Common/TypeDesc.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/TypeFlags.cs b/src/coreclr/tools/Common/TypeSystem/Common/TypeFlags.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/TypeFlags.cs rename to src/coreclr/tools/Common/TypeSystem/Common/TypeFlags.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/TypeHashingAlgorithms.cs b/src/coreclr/tools/Common/TypeSystem/Common/TypeHashingAlgorithms.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/TypeHashingAlgorithms.cs rename to src/coreclr/tools/Common/TypeSystem/Common/TypeHashingAlgorithms.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/TypeSystemConstraintsHelpers.cs b/src/coreclr/tools/Common/TypeSystem/Common/TypeSystemConstraintsHelpers.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/TypeSystemConstraintsHelpers.cs rename to src/coreclr/tools/Common/TypeSystem/Common/TypeSystemConstraintsHelpers.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/TypeSystemContext.cs b/src/coreclr/tools/Common/TypeSystem/Common/TypeSystemContext.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/TypeSystemContext.cs rename to src/coreclr/tools/Common/TypeSystem/Common/TypeSystemContext.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/TypeSystemEntity.cs b/src/coreclr/tools/Common/TypeSystem/Common/TypeSystemEntity.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/TypeSystemEntity.cs rename to src/coreclr/tools/Common/TypeSystem/Common/TypeSystemEntity.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/TypeSystemException.Resources.cs b/src/coreclr/tools/Common/TypeSystem/Common/TypeSystemException.Resources.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/TypeSystemException.Resources.cs rename to src/coreclr/tools/Common/TypeSystem/Common/TypeSystemException.Resources.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/TypeSystemException.cs b/src/coreclr/tools/Common/TypeSystem/Common/TypeSystemException.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/TypeSystemException.cs rename to src/coreclr/tools/Common/TypeSystem/Common/TypeSystemException.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/TypeSystemHelpers.cs b/src/coreclr/tools/Common/TypeSystem/Common/TypeSystemHelpers.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/TypeSystemHelpers.cs rename to src/coreclr/tools/Common/TypeSystem/Common/TypeSystemHelpers.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/UniversalCanonLayoutAlgorithm.cs b/src/coreclr/tools/Common/TypeSystem/Common/UniversalCanonLayoutAlgorithm.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/UniversalCanonLayoutAlgorithm.cs rename to src/coreclr/tools/Common/TypeSystem/Common/UniversalCanonLayoutAlgorithm.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/CustomAttributeTypeNameFormatter.cs b/src/coreclr/tools/Common/TypeSystem/Common/Utilities/CustomAttributeTypeNameFormatter.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/CustomAttributeTypeNameFormatter.cs rename to src/coreclr/tools/Common/TypeSystem/Common/Utilities/CustomAttributeTypeNameFormatter.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/CustomAttributeTypeNameParser.cs b/src/coreclr/tools/Common/TypeSystem/Common/Utilities/CustomAttributeTypeNameParser.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/CustomAttributeTypeNameParser.cs rename to src/coreclr/tools/Common/TypeSystem/Common/Utilities/CustomAttributeTypeNameParser.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/DebugNameFormatter.cs b/src/coreclr/tools/Common/TypeSystem/Common/Utilities/DebugNameFormatter.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/DebugNameFormatter.cs rename to src/coreclr/tools/Common/TypeSystem/Common/Utilities/DebugNameFormatter.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/ExceptionTypeNameFormatter.Metadata.cs b/src/coreclr/tools/Common/TypeSystem/Common/Utilities/ExceptionTypeNameFormatter.Metadata.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/ExceptionTypeNameFormatter.Metadata.cs rename to src/coreclr/tools/Common/TypeSystem/Common/Utilities/ExceptionTypeNameFormatter.Metadata.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/ExceptionTypeNameFormatter.cs b/src/coreclr/tools/Common/TypeSystem/Common/Utilities/ExceptionTypeNameFormatter.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/ExceptionTypeNameFormatter.cs rename to src/coreclr/tools/Common/TypeSystem/Common/Utilities/ExceptionTypeNameFormatter.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/GCPointerMap.Algorithm.cs b/src/coreclr/tools/Common/TypeSystem/Common/Utilities/GCPointerMap.Algorithm.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/GCPointerMap.Algorithm.cs rename to src/coreclr/tools/Common/TypeSystem/Common/Utilities/GCPointerMap.Algorithm.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/GCPointerMap.cs b/src/coreclr/tools/Common/TypeSystem/Common/Utilities/GCPointerMap.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/GCPointerMap.cs rename to src/coreclr/tools/Common/TypeSystem/Common/Utilities/GCPointerMap.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/LockFreeReaderHashtable.cs b/src/coreclr/tools/Common/TypeSystem/Common/Utilities/LockFreeReaderHashtable.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/LockFreeReaderHashtable.cs rename to src/coreclr/tools/Common/TypeSystem/Common/Utilities/LockFreeReaderHashtable.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/TypeNameFormatter.cs b/src/coreclr/tools/Common/TypeSystem/Common/Utilities/TypeNameFormatter.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/Utilities/TypeNameFormatter.cs rename to src/coreclr/tools/Common/TypeSystem/Common/Utilities/TypeNameFormatter.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/VirtualMethodAlgorithm.cs b/src/coreclr/tools/Common/TypeSystem/Common/VirtualMethodAlgorithm.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/VirtualMethodAlgorithm.cs rename to src/coreclr/tools/Common/TypeSystem/Common/VirtualMethodAlgorithm.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Common/WellKnownType.cs b/src/coreclr/tools/Common/TypeSystem/Common/WellKnownType.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Common/WellKnownType.cs rename to src/coreclr/tools/Common/TypeSystem/Common/WellKnownType.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/CachingMetadataStringDecoder.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/CachingMetadataStringDecoder.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/CachingMetadataStringDecoder.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/CachingMetadataStringDecoder.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/CustomAttributeTypeProvider.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/CustomAttributeTypeProvider.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/CustomAttributeTypeProvider.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/CustomAttributeTypeProvider.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaAssembly.Symbols.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaAssembly.Symbols.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaAssembly.Symbols.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaAssembly.Symbols.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaAssembly.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaAssembly.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaAssembly.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaAssembly.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaField.CodeGen.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaField.CodeGen.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaField.CodeGen.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaField.CodeGen.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaField.Serialization.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaField.Serialization.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaField.Serialization.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaField.Serialization.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaField.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaField.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaField.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaField.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaField.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaField.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaField.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaField.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaGenericParameter.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaGenericParameter.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaGenericParameter.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaGenericParameter.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaGenericParameter.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaGenericParameter.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaGenericParameter.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaGenericParameter.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaGenericParameter.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaGenericParameter.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaGenericParameter.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaGenericParameter.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaMethod.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaMethod.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaMethod.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaMethod.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaMethod.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaMethod.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaMethod.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaMethod.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaMethod.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaMethod.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaMethod.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaMethod.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaModule.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaModule.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaModule.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaModule.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaModule.Symbols.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaModule.Symbols.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaModule.Symbols.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaModule.Symbols.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaModule.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaModule.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaModule.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaModule.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaSignatureParser.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaSignatureParser.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaSignatureParser.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaSignatureParser.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaType.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaType.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaType.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaType.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaType.Interfaces.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaType.Interfaces.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaType.Interfaces.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaType.Interfaces.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaType.MethodImpls.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaType.MethodImpls.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaType.MethodImpls.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaType.MethodImpls.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaType.Serialization.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaType.Serialization.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaType.Serialization.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaType.Serialization.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaType.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaType.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaType.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaType.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaType.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/EcmaType.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/EcmaType.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/EcmaType.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/IMetadataStringDecoderProvider.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/IMetadataStringDecoderProvider.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/IMetadataStringDecoderProvider.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/IMetadataStringDecoderProvider.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/MetadataExtensions.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/MetadataExtensions.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/MetadataExtensions.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/MetadataExtensions.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/PrimitiveTypeProvider.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/PrimitiveTypeProvider.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/PrimitiveTypeProvider.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/PrimitiveTypeProvider.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/SymbolReader/PdbSymbolReader.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/SymbolReader/PdbSymbolReader.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/SymbolReader/PdbSymbolReader.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/SymbolReader/PdbSymbolReader.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/SymbolReader/PortablePdbSymbolReader.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/SymbolReader/PortablePdbSymbolReader.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/SymbolReader/PortablePdbSymbolReader.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/SymbolReader/PortablePdbSymbolReader.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Ecma/SymbolReader/UnmanagedPdbSymbolReader.cs b/src/coreclr/tools/Common/TypeSystem/Ecma/SymbolReader/UnmanagedPdbSymbolReader.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Ecma/SymbolReader/UnmanagedPdbSymbolReader.cs rename to src/coreclr/tools/Common/TypeSystem/Ecma/SymbolReader/UnmanagedPdbSymbolReader.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/EcmaMethodIL.Symbols.cs b/src/coreclr/tools/Common/TypeSystem/IL/EcmaMethodIL.Symbols.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/EcmaMethodIL.Symbols.cs rename to src/coreclr/tools/Common/TypeSystem/IL/EcmaMethodIL.Symbols.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/EcmaMethodIL.cs b/src/coreclr/tools/Common/TypeSystem/IL/EcmaMethodIL.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/EcmaMethodIL.cs rename to src/coreclr/tools/Common/TypeSystem/IL/EcmaMethodIL.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/HelperExtensions.cs b/src/coreclr/tools/Common/TypeSystem/IL/HelperExtensions.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/HelperExtensions.cs rename to src/coreclr/tools/Common/TypeSystem/IL/HelperExtensions.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/ILDisassembler.cs b/src/coreclr/tools/Common/TypeSystem/IL/ILDisassembler.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/ILDisassembler.cs rename to src/coreclr/tools/Common/TypeSystem/IL/ILDisassembler.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/ILImporter.cs b/src/coreclr/tools/Common/TypeSystem/IL/ILImporter.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/ILImporter.cs rename to src/coreclr/tools/Common/TypeSystem/IL/ILImporter.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/ILOpcode.cs b/src/coreclr/tools/Common/TypeSystem/IL/ILOpcode.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/ILOpcode.cs rename to src/coreclr/tools/Common/TypeSystem/IL/ILOpcode.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/ILOpcodeHelper.cs b/src/coreclr/tools/Common/TypeSystem/IL/ILOpcodeHelper.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/ILOpcodeHelper.cs rename to src/coreclr/tools/Common/TypeSystem/IL/ILOpcodeHelper.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/ILProvider.cs b/src/coreclr/tools/Common/TypeSystem/IL/ILProvider.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/ILProvider.cs rename to src/coreclr/tools/Common/TypeSystem/IL/ILProvider.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/ILStackHelper.cs b/src/coreclr/tools/Common/TypeSystem/IL/ILStackHelper.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/ILStackHelper.cs rename to src/coreclr/tools/Common/TypeSystem/IL/ILStackHelper.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/InstantiatedMethodIL.cs b/src/coreclr/tools/Common/TypeSystem/IL/InstantiatedMethodIL.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/InstantiatedMethodIL.cs rename to src/coreclr/tools/Common/TypeSystem/IL/InstantiatedMethodIL.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/MethodIL.Symbols.cs b/src/coreclr/tools/Common/TypeSystem/IL/MethodIL.Symbols.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/MethodIL.Symbols.cs rename to src/coreclr/tools/Common/TypeSystem/IL/MethodIL.Symbols.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/MethodIL.cs b/src/coreclr/tools/Common/TypeSystem/IL/MethodIL.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/MethodIL.cs rename to src/coreclr/tools/Common/TypeSystem/IL/MethodIL.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/MethodILDebugView.cs b/src/coreclr/tools/Common/TypeSystem/IL/MethodILDebugView.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/MethodILDebugView.cs rename to src/coreclr/tools/Common/TypeSystem/IL/MethodILDebugView.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/StackValueKind.cs b/src/coreclr/tools/Common/TypeSystem/IL/StackValueKind.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/StackValueKind.cs rename to src/coreclr/tools/Common/TypeSystem/IL/StackValueKind.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/ComparerIntrinsics.cs b/src/coreclr/tools/Common/TypeSystem/IL/Stubs/ComparerIntrinsics.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/ComparerIntrinsics.cs rename to src/coreclr/tools/Common/TypeSystem/IL/Stubs/ComparerIntrinsics.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/ILEmitter.cs b/src/coreclr/tools/Common/TypeSystem/IL/Stubs/ILEmitter.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/ILEmitter.cs rename to src/coreclr/tools/Common/TypeSystem/IL/Stubs/ILEmitter.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/InterlockedIntrinsics.cs b/src/coreclr/tools/Common/TypeSystem/IL/Stubs/InterlockedIntrinsics.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/InterlockedIntrinsics.cs rename to src/coreclr/tools/Common/TypeSystem/IL/Stubs/InterlockedIntrinsics.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/MemoryMarshalIntrinsics.cs b/src/coreclr/tools/Common/TypeSystem/IL/Stubs/MemoryMarshalIntrinsics.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/MemoryMarshalIntrinsics.cs rename to src/coreclr/tools/Common/TypeSystem/IL/Stubs/MemoryMarshalIntrinsics.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/PInvokeILCodeStreams.cs b/src/coreclr/tools/Common/TypeSystem/IL/Stubs/PInvokeILCodeStreams.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/PInvokeILCodeStreams.cs rename to src/coreclr/tools/Common/TypeSystem/IL/Stubs/PInvokeILCodeStreams.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.Mangling.cs b/src/coreclr/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.Mangling.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.Mangling.cs rename to src/coreclr/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.Mangling.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.cs b/src/coreclr/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.cs rename to src/coreclr/tools/Common/TypeSystem/IL/Stubs/PInvokeTargetNativeMethod.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/RuntimeHelpersIntrinsics.cs b/src/coreclr/tools/Common/TypeSystem/IL/Stubs/RuntimeHelpersIntrinsics.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/RuntimeHelpersIntrinsics.cs rename to src/coreclr/tools/Common/TypeSystem/IL/Stubs/RuntimeHelpersIntrinsics.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/UnsafeIntrinsics.cs b/src/coreclr/tools/Common/TypeSystem/IL/Stubs/UnsafeIntrinsics.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/UnsafeIntrinsics.cs rename to src/coreclr/tools/Common/TypeSystem/IL/Stubs/UnsafeIntrinsics.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/VolatileIntrinsics.cs b/src/coreclr/tools/Common/TypeSystem/IL/Stubs/VolatileIntrinsics.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/IL/Stubs/VolatileIntrinsics.cs rename to src/coreclr/tools/Common/TypeSystem/IL/Stubs/VolatileIntrinsics.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Interop/FieldDesc.Interop.cs b/src/coreclr/tools/Common/TypeSystem/Interop/FieldDesc.Interop.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Interop/FieldDesc.Interop.cs rename to src/coreclr/tools/Common/TypeSystem/Interop/FieldDesc.Interop.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Interop/IL/MarshalHelpers.cs b/src/coreclr/tools/Common/TypeSystem/Interop/IL/MarshalHelpers.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Interop/IL/MarshalHelpers.cs rename to src/coreclr/tools/Common/TypeSystem/Interop/IL/MarshalHelpers.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Interop/IL/MarshalUtils.cs b/src/coreclr/tools/Common/TypeSystem/Interop/IL/MarshalUtils.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Interop/IL/MarshalUtils.cs rename to src/coreclr/tools/Common/TypeSystem/Interop/IL/MarshalUtils.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Interop/IL/Marshaller.cs b/src/coreclr/tools/Common/TypeSystem/Interop/IL/Marshaller.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Interop/IL/Marshaller.cs rename to src/coreclr/tools/Common/TypeSystem/Interop/IL/Marshaller.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Interop/InstantiatedType.Interop.cs b/src/coreclr/tools/Common/TypeSystem/Interop/InstantiatedType.Interop.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Interop/InstantiatedType.Interop.cs rename to src/coreclr/tools/Common/TypeSystem/Interop/InstantiatedType.Interop.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Interop/InteropTypes.cs b/src/coreclr/tools/Common/TypeSystem/Interop/InteropTypes.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Interop/InteropTypes.cs rename to src/coreclr/tools/Common/TypeSystem/Interop/InteropTypes.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Interop/MarshalAsDescriptor.cs b/src/coreclr/tools/Common/TypeSystem/Interop/MarshalAsDescriptor.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Interop/MarshalAsDescriptor.cs rename to src/coreclr/tools/Common/TypeSystem/Interop/MarshalAsDescriptor.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Interop/MetadataType.Interop.cs b/src/coreclr/tools/Common/TypeSystem/Interop/MetadataType.Interop.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Interop/MetadataType.Interop.cs rename to src/coreclr/tools/Common/TypeSystem/Interop/MetadataType.Interop.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Interop/MethodDelegator.Interop.cs b/src/coreclr/tools/Common/TypeSystem/Interop/MethodDelegator.Interop.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Interop/MethodDelegator.Interop.cs rename to src/coreclr/tools/Common/TypeSystem/Interop/MethodDelegator.Interop.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Interop/MethodDesc.Interop.cs b/src/coreclr/tools/Common/TypeSystem/Interop/MethodDesc.Interop.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Interop/MethodDesc.Interop.cs rename to src/coreclr/tools/Common/TypeSystem/Interop/MethodDesc.Interop.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Mangling/IPrefixMangledMethod.cs b/src/coreclr/tools/Common/TypeSystem/Mangling/IPrefixMangledMethod.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Mangling/IPrefixMangledMethod.cs rename to src/coreclr/tools/Common/TypeSystem/Mangling/IPrefixMangledMethod.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Mangling/IPrefixMangledSignature.cs b/src/coreclr/tools/Common/TypeSystem/Mangling/IPrefixMangledSignature.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Mangling/IPrefixMangledSignature.cs rename to src/coreclr/tools/Common/TypeSystem/Mangling/IPrefixMangledSignature.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Mangling/IPrefixMangledType.cs b/src/coreclr/tools/Common/TypeSystem/Mangling/IPrefixMangledType.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Mangling/IPrefixMangledType.cs rename to src/coreclr/tools/Common/TypeSystem/Mangling/IPrefixMangledType.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/ArrayType.RuntimeDetermined.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/ArrayType.RuntimeDetermined.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/ArrayType.RuntimeDetermined.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/ArrayType.RuntimeDetermined.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/ByRefType.RuntimeDetermined.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/ByRefType.RuntimeDetermined.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/ByRefType.RuntimeDetermined.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/ByRefType.RuntimeDetermined.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/DefType.RuntimeDetermined.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/DefType.RuntimeDetermined.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/DefType.RuntimeDetermined.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/DefType.RuntimeDetermined.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/FieldDesc.RuntimeDetermined.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/FieldDesc.RuntimeDetermined.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/FieldDesc.RuntimeDetermined.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/FieldDesc.RuntimeDetermined.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/FunctionPointerType.RuntimeDetermined.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/FunctionPointerType.RuntimeDetermined.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/FunctionPointerType.RuntimeDetermined.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/FunctionPointerType.RuntimeDetermined.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/GenericParameterDesc.RuntimeDetermined.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/GenericParameterDesc.RuntimeDetermined.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/GenericParameterDesc.RuntimeDetermined.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/GenericParameterDesc.RuntimeDetermined.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/MethodDesc.RuntimeDetermined.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/MethodDesc.RuntimeDetermined.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/MethodDesc.RuntimeDetermined.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/MethodDesc.RuntimeDetermined.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/MethodForRuntimeDeterminedType.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/MethodForRuntimeDeterminedType.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/MethodForRuntimeDeterminedType.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/MethodForRuntimeDeterminedType.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/MethodForRuntimeDeterminedType.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/MethodForRuntimeDeterminedType.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/MethodForRuntimeDeterminedType.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/MethodForRuntimeDeterminedType.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/MethodForRuntimeDeterminedType.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/MethodForRuntimeDeterminedType.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/MethodForRuntimeDeterminedType.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/MethodForRuntimeDeterminedType.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/ParameterizedType.RuntimeDetermined.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/ParameterizedType.RuntimeDetermined.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/ParameterizedType.RuntimeDetermined.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/ParameterizedType.RuntimeDetermined.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/PointerType.RuntimeDetermined.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/PointerType.RuntimeDetermined.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/PointerType.RuntimeDetermined.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/PointerType.RuntimeDetermined.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedCanonicalizationAlgorithm.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedCanonicalizationAlgorithm.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedCanonicalizationAlgorithm.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedCanonicalizationAlgorithm.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedFieldLayoutAlgorithm.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedFieldLayoutAlgorithm.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedFieldLayoutAlgorithm.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedFieldLayoutAlgorithm.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedType.Diagnostic.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedType.Diagnostic.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedType.Diagnostic.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedType.Diagnostic.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedType.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedType.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedType.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedType.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedType.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedType.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedType.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedType.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedTypeUtilities.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedTypeUtilities.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedTypeUtilities.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/RuntimeDeterminedTypeUtilities.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/SignatureVariable.RuntimeDetermined.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/SignatureVariable.RuntimeDetermined.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/SignatureVariable.RuntimeDetermined.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/SignatureVariable.RuntimeDetermined.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/TypeDesc.RuntimeDetermined.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/TypeDesc.RuntimeDetermined.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/TypeDesc.RuntimeDetermined.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/TypeDesc.RuntimeDetermined.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/TypeSystemContext.RuntimeDetermined.cs b/src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/TypeSystemContext.RuntimeDetermined.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/RuntimeDetermined/TypeSystemContext.RuntimeDetermined.cs rename to src/coreclr/tools/Common/TypeSystem/RuntimeDetermined/TypeSystemContext.RuntimeDetermined.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Serialization/FieldDesc.Serialization.cs b/src/coreclr/tools/Common/TypeSystem/Serialization/FieldDesc.Serialization.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Serialization/FieldDesc.Serialization.cs rename to src/coreclr/tools/Common/TypeSystem/Serialization/FieldDesc.Serialization.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Serialization/TypeDesc.Serialization.cs b/src/coreclr/tools/Common/TypeSystem/Serialization/TypeDesc.Serialization.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Serialization/TypeDesc.Serialization.cs rename to src/coreclr/tools/Common/TypeSystem/Serialization/TypeDesc.Serialization.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Sorting/ArrayType.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Sorting/ArrayType.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Sorting/ArrayType.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Sorting/ArrayType.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Sorting/ByRefType.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Sorting/ByRefType.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Sorting/ByRefType.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Sorting/ByRefType.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Sorting/FieldDesc.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Sorting/FieldDesc.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Sorting/FieldDesc.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Sorting/FieldDesc.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Sorting/FieldForInstantiatedType.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Sorting/FieldForInstantiatedType.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Sorting/FieldForInstantiatedType.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Sorting/FieldForInstantiatedType.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Sorting/FunctionPointerType.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Sorting/FunctionPointerType.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Sorting/FunctionPointerType.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Sorting/FunctionPointerType.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Sorting/InstantiatedMethod.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Sorting/InstantiatedMethod.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Sorting/InstantiatedMethod.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Sorting/InstantiatedMethod.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Sorting/InstantiatedType.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Sorting/InstantiatedType.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Sorting/InstantiatedType.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Sorting/InstantiatedType.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Sorting/MethodDesc.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Sorting/MethodDesc.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Sorting/MethodDesc.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Sorting/MethodDesc.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Sorting/MethodForInstantiatedType.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Sorting/MethodForInstantiatedType.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Sorting/MethodForInstantiatedType.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Sorting/MethodForInstantiatedType.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Sorting/MethodSignature.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Sorting/MethodSignature.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Sorting/MethodSignature.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Sorting/MethodSignature.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Sorting/PointerType.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Sorting/PointerType.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Sorting/PointerType.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Sorting/PointerType.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Sorting/SignatureVariable.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Sorting/SignatureVariable.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Sorting/SignatureVariable.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Sorting/SignatureVariable.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Sorting/TypeDesc.Sorting.cs b/src/coreclr/tools/Common/TypeSystem/Sorting/TypeDesc.Sorting.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Sorting/TypeDesc.Sorting.cs rename to src/coreclr/tools/Common/TypeSystem/Sorting/TypeDesc.Sorting.cs diff --git a/src/coreclr/src/tools/Common/TypeSystem/Sorting/TypeSystemComparer.cs b/src/coreclr/tools/Common/TypeSystem/Sorting/TypeSystemComparer.cs similarity index 100% rename from src/coreclr/src/tools/Common/TypeSystem/Sorting/TypeSystemComparer.cs rename to src/coreclr/tools/Common/TypeSystem/Sorting/TypeSystemComparer.cs diff --git a/src/coreclr/src/tools/Directory.Build.props b/src/coreclr/tools/Directory.Build.props similarity index 100% rename from src/coreclr/src/tools/Directory.Build.props rename to src/coreclr/tools/Directory.Build.props diff --git a/src/coreclr/src/tools/Directory.Build.targets b/src/coreclr/tools/Directory.Build.targets similarity index 100% rename from src/coreclr/src/tools/Directory.Build.targets rename to src/coreclr/tools/Directory.Build.targets diff --git a/src/coreclr/src/tools/GCLogParser/App.config b/src/coreclr/tools/GCLogParser/App.config similarity index 100% rename from src/coreclr/src/tools/GCLogParser/App.config rename to src/coreclr/tools/GCLogParser/App.config diff --git a/src/coreclr/src/tools/GCLogParser/Properties/AssemblyInfo.cs b/src/coreclr/tools/GCLogParser/Properties/AssemblyInfo.cs similarity index 100% rename from src/coreclr/src/tools/GCLogParser/Properties/AssemblyInfo.cs rename to src/coreclr/tools/GCLogParser/Properties/AssemblyInfo.cs diff --git a/src/coreclr/src/tools/GCLogParser/parse-hb-log.cs b/src/coreclr/tools/GCLogParser/parse-hb-log.cs similarity index 100% rename from src/coreclr/src/tools/GCLogParser/parse-hb-log.cs rename to src/coreclr/tools/GCLogParser/parse-hb-log.cs diff --git a/src/coreclr/src/tools/GCLogParser/parse-hb-log.csproj b/src/coreclr/tools/GCLogParser/parse-hb-log.csproj similarity index 100% rename from src/coreclr/src/tools/GCLogParser/parse-hb-log.csproj rename to src/coreclr/tools/GCLogParser/parse-hb-log.csproj diff --git a/src/coreclr/src/tools/GCLogParser/parse-hb-log.sln b/src/coreclr/tools/GCLogParser/parse-hb-log.sln similarity index 100% rename from src/coreclr/src/tools/GCLogParser/parse-hb-log.sln rename to src/coreclr/tools/GCLogParser/parse-hb-log.sln diff --git a/src/coreclr/src/tools/GenClrDebugResource/CMakeLists.txt b/src/coreclr/tools/GenClrDebugResource/CMakeLists.txt similarity index 100% rename from src/coreclr/src/tools/GenClrDebugResource/CMakeLists.txt rename to src/coreclr/tools/GenClrDebugResource/CMakeLists.txt diff --git a/src/coreclr/src/tools/GenClrDebugResource/GenClrDebugResource.cpp b/src/coreclr/tools/GenClrDebugResource/GenClrDebugResource.cpp similarity index 100% rename from src/coreclr/src/tools/GenClrDebugResource/GenClrDebugResource.cpp rename to src/coreclr/tools/GenClrDebugResource/GenClrDebugResource.cpp diff --git a/src/coreclr/src/tools/GenClrDebugResource/native.rc b/src/coreclr/tools/GenClrDebugResource/native.rc similarity index 100% rename from src/coreclr/src/tools/GenClrDebugResource/native.rc rename to src/coreclr/tools/GenClrDebugResource/native.rc diff --git a/src/coreclr/src/tools/ILVerification/AccessVerificationHelpers.cs b/src/coreclr/tools/ILVerification/AccessVerificationHelpers.cs similarity index 100% rename from src/coreclr/src/tools/ILVerification/AccessVerificationHelpers.cs rename to src/coreclr/tools/ILVerification/AccessVerificationHelpers.cs diff --git a/src/coreclr/src/tools/ILVerification/ILImporter.StackValue.cs b/src/coreclr/tools/ILVerification/ILImporter.StackValue.cs similarity index 100% rename from src/coreclr/src/tools/ILVerification/ILImporter.StackValue.cs rename to src/coreclr/tools/ILVerification/ILImporter.StackValue.cs diff --git a/src/coreclr/src/tools/ILVerification/ILImporter.Verify.cs b/src/coreclr/tools/ILVerification/ILImporter.Verify.cs similarity index 100% rename from src/coreclr/src/tools/ILVerification/ILImporter.Verify.cs rename to src/coreclr/tools/ILVerification/ILImporter.Verify.cs diff --git a/src/coreclr/src/tools/ILVerification/ILVerification.csproj b/src/coreclr/tools/ILVerification/ILVerification.csproj similarity index 100% rename from src/coreclr/src/tools/ILVerification/ILVerification.csproj rename to src/coreclr/tools/ILVerification/ILVerification.csproj diff --git a/src/coreclr/src/tools/ILVerification/ILVerification.projitems b/src/coreclr/tools/ILVerification/ILVerification.projitems similarity index 100% rename from src/coreclr/src/tools/ILVerification/ILVerification.projitems rename to src/coreclr/tools/ILVerification/ILVerification.projitems diff --git a/src/coreclr/src/tools/ILVerification/ILVerifyTypeSystemContext.cs b/src/coreclr/tools/ILVerification/ILVerifyTypeSystemContext.cs similarity index 100% rename from src/coreclr/src/tools/ILVerification/ILVerifyTypeSystemContext.cs rename to src/coreclr/tools/ILVerification/ILVerifyTypeSystemContext.cs diff --git a/src/coreclr/src/tools/ILVerification/IResolver.cs b/src/coreclr/tools/ILVerification/IResolver.cs similarity index 100% rename from src/coreclr/src/tools/ILVerification/IResolver.cs rename to src/coreclr/tools/ILVerification/IResolver.cs diff --git a/src/coreclr/src/tools/ILVerification/InstantiatedGenericParameter.cs b/src/coreclr/tools/ILVerification/InstantiatedGenericParameter.cs similarity index 100% rename from src/coreclr/src/tools/ILVerification/InstantiatedGenericParameter.cs rename to src/coreclr/tools/ILVerification/InstantiatedGenericParameter.cs diff --git a/src/coreclr/src/tools/ILVerification/README.md b/src/coreclr/tools/ILVerification/README.md similarity index 100% rename from src/coreclr/src/tools/ILVerification/README.md rename to src/coreclr/tools/ILVerification/README.md diff --git a/src/coreclr/src/tools/ILVerification/SimpleArrayOfTRuntimeInterfacesAlgorithm.cs b/src/coreclr/tools/ILVerification/SimpleArrayOfTRuntimeInterfacesAlgorithm.cs similarity index 100% rename from src/coreclr/src/tools/ILVerification/SimpleArrayOfTRuntimeInterfacesAlgorithm.cs rename to src/coreclr/tools/ILVerification/SimpleArrayOfTRuntimeInterfacesAlgorithm.cs diff --git a/src/coreclr/src/tools/ILVerification/Strings.resx b/src/coreclr/tools/ILVerification/Strings.resx similarity index 100% rename from src/coreclr/src/tools/ILVerification/Strings.resx rename to src/coreclr/tools/ILVerification/Strings.resx diff --git a/src/coreclr/src/tools/ILVerification/TypeSystemHelpers.cs b/src/coreclr/tools/ILVerification/TypeSystemHelpers.cs similarity index 100% rename from src/coreclr/src/tools/ILVerification/TypeSystemHelpers.cs rename to src/coreclr/tools/ILVerification/TypeSystemHelpers.cs diff --git a/src/coreclr/src/tools/ILVerification/TypeVerifier.cs b/src/coreclr/tools/ILVerification/TypeVerifier.cs similarity index 100% rename from src/coreclr/src/tools/ILVerification/TypeVerifier.cs rename to src/coreclr/tools/ILVerification/TypeVerifier.cs diff --git a/src/coreclr/src/tools/ILVerification/VerificationResult.cs b/src/coreclr/tools/ILVerification/VerificationResult.cs similarity index 100% rename from src/coreclr/src/tools/ILVerification/VerificationResult.cs rename to src/coreclr/tools/ILVerification/VerificationResult.cs diff --git a/src/coreclr/src/tools/ILVerification/Verifier.cs b/src/coreclr/tools/ILVerification/Verifier.cs similarity index 100% rename from src/coreclr/src/tools/ILVerification/Verifier.cs rename to src/coreclr/tools/ILVerification/Verifier.cs diff --git a/src/coreclr/src/tools/ILVerification/VerifierError.cs b/src/coreclr/tools/ILVerification/VerifierError.cs similarity index 100% rename from src/coreclr/src/tools/ILVerification/VerifierError.cs rename to src/coreclr/tools/ILVerification/VerifierError.cs diff --git a/src/coreclr/src/tools/ILVerify/ILVerify.csproj b/src/coreclr/tools/ILVerify/ILVerify.csproj similarity index 100% rename from src/coreclr/src/tools/ILVerify/ILVerify.csproj rename to src/coreclr/tools/ILVerify/ILVerify.csproj diff --git a/src/coreclr/src/tools/ILVerify/Program.cs b/src/coreclr/tools/ILVerify/Program.cs similarity index 100% rename from src/coreclr/src/tools/ILVerify/Program.cs rename to src/coreclr/tools/ILVerify/Program.cs diff --git a/src/coreclr/src/tools/ILVerify/README.md b/src/coreclr/tools/ILVerify/README.md similarity index 100% rename from src/coreclr/src/tools/ILVerify/README.md rename to src/coreclr/tools/ILVerify/README.md diff --git a/src/coreclr/src/tools/InjectResource/CMakeLists.txt b/src/coreclr/tools/InjectResource/CMakeLists.txt similarity index 100% rename from src/coreclr/src/tools/InjectResource/CMakeLists.txt rename to src/coreclr/tools/InjectResource/CMakeLists.txt diff --git a/src/coreclr/src/tools/InjectResource/InjectResource.cpp b/src/coreclr/tools/InjectResource/InjectResource.cpp similarity index 100% rename from src/coreclr/src/tools/InjectResource/InjectResource.cpp rename to src/coreclr/tools/InjectResource/InjectResource.cpp diff --git a/src/coreclr/src/tools/InjectResource/native.rc b/src/coreclr/tools/InjectResource/native.rc similarity index 100% rename from src/coreclr/src/tools/InjectResource/native.rc rename to src/coreclr/tools/InjectResource/native.rc diff --git a/src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/ComputedStaticDependencyNode.cs b/src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/ComputedStaticDependencyNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/ComputedStaticDependencyNode.cs rename to src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/ComputedStaticDependencyNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyAnalyzer.cs b/src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyAnalyzer.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyAnalyzer.cs rename to src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyAnalyzer.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyAnalyzerBase.cs b/src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyAnalyzerBase.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyAnalyzerBase.cs rename to src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyAnalyzerBase.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyNode.cs b/src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyNode.cs rename to src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyNodeCore.cs b/src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyNodeCore.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyNodeCore.cs rename to src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/DependencyNodeCore.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/DgmlWriter.cs b/src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/DgmlWriter.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/DgmlWriter.cs rename to src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/DgmlWriter.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/EventSourceLogStrategy.cs b/src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/EventSourceLogStrategy.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/EventSourceLogStrategy.cs rename to src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/EventSourceLogStrategy.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/FirstMarkLogStrategy.cs b/src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/FirstMarkLogStrategy.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/FirstMarkLogStrategy.cs rename to src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/FirstMarkLogStrategy.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/FullGraphLogStrategy.cs b/src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/FullGraphLogStrategy.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/FullGraphLogStrategy.cs rename to src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/FullGraphLogStrategy.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyAnalysisMarkStrategy.cs b/src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyAnalysisMarkStrategy.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyAnalysisMarkStrategy.cs rename to src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyAnalysisMarkStrategy.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyAnalyzerLogEdgeVisitor.cs b/src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyAnalyzerLogEdgeVisitor.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyAnalyzerLogEdgeVisitor.cs rename to src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyAnalyzerLogEdgeVisitor.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyAnalyzerLogNodeVisitor.cs b/src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyAnalyzerLogNodeVisitor.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyAnalyzerLogNodeVisitor.cs rename to src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyAnalyzerLogNodeVisitor.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyNode.cs b/src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyNode.cs rename to src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/IDependencyNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/ILCompiler.DependencyAnalysisFramework.csproj b/src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/ILCompiler.DependencyAnalysisFramework.csproj similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/ILCompiler.DependencyAnalysisFramework.csproj rename to src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/ILCompiler.DependencyAnalysisFramework.csproj diff --git a/src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/NoLogStrategy.cs b/src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/NoLogStrategy.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/NoLogStrategy.cs rename to src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/NoLogStrategy.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/PerfEventSource.cs b/src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/PerfEventSource.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.DependencyAnalysisFramework/PerfEventSource.cs rename to src/coreclr/tools/aot/ILCompiler.DependencyAnalysisFramework/PerfEventSource.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/CodeGen/ReadyToRunObjectWriter.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/CodeGen/ReadyToRunObjectWriter.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/CodeGen/ReadyToRunObjectWriter.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/CodeGen/ReadyToRunObjectWriter.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/CompilationModuleGroup.ReadyToRun.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/CompilationModuleGroup.ReadyToRun.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/CompilationModuleGroup.ReadyToRun.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/CompilationModuleGroup.ReadyToRun.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/CryptographicHashProvider.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/CryptographicHashProvider.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/CryptographicHashProvider.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/CryptographicHashProvider.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/AllMethodsOnTypeNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/AllMethodsOnTypeNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/AllMethodsOnTypeNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/AllMethodsOnTypeNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ArrayOfEmbeddedDataNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ArrayOfEmbeddedDataNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ArrayOfEmbeddedDataNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ArrayOfEmbeddedDataNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ArrayOfEmbeddedPointersNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ArrayOfEmbeddedPointersNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ArrayOfEmbeddedPointersNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ArrayOfEmbeddedPointersNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/EmbeddedObjectNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/EmbeddedObjectNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/EmbeddedObjectNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/EmbeddedObjectNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/EmbeddedPointerIndirectionNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/EmbeddedPointerIndirectionNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/EmbeddedPointerIndirectionNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/EmbeddedPointerIndirectionNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ArgIterator.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ArgIterator.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ArgIterator.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ArgIterator.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/AssemblyTableNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/AssemblyTableNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/AssemblyTableNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/AssemblyTableNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/AttributePresenceFilterNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/AttributePresenceFilterNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/AttributePresenceFilterNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/AttributePresenceFilterNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ByteArrayComparer.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ByteArrayComparer.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ByteArrayComparer.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ByteArrayComparer.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CompilerIdentifierNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CompilerIdentifierNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CompilerIdentifierNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CompilerIdentifierNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedCorHeaderNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedCorHeaderNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedCorHeaderNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedCorHeaderNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedFieldRvaNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedFieldRvaNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedFieldRvaNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedFieldRvaNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedManagedResourcesNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedManagedResourcesNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedManagedResourcesNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedManagedResourcesNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedMetadataBlobNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedMetadataBlobNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedMetadataBlobNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedMetadataBlobNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedMethodILNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedMethodILNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedMethodILNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedMethodILNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedStrongNameSignatureNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedStrongNameSignatureNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedStrongNameSignatureNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedStrongNameSignatureNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DebugDirectoryEntryNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DebugDirectoryEntryNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DebugDirectoryEntryNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DebugDirectoryEntryNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DebugDirectoryNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DebugDirectoryNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DebugDirectoryNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DebugDirectoryNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DebugInfoTableNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DebugInfoTableNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DebugInfoTableNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DebugInfoTableNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadHelperImport.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadHelperImport.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadHelperImport.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadHelperImport.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadHelperMethodImport.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadHelperMethodImport.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadHelperMethodImport.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadHelperMethodImport.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadMethodCallThunkNodeRange.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadMethodCallThunkNodeRange.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadMethodCallThunkNodeRange.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadMethodCallThunkNodeRange.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadMethodImport.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadMethodImport.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadMethodImport.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelayLoadMethodImport.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelegateCtorSignature.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelegateCtorSignature.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelegateCtorSignature.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelegateCtorSignature.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DevirtualizationManager.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DevirtualizationManager.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DevirtualizationManager.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DevirtualizationManager.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ExceptionInfoLookupTableNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ExceptionInfoLookupTableNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ExceptionInfoLookupTableNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ExceptionInfoLookupTableNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/FieldFixupSignature.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/FieldFixupSignature.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/FieldFixupSignature.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/FieldFixupSignature.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GCRefMapBuilder.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GCRefMapBuilder.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GCRefMapBuilder.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GCRefMapBuilder.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GCRefMapNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GCRefMapNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GCRefMapNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GCRefMapNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GenericLookupSignature.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GenericLookupSignature.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GenericLookupSignature.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GenericLookupSignature.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/HeaderNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/HeaderNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/HeaderNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/HeaderNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Import.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Import.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Import.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Import.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ImportSectionNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ImportSectionNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ImportSectionNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ImportSectionNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ImportSectionsTableNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ImportSectionsTableNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ImportSectionsTableNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ImportSectionsTableNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ImportThunk.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ImportThunk.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ImportThunk.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ImportThunk.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/InliningInfoNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/InliningInfoNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/InliningInfoNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/InliningInfoNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/InstanceEntryPointTableNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/InstanceEntryPointTableNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/InstanceEntryPointTableNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/InstanceEntryPointTableNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ManifestMetadataTableNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ManifestMetadataTableNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ManifestMetadataTableNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ManifestMetadataTableNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodEntryPointTableNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodEntryPointTableNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodEntryPointTableNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodEntryPointTableNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodFixupSignature.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodFixupSignature.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodFixupSignature.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodFixupSignature.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodGCInfoNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodGCInfoNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodGCInfoNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodGCInfoNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodWithGCInfo.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodWithGCInfo.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodWithGCInfo.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodWithGCInfo.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ModuleToken.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ModuleToken.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ModuleToken.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ModuleToken.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ModuleTokenResolver.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ModuleTokenResolver.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ModuleTokenResolver.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ModuleTokenResolver.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/NewArrayFixupSignature.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/NewArrayFixupSignature.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/NewArrayFixupSignature.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/NewArrayFixupSignature.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/NewObjectFixupSignature.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/NewObjectFixupSignature.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/NewObjectFixupSignature.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/NewObjectFixupSignature.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/NibbleWriter.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/NibbleWriter.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/NibbleWriter.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/NibbleWriter.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/OwnerCompositeExecutableNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/OwnerCompositeExecutableNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/OwnerCompositeExecutableNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/OwnerCompositeExecutableNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/PrecodeHelperImport.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/PrecodeHelperImport.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/PrecodeHelperImport.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/PrecodeHelperImport.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/PrecodeMethodImport.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/PrecodeMethodImport.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/PrecodeMethodImport.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/PrecodeMethodImport.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ProfileDataNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ProfileDataNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ProfileDataNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ProfileDataNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ProfileDataSectionNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ProfileDataSectionNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ProfileDataSectionNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ProfileDataSectionNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ReadyToRunHelperSignature.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ReadyToRunHelperSignature.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ReadyToRunHelperSignature.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ReadyToRunHelperSignature.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ReadyToRunInstructionSetSupportSignature.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ReadyToRunInstructionSetSupportSignature.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ReadyToRunInstructionSetSupportSignature.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ReadyToRunInstructionSetSupportSignature.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/RuntimeFunctionsGCInfoNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/RuntimeFunctionsGCInfoNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/RuntimeFunctionsGCInfoNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/RuntimeFunctionsGCInfoNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/RuntimeFunctionsTableNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/RuntimeFunctionsTableNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/RuntimeFunctionsTableNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/RuntimeFunctionsTableNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Signature.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Signature.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Signature.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Signature.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureBuilder.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureBuilder.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureBuilder.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureBuilder.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureContext.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureContext.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureContext.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureContext.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureEmbeddedPointerIndirectionNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureEmbeddedPointerIndirectionNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureEmbeddedPointerIndirectionNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/SignatureEmbeddedPointerIndirectionNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/StringImport.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/StringImport.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/StringImport.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/StringImport.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/StringImportSignature.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/StringImportSignature.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/StringImportSignature.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/StringImportSignature.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_ARM/ImportThunk.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_ARM/ImportThunk.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_ARM/ImportThunk.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_ARM/ImportThunk.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_ARM64/ImportThunk.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_ARM64/ImportThunk.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_ARM64/ImportThunk.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_ARM64/ImportThunk.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_X64/ImportThunk.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_X64/ImportThunk.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_X64/ImportThunk.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_X64/ImportThunk.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_X86/ImportThunk.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_X86/ImportThunk.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_X86/ImportThunk.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Target_X86/ImportThunk.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TransitionBlock.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TransitionBlock.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TransitionBlock.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TransitionBlock.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TypeFixupSignature.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TypeFixupSignature.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TypeFixupSignature.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TypeFixupSignature.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TypesTableNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TypesTableNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TypesTableNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TypesTableNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Win32ResourcesNode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Win32ResourcesNode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Win32ResourcesNode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Win32ResourcesNode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRunCodegenNodeFactory.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRunCodegenNodeFactory.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRunCodegenNodeFactory.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRunCodegenNodeFactory.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRunSymbolNodeFactory.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRunSymbolNodeFactory.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRunSymbolNodeFactory.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRunSymbolNodeFactory.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/SortableDependencyNodeCompilerSpecific.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/SortableDependencyNodeCompilerSpecific.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/SortableDependencyNodeCompilerSpecific.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/SortableDependencyNodeCompilerSpecific.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/TypeAndMethod.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/TypeAndMethod.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/TypeAndMethod.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/TypeAndMethod.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/IRootingServiceProvider.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/IRootingServiceProvider.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/IRootingServiceProvider.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/IRootingServiceProvider.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/MethodExtensions.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/MethodExtensions.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/MethodExtensions.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/MethodExtensions.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/NoMethodsCompilationModuleGroup.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/NoMethodsCompilationModuleGroup.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/NoMethodsCompilationModuleGroup.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/NoMethodsCompilationModuleGroup.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/PerfEventSource.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/PerfEventSource.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/PerfEventSource.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/PerfEventSource.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ProfileData.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ProfileData.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ProfileData.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ProfileData.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCodegenCompilation.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCodegenCompilation.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCodegenCompilation.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCodegenCompilation.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCodegenCompilationBuilder.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCodegenCompilationBuilder.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCodegenCompilationBuilder.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCodegenCompilationBuilder.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCompilationModuleGroupBase.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCompilationModuleGroupBase.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCompilationModuleGroupBase.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCompilationModuleGroupBase.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCompilerContext.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCompilerContext.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCompilerContext.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunCompilerContext.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunFileLayoutOptimizer.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunFileLayoutOptimizer.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunFileLayoutOptimizer.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunFileLayoutOptimizer.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunHashCode.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunHashCode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunHashCode.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunHashCode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunLibraryRootProvider.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunLibraryRootProvider.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunLibraryRootProvider.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunLibraryRootProvider.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunMetadataFieldLayoutAlgorithm.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunMetadataFieldLayoutAlgorithm.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunMetadataFieldLayoutAlgorithm.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunMetadataFieldLayoutAlgorithm.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunSingleAssemblyCompilationModuleGroup.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunSingleAssemblyCompilationModuleGroup.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunSingleAssemblyCompilationModuleGroup.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunSingleAssemblyCompilationModuleGroup.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunTableManager.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunTableManager.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunTableManager.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/ReadyToRunTableManager.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/RuntimeDeterminedTypeHelper.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/RuntimeDeterminedTypeHelper.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/RuntimeDeterminedTypeHelper.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/RuntimeDeterminedTypeHelper.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/SingleMethodCompilationModuleGroup.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/SingleMethodCompilationModuleGroup.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/SingleMethodCompilationModuleGroup.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/SingleMethodCompilationModuleGroup.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/SystemObjectFieldLayoutAlgorithm.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/SystemObjectFieldLayoutAlgorithm.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/SystemObjectFieldLayoutAlgorithm.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/SystemObjectFieldLayoutAlgorithm.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IBC/IBCDataModel.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/IBCDataModel.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IBC/IBCDataModel.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/IBCDataModel.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IBC/IBCDataReader.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/IBCDataReader.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IBC/IBCDataReader.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/IBCDataReader.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileData.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileData.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileData.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileData.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileParser.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileParser.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileParser.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileParser.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IBC/MIbcProfileParser.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/MIbcProfileParser.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IBC/MIbcProfileParser.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/MIbcProfileParser.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IBC/ReaderExtensions.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/ReaderExtensions.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IBC/ReaderExtensions.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/ReaderExtensions.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IL/ReadyToRunILProvider.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IL/ReadyToRunILProvider.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IL/ReadyToRunILProvider.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/IL/ReadyToRunILProvider.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IL/Stubs/PInvokeILEmitter.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IL/Stubs/PInvokeILEmitter.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/IL/Stubs/PInvokeILEmitter.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/IL/Stubs/PInvokeILEmitter.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/ILCompiler.ReadyToRun.csproj b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/ILCompiler.ReadyToRun.csproj similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/ILCompiler.ReadyToRun.csproj rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/ILCompiler.ReadyToRun.csproj diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Interop/IL/Marshaller.ReadyToRun.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Interop/IL/Marshaller.ReadyToRun.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Interop/IL/Marshaller.ReadyToRun.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Interop/IL/Marshaller.ReadyToRun.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/JitInterface/UnboxingMethodDescFactory.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/JitInterface/UnboxingMethodDescFactory.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/JitInterface/UnboxingMethodDescFactory.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/JitInterface/UnboxingMethodDescFactory.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/MapFileBuilder.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/MapFileBuilder.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/MapFileBuilder.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/MapFileBuilder.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/R2RPEBuilder.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/R2RPEBuilder.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/R2RPEBuilder.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/R2RPEBuilder.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/RelocationHelper.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/RelocationHelper.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/RelocationHelper.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/RelocationHelper.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/SectionBuilder.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/SectionBuilder.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/SectionBuilder.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/SectionBuilder.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/TargetExtensions.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/TargetExtensions.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/TargetExtensions.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/TargetExtensions.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.Reader.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.Reader.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.Reader.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.Reader.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.ResourcesDataModel.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.ResourcesDataModel.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.ResourcesDataModel.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.ResourcesDataModel.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.UpdateResourceDataModel.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.UpdateResourceDataModel.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.UpdateResourceDataModel.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.UpdateResourceDataModel.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.Win32Structs.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.Win32Structs.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.Win32Structs.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.Win32Structs.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.cs rename to src/coreclr/tools/aot/ILCompiler.ReadyToRun/Win32Resources/ResourceData.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcInfo.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcInfo.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcInfo.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcInfo.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcSlotTable.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcSlotTable.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcSlotTable.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcSlotTable.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcTransition.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcTransition.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcTransition.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/GcTransition.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/Registers.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/Registers.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/Registers.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/Registers.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/UnwindInfo.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/UnwindInfo.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/UnwindInfo.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Amd64/UnwindInfo.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm/Registers.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm/Registers.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm/Registers.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm/Registers.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm/UnwindInfo.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm/UnwindInfo.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm/UnwindInfo.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm/UnwindInfo.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm64/Registers.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm64/Registers.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm64/Registers.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm64/Registers.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm64/UnwindInfo.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm64/UnwindInfo.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm64/UnwindInfo.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/Arm64/UnwindInfo.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/DebugInfo.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/DebugInfo.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/DebugInfo.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/DebugInfo.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/DebugInfoTypes.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/DebugInfoTypes.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/DebugInfoTypes.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/DebugInfoTypes.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/DisassemblingTypeProvider.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/DisassemblingTypeProvider.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/DisassemblingTypeProvider.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/DisassemblingTypeProvider.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/EHInfo.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/EHInfo.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/EHInfo.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/EHInfo.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/GCInfoTypes.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/GCInfoTypes.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/GCInfoTypes.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/GCInfoTypes.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/GCRefMap.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/GCRefMap.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/GCRefMap.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/GCRefMap.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/IAssemblyMetadata.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/IAssemblyMetadata.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/IAssemblyMetadata.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/IAssemblyMetadata.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/IAssemblyResolver.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/IAssemblyResolver.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/IAssemblyResolver.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/IAssemblyResolver.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ILCompiler.Reflection.ReadyToRun.csproj b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ILCompiler.Reflection.ReadyToRun.csproj similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ILCompiler.Reflection.ReadyToRun.csproj rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ILCompiler.Reflection.ReadyToRun.csproj diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/InliningInfoSection.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/InliningInfoSection.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/InliningInfoSection.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/InliningInfoSection.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/InliningInfoSection2.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/InliningInfoSection2.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/InliningInfoSection2.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/InliningInfoSection2.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/NativeArray.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/NativeArray.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/NativeArray.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/NativeArray.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/NativeHashtable.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/NativeHashtable.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/NativeHashtable.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/NativeHashtable.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/NativeReader.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/NativeReader.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/NativeReader.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/NativeReader.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/NibbleReader.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/NibbleReader.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/NibbleReader.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/NibbleReader.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/PEReaderExtensions.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/PEReaderExtensions.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/PEReaderExtensions.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/PEReaderExtensions.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunHeader.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunHeader.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunHeader.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunHeader.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunImportSection.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunImportSection.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunImportSection.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunImportSection.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunMethod.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunMethod.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunMethod.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunMethod.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunReader.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunReader.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunReader.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunReader.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunSection.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunSection.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunSection.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunSection.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunSignature.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunSignature.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunSignature.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunSignature.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/StandaloneAssemblyMetadata.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/StandaloneAssemblyMetadata.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/StandaloneAssemblyMetadata.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/StandaloneAssemblyMetadata.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/StringExtensions.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/StringExtensions.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/StringExtensions.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/StringExtensions.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/TransitionBlock.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/TransitionBlock.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/TransitionBlock.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/TransitionBlock.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/CallPattern.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/CallPattern.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/CallPattern.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/CallPattern.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/GcInfo.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/GcInfo.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/GcInfo.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/GcInfo.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/GcSlotTable.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/GcSlotTable.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/GcSlotTable.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/GcSlotTable.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/GcTransition.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/GcTransition.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/GcTransition.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/GcTransition.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/InfoHdr.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/InfoHdr.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/InfoHdr.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/InfoHdr.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/Registers.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/Registers.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/Registers.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/Registers.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/UnwindInfo.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/UnwindInfo.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/UnwindInfo.cs rename to src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/x86/UnwindInfo.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ArchitectureSpecificFieldLayoutTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ArchitectureSpecificFieldLayoutTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ArchitectureSpecificFieldLayoutTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ArchitectureSpecificFieldLayoutTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CanonicalizationTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CanonicalizationTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CanonicalizationTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CanonicalizationTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CastingTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CastingTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CastingTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CastingTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ConstraintsValidationTest.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ConstraintsValidationTest.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ConstraintsValidationTest.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ConstraintsValidationTest.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Canonicalization.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Canonicalization.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Canonicalization.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Canonicalization.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Casting.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Casting.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Casting.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Casting.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/CoreTestAssembly.csproj b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/CoreTestAssembly.csproj similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/CoreTestAssembly.csproj rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/CoreTestAssembly.csproj diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/GCPointerMap.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/GCPointerMap.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/GCPointerMap.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/GCPointerMap.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/GenericConstraints.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/GenericConstraints.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/GenericConstraints.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/GenericConstraints.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/GenericTypes.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/GenericTypes.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/GenericTypes.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/GenericTypes.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Hashcode.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Hashcode.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Hashcode.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Hashcode.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/InstanceFieldLayout.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/InstanceFieldLayout.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/InstanceFieldLayout.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/InstanceFieldLayout.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/InterfaceArrangements.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/InterfaceArrangements.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/InterfaceArrangements.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/InterfaceArrangements.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Platform.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Platform.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Platform.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/Platform.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/StaticFieldLayout.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/StaticFieldLayout.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/StaticFieldLayout.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/StaticFieldLayout.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/SyntheticVirtualOverride.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/SyntheticVirtualOverride.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/SyntheticVirtualOverride.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/SyntheticVirtualOverride.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/TypeNameParsing.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/TypeNameParsing.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/TypeNameParsing.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/TypeNameParsing.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/ValueTypeShapeCharacteristics.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/ValueTypeShapeCharacteristics.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/ValueTypeShapeCharacteristics.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/ValueTypeShapeCharacteristics.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/VirtualFunctionOverride.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/VirtualFunctionOverride.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/VirtualFunctionOverride.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/CoreTestAssembly/VirtualFunctionOverride.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ExceptionStringTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ExceptionStringTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ExceptionStringTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ExceptionStringTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/GCPointerMapTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/GCPointerMapTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/GCPointerMapTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/GCPointerMapTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/GenericTypeAndMethodTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/GenericTypeAndMethodTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/GenericTypeAndMethodTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/GenericTypeAndMethodTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/HashcodeTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/HashcodeTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/HashcodeTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/HashcodeTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILCompiler.TypeSystem.ReadyToRun.Tests.csproj b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILCompiler.TypeSystem.ReadyToRun.Tests.csproj similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILCompiler.TypeSystem.ReadyToRun.Tests.csproj rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILCompiler.TypeSystem.ReadyToRun.Tests.csproj diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILDisassemblerTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILDisassemblerTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILDisassemblerTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILDisassemblerTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/ILDisassembler.il b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/ILDisassembler.il similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/ILDisassembler.il rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/ILDisassembler.il diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/ILTestAssembly.ilproj b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/ILTestAssembly.ilproj similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/ILTestAssembly.ilproj rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/ILTestAssembly.ilproj diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/InstanceFieldLayout.il b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/InstanceFieldLayout.il similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/InstanceFieldLayout.il rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/InstanceFieldLayout.il diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/Main.il b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/Main.il similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/Main.il rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/Main.il diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/MethodImplOverride1.il b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/MethodImplOverride1.il similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/MethodImplOverride1.il rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/MethodImplOverride1.il diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/Signature.il b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/Signature.il similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/Signature.il rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/Signature.il diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/StaticFieldLayout.il b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/StaticFieldLayout.il similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/StaticFieldLayout.il rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/StaticFieldLayout.il diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/VirtualFunctionOverride.il b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/VirtualFunctionOverride.il similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/VirtualFunctionOverride.il rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ILTestAssembly/VirtualFunctionOverride.il diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/InstanceFieldLayoutTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/InstanceFieldLayoutTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/InstanceFieldLayoutTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/InstanceFieldLayoutTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/InterfacesTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/InterfacesTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/InterfacesTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/InterfacesTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/RuntimeDeterminedTypesTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/RuntimeDeterminedTypesTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/RuntimeDeterminedTypesTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/RuntimeDeterminedTypesTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/SignatureTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/SignatureTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/SignatureTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/SignatureTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/StaticFieldLayoutTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/StaticFieldLayoutTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/StaticFieldLayoutTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/StaticFieldLayoutTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/SyntheticVirtualOverrideTests.DiagnosticName.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/SyntheticVirtualOverrideTests.DiagnosticName.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/SyntheticVirtualOverrideTests.DiagnosticName.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/SyntheticVirtualOverrideTests.DiagnosticName.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/SyntheticVirtualOverrideTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/SyntheticVirtualOverrideTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/SyntheticVirtualOverrideTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/SyntheticVirtualOverrideTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/TestMetadataFieldLayoutAlgorithm.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/TestMetadataFieldLayoutAlgorithm.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/TestMetadataFieldLayoutAlgorithm.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/TestMetadataFieldLayoutAlgorithm.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/TestTypeSystemContext.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/TestTypeSystemContext.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/TestTypeSystemContext.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/TestTypeSystemContext.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/TypeNameParsingTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/TypeNameParsingTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/TypeNameParsingTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/TypeNameParsingTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/UniversalGenericFieldLayoutTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/UniversalGenericFieldLayoutTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/UniversalGenericFieldLayoutTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/UniversalGenericFieldLayoutTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ValueTypeShapeCharacteristicsTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ValueTypeShapeCharacteristicsTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ValueTypeShapeCharacteristicsTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/ValueTypeShapeCharacteristicsTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/VirtualFunctionOverrideTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/VirtualFunctionOverrideTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/VirtualFunctionOverrideTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/VirtualFunctionOverrideTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/WellKnownTypeTests.cs b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/WellKnownTypeTests.cs similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/WellKnownTypeTests.cs rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun.Tests/WellKnownTypeTests.cs diff --git a/src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun/ILCompiler.TypeSystem.ReadyToRun.csproj b/src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun/ILCompiler.TypeSystem.ReadyToRun.csproj similarity index 100% rename from src/coreclr/src/tools/aot/ILCompiler.TypeSystem.ReadyToRun/ILCompiler.TypeSystem.ReadyToRun.csproj rename to src/coreclr/tools/aot/ILCompiler.TypeSystem.ReadyToRun/ILCompiler.TypeSystem.ReadyToRun.csproj diff --git a/src/coreclr/src/tools/aot/crossgen2.sln b/src/coreclr/tools/aot/crossgen2.sln similarity index 100% rename from src/coreclr/src/tools/aot/crossgen2.sln rename to src/coreclr/tools/aot/crossgen2.sln diff --git a/src/coreclr/src/tools/aot/crossgen2/CommandLineOptions.cs b/src/coreclr/tools/aot/crossgen2/CommandLineOptions.cs similarity index 100% rename from src/coreclr/src/tools/aot/crossgen2/CommandLineOptions.cs rename to src/coreclr/tools/aot/crossgen2/CommandLineOptions.cs diff --git a/src/coreclr/src/tools/aot/crossgen2/Program.cs b/src/coreclr/tools/aot/crossgen2/Program.cs similarity index 100% rename from src/coreclr/src/tools/aot/crossgen2/Program.cs rename to src/coreclr/tools/aot/crossgen2/Program.cs diff --git a/src/coreclr/src/tools/aot/crossgen2/Properties/Resources.resx b/src/coreclr/tools/aot/crossgen2/Properties/Resources.resx similarity index 100% rename from src/coreclr/src/tools/aot/crossgen2/Properties/Resources.resx rename to src/coreclr/tools/aot/crossgen2/Properties/Resources.resx diff --git a/src/coreclr/src/tools/aot/crossgen2/crossgen2.csproj b/src/coreclr/tools/aot/crossgen2/crossgen2.csproj similarity index 100% rename from src/coreclr/src/tools/aot/crossgen2/crossgen2.csproj rename to src/coreclr/tools/aot/crossgen2/crossgen2.csproj diff --git a/src/coreclr/src/tools/aot/jitinterface/CMakeLists.txt b/src/coreclr/tools/aot/jitinterface/CMakeLists.txt similarity index 100% rename from src/coreclr/src/tools/aot/jitinterface/CMakeLists.txt rename to src/coreclr/tools/aot/jitinterface/CMakeLists.txt diff --git a/src/coreclr/src/tools/aot/jitinterface/corinfoexception.cpp b/src/coreclr/tools/aot/jitinterface/corinfoexception.cpp similarity index 100% rename from src/coreclr/src/tools/aot/jitinterface/corinfoexception.cpp rename to src/coreclr/tools/aot/jitinterface/corinfoexception.cpp diff --git a/src/coreclr/src/tools/aot/jitinterface/corinfoexception.h b/src/coreclr/tools/aot/jitinterface/corinfoexception.h similarity index 100% rename from src/coreclr/src/tools/aot/jitinterface/corinfoexception.h rename to src/coreclr/tools/aot/jitinterface/corinfoexception.h diff --git a/src/coreclr/src/tools/aot/jitinterface/dllexport.h b/src/coreclr/tools/aot/jitinterface/dllexport.h similarity index 100% rename from src/coreclr/src/tools/aot/jitinterface/dllexport.h rename to src/coreclr/tools/aot/jitinterface/dllexport.h diff --git a/src/coreclr/src/tools/aot/jitinterface/jithost.cpp b/src/coreclr/tools/aot/jitinterface/jithost.cpp similarity index 100% rename from src/coreclr/src/tools/aot/jitinterface/jithost.cpp rename to src/coreclr/tools/aot/jitinterface/jithost.cpp diff --git a/src/coreclr/src/tools/aot/jitinterface/jitinterface.cpp b/src/coreclr/tools/aot/jitinterface/jitinterface.cpp similarity index 100% rename from src/coreclr/src/tools/aot/jitinterface/jitinterface.cpp rename to src/coreclr/tools/aot/jitinterface/jitinterface.cpp diff --git a/src/coreclr/src/tools/aot/jitinterface/jitinterface.h b/src/coreclr/tools/aot/jitinterface/jitinterface.h similarity index 100% rename from src/coreclr/src/tools/aot/jitinterface/jitinterface.h rename to src/coreclr/tools/aot/jitinterface/jitinterface.h diff --git a/src/coreclr/src/tools/aot/jitinterface/jitwrapper.cpp b/src/coreclr/tools/aot/jitinterface/jitwrapper.cpp similarity index 100% rename from src/coreclr/src/tools/aot/jitinterface/jitwrapper.cpp rename to src/coreclr/tools/aot/jitinterface/jitwrapper.cpp diff --git a/src/coreclr/src/tools/crossgen/CMakeLists.txt b/src/coreclr/tools/crossgen/CMakeLists.txt similarity index 100% rename from src/coreclr/src/tools/crossgen/CMakeLists.txt rename to src/coreclr/tools/crossgen/CMakeLists.txt diff --git a/src/coreclr/src/tools/crossgen/Native.rc b/src/coreclr/tools/crossgen/Native.rc similarity index 100% rename from src/coreclr/src/tools/crossgen/Native.rc rename to src/coreclr/tools/crossgen/Native.rc diff --git a/src/coreclr/src/tools/crossgen/compare.bat b/src/coreclr/tools/crossgen/compare.bat similarity index 100% rename from src/coreclr/src/tools/crossgen/compare.bat rename to src/coreclr/tools/crossgen/compare.bat diff --git a/src/coreclr/src/tools/crossgen/crossgen.cpp b/src/coreclr/tools/crossgen/crossgen.cpp similarity index 100% rename from src/coreclr/src/tools/crossgen/crossgen.cpp rename to src/coreclr/tools/crossgen/crossgen.cpp diff --git a/src/coreclr/src/tools/dotnet-pgo/Logger.cs b/src/coreclr/tools/dotnet-pgo/Logger.cs similarity index 100% rename from src/coreclr/src/tools/dotnet-pgo/Logger.cs rename to src/coreclr/tools/dotnet-pgo/Logger.cs diff --git a/src/coreclr/src/tools/dotnet-pgo/Microsoft.Diagnostics.JitTrace/JitTraceRuntime.cs b/src/coreclr/tools/dotnet-pgo/Microsoft.Diagnostics.JitTrace/JitTraceRuntime.cs similarity index 100% rename from src/coreclr/src/tools/dotnet-pgo/Microsoft.Diagnostics.JitTrace/JitTraceRuntime.cs rename to src/coreclr/tools/dotnet-pgo/Microsoft.Diagnostics.JitTrace/JitTraceRuntime.cs diff --git a/src/coreclr/src/tools/dotnet-pgo/ModuleLoadLogger.cs b/src/coreclr/tools/dotnet-pgo/ModuleLoadLogger.cs similarity index 100% rename from src/coreclr/src/tools/dotnet-pgo/ModuleLoadLogger.cs rename to src/coreclr/tools/dotnet-pgo/ModuleLoadLogger.cs diff --git a/src/coreclr/src/tools/dotnet-pgo/PgoTraceProcess.cs b/src/coreclr/tools/dotnet-pgo/PgoTraceProcess.cs similarity index 100% rename from src/coreclr/src/tools/dotnet-pgo/PgoTraceProcess.cs rename to src/coreclr/tools/dotnet-pgo/PgoTraceProcess.cs diff --git a/src/coreclr/src/tools/dotnet-pgo/Program.cs b/src/coreclr/tools/dotnet-pgo/Program.cs similarity index 100% rename from src/coreclr/src/tools/dotnet-pgo/Program.cs rename to src/coreclr/tools/dotnet-pgo/Program.cs diff --git a/src/coreclr/src/tools/dotnet-pgo/R2RSignatureTypeProvider.cs b/src/coreclr/tools/dotnet-pgo/R2RSignatureTypeProvider.cs similarity index 100% rename from src/coreclr/src/tools/dotnet-pgo/R2RSignatureTypeProvider.cs rename to src/coreclr/tools/dotnet-pgo/R2RSignatureTypeProvider.cs diff --git a/src/coreclr/src/tools/dotnet-pgo/README.md b/src/coreclr/tools/dotnet-pgo/README.md similarity index 100% rename from src/coreclr/src/tools/dotnet-pgo/README.md rename to src/coreclr/tools/dotnet-pgo/README.md diff --git a/src/coreclr/src/tools/dotnet-pgo/TraceRuntimeDescToTypeSystemDesc.cs b/src/coreclr/tools/dotnet-pgo/TraceRuntimeDescToTypeSystemDesc.cs similarity index 100% rename from src/coreclr/src/tools/dotnet-pgo/TraceRuntimeDescToTypeSystemDesc.cs rename to src/coreclr/tools/dotnet-pgo/TraceRuntimeDescToTypeSystemDesc.cs diff --git a/src/coreclr/src/tools/dotnet-pgo/TraceTypeSystemContext.cs b/src/coreclr/tools/dotnet-pgo/TraceTypeSystemContext.cs similarity index 100% rename from src/coreclr/src/tools/dotnet-pgo/TraceTypeSystemContext.cs rename to src/coreclr/tools/dotnet-pgo/TraceTypeSystemContext.cs diff --git a/src/coreclr/src/tools/dotnet-pgo/TypeSystemMetadataEmitter.cs b/src/coreclr/tools/dotnet-pgo/TypeSystemMetadataEmitter.cs similarity index 100% rename from src/coreclr/src/tools/dotnet-pgo/TypeSystemMetadataEmitter.cs rename to src/coreclr/tools/dotnet-pgo/TypeSystemMetadataEmitter.cs diff --git a/src/coreclr/src/tools/dotnet-pgo/dotnet-pgo-experiment.md b/src/coreclr/tools/dotnet-pgo/dotnet-pgo-experiment.md similarity index 100% rename from src/coreclr/src/tools/dotnet-pgo/dotnet-pgo-experiment.md rename to src/coreclr/tools/dotnet-pgo/dotnet-pgo-experiment.md diff --git a/src/coreclr/src/tools/dotnet-pgo/dotnet-pgo.csproj b/src/coreclr/tools/dotnet-pgo/dotnet-pgo.csproj similarity index 100% rename from src/coreclr/src/tools/dotnet-pgo/dotnet-pgo.csproj rename to src/coreclr/tools/dotnet-pgo/dotnet-pgo.csproj diff --git a/src/coreclr/src/tools/dotnet-pgo/dotnet-pgo.sln b/src/coreclr/tools/dotnet-pgo/dotnet-pgo.sln similarity index 100% rename from src/coreclr/src/tools/dotnet-pgo/dotnet-pgo.sln rename to src/coreclr/tools/dotnet-pgo/dotnet-pgo.sln diff --git a/src/coreclr/src/tools/metainfo/Native.rc b/src/coreclr/tools/metainfo/Native.rc similarity index 100% rename from src/coreclr/src/tools/metainfo/Native.rc rename to src/coreclr/tools/metainfo/Native.rc diff --git a/src/coreclr/src/tools/metainfo/mdinfo.cpp b/src/coreclr/tools/metainfo/mdinfo.cpp similarity index 100% rename from src/coreclr/src/tools/metainfo/mdinfo.cpp rename to src/coreclr/tools/metainfo/mdinfo.cpp diff --git a/src/coreclr/src/tools/metainfo/mdinfo.h b/src/coreclr/tools/metainfo/mdinfo.h similarity index 100% rename from src/coreclr/src/tools/metainfo/mdinfo.h rename to src/coreclr/tools/metainfo/mdinfo.h diff --git a/src/coreclr/src/tools/metainfo/mdobj.cpp b/src/coreclr/tools/metainfo/mdobj.cpp similarity index 100% rename from src/coreclr/src/tools/metainfo/mdobj.cpp rename to src/coreclr/tools/metainfo/mdobj.cpp diff --git a/src/coreclr/src/tools/r2rdump/CommandLineOptions.cs b/src/coreclr/tools/r2rdump/CommandLineOptions.cs similarity index 100% rename from src/coreclr/src/tools/r2rdump/CommandLineOptions.cs rename to src/coreclr/tools/r2rdump/CommandLineOptions.cs diff --git a/src/coreclr/src/tools/r2rdump/CoreDisTools.cs b/src/coreclr/tools/r2rdump/CoreDisTools.cs similarity index 100% rename from src/coreclr/src/tools/r2rdump/CoreDisTools.cs rename to src/coreclr/tools/r2rdump/CoreDisTools.cs diff --git a/src/coreclr/src/tools/r2rdump/Extensions.cs b/src/coreclr/tools/r2rdump/Extensions.cs similarity index 100% rename from src/coreclr/src/tools/r2rdump/Extensions.cs rename to src/coreclr/tools/r2rdump/Extensions.cs diff --git a/src/coreclr/src/tools/r2rdump/ISymNGenWriter.cs b/src/coreclr/tools/r2rdump/ISymNGenWriter.cs similarity index 100% rename from src/coreclr/src/tools/r2rdump/ISymNGenWriter.cs rename to src/coreclr/tools/r2rdump/ISymNGenWriter.cs diff --git a/src/coreclr/src/tools/r2rdump/PdbWriter.cs b/src/coreclr/tools/r2rdump/PdbWriter.cs similarity index 100% rename from src/coreclr/src/tools/r2rdump/PdbWriter.cs rename to src/coreclr/tools/r2rdump/PdbWriter.cs diff --git a/src/coreclr/src/tools/r2rdump/R2RDiff.cs b/src/coreclr/tools/r2rdump/R2RDiff.cs similarity index 100% rename from src/coreclr/src/tools/r2rdump/R2RDiff.cs rename to src/coreclr/tools/r2rdump/R2RDiff.cs diff --git a/src/coreclr/src/tools/r2rdump/R2RDump.cs b/src/coreclr/tools/r2rdump/R2RDump.cs similarity index 100% rename from src/coreclr/src/tools/r2rdump/R2RDump.cs rename to src/coreclr/tools/r2rdump/R2RDump.cs diff --git a/src/coreclr/src/tools/r2rdump/R2RDump.csproj b/src/coreclr/tools/r2rdump/R2RDump.csproj similarity index 100% rename from src/coreclr/src/tools/r2rdump/R2RDump.csproj rename to src/coreclr/tools/r2rdump/R2RDump.csproj diff --git a/src/coreclr/src/tools/r2rdump/R2RDump.sln b/src/coreclr/tools/r2rdump/R2RDump.sln similarity index 100% rename from src/coreclr/src/tools/r2rdump/R2RDump.sln rename to src/coreclr/tools/r2rdump/R2RDump.sln diff --git a/src/coreclr/src/tools/r2rdump/R2RFormat.png b/src/coreclr/tools/r2rdump/R2RFormat.png similarity index 100% rename from src/coreclr/src/tools/r2rdump/R2RFormat.png rename to src/coreclr/tools/r2rdump/R2RFormat.png diff --git a/src/coreclr/src/tools/r2rdump/README.md b/src/coreclr/tools/r2rdump/README.md similarity index 100% rename from src/coreclr/src/tools/r2rdump/README.md rename to src/coreclr/tools/r2rdump/README.md diff --git a/src/coreclr/src/tools/r2rdump/TextDumper.cs b/src/coreclr/tools/r2rdump/TextDumper.cs similarity index 100% rename from src/coreclr/src/tools/r2rdump/TextDumper.cs rename to src/coreclr/tools/r2rdump/TextDumper.cs diff --git a/src/coreclr/src/tools/r2rtest/Buckets.cs b/src/coreclr/tools/r2rtest/Buckets.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/Buckets.cs rename to src/coreclr/tools/r2rtest/Buckets.cs diff --git a/src/coreclr/src/tools/r2rtest/BuildFolder.cs b/src/coreclr/tools/r2rtest/BuildFolder.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/BuildFolder.cs rename to src/coreclr/tools/r2rtest/BuildFolder.cs diff --git a/src/coreclr/src/tools/r2rtest/BuildFolderSet.cs b/src/coreclr/tools/r2rtest/BuildFolderSet.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/BuildFolderSet.cs rename to src/coreclr/tools/r2rtest/BuildFolderSet.cs diff --git a/src/coreclr/src/tools/r2rtest/BuildOptions.cs b/src/coreclr/tools/r2rtest/BuildOptions.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/BuildOptions.cs rename to src/coreclr/tools/r2rtest/BuildOptions.cs diff --git a/src/coreclr/src/tools/r2rtest/CommandLineOptions.cs b/src/coreclr/tools/r2rtest/CommandLineOptions.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/CommandLineOptions.cs rename to src/coreclr/tools/r2rtest/CommandLineOptions.cs diff --git a/src/coreclr/src/tools/r2rtest/Commands/CompileDirectoryCommand.cs b/src/coreclr/tools/r2rtest/Commands/CompileDirectoryCommand.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/Commands/CompileDirectoryCommand.cs rename to src/coreclr/tools/r2rtest/Commands/CompileDirectoryCommand.cs diff --git a/src/coreclr/src/tools/r2rtest/Commands/CompileFrameworkCommand.cs b/src/coreclr/tools/r2rtest/Commands/CompileFrameworkCommand.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/Commands/CompileFrameworkCommand.cs rename to src/coreclr/tools/r2rtest/Commands/CompileFrameworkCommand.cs diff --git a/src/coreclr/src/tools/r2rtest/Commands/CompileNugetCommand.cs b/src/coreclr/tools/r2rtest/Commands/CompileNugetCommand.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/Commands/CompileNugetCommand.cs rename to src/coreclr/tools/r2rtest/Commands/CompileNugetCommand.cs diff --git a/src/coreclr/src/tools/r2rtest/Commands/CompileSerpCommand.cs b/src/coreclr/tools/r2rtest/Commands/CompileSerpCommand.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/Commands/CompileSerpCommand.cs rename to src/coreclr/tools/r2rtest/Commands/CompileSerpCommand.cs diff --git a/src/coreclr/src/tools/r2rtest/Commands/CompileSubtreeCommand.cs b/src/coreclr/tools/r2rtest/Commands/CompileSubtreeCommand.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/Commands/CompileSubtreeCommand.cs rename to src/coreclr/tools/r2rtest/Commands/CompileSubtreeCommand.cs diff --git a/src/coreclr/src/tools/r2rtest/CompilerRunner.cs b/src/coreclr/tools/r2rtest/CompilerRunner.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/CompilerRunner.cs rename to src/coreclr/tools/r2rtest/CompilerRunner.cs diff --git a/src/coreclr/src/tools/r2rtest/ComputeManagedAssemblies.cs b/src/coreclr/tools/r2rtest/ComputeManagedAssemblies.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/ComputeManagedAssemblies.cs rename to src/coreclr/tools/r2rtest/ComputeManagedAssemblies.cs diff --git a/src/coreclr/src/tools/r2rtest/Crossgen2Runner.cs b/src/coreclr/tools/r2rtest/Crossgen2Runner.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/Crossgen2Runner.cs rename to src/coreclr/tools/r2rtest/Crossgen2Runner.cs diff --git a/src/coreclr/src/tools/r2rtest/CrossgenRunner.cs b/src/coreclr/tools/r2rtest/CrossgenRunner.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/CrossgenRunner.cs rename to src/coreclr/tools/r2rtest/CrossgenRunner.cs diff --git a/src/coreclr/src/tools/r2rtest/DotnetCli.cs b/src/coreclr/tools/r2rtest/DotnetCli.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/DotnetCli.cs rename to src/coreclr/tools/r2rtest/DotnetCli.cs diff --git a/src/coreclr/src/tools/r2rtest/JitRunner.cs b/src/coreclr/tools/r2rtest/JitRunner.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/JitRunner.cs rename to src/coreclr/tools/r2rtest/JitRunner.cs diff --git a/src/coreclr/src/tools/r2rtest/Linux.cs b/src/coreclr/tools/r2rtest/Linux.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/Linux.cs rename to src/coreclr/tools/r2rtest/Linux.cs diff --git a/src/coreclr/src/tools/r2rtest/ParallelRunner.cs b/src/coreclr/tools/r2rtest/ParallelRunner.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/ParallelRunner.cs rename to src/coreclr/tools/r2rtest/ParallelRunner.cs diff --git a/src/coreclr/src/tools/r2rtest/PathHelpers.cs b/src/coreclr/tools/r2rtest/PathHelpers.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/PathHelpers.cs rename to src/coreclr/tools/r2rtest/PathHelpers.cs diff --git a/src/coreclr/src/tools/r2rtest/PerfEventSourceListener.cs b/src/coreclr/tools/r2rtest/PerfEventSourceListener.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/PerfEventSourceListener.cs rename to src/coreclr/tools/r2rtest/PerfEventSourceListener.cs diff --git a/src/coreclr/src/tools/r2rtest/ProcessRunner.cs b/src/coreclr/tools/r2rtest/ProcessRunner.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/ProcessRunner.cs rename to src/coreclr/tools/r2rtest/ProcessRunner.cs diff --git a/src/coreclr/src/tools/r2rtest/Program.cs b/src/coreclr/tools/r2rtest/Program.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/Program.cs rename to src/coreclr/tools/r2rtest/Program.cs diff --git a/src/coreclr/src/tools/r2rtest/R2RTest.csproj b/src/coreclr/tools/r2rtest/R2RTest.csproj similarity index 100% rename from src/coreclr/src/tools/r2rtest/R2RTest.csproj rename to src/coreclr/tools/r2rtest/R2RTest.csproj diff --git a/src/coreclr/src/tools/r2rtest/ReadyToRunJittedMethods.cs b/src/coreclr/tools/r2rtest/ReadyToRunJittedMethods.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/ReadyToRunJittedMethods.cs rename to src/coreclr/tools/r2rtest/ReadyToRunJittedMethods.cs diff --git a/src/coreclr/src/tools/r2rtest/TestExclusion.cs b/src/coreclr/tools/r2rtest/TestExclusion.cs similarity index 100% rename from src/coreclr/src/tools/r2rtest/TestExclusion.cs rename to src/coreclr/tools/r2rtest/TestExclusion.cs diff --git a/src/coreclr/src/tools/runincontext/runincontext.cs b/src/coreclr/tools/runincontext/runincontext.cs similarity index 100% rename from src/coreclr/src/tools/runincontext/runincontext.cs rename to src/coreclr/tools/runincontext/runincontext.cs diff --git a/src/coreclr/src/tools/runincontext/runincontext.csproj b/src/coreclr/tools/runincontext/runincontext.csproj similarity index 100% rename from src/coreclr/src/tools/runincontext/runincontext.csproj rename to src/coreclr/tools/runincontext/runincontext.csproj diff --git a/src/coreclr/src/tools/util/consoleargs.cpp b/src/coreclr/tools/util/consoleargs.cpp similarity index 100% rename from src/coreclr/src/tools/util/consoleargs.cpp rename to src/coreclr/tools/util/consoleargs.cpp diff --git a/src/coreclr/src/tools/util/consoleargs.h b/src/coreclr/tools/util/consoleargs.h similarity index 100% rename from src/coreclr/src/tools/util/consoleargs.h rename to src/coreclr/tools/util/consoleargs.h diff --git a/src/coreclr/src/tools/util/list.h b/src/coreclr/tools/util/list.h similarity index 100% rename from src/coreclr/src/tools/util/list.h rename to src/coreclr/tools/util/list.h diff --git a/src/coreclr/src/tools/util/tree.h b/src/coreclr/tools/util/tree.h similarity index 100% rename from src/coreclr/src/tools/util/tree.h rename to src/coreclr/tools/util/tree.h diff --git a/src/coreclr/src/unwinder/CMakeLists.txt b/src/coreclr/unwinder/CMakeLists.txt similarity index 81% rename from src/coreclr/src/unwinder/CMakeLists.txt rename to src/coreclr/unwinder/CMakeLists.txt index e9af2458140d1..e00e32242e9be 100644 --- a/src/coreclr/src/unwinder/CMakeLists.txt +++ b/src/coreclr/unwinder/CMakeLists.txt @@ -1,11 +1,11 @@ include_directories(BEFORE ${VM_DIR}) include_directories(BEFORE ${VM_DIR}/${ARCH_SOURCES_DIR}) include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}) -include_directories(BEFORE ${CLR_DIR}/src/unwinder) -include_directories(${CLR_DIR}/src/debug/ee) -include_directories(${CLR_DIR}/src/gc) -include_directories(${CLR_DIR}/src/gcdump) -include_directories(${CLR_DIR}/src/debug/daccess) +include_directories(BEFORE ${CLR_DIR}/unwinder) +include_directories(${CLR_DIR}/debug/ee) +include_directories(${CLR_DIR}/gc) +include_directories(${CLR_DIR}/gcdump) +include_directories(${CLR_DIR}/debug/daccess) set(UNWINDER_SOURCES unwinder.cpp diff --git a/src/coreclr/src/unwinder/amd64/dbs_stack_x64.cpp b/src/coreclr/unwinder/amd64/dbs_stack_x64.cpp similarity index 100% rename from src/coreclr/src/unwinder/amd64/dbs_stack_x64.cpp rename to src/coreclr/unwinder/amd64/dbs_stack_x64.cpp diff --git a/src/coreclr/src/unwinder/amd64/unwinder_amd64.cpp b/src/coreclr/unwinder/amd64/unwinder_amd64.cpp similarity index 100% rename from src/coreclr/src/unwinder/amd64/unwinder_amd64.cpp rename to src/coreclr/unwinder/amd64/unwinder_amd64.cpp diff --git a/src/coreclr/src/unwinder/amd64/unwinder_amd64.h b/src/coreclr/unwinder/amd64/unwinder_amd64.h similarity index 100% rename from src/coreclr/src/unwinder/amd64/unwinder_amd64.h rename to src/coreclr/unwinder/amd64/unwinder_amd64.h diff --git a/src/coreclr/src/unwinder/arm/unwinder_arm.cpp b/src/coreclr/unwinder/arm/unwinder_arm.cpp similarity index 100% rename from src/coreclr/src/unwinder/arm/unwinder_arm.cpp rename to src/coreclr/unwinder/arm/unwinder_arm.cpp diff --git a/src/coreclr/src/unwinder/arm/unwinder_arm.h b/src/coreclr/unwinder/arm/unwinder_arm.h similarity index 100% rename from src/coreclr/src/unwinder/arm/unwinder_arm.h rename to src/coreclr/unwinder/arm/unwinder_arm.h diff --git a/src/coreclr/src/unwinder/arm64/unwinder_arm64.cpp b/src/coreclr/unwinder/arm64/unwinder_arm64.cpp similarity index 100% rename from src/coreclr/src/unwinder/arm64/unwinder_arm64.cpp rename to src/coreclr/unwinder/arm64/unwinder_arm64.cpp diff --git a/src/coreclr/src/unwinder/arm64/unwinder_arm64.h b/src/coreclr/unwinder/arm64/unwinder_arm64.h similarity index 100% rename from src/coreclr/src/unwinder/arm64/unwinder_arm64.h rename to src/coreclr/unwinder/arm64/unwinder_arm64.h diff --git a/src/coreclr/src/unwinder/i386/unwinder_i386.cpp b/src/coreclr/unwinder/i386/unwinder_i386.cpp similarity index 100% rename from src/coreclr/src/unwinder/i386/unwinder_i386.cpp rename to src/coreclr/unwinder/i386/unwinder_i386.cpp diff --git a/src/coreclr/src/unwinder/i386/unwinder_i386.h b/src/coreclr/unwinder/i386/unwinder_i386.h similarity index 100% rename from src/coreclr/src/unwinder/i386/unwinder_i386.h rename to src/coreclr/unwinder/i386/unwinder_i386.h diff --git a/src/coreclr/src/unwinder/stdafx.cpp b/src/coreclr/unwinder/stdafx.cpp similarity index 100% rename from src/coreclr/src/unwinder/stdafx.cpp rename to src/coreclr/unwinder/stdafx.cpp diff --git a/src/coreclr/src/unwinder/stdafx.h b/src/coreclr/unwinder/stdafx.h similarity index 100% rename from src/coreclr/src/unwinder/stdafx.h rename to src/coreclr/unwinder/stdafx.h diff --git a/src/coreclr/src/unwinder/unwinder.cpp b/src/coreclr/unwinder/unwinder.cpp similarity index 100% rename from src/coreclr/src/unwinder/unwinder.cpp rename to src/coreclr/unwinder/unwinder.cpp diff --git a/src/coreclr/src/unwinder/unwinder.h b/src/coreclr/unwinder/unwinder.h similarity index 100% rename from src/coreclr/src/unwinder/unwinder.h rename to src/coreclr/unwinder/unwinder.h diff --git a/src/coreclr/src/utilcode/CMakeLists.txt b/src/coreclr/utilcode/CMakeLists.txt similarity index 100% rename from src/coreclr/src/utilcode/CMakeLists.txt rename to src/coreclr/utilcode/CMakeLists.txt diff --git a/src/coreclr/src/utilcode/arraylist.cpp b/src/coreclr/utilcode/arraylist.cpp similarity index 100% rename from src/coreclr/src/utilcode/arraylist.cpp rename to src/coreclr/utilcode/arraylist.cpp diff --git a/src/coreclr/src/utilcode/bitvector.cpp b/src/coreclr/utilcode/bitvector.cpp similarity index 100% rename from src/coreclr/src/utilcode/bitvector.cpp rename to src/coreclr/utilcode/bitvector.cpp diff --git a/src/coreclr/src/utilcode/ccomprc.cpp b/src/coreclr/utilcode/ccomprc.cpp similarity index 100% rename from src/coreclr/src/utilcode/ccomprc.cpp rename to src/coreclr/utilcode/ccomprc.cpp diff --git a/src/coreclr/src/utilcode/check.cpp b/src/coreclr/utilcode/check.cpp similarity index 100% rename from src/coreclr/src/utilcode/check.cpp rename to src/coreclr/utilcode/check.cpp diff --git a/src/coreclr/src/utilcode/clrconfig.cpp b/src/coreclr/utilcode/clrconfig.cpp similarity index 100% rename from src/coreclr/src/utilcode/clrconfig.cpp rename to src/coreclr/utilcode/clrconfig.cpp diff --git a/src/coreclr/src/utilcode/clrhelpers.cpp b/src/coreclr/utilcode/clrhelpers.cpp similarity index 100% rename from src/coreclr/src/utilcode/clrhelpers.cpp rename to src/coreclr/utilcode/clrhelpers.cpp diff --git a/src/coreclr/src/utilcode/clrhost.cpp b/src/coreclr/utilcode/clrhost.cpp similarity index 100% rename from src/coreclr/src/utilcode/clrhost.cpp rename to src/coreclr/utilcode/clrhost.cpp diff --git a/src/coreclr/src/utilcode/clrhost_nodependencies.cpp b/src/coreclr/utilcode/clrhost_nodependencies.cpp similarity index 100% rename from src/coreclr/src/utilcode/clrhost_nodependencies.cpp rename to src/coreclr/utilcode/clrhost_nodependencies.cpp diff --git a/src/coreclr/src/utilcode/collections.cpp b/src/coreclr/utilcode/collections.cpp similarity index 100% rename from src/coreclr/src/utilcode/collections.cpp rename to src/coreclr/utilcode/collections.cpp diff --git a/src/coreclr/src/utilcode/comex.cpp b/src/coreclr/utilcode/comex.cpp similarity index 100% rename from src/coreclr/src/utilcode/comex.cpp rename to src/coreclr/utilcode/comex.cpp diff --git a/src/coreclr/src/utilcode/configuration.cpp b/src/coreclr/utilcode/configuration.cpp similarity index 100% rename from src/coreclr/src/utilcode/configuration.cpp rename to src/coreclr/utilcode/configuration.cpp diff --git a/src/coreclr/src/utilcode/corimage.cpp b/src/coreclr/utilcode/corimage.cpp similarity index 100% rename from src/coreclr/src/utilcode/corimage.cpp rename to src/coreclr/utilcode/corimage.cpp diff --git a/src/coreclr/src/utilcode/cycletimer.cpp b/src/coreclr/utilcode/cycletimer.cpp similarity index 100% rename from src/coreclr/src/utilcode/cycletimer.cpp rename to src/coreclr/utilcode/cycletimer.cpp diff --git a/src/coreclr/src/utilcode/dacutil.cpp b/src/coreclr/utilcode/dacutil.cpp similarity index 100% rename from src/coreclr/src/utilcode/dacutil.cpp rename to src/coreclr/utilcode/dacutil.cpp diff --git a/src/coreclr/src/utilcode/debug.cpp b/src/coreclr/utilcode/debug.cpp similarity index 100% rename from src/coreclr/src/utilcode/debug.cpp rename to src/coreclr/utilcode/debug.cpp diff --git a/src/coreclr/src/utilcode/dlwrap.cpp b/src/coreclr/utilcode/dlwrap.cpp similarity index 100% rename from src/coreclr/src/utilcode/dlwrap.cpp rename to src/coreclr/utilcode/dlwrap.cpp diff --git a/src/coreclr/src/utilcode/ex.cpp b/src/coreclr/utilcode/ex.cpp similarity index 100% rename from src/coreclr/src/utilcode/ex.cpp rename to src/coreclr/utilcode/ex.cpp diff --git a/src/coreclr/src/utilcode/format1.cpp b/src/coreclr/utilcode/format1.cpp similarity index 100% rename from src/coreclr/src/utilcode/format1.cpp rename to src/coreclr/utilcode/format1.cpp diff --git a/src/coreclr/src/utilcode/fstream.cpp b/src/coreclr/utilcode/fstream.cpp similarity index 100% rename from src/coreclr/src/utilcode/fstream.cpp rename to src/coreclr/utilcode/fstream.cpp diff --git a/src/coreclr/src/utilcode/fstring.cpp b/src/coreclr/utilcode/fstring.cpp similarity index 100% rename from src/coreclr/src/utilcode/fstring.cpp rename to src/coreclr/utilcode/fstring.cpp diff --git a/src/coreclr/src/utilcode/guidfromname.cpp b/src/coreclr/utilcode/guidfromname.cpp similarity index 100% rename from src/coreclr/src/utilcode/guidfromname.cpp rename to src/coreclr/utilcode/guidfromname.cpp diff --git a/src/coreclr/src/utilcode/hostimpl.cpp b/src/coreclr/utilcode/hostimpl.cpp similarity index 100% rename from src/coreclr/src/utilcode/hostimpl.cpp rename to src/coreclr/utilcode/hostimpl.cpp diff --git a/src/coreclr/src/utilcode/iallocator.cpp b/src/coreclr/utilcode/iallocator.cpp similarity index 100% rename from src/coreclr/src/utilcode/iallocator.cpp rename to src/coreclr/utilcode/iallocator.cpp diff --git a/src/coreclr/src/utilcode/ilformatter.cpp b/src/coreclr/utilcode/ilformatter.cpp similarity index 100% rename from src/coreclr/src/utilcode/ilformatter.cpp rename to src/coreclr/utilcode/ilformatter.cpp diff --git a/src/coreclr/src/utilcode/loaderheap.cpp b/src/coreclr/utilcode/loaderheap.cpp similarity index 100% rename from src/coreclr/src/utilcode/loaderheap.cpp rename to src/coreclr/utilcode/loaderheap.cpp diff --git a/src/coreclr/src/utilcode/log.cpp b/src/coreclr/utilcode/log.cpp similarity index 100% rename from src/coreclr/src/utilcode/log.cpp rename to src/coreclr/utilcode/log.cpp diff --git a/src/coreclr/src/utilcode/longfilepathwrappers.cpp b/src/coreclr/utilcode/longfilepathwrappers.cpp similarity index 100% rename from src/coreclr/src/utilcode/longfilepathwrappers.cpp rename to src/coreclr/utilcode/longfilepathwrappers.cpp diff --git a/src/coreclr/src/utilcode/makepath.cpp b/src/coreclr/utilcode/makepath.cpp similarity index 100% rename from src/coreclr/src/utilcode/makepath.cpp rename to src/coreclr/utilcode/makepath.cpp diff --git a/src/coreclr/src/utilcode/md5.cpp b/src/coreclr/utilcode/md5.cpp similarity index 100% rename from src/coreclr/src/utilcode/md5.cpp rename to src/coreclr/utilcode/md5.cpp diff --git a/src/coreclr/src/utilcode/memorypool.cpp b/src/coreclr/utilcode/memorypool.cpp similarity index 100% rename from src/coreclr/src/utilcode/memorypool.cpp rename to src/coreclr/utilcode/memorypool.cpp diff --git a/src/coreclr/src/utilcode/namespaceutil.cpp b/src/coreclr/utilcode/namespaceutil.cpp similarity index 100% rename from src/coreclr/src/utilcode/namespaceutil.cpp rename to src/coreclr/utilcode/namespaceutil.cpp diff --git a/src/coreclr/src/utilcode/opinfo.cpp b/src/coreclr/utilcode/opinfo.cpp similarity index 100% rename from src/coreclr/src/utilcode/opinfo.cpp rename to src/coreclr/utilcode/opinfo.cpp diff --git a/src/coreclr/src/utilcode/outstring.cpp b/src/coreclr/utilcode/outstring.cpp similarity index 100% rename from src/coreclr/src/utilcode/outstring.cpp rename to src/coreclr/utilcode/outstring.cpp diff --git a/src/coreclr/src/utilcode/pedecoder.cpp b/src/coreclr/utilcode/pedecoder.cpp similarity index 100% rename from src/coreclr/src/utilcode/pedecoder.cpp rename to src/coreclr/utilcode/pedecoder.cpp diff --git a/src/coreclr/src/utilcode/peinformation.cpp b/src/coreclr/utilcode/peinformation.cpp similarity index 100% rename from src/coreclr/src/utilcode/peinformation.cpp rename to src/coreclr/utilcode/peinformation.cpp diff --git a/src/coreclr/src/utilcode/posterror.cpp b/src/coreclr/utilcode/posterror.cpp similarity index 100% rename from src/coreclr/src/utilcode/posterror.cpp rename to src/coreclr/utilcode/posterror.cpp diff --git a/src/coreclr/src/utilcode/prettyprintsig.cpp b/src/coreclr/utilcode/prettyprintsig.cpp similarity index 100% rename from src/coreclr/src/utilcode/prettyprintsig.cpp rename to src/coreclr/utilcode/prettyprintsig.cpp diff --git a/src/coreclr/src/utilcode/regutil.cpp b/src/coreclr/utilcode/regutil.cpp similarity index 100% rename from src/coreclr/src/utilcode/regutil.cpp rename to src/coreclr/utilcode/regutil.cpp diff --git a/src/coreclr/src/utilcode/safewrap.cpp b/src/coreclr/utilcode/safewrap.cpp similarity index 100% rename from src/coreclr/src/utilcode/safewrap.cpp rename to src/coreclr/utilcode/safewrap.cpp diff --git a/src/coreclr/src/utilcode/sbuffer.cpp b/src/coreclr/utilcode/sbuffer.cpp similarity index 100% rename from src/coreclr/src/utilcode/sbuffer.cpp rename to src/coreclr/utilcode/sbuffer.cpp diff --git a/src/coreclr/src/utilcode/securityutil.cpp b/src/coreclr/utilcode/securityutil.cpp similarity index 100% rename from src/coreclr/src/utilcode/securityutil.cpp rename to src/coreclr/utilcode/securityutil.cpp diff --git a/src/coreclr/src/utilcode/securitywrapper.cpp b/src/coreclr/utilcode/securitywrapper.cpp similarity index 100% rename from src/coreclr/src/utilcode/securitywrapper.cpp rename to src/coreclr/utilcode/securitywrapper.cpp diff --git a/src/coreclr/src/utilcode/sha1.cpp b/src/coreclr/utilcode/sha1.cpp similarity index 100% rename from src/coreclr/src/utilcode/sha1.cpp rename to src/coreclr/utilcode/sha1.cpp diff --git a/src/coreclr/src/utilcode/sigbuilder.cpp b/src/coreclr/utilcode/sigbuilder.cpp similarity index 100% rename from src/coreclr/src/utilcode/sigbuilder.cpp rename to src/coreclr/utilcode/sigbuilder.cpp diff --git a/src/coreclr/src/utilcode/sigparser.cpp b/src/coreclr/utilcode/sigparser.cpp similarity index 100% rename from src/coreclr/src/utilcode/sigparser.cpp rename to src/coreclr/utilcode/sigparser.cpp diff --git a/src/coreclr/src/utilcode/splitpath.cpp b/src/coreclr/utilcode/splitpath.cpp similarity index 100% rename from src/coreclr/src/utilcode/splitpath.cpp rename to src/coreclr/utilcode/splitpath.cpp diff --git a/src/coreclr/src/utilcode/sstring.cpp b/src/coreclr/utilcode/sstring.cpp similarity index 100% rename from src/coreclr/src/utilcode/sstring.cpp rename to src/coreclr/utilcode/sstring.cpp diff --git a/src/coreclr/src/utilcode/sstring_com.cpp b/src/coreclr/utilcode/sstring_com.cpp similarity index 100% rename from src/coreclr/src/utilcode/sstring_com.cpp rename to src/coreclr/utilcode/sstring_com.cpp diff --git a/src/coreclr/src/utilcode/stacktrace.cpp b/src/coreclr/utilcode/stacktrace.cpp similarity index 100% rename from src/coreclr/src/utilcode/stacktrace.cpp rename to src/coreclr/utilcode/stacktrace.cpp diff --git a/src/coreclr/src/utilcode/stdafx.h b/src/coreclr/utilcode/stdafx.h similarity index 100% rename from src/coreclr/src/utilcode/stdafx.h rename to src/coreclr/utilcode/stdafx.h diff --git a/src/coreclr/src/utilcode/stgpool.cpp b/src/coreclr/utilcode/stgpool.cpp similarity index 100% rename from src/coreclr/src/utilcode/stgpool.cpp rename to src/coreclr/utilcode/stgpool.cpp diff --git a/src/coreclr/src/utilcode/stgpooli.cpp b/src/coreclr/utilcode/stgpooli.cpp similarity index 100% rename from src/coreclr/src/utilcode/stgpooli.cpp rename to src/coreclr/utilcode/stgpooli.cpp diff --git a/src/coreclr/src/utilcode/stgpoolreadonly.cpp b/src/coreclr/utilcode/stgpoolreadonly.cpp similarity index 100% rename from src/coreclr/src/utilcode/stgpoolreadonly.cpp rename to src/coreclr/utilcode/stgpoolreadonly.cpp diff --git a/src/coreclr/src/utilcode/stresslog.cpp b/src/coreclr/utilcode/stresslog.cpp similarity index 100% rename from src/coreclr/src/utilcode/stresslog.cpp rename to src/coreclr/utilcode/stresslog.cpp diff --git a/src/coreclr/src/utilcode/util.cpp b/src/coreclr/utilcode/util.cpp similarity index 100% rename from src/coreclr/src/utilcode/util.cpp rename to src/coreclr/utilcode/util.cpp diff --git a/src/coreclr/src/utilcode/util_nodependencies.cpp b/src/coreclr/utilcode/util_nodependencies.cpp similarity index 100% rename from src/coreclr/src/utilcode/util_nodependencies.cpp rename to src/coreclr/utilcode/util_nodependencies.cpp diff --git a/src/coreclr/src/utilcode/utilmessagebox.cpp b/src/coreclr/utilcode/utilmessagebox.cpp similarity index 100% rename from src/coreclr/src/utilcode/utilmessagebox.cpp rename to src/coreclr/utilcode/utilmessagebox.cpp diff --git a/src/coreclr/src/utilcode/utsem.cpp b/src/coreclr/utilcode/utsem.cpp similarity index 100% rename from src/coreclr/src/utilcode/utsem.cpp rename to src/coreclr/utilcode/utsem.cpp diff --git a/src/coreclr/src/utilcode/winfix.cpp b/src/coreclr/utilcode/winfix.cpp similarity index 100% rename from src/coreclr/src/utilcode/winfix.cpp rename to src/coreclr/utilcode/winfix.cpp diff --git a/src/coreclr/src/utilcode/yieldprocessornormalized.cpp b/src/coreclr/utilcode/yieldprocessornormalized.cpp similarity index 100% rename from src/coreclr/src/utilcode/yieldprocessornormalized.cpp rename to src/coreclr/utilcode/yieldprocessornormalized.cpp diff --git a/src/coreclr/src/vm/.vscode/c_cpp_properties.json b/src/coreclr/vm/.vscode/c_cpp_properties.json similarity index 100% rename from src/coreclr/src/vm/.vscode/c_cpp_properties.json rename to src/coreclr/vm/.vscode/c_cpp_properties.json diff --git a/src/coreclr/src/vm/CMakeLists.txt b/src/coreclr/vm/CMakeLists.txt similarity index 100% rename from src/coreclr/src/vm/CMakeLists.txt rename to src/coreclr/vm/CMakeLists.txt diff --git a/src/coreclr/src/vm/ClrEtwAll.man b/src/coreclr/vm/ClrEtwAll.man similarity index 100% rename from src/coreclr/src/vm/ClrEtwAll.man rename to src/coreclr/vm/ClrEtwAll.man diff --git a/src/coreclr/src/vm/ClrEtwAllMeta.lst b/src/coreclr/vm/ClrEtwAllMeta.lst similarity index 100% rename from src/coreclr/src/vm/ClrEtwAllMeta.lst rename to src/coreclr/vm/ClrEtwAllMeta.lst diff --git a/src/coreclr/src/vm/amd64/AsmHelpers.asm b/src/coreclr/vm/amd64/AsmHelpers.asm similarity index 100% rename from src/coreclr/src/vm/amd64/AsmHelpers.asm rename to src/coreclr/vm/amd64/AsmHelpers.asm diff --git a/src/coreclr/src/vm/amd64/AsmMacros.inc b/src/coreclr/vm/amd64/AsmMacros.inc similarity index 100% rename from src/coreclr/src/vm/amd64/AsmMacros.inc rename to src/coreclr/vm/amd64/AsmMacros.inc diff --git a/src/coreclr/src/vm/amd64/CallDescrWorkerAMD64.asm b/src/coreclr/vm/amd64/CallDescrWorkerAMD64.asm similarity index 100% rename from src/coreclr/src/vm/amd64/CallDescrWorkerAMD64.asm rename to src/coreclr/vm/amd64/CallDescrWorkerAMD64.asm diff --git a/src/coreclr/src/vm/amd64/ComCallPreStub.asm b/src/coreclr/vm/amd64/ComCallPreStub.asm similarity index 100% rename from src/coreclr/src/vm/amd64/ComCallPreStub.asm rename to src/coreclr/vm/amd64/ComCallPreStub.asm diff --git a/src/coreclr/src/vm/amd64/CrtHelpers.asm b/src/coreclr/vm/amd64/CrtHelpers.asm similarity index 100% rename from src/coreclr/src/vm/amd64/CrtHelpers.asm rename to src/coreclr/vm/amd64/CrtHelpers.asm diff --git a/src/coreclr/src/vm/amd64/ExternalMethodFixupThunk.asm b/src/coreclr/vm/amd64/ExternalMethodFixupThunk.asm similarity index 100% rename from src/coreclr/src/vm/amd64/ExternalMethodFixupThunk.asm rename to src/coreclr/vm/amd64/ExternalMethodFixupThunk.asm diff --git a/src/coreclr/src/vm/amd64/GenericComCallStubs.asm b/src/coreclr/vm/amd64/GenericComCallStubs.asm similarity index 100% rename from src/coreclr/src/vm/amd64/GenericComCallStubs.asm rename to src/coreclr/vm/amd64/GenericComCallStubs.asm diff --git a/src/coreclr/src/vm/amd64/GenericComPlusCallStubs.asm b/src/coreclr/vm/amd64/GenericComPlusCallStubs.asm similarity index 100% rename from src/coreclr/src/vm/amd64/GenericComPlusCallStubs.asm rename to src/coreclr/vm/amd64/GenericComPlusCallStubs.asm diff --git a/src/coreclr/src/vm/amd64/JitHelpers_Fast.asm b/src/coreclr/vm/amd64/JitHelpers_Fast.asm similarity index 100% rename from src/coreclr/src/vm/amd64/JitHelpers_Fast.asm rename to src/coreclr/vm/amd64/JitHelpers_Fast.asm diff --git a/src/coreclr/src/vm/amd64/JitHelpers_FastWriteBarriers.asm b/src/coreclr/vm/amd64/JitHelpers_FastWriteBarriers.asm similarity index 100% rename from src/coreclr/src/vm/amd64/JitHelpers_FastWriteBarriers.asm rename to src/coreclr/vm/amd64/JitHelpers_FastWriteBarriers.asm diff --git a/src/coreclr/src/vm/amd64/JitHelpers_InlineGetThread.asm b/src/coreclr/vm/amd64/JitHelpers_InlineGetThread.asm similarity index 100% rename from src/coreclr/src/vm/amd64/JitHelpers_InlineGetThread.asm rename to src/coreclr/vm/amd64/JitHelpers_InlineGetThread.asm diff --git a/src/coreclr/src/vm/amd64/JitHelpers_SingleAppDomain.asm b/src/coreclr/vm/amd64/JitHelpers_SingleAppDomain.asm similarity index 100% rename from src/coreclr/src/vm/amd64/JitHelpers_SingleAppDomain.asm rename to src/coreclr/vm/amd64/JitHelpers_SingleAppDomain.asm diff --git a/src/coreclr/src/vm/amd64/JitHelpers_Slow.asm b/src/coreclr/vm/amd64/JitHelpers_Slow.asm similarity index 100% rename from src/coreclr/src/vm/amd64/JitHelpers_Slow.asm rename to src/coreclr/vm/amd64/JitHelpers_Slow.asm diff --git a/src/coreclr/src/vm/amd64/PInvokeStubs.asm b/src/coreclr/vm/amd64/PInvokeStubs.asm similarity index 100% rename from src/coreclr/src/vm/amd64/PInvokeStubs.asm rename to src/coreclr/vm/amd64/PInvokeStubs.asm diff --git a/src/coreclr/src/vm/amd64/RedirectedHandledJITCase.asm b/src/coreclr/vm/amd64/RedirectedHandledJITCase.asm similarity index 100% rename from src/coreclr/src/vm/amd64/RedirectedHandledJITCase.asm rename to src/coreclr/vm/amd64/RedirectedHandledJITCase.asm diff --git a/src/coreclr/src/vm/amd64/ThePreStubAMD64.asm b/src/coreclr/vm/amd64/ThePreStubAMD64.asm similarity index 100% rename from src/coreclr/src/vm/amd64/ThePreStubAMD64.asm rename to src/coreclr/vm/amd64/ThePreStubAMD64.asm diff --git a/src/coreclr/src/vm/amd64/UMThunkStub.asm b/src/coreclr/vm/amd64/UMThunkStub.asm similarity index 100% rename from src/coreclr/src/vm/amd64/UMThunkStub.asm rename to src/coreclr/vm/amd64/UMThunkStub.asm diff --git a/src/coreclr/src/vm/amd64/VirtualCallStubAMD64.asm b/src/coreclr/vm/amd64/VirtualCallStubAMD64.asm similarity index 100% rename from src/coreclr/src/vm/amd64/VirtualCallStubAMD64.asm rename to src/coreclr/vm/amd64/VirtualCallStubAMD64.asm diff --git a/src/coreclr/src/vm/amd64/asmconstants.h b/src/coreclr/vm/amd64/asmconstants.h similarity index 100% rename from src/coreclr/src/vm/amd64/asmconstants.h rename to src/coreclr/vm/amd64/asmconstants.h diff --git a/src/coreclr/src/vm/amd64/asmhelpers.S b/src/coreclr/vm/amd64/asmhelpers.S similarity index 100% rename from src/coreclr/src/vm/amd64/asmhelpers.S rename to src/coreclr/vm/amd64/asmhelpers.S diff --git a/src/coreclr/src/vm/amd64/calldescrworkeramd64.S b/src/coreclr/vm/amd64/calldescrworkeramd64.S similarity index 100% rename from src/coreclr/src/vm/amd64/calldescrworkeramd64.S rename to src/coreclr/vm/amd64/calldescrworkeramd64.S diff --git a/src/coreclr/src/vm/amd64/cgenamd64.cpp b/src/coreclr/vm/amd64/cgenamd64.cpp similarity index 100% rename from src/coreclr/src/vm/amd64/cgenamd64.cpp rename to src/coreclr/vm/amd64/cgenamd64.cpp diff --git a/src/coreclr/src/vm/amd64/cgencpu.h b/src/coreclr/vm/amd64/cgencpu.h similarity index 100% rename from src/coreclr/src/vm/amd64/cgencpu.h rename to src/coreclr/vm/amd64/cgencpu.h diff --git a/src/coreclr/src/vm/amd64/crthelpers.S b/src/coreclr/vm/amd64/crthelpers.S similarity index 100% rename from src/coreclr/src/vm/amd64/crthelpers.S rename to src/coreclr/vm/amd64/crthelpers.S diff --git a/src/coreclr/src/vm/amd64/excepamd64.cpp b/src/coreclr/vm/amd64/excepamd64.cpp similarity index 100% rename from src/coreclr/src/vm/amd64/excepamd64.cpp rename to src/coreclr/vm/amd64/excepamd64.cpp diff --git a/src/coreclr/src/vm/amd64/excepcpu.h b/src/coreclr/vm/amd64/excepcpu.h similarity index 100% rename from src/coreclr/src/vm/amd64/excepcpu.h rename to src/coreclr/vm/amd64/excepcpu.h diff --git a/src/coreclr/src/vm/amd64/externalmethodfixupthunk.S b/src/coreclr/vm/amd64/externalmethodfixupthunk.S similarity index 100% rename from src/coreclr/src/vm/amd64/externalmethodfixupthunk.S rename to src/coreclr/vm/amd64/externalmethodfixupthunk.S diff --git a/src/coreclr/src/vm/amd64/getstate.S b/src/coreclr/vm/amd64/getstate.S similarity index 100% rename from src/coreclr/src/vm/amd64/getstate.S rename to src/coreclr/vm/amd64/getstate.S diff --git a/src/coreclr/src/vm/amd64/getstate.asm b/src/coreclr/vm/amd64/getstate.asm similarity index 100% rename from src/coreclr/src/vm/amd64/getstate.asm rename to src/coreclr/vm/amd64/getstate.asm diff --git a/src/coreclr/src/vm/amd64/gmsamd64.cpp b/src/coreclr/vm/amd64/gmsamd64.cpp similarity index 100% rename from src/coreclr/src/vm/amd64/gmsamd64.cpp rename to src/coreclr/vm/amd64/gmsamd64.cpp diff --git a/src/coreclr/src/vm/amd64/gmscpu.h b/src/coreclr/vm/amd64/gmscpu.h similarity index 100% rename from src/coreclr/src/vm/amd64/gmscpu.h rename to src/coreclr/vm/amd64/gmscpu.h diff --git a/src/coreclr/src/vm/amd64/jithelpers_fast.S b/src/coreclr/vm/amd64/jithelpers_fast.S similarity index 100% rename from src/coreclr/src/vm/amd64/jithelpers_fast.S rename to src/coreclr/vm/amd64/jithelpers_fast.S diff --git a/src/coreclr/src/vm/amd64/jithelpers_fastwritebarriers.S b/src/coreclr/vm/amd64/jithelpers_fastwritebarriers.S similarity index 100% rename from src/coreclr/src/vm/amd64/jithelpers_fastwritebarriers.S rename to src/coreclr/vm/amd64/jithelpers_fastwritebarriers.S diff --git a/src/coreclr/src/vm/amd64/jithelpers_singleappdomain.S b/src/coreclr/vm/amd64/jithelpers_singleappdomain.S similarity index 100% rename from src/coreclr/src/vm/amd64/jithelpers_singleappdomain.S rename to src/coreclr/vm/amd64/jithelpers_singleappdomain.S diff --git a/src/coreclr/src/vm/amd64/jithelpers_slow.S b/src/coreclr/vm/amd64/jithelpers_slow.S similarity index 100% rename from src/coreclr/src/vm/amd64/jithelpers_slow.S rename to src/coreclr/vm/amd64/jithelpers_slow.S diff --git a/src/coreclr/src/vm/amd64/jitinterfaceamd64.cpp b/src/coreclr/vm/amd64/jitinterfaceamd64.cpp similarity index 100% rename from src/coreclr/src/vm/amd64/jitinterfaceamd64.cpp rename to src/coreclr/vm/amd64/jitinterfaceamd64.cpp diff --git a/src/coreclr/src/vm/amd64/pinvokestubs.S b/src/coreclr/vm/amd64/pinvokestubs.S similarity index 100% rename from src/coreclr/src/vm/amd64/pinvokestubs.S rename to src/coreclr/vm/amd64/pinvokestubs.S diff --git a/src/coreclr/src/vm/amd64/profiler.cpp b/src/coreclr/vm/amd64/profiler.cpp similarity index 100% rename from src/coreclr/src/vm/amd64/profiler.cpp rename to src/coreclr/vm/amd64/profiler.cpp diff --git a/src/coreclr/src/vm/amd64/stublinkeramd64.cpp b/src/coreclr/vm/amd64/stublinkeramd64.cpp similarity index 100% rename from src/coreclr/src/vm/amd64/stublinkeramd64.cpp rename to src/coreclr/vm/amd64/stublinkeramd64.cpp diff --git a/src/coreclr/src/vm/amd64/stublinkeramd64.h b/src/coreclr/vm/amd64/stublinkeramd64.h similarity index 100% rename from src/coreclr/src/vm/amd64/stublinkeramd64.h rename to src/coreclr/vm/amd64/stublinkeramd64.h diff --git a/src/coreclr/src/vm/amd64/theprestubamd64.S b/src/coreclr/vm/amd64/theprestubamd64.S similarity index 100% rename from src/coreclr/src/vm/amd64/theprestubamd64.S rename to src/coreclr/vm/amd64/theprestubamd64.S diff --git a/src/coreclr/src/vm/amd64/umthunkstub.S b/src/coreclr/vm/amd64/umthunkstub.S similarity index 100% rename from src/coreclr/src/vm/amd64/umthunkstub.S rename to src/coreclr/vm/amd64/umthunkstub.S diff --git a/src/coreclr/src/vm/amd64/unixasmhelpers.S b/src/coreclr/vm/amd64/unixasmhelpers.S similarity index 100% rename from src/coreclr/src/vm/amd64/unixasmhelpers.S rename to src/coreclr/vm/amd64/unixasmhelpers.S diff --git a/src/coreclr/src/vm/amd64/unixstubs.cpp b/src/coreclr/vm/amd64/unixstubs.cpp similarity index 100% rename from src/coreclr/src/vm/amd64/unixstubs.cpp rename to src/coreclr/vm/amd64/unixstubs.cpp diff --git a/src/coreclr/src/vm/amd64/virtualcallstubamd64.S b/src/coreclr/vm/amd64/virtualcallstubamd64.S similarity index 100% rename from src/coreclr/src/vm/amd64/virtualcallstubamd64.S rename to src/coreclr/vm/amd64/virtualcallstubamd64.S diff --git a/src/coreclr/src/vm/amd64/virtualcallstubcpu.hpp b/src/coreclr/vm/amd64/virtualcallstubcpu.hpp similarity index 100% rename from src/coreclr/src/vm/amd64/virtualcallstubcpu.hpp rename to src/coreclr/vm/amd64/virtualcallstubcpu.hpp diff --git a/src/coreclr/src/vm/amsi.cpp b/src/coreclr/vm/amsi.cpp similarity index 100% rename from src/coreclr/src/vm/amsi.cpp rename to src/coreclr/vm/amsi.cpp diff --git a/src/coreclr/src/vm/amsi.h b/src/coreclr/vm/amsi.h similarity index 100% rename from src/coreclr/src/vm/amsi.h rename to src/coreclr/vm/amsi.h diff --git a/src/coreclr/src/vm/appdomain.cpp b/src/coreclr/vm/appdomain.cpp similarity index 100% rename from src/coreclr/src/vm/appdomain.cpp rename to src/coreclr/vm/appdomain.cpp diff --git a/src/coreclr/src/vm/appdomain.hpp b/src/coreclr/vm/appdomain.hpp similarity index 100% rename from src/coreclr/src/vm/appdomain.hpp rename to src/coreclr/vm/appdomain.hpp diff --git a/src/coreclr/src/vm/appdomain.inl b/src/coreclr/vm/appdomain.inl similarity index 100% rename from src/coreclr/src/vm/appdomain.inl rename to src/coreclr/vm/appdomain.inl diff --git a/src/coreclr/src/vm/appdomainnative.cpp b/src/coreclr/vm/appdomainnative.cpp similarity index 100% rename from src/coreclr/src/vm/appdomainnative.cpp rename to src/coreclr/vm/appdomainnative.cpp diff --git a/src/coreclr/src/vm/appdomainnative.hpp b/src/coreclr/vm/appdomainnative.hpp similarity index 100% rename from src/coreclr/src/vm/appdomainnative.hpp rename to src/coreclr/vm/appdomainnative.hpp diff --git a/src/coreclr/src/vm/argdestination.h b/src/coreclr/vm/argdestination.h similarity index 100% rename from src/coreclr/src/vm/argdestination.h rename to src/coreclr/vm/argdestination.h diff --git a/src/coreclr/src/vm/argslot.h b/src/coreclr/vm/argslot.h similarity index 100% rename from src/coreclr/src/vm/argslot.h rename to src/coreclr/vm/argslot.h diff --git a/src/coreclr/src/vm/arm/CrtHelpers.asm b/src/coreclr/vm/arm/CrtHelpers.asm similarity index 100% rename from src/coreclr/src/vm/arm/CrtHelpers.asm rename to src/coreclr/vm/arm/CrtHelpers.asm diff --git a/src/coreclr/src/vm/arm/PInvokeStubs.asm b/src/coreclr/vm/arm/PInvokeStubs.asm similarity index 100% rename from src/coreclr/src/vm/arm/PInvokeStubs.asm rename to src/coreclr/vm/arm/PInvokeStubs.asm diff --git a/src/coreclr/src/vm/arm/armsinglestepper.cpp b/src/coreclr/vm/arm/armsinglestepper.cpp similarity index 100% rename from src/coreclr/src/vm/arm/armsinglestepper.cpp rename to src/coreclr/vm/arm/armsinglestepper.cpp diff --git a/src/coreclr/src/vm/arm/asmconstants.h b/src/coreclr/vm/arm/asmconstants.h similarity index 100% rename from src/coreclr/src/vm/arm/asmconstants.h rename to src/coreclr/vm/arm/asmconstants.h diff --git a/src/coreclr/src/vm/arm/asmhelpers.S b/src/coreclr/vm/arm/asmhelpers.S similarity index 100% rename from src/coreclr/src/vm/arm/asmhelpers.S rename to src/coreclr/vm/arm/asmhelpers.S diff --git a/src/coreclr/src/vm/arm/asmhelpers.asm b/src/coreclr/vm/arm/asmhelpers.asm similarity index 100% rename from src/coreclr/src/vm/arm/asmhelpers.asm rename to src/coreclr/vm/arm/asmhelpers.asm diff --git a/src/coreclr/src/vm/arm/asmmacros.h b/src/coreclr/vm/arm/asmmacros.h similarity index 100% rename from src/coreclr/src/vm/arm/asmmacros.h rename to src/coreclr/vm/arm/asmmacros.h diff --git a/src/coreclr/src/vm/arm/cgencpu.h b/src/coreclr/vm/arm/cgencpu.h similarity index 100% rename from src/coreclr/src/vm/arm/cgencpu.h rename to src/coreclr/vm/arm/cgencpu.h diff --git a/src/coreclr/src/vm/arm/crthelpers.S b/src/coreclr/vm/arm/crthelpers.S similarity index 100% rename from src/coreclr/src/vm/arm/crthelpers.S rename to src/coreclr/vm/arm/crthelpers.S diff --git a/src/coreclr/src/vm/arm/ehhelpers.S b/src/coreclr/vm/arm/ehhelpers.S similarity index 100% rename from src/coreclr/src/vm/arm/ehhelpers.S rename to src/coreclr/vm/arm/ehhelpers.S diff --git a/src/coreclr/src/vm/arm/ehhelpers.asm b/src/coreclr/vm/arm/ehhelpers.asm similarity index 100% rename from src/coreclr/src/vm/arm/ehhelpers.asm rename to src/coreclr/vm/arm/ehhelpers.asm diff --git a/src/coreclr/src/vm/arm/exceparm.cpp b/src/coreclr/vm/arm/exceparm.cpp similarity index 100% rename from src/coreclr/src/vm/arm/exceparm.cpp rename to src/coreclr/vm/arm/exceparm.cpp diff --git a/src/coreclr/src/vm/arm/excepcpu.h b/src/coreclr/vm/arm/excepcpu.h similarity index 100% rename from src/coreclr/src/vm/arm/excepcpu.h rename to src/coreclr/vm/arm/excepcpu.h diff --git a/src/coreclr/src/vm/arm/gmscpu.h b/src/coreclr/vm/arm/gmscpu.h similarity index 100% rename from src/coreclr/src/vm/arm/gmscpu.h rename to src/coreclr/vm/arm/gmscpu.h diff --git a/src/coreclr/src/vm/arm/patchedcode.S b/src/coreclr/vm/arm/patchedcode.S similarity index 100% rename from src/coreclr/src/vm/arm/patchedcode.S rename to src/coreclr/vm/arm/patchedcode.S diff --git a/src/coreclr/src/vm/arm/patchedcode.asm b/src/coreclr/vm/arm/patchedcode.asm similarity index 100% rename from src/coreclr/src/vm/arm/patchedcode.asm rename to src/coreclr/vm/arm/patchedcode.asm diff --git a/src/coreclr/src/vm/arm/pinvokestubs.S b/src/coreclr/vm/arm/pinvokestubs.S similarity index 100% rename from src/coreclr/src/vm/arm/pinvokestubs.S rename to src/coreclr/vm/arm/pinvokestubs.S diff --git a/src/coreclr/src/vm/arm/profiler.cpp b/src/coreclr/vm/arm/profiler.cpp similarity index 100% rename from src/coreclr/src/vm/arm/profiler.cpp rename to src/coreclr/vm/arm/profiler.cpp diff --git a/src/coreclr/src/vm/arm/stubs.cpp b/src/coreclr/vm/arm/stubs.cpp similarity index 100% rename from src/coreclr/src/vm/arm/stubs.cpp rename to src/coreclr/vm/arm/stubs.cpp diff --git a/src/coreclr/src/vm/arm/unixstubs.cpp b/src/coreclr/vm/arm/unixstubs.cpp similarity index 100% rename from src/coreclr/src/vm/arm/unixstubs.cpp rename to src/coreclr/vm/arm/unixstubs.cpp diff --git a/src/coreclr/src/vm/arm/virtualcallstubcpu.hpp b/src/coreclr/vm/arm/virtualcallstubcpu.hpp similarity index 100% rename from src/coreclr/src/vm/arm/virtualcallstubcpu.hpp rename to src/coreclr/vm/arm/virtualcallstubcpu.hpp diff --git a/src/coreclr/src/vm/arm64/CallDescrWorkerARM64.asm b/src/coreclr/vm/arm64/CallDescrWorkerARM64.asm similarity index 100% rename from src/coreclr/src/vm/arm64/CallDescrWorkerARM64.asm rename to src/coreclr/vm/arm64/CallDescrWorkerARM64.asm diff --git a/src/coreclr/src/vm/arm64/PInvokeStubs.asm b/src/coreclr/vm/arm64/PInvokeStubs.asm similarity index 100% rename from src/coreclr/src/vm/arm64/PInvokeStubs.asm rename to src/coreclr/vm/arm64/PInvokeStubs.asm diff --git a/src/coreclr/src/vm/arm64/arm64singlestepper.cpp b/src/coreclr/vm/arm64/arm64singlestepper.cpp similarity index 100% rename from src/coreclr/src/vm/arm64/arm64singlestepper.cpp rename to src/coreclr/vm/arm64/arm64singlestepper.cpp diff --git a/src/coreclr/src/vm/arm64/asmconstants.h b/src/coreclr/vm/arm64/asmconstants.h similarity index 100% rename from src/coreclr/src/vm/arm64/asmconstants.h rename to src/coreclr/vm/arm64/asmconstants.h diff --git a/src/coreclr/src/vm/arm64/asmhelpers.S b/src/coreclr/vm/arm64/asmhelpers.S similarity index 100% rename from src/coreclr/src/vm/arm64/asmhelpers.S rename to src/coreclr/vm/arm64/asmhelpers.S diff --git a/src/coreclr/src/vm/arm64/asmhelpers.asm b/src/coreclr/vm/arm64/asmhelpers.asm similarity index 100% rename from src/coreclr/src/vm/arm64/asmhelpers.asm rename to src/coreclr/vm/arm64/asmhelpers.asm diff --git a/src/coreclr/src/vm/arm64/asmmacros.h b/src/coreclr/vm/arm64/asmmacros.h similarity index 100% rename from src/coreclr/src/vm/arm64/asmmacros.h rename to src/coreclr/vm/arm64/asmmacros.h diff --git a/src/coreclr/src/vm/arm64/calldescrworkerarm64.S b/src/coreclr/vm/arm64/calldescrworkerarm64.S similarity index 100% rename from src/coreclr/src/vm/arm64/calldescrworkerarm64.S rename to src/coreclr/vm/arm64/calldescrworkerarm64.S diff --git a/src/coreclr/src/vm/arm64/cgencpu.h b/src/coreclr/vm/arm64/cgencpu.h similarity index 100% rename from src/coreclr/src/vm/arm64/cgencpu.h rename to src/coreclr/vm/arm64/cgencpu.h diff --git a/src/coreclr/src/vm/arm64/crthelpers.S b/src/coreclr/vm/arm64/crthelpers.S similarity index 100% rename from src/coreclr/src/vm/arm64/crthelpers.S rename to src/coreclr/vm/arm64/crthelpers.S diff --git a/src/coreclr/src/vm/arm64/crthelpers.asm b/src/coreclr/vm/arm64/crthelpers.asm similarity index 100% rename from src/coreclr/src/vm/arm64/crthelpers.asm rename to src/coreclr/vm/arm64/crthelpers.asm diff --git a/src/coreclr/src/vm/arm64/excepcpu.h b/src/coreclr/vm/arm64/excepcpu.h similarity index 100% rename from src/coreclr/src/vm/arm64/excepcpu.h rename to src/coreclr/vm/arm64/excepcpu.h diff --git a/src/coreclr/src/vm/arm64/gmscpu.h b/src/coreclr/vm/arm64/gmscpu.h similarity index 100% rename from src/coreclr/src/vm/arm64/gmscpu.h rename to src/coreclr/vm/arm64/gmscpu.h diff --git a/src/coreclr/src/vm/arm64/pinvokestubs.S b/src/coreclr/vm/arm64/pinvokestubs.S similarity index 100% rename from src/coreclr/src/vm/arm64/pinvokestubs.S rename to src/coreclr/vm/arm64/pinvokestubs.S diff --git a/src/coreclr/src/vm/arm64/profiler.cpp b/src/coreclr/vm/arm64/profiler.cpp similarity index 100% rename from src/coreclr/src/vm/arm64/profiler.cpp rename to src/coreclr/vm/arm64/profiler.cpp diff --git a/src/coreclr/src/vm/arm64/stubs.cpp b/src/coreclr/vm/arm64/stubs.cpp similarity index 100% rename from src/coreclr/src/vm/arm64/stubs.cpp rename to src/coreclr/vm/arm64/stubs.cpp diff --git a/src/coreclr/src/vm/arm64/unixstubs.cpp b/src/coreclr/vm/arm64/unixstubs.cpp similarity index 100% rename from src/coreclr/src/vm/arm64/unixstubs.cpp rename to src/coreclr/vm/arm64/unixstubs.cpp diff --git a/src/coreclr/src/vm/arm64/virtualcallstubcpu.hpp b/src/coreclr/vm/arm64/virtualcallstubcpu.hpp similarity index 100% rename from src/coreclr/src/vm/arm64/virtualcallstubcpu.hpp rename to src/coreclr/vm/arm64/virtualcallstubcpu.hpp diff --git a/src/coreclr/src/vm/arm64singlestepper.h b/src/coreclr/vm/arm64singlestepper.h similarity index 100% rename from src/coreclr/src/vm/arm64singlestepper.h rename to src/coreclr/vm/arm64singlestepper.h diff --git a/src/coreclr/src/vm/armsinglestepper.h b/src/coreclr/vm/armsinglestepper.h similarity index 100% rename from src/coreclr/src/vm/armsinglestepper.h rename to src/coreclr/vm/armsinglestepper.h diff --git a/src/coreclr/src/vm/array.cpp b/src/coreclr/vm/array.cpp similarity index 100% rename from src/coreclr/src/vm/array.cpp rename to src/coreclr/vm/array.cpp diff --git a/src/coreclr/src/vm/array.h b/src/coreclr/vm/array.h similarity index 100% rename from src/coreclr/src/vm/array.h rename to src/coreclr/vm/array.h diff --git a/src/coreclr/src/vm/assembly.cpp b/src/coreclr/vm/assembly.cpp similarity index 100% rename from src/coreclr/src/vm/assembly.cpp rename to src/coreclr/vm/assembly.cpp diff --git a/src/coreclr/src/vm/assembly.hpp b/src/coreclr/vm/assembly.hpp similarity index 100% rename from src/coreclr/src/vm/assembly.hpp rename to src/coreclr/vm/assembly.hpp diff --git a/src/coreclr/src/vm/assemblyloadcontext.cpp b/src/coreclr/vm/assemblyloadcontext.cpp similarity index 100% rename from src/coreclr/src/vm/assemblyloadcontext.cpp rename to src/coreclr/vm/assemblyloadcontext.cpp diff --git a/src/coreclr/src/vm/assemblyloadcontext.h b/src/coreclr/vm/assemblyloadcontext.h similarity index 100% rename from src/coreclr/src/vm/assemblyloadcontext.h rename to src/coreclr/vm/assemblyloadcontext.h diff --git a/src/coreclr/src/vm/assemblyname.cpp b/src/coreclr/vm/assemblyname.cpp similarity index 100% rename from src/coreclr/src/vm/assemblyname.cpp rename to src/coreclr/vm/assemblyname.cpp diff --git a/src/coreclr/src/vm/assemblyname.hpp b/src/coreclr/vm/assemblyname.hpp similarity index 100% rename from src/coreclr/src/vm/assemblyname.hpp rename to src/coreclr/vm/assemblyname.hpp diff --git a/src/coreclr/src/vm/assemblynative.cpp b/src/coreclr/vm/assemblynative.cpp similarity index 100% rename from src/coreclr/src/vm/assemblynative.cpp rename to src/coreclr/vm/assemblynative.cpp diff --git a/src/coreclr/src/vm/assemblynative.hpp b/src/coreclr/vm/assemblynative.hpp similarity index 100% rename from src/coreclr/src/vm/assemblynative.hpp rename to src/coreclr/vm/assemblynative.hpp diff --git a/src/coreclr/src/vm/assemblyspec.cpp b/src/coreclr/vm/assemblyspec.cpp similarity index 100% rename from src/coreclr/src/vm/assemblyspec.cpp rename to src/coreclr/vm/assemblyspec.cpp diff --git a/src/coreclr/src/vm/assemblyspec.hpp b/src/coreclr/vm/assemblyspec.hpp similarity index 100% rename from src/coreclr/src/vm/assemblyspec.hpp rename to src/coreclr/vm/assemblyspec.hpp diff --git a/src/coreclr/src/vm/assemblyspecbase.h b/src/coreclr/vm/assemblyspecbase.h similarity index 100% rename from src/coreclr/src/vm/assemblyspecbase.h rename to src/coreclr/vm/assemblyspecbase.h diff --git a/src/coreclr/src/vm/autotrace.cpp b/src/coreclr/vm/autotrace.cpp similarity index 100% rename from src/coreclr/src/vm/autotrace.cpp rename to src/coreclr/vm/autotrace.cpp diff --git a/src/coreclr/src/vm/autotrace.h b/src/coreclr/vm/autotrace.h similarity index 100% rename from src/coreclr/src/vm/autotrace.h rename to src/coreclr/vm/autotrace.h diff --git a/src/coreclr/src/vm/baseassemblyspec.cpp b/src/coreclr/vm/baseassemblyspec.cpp similarity index 100% rename from src/coreclr/src/vm/baseassemblyspec.cpp rename to src/coreclr/vm/baseassemblyspec.cpp diff --git a/src/coreclr/src/vm/baseassemblyspec.h b/src/coreclr/vm/baseassemblyspec.h similarity index 100% rename from src/coreclr/src/vm/baseassemblyspec.h rename to src/coreclr/vm/baseassemblyspec.h diff --git a/src/coreclr/src/vm/baseassemblyspec.inl b/src/coreclr/vm/baseassemblyspec.inl similarity index 100% rename from src/coreclr/src/vm/baseassemblyspec.inl rename to src/coreclr/vm/baseassemblyspec.inl diff --git a/src/coreclr/src/vm/binder.cpp b/src/coreclr/vm/binder.cpp similarity index 100% rename from src/coreclr/src/vm/binder.cpp rename to src/coreclr/vm/binder.cpp diff --git a/src/coreclr/src/vm/binder.h b/src/coreclr/vm/binder.h similarity index 100% rename from src/coreclr/src/vm/binder.h rename to src/coreclr/vm/binder.h diff --git a/src/coreclr/src/vm/bundle.cpp b/src/coreclr/vm/bundle.cpp similarity index 100% rename from src/coreclr/src/vm/bundle.cpp rename to src/coreclr/vm/bundle.cpp diff --git a/src/coreclr/src/vm/cachelinealloc.cpp b/src/coreclr/vm/cachelinealloc.cpp similarity index 100% rename from src/coreclr/src/vm/cachelinealloc.cpp rename to src/coreclr/vm/cachelinealloc.cpp diff --git a/src/coreclr/src/vm/cachelinealloc.h b/src/coreclr/vm/cachelinealloc.h similarity index 100% rename from src/coreclr/src/vm/cachelinealloc.h rename to src/coreclr/vm/cachelinealloc.h diff --git a/src/coreclr/src/vm/callcounting.cpp b/src/coreclr/vm/callcounting.cpp similarity index 100% rename from src/coreclr/src/vm/callcounting.cpp rename to src/coreclr/vm/callcounting.cpp diff --git a/src/coreclr/src/vm/callcounting.h b/src/coreclr/vm/callcounting.h similarity index 100% rename from src/coreclr/src/vm/callcounting.h rename to src/coreclr/vm/callcounting.h diff --git a/src/coreclr/src/vm/callhelpers.cpp b/src/coreclr/vm/callhelpers.cpp similarity index 100% rename from src/coreclr/src/vm/callhelpers.cpp rename to src/coreclr/vm/callhelpers.cpp diff --git a/src/coreclr/src/vm/callhelpers.h b/src/coreclr/vm/callhelpers.h similarity index 100% rename from src/coreclr/src/vm/callhelpers.h rename to src/coreclr/vm/callhelpers.h diff --git a/src/coreclr/src/vm/callingconvention.h b/src/coreclr/vm/callingconvention.h similarity index 100% rename from src/coreclr/src/vm/callingconvention.h rename to src/coreclr/vm/callingconvention.h diff --git a/src/coreclr/src/vm/callsiteinspect.cpp b/src/coreclr/vm/callsiteinspect.cpp similarity index 100% rename from src/coreclr/src/vm/callsiteinspect.cpp rename to src/coreclr/vm/callsiteinspect.cpp diff --git a/src/coreclr/src/vm/callsiteinspect.h b/src/coreclr/vm/callsiteinspect.h similarity index 100% rename from src/coreclr/src/vm/callsiteinspect.h rename to src/coreclr/vm/callsiteinspect.h diff --git a/src/coreclr/src/vm/castcache.cpp b/src/coreclr/vm/castcache.cpp similarity index 100% rename from src/coreclr/src/vm/castcache.cpp rename to src/coreclr/vm/castcache.cpp diff --git a/src/coreclr/src/vm/castcache.h b/src/coreclr/vm/castcache.h similarity index 100% rename from src/coreclr/src/vm/castcache.h rename to src/coreclr/vm/castcache.h diff --git a/src/coreclr/src/vm/ceeload.cpp b/src/coreclr/vm/ceeload.cpp similarity index 100% rename from src/coreclr/src/vm/ceeload.cpp rename to src/coreclr/vm/ceeload.cpp diff --git a/src/coreclr/src/vm/ceeload.h b/src/coreclr/vm/ceeload.h similarity index 100% rename from src/coreclr/src/vm/ceeload.h rename to src/coreclr/vm/ceeload.h diff --git a/src/coreclr/src/vm/ceeload.inl b/src/coreclr/vm/ceeload.inl similarity index 100% rename from src/coreclr/src/vm/ceeload.inl rename to src/coreclr/vm/ceeload.inl diff --git a/src/coreclr/src/vm/ceemain.cpp b/src/coreclr/vm/ceemain.cpp similarity index 100% rename from src/coreclr/src/vm/ceemain.cpp rename to src/coreclr/vm/ceemain.cpp diff --git a/src/coreclr/src/vm/ceemain.h b/src/coreclr/vm/ceemain.h similarity index 100% rename from src/coreclr/src/vm/ceemain.h rename to src/coreclr/vm/ceemain.h diff --git a/src/coreclr/src/vm/cgensys.h b/src/coreclr/vm/cgensys.h similarity index 100% rename from src/coreclr/src/vm/cgensys.h rename to src/coreclr/vm/cgensys.h diff --git a/src/coreclr/src/vm/class.cpp b/src/coreclr/vm/class.cpp similarity index 100% rename from src/coreclr/src/vm/class.cpp rename to src/coreclr/vm/class.cpp diff --git a/src/coreclr/src/vm/class.h b/src/coreclr/vm/class.h similarity index 100% rename from src/coreclr/src/vm/class.h rename to src/coreclr/vm/class.h diff --git a/src/coreclr/src/vm/class.inl b/src/coreclr/vm/class.inl similarity index 100% rename from src/coreclr/src/vm/class.inl rename to src/coreclr/vm/class.inl diff --git a/src/coreclr/src/vm/classcompat.cpp b/src/coreclr/vm/classcompat.cpp similarity index 100% rename from src/coreclr/src/vm/classcompat.cpp rename to src/coreclr/vm/classcompat.cpp diff --git a/src/coreclr/src/vm/classcompat.h b/src/coreclr/vm/classcompat.h similarity index 100% rename from src/coreclr/src/vm/classcompat.h rename to src/coreclr/vm/classcompat.h diff --git a/src/coreclr/src/vm/classhash.cpp b/src/coreclr/vm/classhash.cpp similarity index 100% rename from src/coreclr/src/vm/classhash.cpp rename to src/coreclr/vm/classhash.cpp diff --git a/src/coreclr/src/vm/classhash.h b/src/coreclr/vm/classhash.h similarity index 100% rename from src/coreclr/src/vm/classhash.h rename to src/coreclr/vm/classhash.h diff --git a/src/coreclr/src/vm/classhash.inl b/src/coreclr/vm/classhash.inl similarity index 100% rename from src/coreclr/src/vm/classhash.inl rename to src/coreclr/vm/classhash.inl diff --git a/src/coreclr/src/vm/classlayoutinfo.cpp b/src/coreclr/vm/classlayoutinfo.cpp similarity index 100% rename from src/coreclr/src/vm/classlayoutinfo.cpp rename to src/coreclr/vm/classlayoutinfo.cpp diff --git a/src/coreclr/src/vm/classloadlevel.h b/src/coreclr/vm/classloadlevel.h similarity index 100% rename from src/coreclr/src/vm/classloadlevel.h rename to src/coreclr/vm/classloadlevel.h diff --git a/src/coreclr/src/vm/classnames.h b/src/coreclr/vm/classnames.h similarity index 100% rename from src/coreclr/src/vm/classnames.h rename to src/coreclr/vm/classnames.h diff --git a/src/coreclr/src/vm/clrconfignative.cpp b/src/coreclr/vm/clrconfignative.cpp similarity index 100% rename from src/coreclr/src/vm/clrconfignative.cpp rename to src/coreclr/vm/clrconfignative.cpp diff --git a/src/coreclr/src/vm/clrconfignative.h b/src/coreclr/vm/clrconfignative.h similarity index 100% rename from src/coreclr/src/vm/clrconfignative.h rename to src/coreclr/vm/clrconfignative.h diff --git a/src/coreclr/src/vm/clrex.cpp b/src/coreclr/vm/clrex.cpp similarity index 100% rename from src/coreclr/src/vm/clrex.cpp rename to src/coreclr/vm/clrex.cpp diff --git a/src/coreclr/src/vm/clrex.h b/src/coreclr/vm/clrex.h similarity index 100% rename from src/coreclr/src/vm/clrex.h rename to src/coreclr/vm/clrex.h diff --git a/src/coreclr/src/vm/clrex.inl b/src/coreclr/vm/clrex.inl similarity index 100% rename from src/coreclr/src/vm/clrex.inl rename to src/coreclr/vm/clrex.inl diff --git a/src/coreclr/src/vm/clrtocomcall.cpp b/src/coreclr/vm/clrtocomcall.cpp similarity index 100% rename from src/coreclr/src/vm/clrtocomcall.cpp rename to src/coreclr/vm/clrtocomcall.cpp diff --git a/src/coreclr/src/vm/clrtocomcall.h b/src/coreclr/vm/clrtocomcall.h similarity index 100% rename from src/coreclr/src/vm/clrtocomcall.h rename to src/coreclr/vm/clrtocomcall.h diff --git a/src/coreclr/src/vm/clrtracelogging.cpp b/src/coreclr/vm/clrtracelogging.cpp similarity index 100% rename from src/coreclr/src/vm/clrtracelogging.cpp rename to src/coreclr/vm/clrtracelogging.cpp diff --git a/src/coreclr/src/vm/clrvarargs.cpp b/src/coreclr/vm/clrvarargs.cpp similarity index 100% rename from src/coreclr/src/vm/clrvarargs.cpp rename to src/coreclr/vm/clrvarargs.cpp diff --git a/src/coreclr/src/vm/clrvarargs.h b/src/coreclr/vm/clrvarargs.h similarity index 100% rename from src/coreclr/src/vm/clrvarargs.h rename to src/coreclr/vm/clrvarargs.h diff --git a/src/coreclr/src/vm/clsload.cpp b/src/coreclr/vm/clsload.cpp similarity index 100% rename from src/coreclr/src/vm/clsload.cpp rename to src/coreclr/vm/clsload.cpp diff --git a/src/coreclr/src/vm/clsload.hpp b/src/coreclr/vm/clsload.hpp similarity index 100% rename from src/coreclr/src/vm/clsload.hpp rename to src/coreclr/vm/clsload.hpp diff --git a/src/coreclr/src/vm/clsload.inl b/src/coreclr/vm/clsload.inl similarity index 100% rename from src/coreclr/src/vm/clsload.inl rename to src/coreclr/vm/clsload.inl diff --git a/src/coreclr/src/vm/codeman.cpp b/src/coreclr/vm/codeman.cpp similarity index 100% rename from src/coreclr/src/vm/codeman.cpp rename to src/coreclr/vm/codeman.cpp diff --git a/src/coreclr/src/vm/codeman.h b/src/coreclr/vm/codeman.h similarity index 100% rename from src/coreclr/src/vm/codeman.h rename to src/coreclr/vm/codeman.h diff --git a/src/coreclr/src/vm/codeman.inl b/src/coreclr/vm/codeman.inl similarity index 100% rename from src/coreclr/src/vm/codeman.inl rename to src/coreclr/vm/codeman.inl diff --git a/src/coreclr/src/vm/codepitchingmanager.cpp b/src/coreclr/vm/codepitchingmanager.cpp similarity index 100% rename from src/coreclr/src/vm/codepitchingmanager.cpp rename to src/coreclr/vm/codepitchingmanager.cpp diff --git a/src/coreclr/src/vm/codeversion.cpp b/src/coreclr/vm/codeversion.cpp similarity index 100% rename from src/coreclr/src/vm/codeversion.cpp rename to src/coreclr/vm/codeversion.cpp diff --git a/src/coreclr/src/vm/codeversion.h b/src/coreclr/vm/codeversion.h similarity index 100% rename from src/coreclr/src/vm/codeversion.h rename to src/coreclr/vm/codeversion.h diff --git a/src/coreclr/src/vm/comcache.cpp b/src/coreclr/vm/comcache.cpp similarity index 100% rename from src/coreclr/src/vm/comcache.cpp rename to src/coreclr/vm/comcache.cpp diff --git a/src/coreclr/src/vm/comcache.h b/src/coreclr/vm/comcache.h similarity index 100% rename from src/coreclr/src/vm/comcache.h rename to src/coreclr/vm/comcache.h diff --git a/src/coreclr/src/vm/comcallablewrapper.cpp b/src/coreclr/vm/comcallablewrapper.cpp similarity index 100% rename from src/coreclr/src/vm/comcallablewrapper.cpp rename to src/coreclr/vm/comcallablewrapper.cpp diff --git a/src/coreclr/src/vm/comcallablewrapper.h b/src/coreclr/vm/comcallablewrapper.h similarity index 100% rename from src/coreclr/src/vm/comcallablewrapper.h rename to src/coreclr/vm/comcallablewrapper.h diff --git a/src/coreclr/src/vm/comconnectionpoints.cpp b/src/coreclr/vm/comconnectionpoints.cpp similarity index 100% rename from src/coreclr/src/vm/comconnectionpoints.cpp rename to src/coreclr/vm/comconnectionpoints.cpp diff --git a/src/coreclr/src/vm/comconnectionpoints.h b/src/coreclr/vm/comconnectionpoints.h similarity index 100% rename from src/coreclr/src/vm/comconnectionpoints.h rename to src/coreclr/vm/comconnectionpoints.h diff --git a/src/coreclr/src/vm/comdatetime.cpp b/src/coreclr/vm/comdatetime.cpp similarity index 100% rename from src/coreclr/src/vm/comdatetime.cpp rename to src/coreclr/vm/comdatetime.cpp diff --git a/src/coreclr/src/vm/comdatetime.h b/src/coreclr/vm/comdatetime.h similarity index 100% rename from src/coreclr/src/vm/comdatetime.h rename to src/coreclr/vm/comdatetime.h diff --git a/src/coreclr/src/vm/comdelegate.cpp b/src/coreclr/vm/comdelegate.cpp similarity index 100% rename from src/coreclr/src/vm/comdelegate.cpp rename to src/coreclr/vm/comdelegate.cpp diff --git a/src/coreclr/src/vm/comdelegate.h b/src/coreclr/vm/comdelegate.h similarity index 100% rename from src/coreclr/src/vm/comdelegate.h rename to src/coreclr/vm/comdelegate.h diff --git a/src/coreclr/src/vm/comdependenthandle.cpp b/src/coreclr/vm/comdependenthandle.cpp similarity index 100% rename from src/coreclr/src/vm/comdependenthandle.cpp rename to src/coreclr/vm/comdependenthandle.cpp diff --git a/src/coreclr/src/vm/comdependenthandle.h b/src/coreclr/vm/comdependenthandle.h similarity index 100% rename from src/coreclr/src/vm/comdependenthandle.h rename to src/coreclr/vm/comdependenthandle.h diff --git a/src/coreclr/src/vm/comdynamic.cpp b/src/coreclr/vm/comdynamic.cpp similarity index 100% rename from src/coreclr/src/vm/comdynamic.cpp rename to src/coreclr/vm/comdynamic.cpp diff --git a/src/coreclr/src/vm/comdynamic.h b/src/coreclr/vm/comdynamic.h similarity index 100% rename from src/coreclr/src/vm/comdynamic.h rename to src/coreclr/vm/comdynamic.h diff --git a/src/coreclr/src/vm/cominterfacemarshaler.cpp b/src/coreclr/vm/cominterfacemarshaler.cpp similarity index 100% rename from src/coreclr/src/vm/cominterfacemarshaler.cpp rename to src/coreclr/vm/cominterfacemarshaler.cpp diff --git a/src/coreclr/src/vm/cominterfacemarshaler.h b/src/coreclr/vm/cominterfacemarshaler.h similarity index 100% rename from src/coreclr/src/vm/cominterfacemarshaler.h rename to src/coreclr/vm/cominterfacemarshaler.h diff --git a/src/coreclr/src/vm/commodule.cpp b/src/coreclr/vm/commodule.cpp similarity index 100% rename from src/coreclr/src/vm/commodule.cpp rename to src/coreclr/vm/commodule.cpp diff --git a/src/coreclr/src/vm/commodule.h b/src/coreclr/vm/commodule.h similarity index 100% rename from src/coreclr/src/vm/commodule.h rename to src/coreclr/vm/commodule.h diff --git a/src/coreclr/src/vm/common.h b/src/coreclr/vm/common.h similarity index 100% rename from src/coreclr/src/vm/common.h rename to src/coreclr/vm/common.h diff --git a/src/coreclr/src/vm/commtmemberinfomap.cpp b/src/coreclr/vm/commtmemberinfomap.cpp similarity index 100% rename from src/coreclr/src/vm/commtmemberinfomap.cpp rename to src/coreclr/vm/commtmemberinfomap.cpp diff --git a/src/coreclr/src/vm/commtmemberinfomap.h b/src/coreclr/vm/commtmemberinfomap.h similarity index 100% rename from src/coreclr/src/vm/commtmemberinfomap.h rename to src/coreclr/vm/commtmemberinfomap.h diff --git a/src/coreclr/src/vm/compatibilityswitch.cpp b/src/coreclr/vm/compatibilityswitch.cpp similarity index 100% rename from src/coreclr/src/vm/compatibilityswitch.cpp rename to src/coreclr/vm/compatibilityswitch.cpp diff --git a/src/coreclr/src/vm/compatibilityswitch.h b/src/coreclr/vm/compatibilityswitch.h similarity index 100% rename from src/coreclr/src/vm/compatibilityswitch.h rename to src/coreclr/vm/compatibilityswitch.h diff --git a/src/coreclr/src/vm/compile.cpp b/src/coreclr/vm/compile.cpp similarity index 100% rename from src/coreclr/src/vm/compile.cpp rename to src/coreclr/vm/compile.cpp diff --git a/src/coreclr/src/vm/compile.h b/src/coreclr/vm/compile.h similarity index 100% rename from src/coreclr/src/vm/compile.h rename to src/coreclr/vm/compile.h diff --git a/src/coreclr/src/vm/comreflectioncache.hpp b/src/coreclr/vm/comreflectioncache.hpp similarity index 100% rename from src/coreclr/src/vm/comreflectioncache.hpp rename to src/coreclr/vm/comreflectioncache.hpp diff --git a/src/coreclr/src/vm/comreflectioncache.inl b/src/coreclr/vm/comreflectioncache.inl similarity index 100% rename from src/coreclr/src/vm/comreflectioncache.inl rename to src/coreclr/vm/comreflectioncache.inl diff --git a/src/coreclr/src/vm/comsynchronizable.cpp b/src/coreclr/vm/comsynchronizable.cpp similarity index 100% rename from src/coreclr/src/vm/comsynchronizable.cpp rename to src/coreclr/vm/comsynchronizable.cpp diff --git a/src/coreclr/src/vm/comsynchronizable.h b/src/coreclr/vm/comsynchronizable.h similarity index 100% rename from src/coreclr/src/vm/comsynchronizable.h rename to src/coreclr/vm/comsynchronizable.h diff --git a/src/coreclr/src/vm/comthreadpool.cpp b/src/coreclr/vm/comthreadpool.cpp similarity index 100% rename from src/coreclr/src/vm/comthreadpool.cpp rename to src/coreclr/vm/comthreadpool.cpp diff --git a/src/coreclr/src/vm/comthreadpool.h b/src/coreclr/vm/comthreadpool.h similarity index 100% rename from src/coreclr/src/vm/comthreadpool.h rename to src/coreclr/vm/comthreadpool.h diff --git a/src/coreclr/src/vm/comtoclrcall.cpp b/src/coreclr/vm/comtoclrcall.cpp similarity index 100% rename from src/coreclr/src/vm/comtoclrcall.cpp rename to src/coreclr/vm/comtoclrcall.cpp diff --git a/src/coreclr/src/vm/comtoclrcall.h b/src/coreclr/vm/comtoclrcall.h similarity index 100% rename from src/coreclr/src/vm/comtoclrcall.h rename to src/coreclr/vm/comtoclrcall.h diff --git a/src/coreclr/src/vm/comutilnative.cpp b/src/coreclr/vm/comutilnative.cpp similarity index 100% rename from src/coreclr/src/vm/comutilnative.cpp rename to src/coreclr/vm/comutilnative.cpp diff --git a/src/coreclr/src/vm/comutilnative.h b/src/coreclr/vm/comutilnative.h similarity index 100% rename from src/coreclr/src/vm/comutilnative.h rename to src/coreclr/vm/comutilnative.h diff --git a/src/coreclr/src/vm/comwaithandle.cpp b/src/coreclr/vm/comwaithandle.cpp similarity index 100% rename from src/coreclr/src/vm/comwaithandle.cpp rename to src/coreclr/vm/comwaithandle.cpp diff --git a/src/coreclr/src/vm/comwaithandle.h b/src/coreclr/vm/comwaithandle.h similarity index 100% rename from src/coreclr/src/vm/comwaithandle.h rename to src/coreclr/vm/comwaithandle.h diff --git a/src/coreclr/src/vm/contractimpl.cpp b/src/coreclr/vm/contractimpl.cpp similarity index 100% rename from src/coreclr/src/vm/contractimpl.cpp rename to src/coreclr/vm/contractimpl.cpp diff --git a/src/coreclr/src/vm/contractimpl.h b/src/coreclr/vm/contractimpl.h similarity index 100% rename from src/coreclr/src/vm/contractimpl.h rename to src/coreclr/vm/contractimpl.h diff --git a/src/coreclr/src/vm/coreassemblyspec.cpp b/src/coreclr/vm/coreassemblyspec.cpp similarity index 100% rename from src/coreclr/src/vm/coreassemblyspec.cpp rename to src/coreclr/vm/coreassemblyspec.cpp diff --git a/src/coreclr/src/vm/corebindresult.cpp b/src/coreclr/vm/corebindresult.cpp similarity index 100% rename from src/coreclr/src/vm/corebindresult.cpp rename to src/coreclr/vm/corebindresult.cpp diff --git a/src/coreclr/src/vm/coreclr/corebindresult.h b/src/coreclr/vm/coreclr/corebindresult.h similarity index 100% rename from src/coreclr/src/vm/coreclr/corebindresult.h rename to src/coreclr/vm/coreclr/corebindresult.h diff --git a/src/coreclr/src/vm/coreclr/corebindresult.inl b/src/coreclr/vm/coreclr/corebindresult.inl similarity index 100% rename from src/coreclr/src/vm/coreclr/corebindresult.inl rename to src/coreclr/vm/coreclr/corebindresult.inl diff --git a/src/coreclr/src/vm/corelib.cpp b/src/coreclr/vm/corelib.cpp similarity index 100% rename from src/coreclr/src/vm/corelib.cpp rename to src/coreclr/vm/corelib.cpp diff --git a/src/coreclr/src/vm/corelib.h b/src/coreclr/vm/corelib.h similarity index 100% rename from src/coreclr/src/vm/corelib.h rename to src/coreclr/vm/corelib.h diff --git a/src/coreclr/src/vm/corhost.cpp b/src/coreclr/vm/corhost.cpp similarity index 100% rename from src/coreclr/src/vm/corhost.cpp rename to src/coreclr/vm/corhost.cpp diff --git a/src/coreclr/src/vm/crossgen/CMakeLists.txt b/src/coreclr/vm/crossgen/CMakeLists.txt similarity index 99% rename from src/coreclr/src/vm/crossgen/CMakeLists.txt rename to src/coreclr/vm/crossgen/CMakeLists.txt index 96c2df22b6248..75ae230c55987 100644 --- a/src/coreclr/src/vm/crossgen/CMakeLists.txt +++ b/src/coreclr/vm/crossgen/CMakeLists.txt @@ -200,7 +200,7 @@ if(FEATURE_READYTORUN) endif(FEATURE_READYTORUN) include_directories(BEFORE ..) -include_directories(${CLR_DIR}/src/gc) +include_directories(${CLR_DIR}/gc) include_directories(../${ARCH_SOURCES_DIR}) if(CLR_CMAKE_TARGET_ARCH_AMD64) diff --git a/src/coreclr/src/vm/crossgencompile.cpp b/src/coreclr/vm/crossgencompile.cpp similarity index 100% rename from src/coreclr/src/vm/crossgencompile.cpp rename to src/coreclr/vm/crossgencompile.cpp diff --git a/src/coreclr/src/vm/crossloaderallocatorhash.h b/src/coreclr/vm/crossloaderallocatorhash.h similarity index 100% rename from src/coreclr/src/vm/crossloaderallocatorhash.h rename to src/coreclr/vm/crossloaderallocatorhash.h diff --git a/src/coreclr/src/vm/crossloaderallocatorhash.inl b/src/coreclr/vm/crossloaderallocatorhash.inl similarity index 100% rename from src/coreclr/src/vm/crossloaderallocatorhash.inl rename to src/coreclr/vm/crossloaderallocatorhash.inl diff --git a/src/coreclr/src/vm/crst.cpp b/src/coreclr/vm/crst.cpp similarity index 100% rename from src/coreclr/src/vm/crst.cpp rename to src/coreclr/vm/crst.cpp diff --git a/src/coreclr/src/vm/crst.h b/src/coreclr/vm/crst.h similarity index 100% rename from src/coreclr/src/vm/crst.h rename to src/coreclr/vm/crst.h diff --git a/src/coreclr/src/vm/ctxtcall.h b/src/coreclr/vm/ctxtcall.h similarity index 100% rename from src/coreclr/src/vm/ctxtcall.h rename to src/coreclr/vm/ctxtcall.h diff --git a/src/coreclr/src/vm/customattribute.cpp b/src/coreclr/vm/customattribute.cpp similarity index 100% rename from src/coreclr/src/vm/customattribute.cpp rename to src/coreclr/vm/customattribute.cpp diff --git a/src/coreclr/src/vm/customattribute.h b/src/coreclr/vm/customattribute.h similarity index 100% rename from src/coreclr/src/vm/customattribute.h rename to src/coreclr/vm/customattribute.h diff --git a/src/coreclr/src/vm/custommarshalerinfo.cpp b/src/coreclr/vm/custommarshalerinfo.cpp similarity index 100% rename from src/coreclr/src/vm/custommarshalerinfo.cpp rename to src/coreclr/vm/custommarshalerinfo.cpp diff --git a/src/coreclr/src/vm/custommarshalerinfo.h b/src/coreclr/vm/custommarshalerinfo.h similarity index 100% rename from src/coreclr/src/vm/custommarshalerinfo.h rename to src/coreclr/vm/custommarshalerinfo.h diff --git a/src/coreclr/src/vm/dataimage.cpp b/src/coreclr/vm/dataimage.cpp similarity index 100% rename from src/coreclr/src/vm/dataimage.cpp rename to src/coreclr/vm/dataimage.cpp diff --git a/src/coreclr/src/vm/dataimage.h b/src/coreclr/vm/dataimage.h similarity index 100% rename from src/coreclr/src/vm/dataimage.h rename to src/coreclr/vm/dataimage.h diff --git a/src/coreclr/src/vm/dataimagesection.h b/src/coreclr/vm/dataimagesection.h similarity index 100% rename from src/coreclr/src/vm/dataimagesection.h rename to src/coreclr/vm/dataimagesection.h diff --git a/src/coreclr/src/vm/dbginterface.h b/src/coreclr/vm/dbginterface.h similarity index 100% rename from src/coreclr/src/vm/dbginterface.h rename to src/coreclr/vm/dbginterface.h diff --git a/src/coreclr/src/vm/debugdebugger.cpp b/src/coreclr/vm/debugdebugger.cpp similarity index 100% rename from src/coreclr/src/vm/debugdebugger.cpp rename to src/coreclr/vm/debugdebugger.cpp diff --git a/src/coreclr/src/vm/debugdebugger.h b/src/coreclr/vm/debugdebugger.h similarity index 100% rename from src/coreclr/src/vm/debugdebugger.h rename to src/coreclr/vm/debugdebugger.h diff --git a/src/coreclr/src/vm/debughelp.cpp b/src/coreclr/vm/debughelp.cpp similarity index 100% rename from src/coreclr/src/vm/debughelp.cpp rename to src/coreclr/vm/debughelp.cpp diff --git a/src/coreclr/src/vm/debuginfostore.cpp b/src/coreclr/vm/debuginfostore.cpp similarity index 100% rename from src/coreclr/src/vm/debuginfostore.cpp rename to src/coreclr/vm/debuginfostore.cpp diff --git a/src/coreclr/src/vm/debuginfostore.h b/src/coreclr/vm/debuginfostore.h similarity index 100% rename from src/coreclr/src/vm/debuginfostore.h rename to src/coreclr/vm/debuginfostore.h diff --git a/src/coreclr/src/vm/decodemd.cpp b/src/coreclr/vm/decodemd.cpp similarity index 100% rename from src/coreclr/src/vm/decodemd.cpp rename to src/coreclr/vm/decodemd.cpp diff --git a/src/coreclr/src/vm/decodemd.h b/src/coreclr/vm/decodemd.h similarity index 100% rename from src/coreclr/src/vm/decodemd.h rename to src/coreclr/vm/decodemd.h diff --git a/src/coreclr/src/vm/delegateinfo.h b/src/coreclr/vm/delegateinfo.h similarity index 100% rename from src/coreclr/src/vm/delegateinfo.h rename to src/coreclr/vm/delegateinfo.h diff --git a/src/coreclr/src/vm/diagnosticserver.cpp b/src/coreclr/vm/diagnosticserver.cpp similarity index 100% rename from src/coreclr/src/vm/diagnosticserver.cpp rename to src/coreclr/vm/diagnosticserver.cpp diff --git a/src/coreclr/src/vm/diagnosticserver.h b/src/coreclr/vm/diagnosticserver.h similarity index 100% rename from src/coreclr/src/vm/diagnosticserver.h rename to src/coreclr/vm/diagnosticserver.h diff --git a/src/coreclr/src/vm/diagnosticsprotocol.h b/src/coreclr/vm/diagnosticsprotocol.h similarity index 100% rename from src/coreclr/src/vm/diagnosticsprotocol.h rename to src/coreclr/vm/diagnosticsprotocol.h diff --git a/src/coreclr/src/vm/disassembler.cpp b/src/coreclr/vm/disassembler.cpp similarity index 100% rename from src/coreclr/src/vm/disassembler.cpp rename to src/coreclr/vm/disassembler.cpp diff --git a/src/coreclr/src/vm/disassembler.h b/src/coreclr/vm/disassembler.h similarity index 100% rename from src/coreclr/src/vm/disassembler.h rename to src/coreclr/vm/disassembler.h diff --git a/src/coreclr/src/vm/dispatchinfo.cpp b/src/coreclr/vm/dispatchinfo.cpp similarity index 100% rename from src/coreclr/src/vm/dispatchinfo.cpp rename to src/coreclr/vm/dispatchinfo.cpp diff --git a/src/coreclr/src/vm/dispatchinfo.h b/src/coreclr/vm/dispatchinfo.h similarity index 100% rename from src/coreclr/src/vm/dispatchinfo.h rename to src/coreclr/vm/dispatchinfo.h diff --git a/src/coreclr/src/vm/dispparammarshaler.cpp b/src/coreclr/vm/dispparammarshaler.cpp similarity index 100% rename from src/coreclr/src/vm/dispparammarshaler.cpp rename to src/coreclr/vm/dispparammarshaler.cpp diff --git a/src/coreclr/src/vm/dispparammarshaler.h b/src/coreclr/vm/dispparammarshaler.h similarity index 100% rename from src/coreclr/src/vm/dispparammarshaler.h rename to src/coreclr/vm/dispparammarshaler.h diff --git a/src/coreclr/src/vm/dllimport.cpp b/src/coreclr/vm/dllimport.cpp similarity index 100% rename from src/coreclr/src/vm/dllimport.cpp rename to src/coreclr/vm/dllimport.cpp diff --git a/src/coreclr/src/vm/dllimport.h b/src/coreclr/vm/dllimport.h similarity index 100% rename from src/coreclr/src/vm/dllimport.h rename to src/coreclr/vm/dllimport.h diff --git a/src/coreclr/src/vm/dllimportcallback.cpp b/src/coreclr/vm/dllimportcallback.cpp similarity index 100% rename from src/coreclr/src/vm/dllimportcallback.cpp rename to src/coreclr/vm/dllimportcallback.cpp diff --git a/src/coreclr/src/vm/dllimportcallback.h b/src/coreclr/vm/dllimportcallback.h similarity index 100% rename from src/coreclr/src/vm/dllimportcallback.h rename to src/coreclr/vm/dllimportcallback.h diff --git a/src/coreclr/src/vm/domainfile.cpp b/src/coreclr/vm/domainfile.cpp similarity index 100% rename from src/coreclr/src/vm/domainfile.cpp rename to src/coreclr/vm/domainfile.cpp diff --git a/src/coreclr/src/vm/domainfile.h b/src/coreclr/vm/domainfile.h similarity index 100% rename from src/coreclr/src/vm/domainfile.h rename to src/coreclr/vm/domainfile.h diff --git a/src/coreclr/src/vm/domainfile.inl b/src/coreclr/vm/domainfile.inl similarity index 100% rename from src/coreclr/src/vm/domainfile.inl rename to src/coreclr/vm/domainfile.inl diff --git a/src/coreclr/src/vm/dumpdiagnosticprotocolhelper.cpp b/src/coreclr/vm/dumpdiagnosticprotocolhelper.cpp similarity index 100% rename from src/coreclr/src/vm/dumpdiagnosticprotocolhelper.cpp rename to src/coreclr/vm/dumpdiagnosticprotocolhelper.cpp diff --git a/src/coreclr/src/vm/dumpdiagnosticprotocolhelper.h b/src/coreclr/vm/dumpdiagnosticprotocolhelper.h similarity index 100% rename from src/coreclr/src/vm/dumpdiagnosticprotocolhelper.h rename to src/coreclr/vm/dumpdiagnosticprotocolhelper.h diff --git a/src/coreclr/src/vm/dwbucketmanager.hpp b/src/coreclr/vm/dwbucketmanager.hpp similarity index 100% rename from src/coreclr/src/vm/dwbucketmanager.hpp rename to src/coreclr/vm/dwbucketmanager.hpp diff --git a/src/coreclr/src/vm/dwreport.cpp b/src/coreclr/vm/dwreport.cpp similarity index 100% rename from src/coreclr/src/vm/dwreport.cpp rename to src/coreclr/vm/dwreport.cpp diff --git a/src/coreclr/src/vm/dwreport.h b/src/coreclr/vm/dwreport.h similarity index 100% rename from src/coreclr/src/vm/dwreport.h rename to src/coreclr/vm/dwreport.h diff --git a/src/coreclr/src/vm/dynamicinterfacecastable.cpp b/src/coreclr/vm/dynamicinterfacecastable.cpp similarity index 100% rename from src/coreclr/src/vm/dynamicinterfacecastable.cpp rename to src/coreclr/vm/dynamicinterfacecastable.cpp diff --git a/src/coreclr/src/vm/dynamicinterfacecastable.h b/src/coreclr/vm/dynamicinterfacecastable.h similarity index 100% rename from src/coreclr/src/vm/dynamicinterfacecastable.h rename to src/coreclr/vm/dynamicinterfacecastable.h diff --git a/src/coreclr/src/vm/dynamicmethod.cpp b/src/coreclr/vm/dynamicmethod.cpp similarity index 100% rename from src/coreclr/src/vm/dynamicmethod.cpp rename to src/coreclr/vm/dynamicmethod.cpp diff --git a/src/coreclr/src/vm/dynamicmethod.h b/src/coreclr/vm/dynamicmethod.h similarity index 100% rename from src/coreclr/src/vm/dynamicmethod.h rename to src/coreclr/vm/dynamicmethod.h diff --git a/src/coreclr/src/vm/ecall.cpp b/src/coreclr/vm/ecall.cpp similarity index 100% rename from src/coreclr/src/vm/ecall.cpp rename to src/coreclr/vm/ecall.cpp diff --git a/src/coreclr/src/vm/ecall.h b/src/coreclr/vm/ecall.h similarity index 100% rename from src/coreclr/src/vm/ecall.h rename to src/coreclr/vm/ecall.h diff --git a/src/coreclr/src/vm/ecalllist.h b/src/coreclr/vm/ecalllist.h similarity index 100% rename from src/coreclr/src/vm/ecalllist.h rename to src/coreclr/vm/ecalllist.h diff --git a/src/coreclr/src/vm/eeconfig.cpp b/src/coreclr/vm/eeconfig.cpp similarity index 100% rename from src/coreclr/src/vm/eeconfig.cpp rename to src/coreclr/vm/eeconfig.cpp diff --git a/src/coreclr/src/vm/eeconfig.h b/src/coreclr/vm/eeconfig.h similarity index 100% rename from src/coreclr/src/vm/eeconfig.h rename to src/coreclr/vm/eeconfig.h diff --git a/src/coreclr/src/vm/eecontract.cpp b/src/coreclr/vm/eecontract.cpp similarity index 100% rename from src/coreclr/src/vm/eecontract.cpp rename to src/coreclr/vm/eecontract.cpp diff --git a/src/coreclr/src/vm/eecontract.h b/src/coreclr/vm/eecontract.h similarity index 100% rename from src/coreclr/src/vm/eecontract.h rename to src/coreclr/vm/eecontract.h diff --git a/src/coreclr/src/vm/eedbginterface.h b/src/coreclr/vm/eedbginterface.h similarity index 100% rename from src/coreclr/src/vm/eedbginterface.h rename to src/coreclr/vm/eedbginterface.h diff --git a/src/coreclr/src/vm/eedbginterfaceimpl.cpp b/src/coreclr/vm/eedbginterfaceimpl.cpp similarity index 100% rename from src/coreclr/src/vm/eedbginterfaceimpl.cpp rename to src/coreclr/vm/eedbginterfaceimpl.cpp diff --git a/src/coreclr/src/vm/eedbginterfaceimpl.h b/src/coreclr/vm/eedbginterfaceimpl.h similarity index 100% rename from src/coreclr/src/vm/eedbginterfaceimpl.h rename to src/coreclr/vm/eedbginterfaceimpl.h diff --git a/src/coreclr/src/vm/eedbginterfaceimpl.inl b/src/coreclr/vm/eedbginterfaceimpl.inl similarity index 100% rename from src/coreclr/src/vm/eedbginterfaceimpl.inl rename to src/coreclr/vm/eedbginterfaceimpl.inl diff --git a/src/coreclr/src/vm/eehash.cpp b/src/coreclr/vm/eehash.cpp similarity index 100% rename from src/coreclr/src/vm/eehash.cpp rename to src/coreclr/vm/eehash.cpp diff --git a/src/coreclr/src/vm/eehash.h b/src/coreclr/vm/eehash.h similarity index 100% rename from src/coreclr/src/vm/eehash.h rename to src/coreclr/vm/eehash.h diff --git a/src/coreclr/src/vm/eehash.inl b/src/coreclr/vm/eehash.inl similarity index 100% rename from src/coreclr/src/vm/eehash.inl rename to src/coreclr/vm/eehash.inl diff --git a/src/coreclr/src/vm/eemessagebox.cpp b/src/coreclr/vm/eemessagebox.cpp similarity index 100% rename from src/coreclr/src/vm/eemessagebox.cpp rename to src/coreclr/vm/eemessagebox.cpp diff --git a/src/coreclr/src/vm/eemessagebox.h b/src/coreclr/vm/eemessagebox.h similarity index 100% rename from src/coreclr/src/vm/eemessagebox.h rename to src/coreclr/vm/eemessagebox.h diff --git a/src/coreclr/src/vm/eepolicy.cpp b/src/coreclr/vm/eepolicy.cpp similarity index 100% rename from src/coreclr/src/vm/eepolicy.cpp rename to src/coreclr/vm/eepolicy.cpp diff --git a/src/coreclr/src/vm/eepolicy.h b/src/coreclr/vm/eepolicy.h similarity index 100% rename from src/coreclr/src/vm/eepolicy.h rename to src/coreclr/vm/eepolicy.h diff --git a/src/coreclr/src/vm/eeprofinterfaces.h b/src/coreclr/vm/eeprofinterfaces.h similarity index 100% rename from src/coreclr/src/vm/eeprofinterfaces.h rename to src/coreclr/vm/eeprofinterfaces.h diff --git a/src/coreclr/src/vm/eeprofinterfaces.inl b/src/coreclr/vm/eeprofinterfaces.inl similarity index 100% rename from src/coreclr/src/vm/eeprofinterfaces.inl rename to src/coreclr/vm/eeprofinterfaces.inl diff --git a/src/coreclr/src/vm/eetoprofinterfaceimpl.cpp b/src/coreclr/vm/eetoprofinterfaceimpl.cpp similarity index 100% rename from src/coreclr/src/vm/eetoprofinterfaceimpl.cpp rename to src/coreclr/vm/eetoprofinterfaceimpl.cpp diff --git a/src/coreclr/src/vm/eetoprofinterfaceimpl.h b/src/coreclr/vm/eetoprofinterfaceimpl.h similarity index 100% rename from src/coreclr/src/vm/eetoprofinterfaceimpl.h rename to src/coreclr/vm/eetoprofinterfaceimpl.h diff --git a/src/coreclr/src/vm/eetoprofinterfaceimpl.inl b/src/coreclr/vm/eetoprofinterfaceimpl.inl similarity index 100% rename from src/coreclr/src/vm/eetoprofinterfaceimpl.inl rename to src/coreclr/vm/eetoprofinterfaceimpl.inl diff --git a/src/coreclr/src/vm/eetoprofinterfacewrapper.inl b/src/coreclr/vm/eetoprofinterfacewrapper.inl similarity index 100% rename from src/coreclr/src/vm/eetoprofinterfacewrapper.inl rename to src/coreclr/vm/eetoprofinterfacewrapper.inl diff --git a/src/coreclr/src/vm/eetwain.cpp b/src/coreclr/vm/eetwain.cpp similarity index 100% rename from src/coreclr/src/vm/eetwain.cpp rename to src/coreclr/vm/eetwain.cpp diff --git a/src/coreclr/src/vm/encee.cpp b/src/coreclr/vm/encee.cpp similarity index 100% rename from src/coreclr/src/vm/encee.cpp rename to src/coreclr/vm/encee.cpp diff --git a/src/coreclr/src/vm/encee.h b/src/coreclr/vm/encee.h similarity index 100% rename from src/coreclr/src/vm/encee.h rename to src/coreclr/vm/encee.h diff --git a/src/coreclr/src/vm/eventing/CMakeLists.txt b/src/coreclr/vm/eventing/CMakeLists.txt similarity index 94% rename from src/coreclr/src/vm/eventing/CMakeLists.txt rename to src/coreclr/vm/eventing/CMakeLists.txt index e2bf024fc59fd..fccfa86aef3ba 100644 --- a/src/coreclr/src/vm/eventing/CMakeLists.txt +++ b/src/coreclr/vm/eventing/CMakeLists.txt @@ -22,7 +22,7 @@ if (NEED_XPLAT_HEADER) ${GENERATED_INCLUDE_DIR}/clrxplatevents.h) endif() -set(GENEVENTING_SCRIPT ${CLR_DIR}/src/scripts/genEventing.py) +set(GENEVENTING_SCRIPT ${CLR_DIR}/scripts/genEventing.py) add_custom_target(eventing_headers ${PYTHON_EXECUTABLE} ${GENEVENTING_SCRIPT} --man ${EVENT_MANIFEST} --inc ${GENERATED_INCLUDE_DIR} --dummy ${GENERATED_INCLUDE_DIR}/etmdummy.h ${NONEXTERN_ARG} ${NOXPLATHEADER_ARG} diff --git a/src/coreclr/src/vm/eventing/EtwProvider/CMakeLists.txt b/src/coreclr/vm/eventing/EtwProvider/CMakeLists.txt similarity index 90% rename from src/coreclr/src/vm/eventing/EtwProvider/CMakeLists.txt rename to src/coreclr/vm/eventing/EtwProvider/CMakeLists.txt index 4c7df2fbb3cf1..6545b03117e5f 100644 --- a/src/coreclr/src/vm/eventing/EtwProvider/CMakeLists.txt +++ b/src/coreclr/vm/eventing/EtwProvider/CMakeLists.txt @@ -1,6 +1,6 @@ include(FindPythonInterp) -set(ETW_PROVIDER_SCRIPT ${CLR_DIR}/src/scripts/genEtwProvider.py) +set(ETW_PROVIDER_SCRIPT ${CLR_DIR}/scripts/genEtwProvider.py) set (ETW_PROVIDER_OUTPUTS ${GENERATED_INCLUDE_DIR}/etw/ClrEtwAll.h diff --git a/src/coreclr/src/vm/eventing/eventpipe/CMakeLists.txt b/src/coreclr/vm/eventing/eventpipe/CMakeLists.txt similarity index 95% rename from src/coreclr/src/vm/eventing/eventpipe/CMakeLists.txt rename to src/coreclr/vm/eventing/eventpipe/CMakeLists.txt index 00d79737e54cf..19e2911770d60 100644 --- a/src/coreclr/src/vm/eventing/eventpipe/CMakeLists.txt +++ b/src/coreclr/vm/eventing/eventpipe/CMakeLists.txt @@ -2,7 +2,7 @@ include(FindPythonInterp) set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(GENERATE_SCRIPT ${CLR_DIR}/src/scripts/genEventPipe.py) +set(GENERATE_SCRIPT ${CLR_DIR}/scripts/genEventPipe.py) set(GENERATE_COMMAND ${PYTHON_EXECUTABLE} ${GENERATE_SCRIPT} --man ${EVENT_MANIFEST} --exc ${EVENT_EXCLUSIONS} --intermediate ${CMAKE_CURRENT_BINARY_DIR} ${NONEXTERN_ARG}) execute_process( diff --git a/src/coreclr/src/vm/eventpipe.cpp b/src/coreclr/vm/eventpipe.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipe.cpp rename to src/coreclr/vm/eventpipe.cpp diff --git a/src/coreclr/src/vm/eventpipe.h b/src/coreclr/vm/eventpipe.h similarity index 100% rename from src/coreclr/src/vm/eventpipe.h rename to src/coreclr/vm/eventpipe.h diff --git a/src/coreclr/src/vm/eventpipeblock.cpp b/src/coreclr/vm/eventpipeblock.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipeblock.cpp rename to src/coreclr/vm/eventpipeblock.cpp diff --git a/src/coreclr/src/vm/eventpipeblock.h b/src/coreclr/vm/eventpipeblock.h similarity index 100% rename from src/coreclr/src/vm/eventpipeblock.h rename to src/coreclr/vm/eventpipeblock.h diff --git a/src/coreclr/src/vm/eventpipebuffer.cpp b/src/coreclr/vm/eventpipebuffer.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipebuffer.cpp rename to src/coreclr/vm/eventpipebuffer.cpp diff --git a/src/coreclr/src/vm/eventpipebuffer.h b/src/coreclr/vm/eventpipebuffer.h similarity index 100% rename from src/coreclr/src/vm/eventpipebuffer.h rename to src/coreclr/vm/eventpipebuffer.h diff --git a/src/coreclr/src/vm/eventpipebuffermanager.cpp b/src/coreclr/vm/eventpipebuffermanager.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipebuffermanager.cpp rename to src/coreclr/vm/eventpipebuffermanager.cpp diff --git a/src/coreclr/src/vm/eventpipebuffermanager.h b/src/coreclr/vm/eventpipebuffermanager.h similarity index 100% rename from src/coreclr/src/vm/eventpipebuffermanager.h rename to src/coreclr/vm/eventpipebuffermanager.h diff --git a/src/coreclr/src/vm/eventpipecommontypes.cpp b/src/coreclr/vm/eventpipecommontypes.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipecommontypes.cpp rename to src/coreclr/vm/eventpipecommontypes.cpp diff --git a/src/coreclr/src/vm/eventpipecommontypes.h b/src/coreclr/vm/eventpipecommontypes.h similarity index 100% rename from src/coreclr/src/vm/eventpipecommontypes.h rename to src/coreclr/vm/eventpipecommontypes.h diff --git a/src/coreclr/src/vm/eventpipeconfiguration.cpp b/src/coreclr/vm/eventpipeconfiguration.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipeconfiguration.cpp rename to src/coreclr/vm/eventpipeconfiguration.cpp diff --git a/src/coreclr/src/vm/eventpipeconfiguration.h b/src/coreclr/vm/eventpipeconfiguration.h similarity index 100% rename from src/coreclr/src/vm/eventpipeconfiguration.h rename to src/coreclr/vm/eventpipeconfiguration.h diff --git a/src/coreclr/src/vm/eventpipeevent.cpp b/src/coreclr/vm/eventpipeevent.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipeevent.cpp rename to src/coreclr/vm/eventpipeevent.cpp diff --git a/src/coreclr/src/vm/eventpipeevent.h b/src/coreclr/vm/eventpipeevent.h similarity index 100% rename from src/coreclr/src/vm/eventpipeevent.h rename to src/coreclr/vm/eventpipeevent.h diff --git a/src/coreclr/src/vm/eventpipeeventinstance.cpp b/src/coreclr/vm/eventpipeeventinstance.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipeeventinstance.cpp rename to src/coreclr/vm/eventpipeeventinstance.cpp diff --git a/src/coreclr/src/vm/eventpipeeventinstance.h b/src/coreclr/vm/eventpipeeventinstance.h similarity index 100% rename from src/coreclr/src/vm/eventpipeeventinstance.h rename to src/coreclr/vm/eventpipeeventinstance.h diff --git a/src/coreclr/src/vm/eventpipeeventpayload.cpp b/src/coreclr/vm/eventpipeeventpayload.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipeeventpayload.cpp rename to src/coreclr/vm/eventpipeeventpayload.cpp diff --git a/src/coreclr/src/vm/eventpipeeventpayload.h b/src/coreclr/vm/eventpipeeventpayload.h similarity index 100% rename from src/coreclr/src/vm/eventpipeeventpayload.h rename to src/coreclr/vm/eventpipeeventpayload.h diff --git a/src/coreclr/src/vm/eventpipeeventsource.cpp b/src/coreclr/vm/eventpipeeventsource.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipeeventsource.cpp rename to src/coreclr/vm/eventpipeeventsource.cpp diff --git a/src/coreclr/src/vm/eventpipeeventsource.h b/src/coreclr/vm/eventpipeeventsource.h similarity index 100% rename from src/coreclr/src/vm/eventpipeeventsource.h rename to src/coreclr/vm/eventpipeeventsource.h diff --git a/src/coreclr/src/vm/eventpipefile.cpp b/src/coreclr/vm/eventpipefile.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipefile.cpp rename to src/coreclr/vm/eventpipefile.cpp diff --git a/src/coreclr/src/vm/eventpipefile.h b/src/coreclr/vm/eventpipefile.h similarity index 100% rename from src/coreclr/src/vm/eventpipefile.h rename to src/coreclr/vm/eventpipefile.h diff --git a/src/coreclr/src/vm/eventpipeinternal.cpp b/src/coreclr/vm/eventpipeinternal.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipeinternal.cpp rename to src/coreclr/vm/eventpipeinternal.cpp diff --git a/src/coreclr/src/vm/eventpipeinternal.h b/src/coreclr/vm/eventpipeinternal.h similarity index 100% rename from src/coreclr/src/vm/eventpipeinternal.h rename to src/coreclr/vm/eventpipeinternal.h diff --git a/src/coreclr/src/vm/eventpipejsonfile.cpp b/src/coreclr/vm/eventpipejsonfile.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipejsonfile.cpp rename to src/coreclr/vm/eventpipejsonfile.cpp diff --git a/src/coreclr/src/vm/eventpipejsonfile.h b/src/coreclr/vm/eventpipejsonfile.h similarity index 100% rename from src/coreclr/src/vm/eventpipejsonfile.h rename to src/coreclr/vm/eventpipejsonfile.h diff --git a/src/coreclr/src/vm/eventpipemetadatagenerator.cpp b/src/coreclr/vm/eventpipemetadatagenerator.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipemetadatagenerator.cpp rename to src/coreclr/vm/eventpipemetadatagenerator.cpp diff --git a/src/coreclr/src/vm/eventpipemetadatagenerator.h b/src/coreclr/vm/eventpipemetadatagenerator.h similarity index 100% rename from src/coreclr/src/vm/eventpipemetadatagenerator.h rename to src/coreclr/vm/eventpipemetadatagenerator.h diff --git a/src/coreclr/src/vm/eventpipeprotocolhelper.cpp b/src/coreclr/vm/eventpipeprotocolhelper.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipeprotocolhelper.cpp rename to src/coreclr/vm/eventpipeprotocolhelper.cpp diff --git a/src/coreclr/src/vm/eventpipeprotocolhelper.h b/src/coreclr/vm/eventpipeprotocolhelper.h similarity index 100% rename from src/coreclr/src/vm/eventpipeprotocolhelper.h rename to src/coreclr/vm/eventpipeprotocolhelper.h diff --git a/src/coreclr/src/vm/eventpipeprovider.cpp b/src/coreclr/vm/eventpipeprovider.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipeprovider.cpp rename to src/coreclr/vm/eventpipeprovider.cpp diff --git a/src/coreclr/src/vm/eventpipeprovider.h b/src/coreclr/vm/eventpipeprovider.h similarity index 100% rename from src/coreclr/src/vm/eventpipeprovider.h rename to src/coreclr/vm/eventpipeprovider.h diff --git a/src/coreclr/src/vm/eventpipesession.cpp b/src/coreclr/vm/eventpipesession.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipesession.cpp rename to src/coreclr/vm/eventpipesession.cpp diff --git a/src/coreclr/src/vm/eventpipesession.h b/src/coreclr/vm/eventpipesession.h similarity index 100% rename from src/coreclr/src/vm/eventpipesession.h rename to src/coreclr/vm/eventpipesession.h diff --git a/src/coreclr/src/vm/eventpipesessionprovider.cpp b/src/coreclr/vm/eventpipesessionprovider.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipesessionprovider.cpp rename to src/coreclr/vm/eventpipesessionprovider.cpp diff --git a/src/coreclr/src/vm/eventpipesessionprovider.h b/src/coreclr/vm/eventpipesessionprovider.h similarity index 100% rename from src/coreclr/src/vm/eventpipesessionprovider.h rename to src/coreclr/vm/eventpipesessionprovider.h diff --git a/src/coreclr/src/vm/eventpipethread.cpp b/src/coreclr/vm/eventpipethread.cpp similarity index 100% rename from src/coreclr/src/vm/eventpipethread.cpp rename to src/coreclr/vm/eventpipethread.cpp diff --git a/src/coreclr/src/vm/eventpipethread.h b/src/coreclr/vm/eventpipethread.h similarity index 100% rename from src/coreclr/src/vm/eventpipethread.h rename to src/coreclr/vm/eventpipethread.h diff --git a/src/coreclr/src/vm/eventreporter.cpp b/src/coreclr/vm/eventreporter.cpp similarity index 100% rename from src/coreclr/src/vm/eventreporter.cpp rename to src/coreclr/vm/eventreporter.cpp diff --git a/src/coreclr/src/vm/eventreporter.h b/src/coreclr/vm/eventreporter.h similarity index 100% rename from src/coreclr/src/vm/eventreporter.h rename to src/coreclr/vm/eventreporter.h diff --git a/src/coreclr/src/vm/eventstore.cpp b/src/coreclr/vm/eventstore.cpp similarity index 100% rename from src/coreclr/src/vm/eventstore.cpp rename to src/coreclr/vm/eventstore.cpp diff --git a/src/coreclr/src/vm/eventstore.hpp b/src/coreclr/vm/eventstore.hpp similarity index 100% rename from src/coreclr/src/vm/eventstore.hpp rename to src/coreclr/vm/eventstore.hpp diff --git a/src/coreclr/src/vm/eventtrace.cpp b/src/coreclr/vm/eventtrace.cpp similarity index 100% rename from src/coreclr/src/vm/eventtrace.cpp rename to src/coreclr/vm/eventtrace.cpp diff --git a/src/coreclr/src/vm/eventtrace.inl b/src/coreclr/vm/eventtrace.inl similarity index 100% rename from src/coreclr/src/vm/eventtrace.inl rename to src/coreclr/vm/eventtrace.inl diff --git a/src/coreclr/src/vm/eventtracepriv.h b/src/coreclr/vm/eventtracepriv.h similarity index 100% rename from src/coreclr/src/vm/eventtracepriv.h rename to src/coreclr/vm/eventtracepriv.h diff --git a/src/coreclr/src/vm/excep.cpp b/src/coreclr/vm/excep.cpp similarity index 100% rename from src/coreclr/src/vm/excep.cpp rename to src/coreclr/vm/excep.cpp diff --git a/src/coreclr/src/vm/excep.h b/src/coreclr/vm/excep.h similarity index 100% rename from src/coreclr/src/vm/excep.h rename to src/coreclr/vm/excep.h diff --git a/src/coreclr/src/vm/exceptionhandling.cpp b/src/coreclr/vm/exceptionhandling.cpp similarity index 100% rename from src/coreclr/src/vm/exceptionhandling.cpp rename to src/coreclr/vm/exceptionhandling.cpp diff --git a/src/coreclr/src/vm/exceptionhandling.h b/src/coreclr/vm/exceptionhandling.h similarity index 100% rename from src/coreclr/src/vm/exceptionhandling.h rename to src/coreclr/vm/exceptionhandling.h diff --git a/src/coreclr/src/vm/exceptmacros.h b/src/coreclr/vm/exceptmacros.h similarity index 100% rename from src/coreclr/src/vm/exceptmacros.h rename to src/coreclr/vm/exceptmacros.h diff --git a/src/coreclr/src/vm/exinfo.cpp b/src/coreclr/vm/exinfo.cpp similarity index 100% rename from src/coreclr/src/vm/exinfo.cpp rename to src/coreclr/vm/exinfo.cpp diff --git a/src/coreclr/src/vm/exinfo.h b/src/coreclr/vm/exinfo.h similarity index 100% rename from src/coreclr/src/vm/exinfo.h rename to src/coreclr/vm/exinfo.h diff --git a/src/coreclr/src/vm/exstate.cpp b/src/coreclr/vm/exstate.cpp similarity index 100% rename from src/coreclr/src/vm/exstate.cpp rename to src/coreclr/vm/exstate.cpp diff --git a/src/coreclr/src/vm/exstate.h b/src/coreclr/vm/exstate.h similarity index 100% rename from src/coreclr/src/vm/exstate.h rename to src/coreclr/vm/exstate.h diff --git a/src/coreclr/src/vm/exstatecommon.h b/src/coreclr/vm/exstatecommon.h similarity index 100% rename from src/coreclr/src/vm/exstatecommon.h rename to src/coreclr/vm/exstatecommon.h diff --git a/src/coreclr/src/vm/fastserializableobject.h b/src/coreclr/vm/fastserializableobject.h similarity index 100% rename from src/coreclr/src/vm/fastserializableobject.h rename to src/coreclr/vm/fastserializableobject.h diff --git a/src/coreclr/src/vm/fastserializer.cpp b/src/coreclr/vm/fastserializer.cpp similarity index 100% rename from src/coreclr/src/vm/fastserializer.cpp rename to src/coreclr/vm/fastserializer.cpp diff --git a/src/coreclr/src/vm/fastserializer.h b/src/coreclr/vm/fastserializer.h similarity index 100% rename from src/coreclr/src/vm/fastserializer.h rename to src/coreclr/vm/fastserializer.h diff --git a/src/coreclr/src/vm/fcall.cpp b/src/coreclr/vm/fcall.cpp similarity index 100% rename from src/coreclr/src/vm/fcall.cpp rename to src/coreclr/vm/fcall.cpp diff --git a/src/coreclr/src/vm/fcall.h b/src/coreclr/vm/fcall.h similarity index 100% rename from src/coreclr/src/vm/fcall.h rename to src/coreclr/vm/fcall.h diff --git a/src/coreclr/src/vm/field.cpp b/src/coreclr/vm/field.cpp similarity index 100% rename from src/coreclr/src/vm/field.cpp rename to src/coreclr/vm/field.cpp diff --git a/src/coreclr/src/vm/field.h b/src/coreclr/vm/field.h similarity index 100% rename from src/coreclr/src/vm/field.h rename to src/coreclr/vm/field.h diff --git a/src/coreclr/src/vm/fieldmarshaler.cpp b/src/coreclr/vm/fieldmarshaler.cpp similarity index 100% rename from src/coreclr/src/vm/fieldmarshaler.cpp rename to src/coreclr/vm/fieldmarshaler.cpp diff --git a/src/coreclr/src/vm/fieldmarshaler.h b/src/coreclr/vm/fieldmarshaler.h similarity index 100% rename from src/coreclr/src/vm/fieldmarshaler.h rename to src/coreclr/vm/fieldmarshaler.h diff --git a/src/coreclr/src/vm/finalizerthread.cpp b/src/coreclr/vm/finalizerthread.cpp similarity index 100% rename from src/coreclr/src/vm/finalizerthread.cpp rename to src/coreclr/vm/finalizerthread.cpp diff --git a/src/coreclr/src/vm/finalizerthread.h b/src/coreclr/vm/finalizerthread.h similarity index 100% rename from src/coreclr/src/vm/finalizerthread.h rename to src/coreclr/vm/finalizerthread.h diff --git a/src/coreclr/src/vm/formattype.cpp b/src/coreclr/vm/formattype.cpp similarity index 100% rename from src/coreclr/src/vm/formattype.cpp rename to src/coreclr/vm/formattype.cpp diff --git a/src/coreclr/src/vm/fptrstubs.cpp b/src/coreclr/vm/fptrstubs.cpp similarity index 100% rename from src/coreclr/src/vm/fptrstubs.cpp rename to src/coreclr/vm/fptrstubs.cpp diff --git a/src/coreclr/src/vm/fptrstubs.h b/src/coreclr/vm/fptrstubs.h similarity index 100% rename from src/coreclr/src/vm/fptrstubs.h rename to src/coreclr/vm/fptrstubs.h diff --git a/src/coreclr/src/vm/frames.cpp b/src/coreclr/vm/frames.cpp similarity index 100% rename from src/coreclr/src/vm/frames.cpp rename to src/coreclr/vm/frames.cpp diff --git a/src/coreclr/src/vm/frames.h b/src/coreclr/vm/frames.h similarity index 100% rename from src/coreclr/src/vm/frames.h rename to src/coreclr/vm/frames.h diff --git a/src/coreclr/src/vm/gccover.cpp b/src/coreclr/vm/gccover.cpp similarity index 100% rename from src/coreclr/src/vm/gccover.cpp rename to src/coreclr/vm/gccover.cpp diff --git a/src/coreclr/src/vm/gccover.h b/src/coreclr/vm/gccover.h similarity index 100% rename from src/coreclr/src/vm/gccover.h rename to src/coreclr/vm/gccover.h diff --git a/src/coreclr/src/vm/gcdecode.cpp b/src/coreclr/vm/gcdecode.cpp similarity index 100% rename from src/coreclr/src/vm/gcdecode.cpp rename to src/coreclr/vm/gcdecode.cpp diff --git a/src/coreclr/src/vm/gcdesc.h b/src/coreclr/vm/gcdesc.h similarity index 100% rename from src/coreclr/src/vm/gcdesc.h rename to src/coreclr/vm/gcdesc.h diff --git a/src/coreclr/src/vm/gcenv.ee.common.cpp b/src/coreclr/vm/gcenv.ee.common.cpp similarity index 100% rename from src/coreclr/src/vm/gcenv.ee.common.cpp rename to src/coreclr/vm/gcenv.ee.common.cpp diff --git a/src/coreclr/src/vm/gcenv.ee.cpp b/src/coreclr/vm/gcenv.ee.cpp similarity index 100% rename from src/coreclr/src/vm/gcenv.ee.cpp rename to src/coreclr/vm/gcenv.ee.cpp diff --git a/src/coreclr/src/vm/gcenv.ee.h b/src/coreclr/vm/gcenv.ee.h similarity index 100% rename from src/coreclr/src/vm/gcenv.ee.h rename to src/coreclr/vm/gcenv.ee.h diff --git a/src/coreclr/src/vm/gcenv.ee.standalone.cpp b/src/coreclr/vm/gcenv.ee.standalone.cpp similarity index 100% rename from src/coreclr/src/vm/gcenv.ee.standalone.cpp rename to src/coreclr/vm/gcenv.ee.standalone.cpp diff --git a/src/coreclr/src/vm/gcenv.ee.static.cpp b/src/coreclr/vm/gcenv.ee.static.cpp similarity index 100% rename from src/coreclr/src/vm/gcenv.ee.static.cpp rename to src/coreclr/vm/gcenv.ee.static.cpp diff --git a/src/coreclr/src/vm/gcenv.h b/src/coreclr/vm/gcenv.h similarity index 100% rename from src/coreclr/src/vm/gcenv.h rename to src/coreclr/vm/gcenv.h diff --git a/src/coreclr/src/vm/gcenv.interlocked.h b/src/coreclr/vm/gcenv.interlocked.h similarity index 100% rename from src/coreclr/src/vm/gcenv.interlocked.h rename to src/coreclr/vm/gcenv.interlocked.h diff --git a/src/coreclr/src/vm/gcenv.interlocked.inl b/src/coreclr/vm/gcenv.interlocked.inl similarity index 100% rename from src/coreclr/src/vm/gcenv.interlocked.inl rename to src/coreclr/vm/gcenv.interlocked.inl diff --git a/src/coreclr/src/vm/gcenv.os.cpp b/src/coreclr/vm/gcenv.os.cpp similarity index 100% rename from src/coreclr/src/vm/gcenv.os.cpp rename to src/coreclr/vm/gcenv.os.cpp diff --git a/src/coreclr/src/vm/gcenv.os.h b/src/coreclr/vm/gcenv.os.h similarity index 100% rename from src/coreclr/src/vm/gcenv.os.h rename to src/coreclr/vm/gcenv.os.h diff --git a/src/coreclr/src/vm/gcenv.unix.inl b/src/coreclr/vm/gcenv.unix.inl similarity index 100% rename from src/coreclr/src/vm/gcenv.unix.inl rename to src/coreclr/vm/gcenv.unix.inl diff --git a/src/coreclr/src/vm/gcenv.windows.inl b/src/coreclr/vm/gcenv.windows.inl similarity index 100% rename from src/coreclr/src/vm/gcenv.windows.inl rename to src/coreclr/vm/gcenv.windows.inl diff --git a/src/coreclr/src/vm/gchandleutilities.cpp b/src/coreclr/vm/gchandleutilities.cpp similarity index 100% rename from src/coreclr/src/vm/gchandleutilities.cpp rename to src/coreclr/vm/gchandleutilities.cpp diff --git a/src/coreclr/src/vm/gchandleutilities.h b/src/coreclr/vm/gchandleutilities.h similarity index 100% rename from src/coreclr/src/vm/gchandleutilities.h rename to src/coreclr/vm/gchandleutilities.h diff --git a/src/coreclr/src/vm/gcheaphashtable.h b/src/coreclr/vm/gcheaphashtable.h similarity index 100% rename from src/coreclr/src/vm/gcheaphashtable.h rename to src/coreclr/vm/gcheaphashtable.h diff --git a/src/coreclr/src/vm/gcheaphashtable.inl b/src/coreclr/vm/gcheaphashtable.inl similarity index 100% rename from src/coreclr/src/vm/gcheaphashtable.inl rename to src/coreclr/vm/gcheaphashtable.inl diff --git a/src/coreclr/src/vm/gcheaputilities.cpp b/src/coreclr/vm/gcheaputilities.cpp similarity index 100% rename from src/coreclr/src/vm/gcheaputilities.cpp rename to src/coreclr/vm/gcheaputilities.cpp diff --git a/src/coreclr/src/vm/gcheaputilities.h b/src/coreclr/vm/gcheaputilities.h similarity index 100% rename from src/coreclr/src/vm/gcheaputilities.h rename to src/coreclr/vm/gcheaputilities.h diff --git a/src/coreclr/src/vm/gchelpers.cpp b/src/coreclr/vm/gchelpers.cpp similarity index 100% rename from src/coreclr/src/vm/gchelpers.cpp rename to src/coreclr/vm/gchelpers.cpp diff --git a/src/coreclr/src/vm/gchelpers.h b/src/coreclr/vm/gchelpers.h similarity index 100% rename from src/coreclr/src/vm/gchelpers.h rename to src/coreclr/vm/gchelpers.h diff --git a/src/coreclr/src/vm/gchelpers.inl b/src/coreclr/vm/gchelpers.inl similarity index 100% rename from src/coreclr/src/vm/gchelpers.inl rename to src/coreclr/vm/gchelpers.inl diff --git a/src/coreclr/src/vm/gcinfodecoder.cpp b/src/coreclr/vm/gcinfodecoder.cpp similarity index 100% rename from src/coreclr/src/vm/gcinfodecoder.cpp rename to src/coreclr/vm/gcinfodecoder.cpp diff --git a/src/coreclr/src/vm/gcinterface.h b/src/coreclr/vm/gcinterface.h similarity index 100% rename from src/coreclr/src/vm/gcinterface.h rename to src/coreclr/vm/gcinterface.h diff --git a/src/coreclr/src/vm/gcstress.h b/src/coreclr/vm/gcstress.h similarity index 100% rename from src/coreclr/src/vm/gcstress.h rename to src/coreclr/vm/gcstress.h diff --git a/src/coreclr/src/vm/gctoclreventsink.cpp b/src/coreclr/vm/gctoclreventsink.cpp similarity index 100% rename from src/coreclr/src/vm/gctoclreventsink.cpp rename to src/coreclr/vm/gctoclreventsink.cpp diff --git a/src/coreclr/src/vm/gctoclreventsink.h b/src/coreclr/vm/gctoclreventsink.h similarity index 100% rename from src/coreclr/src/vm/gctoclreventsink.h rename to src/coreclr/vm/gctoclreventsink.h diff --git a/src/coreclr/src/vm/gdbjit.cpp b/src/coreclr/vm/gdbjit.cpp similarity index 100% rename from src/coreclr/src/vm/gdbjit.cpp rename to src/coreclr/vm/gdbjit.cpp diff --git a/src/coreclr/src/vm/gdbjit.h b/src/coreclr/vm/gdbjit.h similarity index 100% rename from src/coreclr/src/vm/gdbjit.h rename to src/coreclr/vm/gdbjit.h diff --git a/src/coreclr/src/vm/gdbjithelpers.h b/src/coreclr/vm/gdbjithelpers.h similarity index 100% rename from src/coreclr/src/vm/gdbjithelpers.h rename to src/coreclr/vm/gdbjithelpers.h diff --git a/src/coreclr/src/vm/genanalysis.cpp b/src/coreclr/vm/genanalysis.cpp similarity index 100% rename from src/coreclr/src/vm/genanalysis.cpp rename to src/coreclr/vm/genanalysis.cpp diff --git a/src/coreclr/src/vm/genanalysis.h b/src/coreclr/vm/genanalysis.h similarity index 100% rename from src/coreclr/src/vm/genanalysis.h rename to src/coreclr/vm/genanalysis.h diff --git a/src/coreclr/src/vm/genericdict.cpp b/src/coreclr/vm/genericdict.cpp similarity index 100% rename from src/coreclr/src/vm/genericdict.cpp rename to src/coreclr/vm/genericdict.cpp diff --git a/src/coreclr/src/vm/genericdict.h b/src/coreclr/vm/genericdict.h similarity index 100% rename from src/coreclr/src/vm/genericdict.h rename to src/coreclr/vm/genericdict.h diff --git a/src/coreclr/src/vm/generics.cpp b/src/coreclr/vm/generics.cpp similarity index 100% rename from src/coreclr/src/vm/generics.cpp rename to src/coreclr/vm/generics.cpp diff --git a/src/coreclr/src/vm/generics.h b/src/coreclr/vm/generics.h similarity index 100% rename from src/coreclr/src/vm/generics.h rename to src/coreclr/vm/generics.h diff --git a/src/coreclr/src/vm/genmeth.cpp b/src/coreclr/vm/genmeth.cpp similarity index 100% rename from src/coreclr/src/vm/genmeth.cpp rename to src/coreclr/vm/genmeth.cpp diff --git a/src/coreclr/src/vm/gms.h b/src/coreclr/vm/gms.h similarity index 100% rename from src/coreclr/src/vm/gms.h rename to src/coreclr/vm/gms.h diff --git a/src/coreclr/src/vm/h2inc.pl b/src/coreclr/vm/h2inc.pl similarity index 100% rename from src/coreclr/src/vm/h2inc.pl rename to src/coreclr/vm/h2inc.pl diff --git a/src/coreclr/src/vm/h2inc.ps1 b/src/coreclr/vm/h2inc.ps1 similarity index 100% rename from src/coreclr/src/vm/h2inc.ps1 rename to src/coreclr/vm/h2inc.ps1 diff --git a/src/coreclr/src/vm/hash.cpp b/src/coreclr/vm/hash.cpp similarity index 100% rename from src/coreclr/src/vm/hash.cpp rename to src/coreclr/vm/hash.cpp diff --git a/src/coreclr/src/vm/hash.h b/src/coreclr/vm/hash.h similarity index 100% rename from src/coreclr/src/vm/hash.h rename to src/coreclr/vm/hash.h diff --git a/src/coreclr/src/vm/hillclimbing.cpp b/src/coreclr/vm/hillclimbing.cpp similarity index 100% rename from src/coreclr/src/vm/hillclimbing.cpp rename to src/coreclr/vm/hillclimbing.cpp diff --git a/src/coreclr/src/vm/hillclimbing.h b/src/coreclr/vm/hillclimbing.h similarity index 100% rename from src/coreclr/src/vm/hillclimbing.h rename to src/coreclr/vm/hillclimbing.h diff --git a/src/coreclr/src/vm/hosting.cpp b/src/coreclr/vm/hosting.cpp similarity index 100% rename from src/coreclr/src/vm/hosting.cpp rename to src/coreclr/vm/hosting.cpp diff --git a/src/coreclr/src/vm/i386/AsmMacros.inc b/src/coreclr/vm/i386/AsmMacros.inc similarity index 100% rename from src/coreclr/src/vm/i386/AsmMacros.inc rename to src/coreclr/vm/i386/AsmMacros.inc diff --git a/src/coreclr/src/vm/i386/PInvokeStubs.asm b/src/coreclr/vm/i386/PInvokeStubs.asm similarity index 100% rename from src/coreclr/src/vm/i386/PInvokeStubs.asm rename to src/coreclr/vm/i386/PInvokeStubs.asm diff --git a/src/coreclr/src/vm/i386/RedirectedHandledJITCase.asm b/src/coreclr/vm/i386/RedirectedHandledJITCase.asm similarity index 100% rename from src/coreclr/src/vm/i386/RedirectedHandledJITCase.asm rename to src/coreclr/vm/i386/RedirectedHandledJITCase.asm diff --git a/src/coreclr/src/vm/i386/asmconstants.h b/src/coreclr/vm/i386/asmconstants.h similarity index 100% rename from src/coreclr/src/vm/i386/asmconstants.h rename to src/coreclr/vm/i386/asmconstants.h diff --git a/src/coreclr/src/vm/i386/asmhelpers.S b/src/coreclr/vm/i386/asmhelpers.S similarity index 100% rename from src/coreclr/src/vm/i386/asmhelpers.S rename to src/coreclr/vm/i386/asmhelpers.S diff --git a/src/coreclr/src/vm/i386/asmhelpers.asm b/src/coreclr/vm/i386/asmhelpers.asm similarity index 100% rename from src/coreclr/src/vm/i386/asmhelpers.asm rename to src/coreclr/vm/i386/asmhelpers.asm diff --git a/src/coreclr/src/vm/i386/cgencpu.h b/src/coreclr/vm/i386/cgencpu.h similarity index 100% rename from src/coreclr/src/vm/i386/cgencpu.h rename to src/coreclr/vm/i386/cgencpu.h diff --git a/src/coreclr/src/vm/i386/cgenx86.cpp b/src/coreclr/vm/i386/cgenx86.cpp similarity index 100% rename from src/coreclr/src/vm/i386/cgenx86.cpp rename to src/coreclr/vm/i386/cgenx86.cpp diff --git a/src/coreclr/src/vm/i386/ehhelpers.S b/src/coreclr/vm/i386/ehhelpers.S similarity index 100% rename from src/coreclr/src/vm/i386/ehhelpers.S rename to src/coreclr/vm/i386/ehhelpers.S diff --git a/src/coreclr/src/vm/i386/excepcpu.h b/src/coreclr/vm/i386/excepcpu.h similarity index 100% rename from src/coreclr/src/vm/i386/excepcpu.h rename to src/coreclr/vm/i386/excepcpu.h diff --git a/src/coreclr/src/vm/i386/excepx86.cpp b/src/coreclr/vm/i386/excepx86.cpp similarity index 100% rename from src/coreclr/src/vm/i386/excepx86.cpp rename to src/coreclr/vm/i386/excepx86.cpp diff --git a/src/coreclr/src/vm/i386/gmsasm.S b/src/coreclr/vm/i386/gmsasm.S similarity index 100% rename from src/coreclr/src/vm/i386/gmsasm.S rename to src/coreclr/vm/i386/gmsasm.S diff --git a/src/coreclr/src/vm/i386/gmsasm.asm b/src/coreclr/vm/i386/gmsasm.asm similarity index 100% rename from src/coreclr/src/vm/i386/gmsasm.asm rename to src/coreclr/vm/i386/gmsasm.asm diff --git a/src/coreclr/src/vm/i386/gmscpu.h b/src/coreclr/vm/i386/gmscpu.h similarity index 100% rename from src/coreclr/src/vm/i386/gmscpu.h rename to src/coreclr/vm/i386/gmscpu.h diff --git a/src/coreclr/src/vm/i386/gmsx86.cpp b/src/coreclr/vm/i386/gmsx86.cpp similarity index 100% rename from src/coreclr/src/vm/i386/gmsx86.cpp rename to src/coreclr/vm/i386/gmsx86.cpp diff --git a/src/coreclr/src/vm/i386/jithelp.S b/src/coreclr/vm/i386/jithelp.S similarity index 100% rename from src/coreclr/src/vm/i386/jithelp.S rename to src/coreclr/vm/i386/jithelp.S diff --git a/src/coreclr/src/vm/i386/jithelp.asm b/src/coreclr/vm/i386/jithelp.asm similarity index 100% rename from src/coreclr/src/vm/i386/jithelp.asm rename to src/coreclr/vm/i386/jithelp.asm diff --git a/src/coreclr/src/vm/i386/jitinterfacex86.cpp b/src/coreclr/vm/i386/jitinterfacex86.cpp similarity index 100% rename from src/coreclr/src/vm/i386/jitinterfacex86.cpp rename to src/coreclr/vm/i386/jitinterfacex86.cpp diff --git a/src/coreclr/src/vm/i386/pinvokestubs.S b/src/coreclr/vm/i386/pinvokestubs.S similarity index 100% rename from src/coreclr/src/vm/i386/pinvokestubs.S rename to src/coreclr/vm/i386/pinvokestubs.S diff --git a/src/coreclr/src/vm/i386/profiler.cpp b/src/coreclr/vm/i386/profiler.cpp similarity index 100% rename from src/coreclr/src/vm/i386/profiler.cpp rename to src/coreclr/vm/i386/profiler.cpp diff --git a/src/coreclr/src/vm/i386/stublinkerx86.cpp b/src/coreclr/vm/i386/stublinkerx86.cpp similarity index 100% rename from src/coreclr/src/vm/i386/stublinkerx86.cpp rename to src/coreclr/vm/i386/stublinkerx86.cpp diff --git a/src/coreclr/src/vm/i386/stublinkerx86.h b/src/coreclr/vm/i386/stublinkerx86.h similarity index 100% rename from src/coreclr/src/vm/i386/stublinkerx86.h rename to src/coreclr/vm/i386/stublinkerx86.h diff --git a/src/coreclr/src/vm/i386/umthunkstub.S b/src/coreclr/vm/i386/umthunkstub.S similarity index 100% rename from src/coreclr/src/vm/i386/umthunkstub.S rename to src/coreclr/vm/i386/umthunkstub.S diff --git a/src/coreclr/src/vm/i386/unixstubs.cpp b/src/coreclr/vm/i386/unixstubs.cpp similarity index 100% rename from src/coreclr/src/vm/i386/unixstubs.cpp rename to src/coreclr/vm/i386/unixstubs.cpp diff --git a/src/coreclr/src/vm/i386/virtualcallstubcpu.hpp b/src/coreclr/vm/i386/virtualcallstubcpu.hpp similarity index 100% rename from src/coreclr/src/vm/i386/virtualcallstubcpu.hpp rename to src/coreclr/vm/i386/virtualcallstubcpu.hpp diff --git a/src/coreclr/src/vm/ibclogger.cpp b/src/coreclr/vm/ibclogger.cpp similarity index 100% rename from src/coreclr/src/vm/ibclogger.cpp rename to src/coreclr/vm/ibclogger.cpp diff --git a/src/coreclr/src/vm/ibclogger.h b/src/coreclr/vm/ibclogger.h similarity index 100% rename from src/coreclr/src/vm/ibclogger.h rename to src/coreclr/vm/ibclogger.h diff --git a/src/coreclr/src/vm/ildump.h b/src/coreclr/vm/ildump.h similarity index 100% rename from src/coreclr/src/vm/ildump.h rename to src/coreclr/vm/ildump.h diff --git a/src/coreclr/src/vm/ilinstrumentation.cpp b/src/coreclr/vm/ilinstrumentation.cpp similarity index 100% rename from src/coreclr/src/vm/ilinstrumentation.cpp rename to src/coreclr/vm/ilinstrumentation.cpp diff --git a/src/coreclr/src/vm/ilinstrumentation.h b/src/coreclr/vm/ilinstrumentation.h similarity index 100% rename from src/coreclr/src/vm/ilinstrumentation.h rename to src/coreclr/vm/ilinstrumentation.h diff --git a/src/coreclr/src/vm/ilmarshalers.cpp b/src/coreclr/vm/ilmarshalers.cpp similarity index 100% rename from src/coreclr/src/vm/ilmarshalers.cpp rename to src/coreclr/vm/ilmarshalers.cpp diff --git a/src/coreclr/src/vm/ilmarshalers.h b/src/coreclr/vm/ilmarshalers.h similarity index 100% rename from src/coreclr/src/vm/ilmarshalers.h rename to src/coreclr/vm/ilmarshalers.h diff --git a/src/coreclr/src/vm/ilstubcache.cpp b/src/coreclr/vm/ilstubcache.cpp similarity index 100% rename from src/coreclr/src/vm/ilstubcache.cpp rename to src/coreclr/vm/ilstubcache.cpp diff --git a/src/coreclr/src/vm/ilstubcache.h b/src/coreclr/vm/ilstubcache.h similarity index 100% rename from src/coreclr/src/vm/ilstubcache.h rename to src/coreclr/vm/ilstubcache.h diff --git a/src/coreclr/src/vm/ilstubresolver.cpp b/src/coreclr/vm/ilstubresolver.cpp similarity index 100% rename from src/coreclr/src/vm/ilstubresolver.cpp rename to src/coreclr/vm/ilstubresolver.cpp diff --git a/src/coreclr/src/vm/ilstubresolver.h b/src/coreclr/vm/ilstubresolver.h similarity index 100% rename from src/coreclr/src/vm/ilstubresolver.h rename to src/coreclr/vm/ilstubresolver.h diff --git a/src/coreclr/src/vm/inlinetracking.cpp b/src/coreclr/vm/inlinetracking.cpp similarity index 100% rename from src/coreclr/src/vm/inlinetracking.cpp rename to src/coreclr/vm/inlinetracking.cpp diff --git a/src/coreclr/src/vm/inlinetracking.h b/src/coreclr/vm/inlinetracking.h similarity index 100% rename from src/coreclr/src/vm/inlinetracking.h rename to src/coreclr/vm/inlinetracking.h diff --git a/src/coreclr/src/vm/instmethhash.cpp b/src/coreclr/vm/instmethhash.cpp similarity index 100% rename from src/coreclr/src/vm/instmethhash.cpp rename to src/coreclr/vm/instmethhash.cpp diff --git a/src/coreclr/src/vm/instmethhash.h b/src/coreclr/vm/instmethhash.h similarity index 100% rename from src/coreclr/src/vm/instmethhash.h rename to src/coreclr/vm/instmethhash.h diff --git a/src/coreclr/src/vm/interopconverter.cpp b/src/coreclr/vm/interopconverter.cpp similarity index 100% rename from src/coreclr/src/vm/interopconverter.cpp rename to src/coreclr/vm/interopconverter.cpp diff --git a/src/coreclr/src/vm/interopconverter.h b/src/coreclr/vm/interopconverter.h similarity index 100% rename from src/coreclr/src/vm/interopconverter.h rename to src/coreclr/vm/interopconverter.h diff --git a/src/coreclr/src/vm/interoplibinterface.cpp b/src/coreclr/vm/interoplibinterface.cpp similarity index 100% rename from src/coreclr/src/vm/interoplibinterface.cpp rename to src/coreclr/vm/interoplibinterface.cpp diff --git a/src/coreclr/src/vm/interoplibinterface.h b/src/coreclr/vm/interoplibinterface.h similarity index 100% rename from src/coreclr/src/vm/interoplibinterface.h rename to src/coreclr/vm/interoplibinterface.h diff --git a/src/coreclr/src/vm/interoputil.cpp b/src/coreclr/vm/interoputil.cpp similarity index 100% rename from src/coreclr/src/vm/interoputil.cpp rename to src/coreclr/vm/interoputil.cpp diff --git a/src/coreclr/src/vm/interoputil.h b/src/coreclr/vm/interoputil.h similarity index 100% rename from src/coreclr/src/vm/interoputil.h rename to src/coreclr/vm/interoputil.h diff --git a/src/coreclr/src/vm/interoputil.inl b/src/coreclr/vm/interoputil.inl similarity index 100% rename from src/coreclr/src/vm/interoputil.inl rename to src/coreclr/vm/interoputil.inl diff --git a/src/coreclr/src/vm/interpreter.cpp b/src/coreclr/vm/interpreter.cpp similarity index 100% rename from src/coreclr/src/vm/interpreter.cpp rename to src/coreclr/vm/interpreter.cpp diff --git a/src/coreclr/src/vm/interpreter.h b/src/coreclr/vm/interpreter.h similarity index 100% rename from src/coreclr/src/vm/interpreter.h rename to src/coreclr/vm/interpreter.h diff --git a/src/coreclr/src/vm/interpreter.hpp b/src/coreclr/vm/interpreter.hpp similarity index 100% rename from src/coreclr/src/vm/interpreter.hpp rename to src/coreclr/vm/interpreter.hpp diff --git a/src/coreclr/src/vm/invokeutil.cpp b/src/coreclr/vm/invokeutil.cpp similarity index 100% rename from src/coreclr/src/vm/invokeutil.cpp rename to src/coreclr/vm/invokeutil.cpp diff --git a/src/coreclr/src/vm/invokeutil.h b/src/coreclr/vm/invokeutil.h similarity index 100% rename from src/coreclr/src/vm/invokeutil.h rename to src/coreclr/vm/invokeutil.h diff --git a/src/coreclr/src/vm/ipcstreamfactory.cpp b/src/coreclr/vm/ipcstreamfactory.cpp similarity index 100% rename from src/coreclr/src/vm/ipcstreamfactory.cpp rename to src/coreclr/vm/ipcstreamfactory.cpp diff --git a/src/coreclr/src/vm/ipcstreamfactory.h b/src/coreclr/vm/ipcstreamfactory.h similarity index 100% rename from src/coreclr/src/vm/ipcstreamfactory.h rename to src/coreclr/vm/ipcstreamfactory.h diff --git a/src/coreclr/src/vm/iterator_util.h b/src/coreclr/vm/iterator_util.h similarity index 100% rename from src/coreclr/src/vm/iterator_util.h rename to src/coreclr/vm/iterator_util.h diff --git a/src/coreclr/src/vm/jithelpers.cpp b/src/coreclr/vm/jithelpers.cpp similarity index 100% rename from src/coreclr/src/vm/jithelpers.cpp rename to src/coreclr/vm/jithelpers.cpp diff --git a/src/coreclr/src/vm/jithost.cpp b/src/coreclr/vm/jithost.cpp similarity index 100% rename from src/coreclr/src/vm/jithost.cpp rename to src/coreclr/vm/jithost.cpp diff --git a/src/coreclr/src/vm/jithost.h b/src/coreclr/vm/jithost.h similarity index 100% rename from src/coreclr/src/vm/jithost.h rename to src/coreclr/vm/jithost.h diff --git a/src/coreclr/src/vm/jitinterface.cpp b/src/coreclr/vm/jitinterface.cpp similarity index 100% rename from src/coreclr/src/vm/jitinterface.cpp rename to src/coreclr/vm/jitinterface.cpp diff --git a/src/coreclr/src/vm/jitinterface.h b/src/coreclr/vm/jitinterface.h similarity index 100% rename from src/coreclr/src/vm/jitinterface.h rename to src/coreclr/vm/jitinterface.h diff --git a/src/coreclr/src/vm/jitinterfacegen.cpp b/src/coreclr/vm/jitinterfacegen.cpp similarity index 100% rename from src/coreclr/src/vm/jitinterfacegen.cpp rename to src/coreclr/vm/jitinterfacegen.cpp diff --git a/src/coreclr/src/vm/listlock.h b/src/coreclr/vm/listlock.h similarity index 100% rename from src/coreclr/src/vm/listlock.h rename to src/coreclr/vm/listlock.h diff --git a/src/coreclr/src/vm/loaderallocator.cpp b/src/coreclr/vm/loaderallocator.cpp similarity index 100% rename from src/coreclr/src/vm/loaderallocator.cpp rename to src/coreclr/vm/loaderallocator.cpp diff --git a/src/coreclr/src/vm/loaderallocator.hpp b/src/coreclr/vm/loaderallocator.hpp similarity index 100% rename from src/coreclr/src/vm/loaderallocator.hpp rename to src/coreclr/vm/loaderallocator.hpp diff --git a/src/coreclr/src/vm/loaderallocator.inl b/src/coreclr/vm/loaderallocator.inl similarity index 100% rename from src/coreclr/src/vm/loaderallocator.inl rename to src/coreclr/vm/loaderallocator.inl diff --git a/src/coreclr/src/vm/lockedrangelist.h b/src/coreclr/vm/lockedrangelist.h similarity index 100% rename from src/coreclr/src/vm/lockedrangelist.h rename to src/coreclr/vm/lockedrangelist.h diff --git a/src/coreclr/src/vm/managedmdimport.cpp b/src/coreclr/vm/managedmdimport.cpp similarity index 100% rename from src/coreclr/src/vm/managedmdimport.cpp rename to src/coreclr/vm/managedmdimport.cpp diff --git a/src/coreclr/src/vm/managedmdimport.hpp b/src/coreclr/vm/managedmdimport.hpp similarity index 100% rename from src/coreclr/src/vm/managedmdimport.hpp rename to src/coreclr/vm/managedmdimport.hpp diff --git a/src/coreclr/src/vm/marshalnative.cpp b/src/coreclr/vm/marshalnative.cpp similarity index 100% rename from src/coreclr/src/vm/marshalnative.cpp rename to src/coreclr/vm/marshalnative.cpp diff --git a/src/coreclr/src/vm/marshalnative.h b/src/coreclr/vm/marshalnative.h similarity index 100% rename from src/coreclr/src/vm/marshalnative.h rename to src/coreclr/vm/marshalnative.h diff --git a/src/coreclr/src/vm/memberload.cpp b/src/coreclr/vm/memberload.cpp similarity index 100% rename from src/coreclr/src/vm/memberload.cpp rename to src/coreclr/vm/memberload.cpp diff --git a/src/coreclr/src/vm/memberload.h b/src/coreclr/vm/memberload.h similarity index 100% rename from src/coreclr/src/vm/memberload.h rename to src/coreclr/vm/memberload.h diff --git a/src/coreclr/src/vm/metasig.h b/src/coreclr/vm/metasig.h similarity index 100% rename from src/coreclr/src/vm/metasig.h rename to src/coreclr/vm/metasig.h diff --git a/src/coreclr/src/vm/method.cpp b/src/coreclr/vm/method.cpp similarity index 100% rename from src/coreclr/src/vm/method.cpp rename to src/coreclr/vm/method.cpp diff --git a/src/coreclr/src/vm/method.hpp b/src/coreclr/vm/method.hpp similarity index 100% rename from src/coreclr/src/vm/method.hpp rename to src/coreclr/vm/method.hpp diff --git a/src/coreclr/src/vm/method.inl b/src/coreclr/vm/method.inl similarity index 100% rename from src/coreclr/src/vm/method.inl rename to src/coreclr/vm/method.inl diff --git a/src/coreclr/src/vm/methoddescbackpatchinfo.cpp b/src/coreclr/vm/methoddescbackpatchinfo.cpp similarity index 100% rename from src/coreclr/src/vm/methoddescbackpatchinfo.cpp rename to src/coreclr/vm/methoddescbackpatchinfo.cpp diff --git a/src/coreclr/src/vm/methoddescbackpatchinfo.h b/src/coreclr/vm/methoddescbackpatchinfo.h similarity index 100% rename from src/coreclr/src/vm/methoddescbackpatchinfo.h rename to src/coreclr/vm/methoddescbackpatchinfo.h diff --git a/src/coreclr/src/vm/methodimpl.cpp b/src/coreclr/vm/methodimpl.cpp similarity index 100% rename from src/coreclr/src/vm/methodimpl.cpp rename to src/coreclr/vm/methodimpl.cpp diff --git a/src/coreclr/src/vm/methodimpl.h b/src/coreclr/vm/methodimpl.h similarity index 100% rename from src/coreclr/src/vm/methodimpl.h rename to src/coreclr/vm/methodimpl.h diff --git a/src/coreclr/src/vm/methoditer.cpp b/src/coreclr/vm/methoditer.cpp similarity index 100% rename from src/coreclr/src/vm/methoditer.cpp rename to src/coreclr/vm/methoditer.cpp diff --git a/src/coreclr/src/vm/methoditer.h b/src/coreclr/vm/methoditer.h similarity index 100% rename from src/coreclr/src/vm/methoditer.h rename to src/coreclr/vm/methoditer.h diff --git a/src/coreclr/src/vm/methodtable.cpp b/src/coreclr/vm/methodtable.cpp similarity index 100% rename from src/coreclr/src/vm/methodtable.cpp rename to src/coreclr/vm/methodtable.cpp diff --git a/src/coreclr/src/vm/methodtable.h b/src/coreclr/vm/methodtable.h similarity index 100% rename from src/coreclr/src/vm/methodtable.h rename to src/coreclr/vm/methodtable.h diff --git a/src/coreclr/src/vm/methodtable.inl b/src/coreclr/vm/methodtable.inl similarity index 100% rename from src/coreclr/src/vm/methodtable.inl rename to src/coreclr/vm/methodtable.inl diff --git a/src/coreclr/src/vm/methodtablebuilder.cpp b/src/coreclr/vm/methodtablebuilder.cpp similarity index 100% rename from src/coreclr/src/vm/methodtablebuilder.cpp rename to src/coreclr/vm/methodtablebuilder.cpp diff --git a/src/coreclr/src/vm/methodtablebuilder.h b/src/coreclr/vm/methodtablebuilder.h similarity index 100% rename from src/coreclr/src/vm/methodtablebuilder.h rename to src/coreclr/vm/methodtablebuilder.h diff --git a/src/coreclr/src/vm/methodtablebuilder.inl b/src/coreclr/vm/methodtablebuilder.inl similarity index 100% rename from src/coreclr/src/vm/methodtablebuilder.inl rename to src/coreclr/vm/methodtablebuilder.inl diff --git a/src/coreclr/src/vm/mlinfo.cpp b/src/coreclr/vm/mlinfo.cpp similarity index 100% rename from src/coreclr/src/vm/mlinfo.cpp rename to src/coreclr/vm/mlinfo.cpp diff --git a/src/coreclr/src/vm/mlinfo.h b/src/coreclr/vm/mlinfo.h similarity index 100% rename from src/coreclr/src/vm/mlinfo.h rename to src/coreclr/vm/mlinfo.h diff --git a/src/coreclr/src/vm/mngstdinterfaces.cpp b/src/coreclr/vm/mngstdinterfaces.cpp similarity index 100% rename from src/coreclr/src/vm/mngstdinterfaces.cpp rename to src/coreclr/vm/mngstdinterfaces.cpp diff --git a/src/coreclr/src/vm/mngstdinterfaces.h b/src/coreclr/vm/mngstdinterfaces.h similarity index 100% rename from src/coreclr/src/vm/mngstdinterfaces.h rename to src/coreclr/vm/mngstdinterfaces.h diff --git a/src/coreclr/src/vm/mngstditflist.h b/src/coreclr/vm/mngstditflist.h similarity index 100% rename from src/coreclr/src/vm/mngstditflist.h rename to src/coreclr/vm/mngstditflist.h diff --git a/src/coreclr/src/vm/mtypes.h b/src/coreclr/vm/mtypes.h similarity index 100% rename from src/coreclr/src/vm/mtypes.h rename to src/coreclr/vm/mtypes.h diff --git a/src/coreclr/src/vm/multicorejit.cpp b/src/coreclr/vm/multicorejit.cpp similarity index 100% rename from src/coreclr/src/vm/multicorejit.cpp rename to src/coreclr/vm/multicorejit.cpp diff --git a/src/coreclr/src/vm/multicorejit.h b/src/coreclr/vm/multicorejit.h similarity index 100% rename from src/coreclr/src/vm/multicorejit.h rename to src/coreclr/vm/multicorejit.h diff --git a/src/coreclr/src/vm/multicorejitimpl.h b/src/coreclr/vm/multicorejitimpl.h similarity index 100% rename from src/coreclr/src/vm/multicorejitimpl.h rename to src/coreclr/vm/multicorejitimpl.h diff --git a/src/coreclr/src/vm/multicorejitplayer.cpp b/src/coreclr/vm/multicorejitplayer.cpp similarity index 100% rename from src/coreclr/src/vm/multicorejitplayer.cpp rename to src/coreclr/vm/multicorejitplayer.cpp diff --git a/src/coreclr/src/vm/namespace.h b/src/coreclr/vm/namespace.h similarity index 100% rename from src/coreclr/src/vm/namespace.h rename to src/coreclr/vm/namespace.h diff --git a/src/coreclr/src/vm/nativeeventsource.cpp b/src/coreclr/vm/nativeeventsource.cpp similarity index 100% rename from src/coreclr/src/vm/nativeeventsource.cpp rename to src/coreclr/vm/nativeeventsource.cpp diff --git a/src/coreclr/src/vm/nativeeventsource.h b/src/coreclr/vm/nativeeventsource.h similarity index 100% rename from src/coreclr/src/vm/nativeeventsource.h rename to src/coreclr/vm/nativeeventsource.h diff --git a/src/coreclr/src/vm/nativeformatreader.h b/src/coreclr/vm/nativeformatreader.h similarity index 100% rename from src/coreclr/src/vm/nativeformatreader.h rename to src/coreclr/vm/nativeformatreader.h diff --git a/src/coreclr/src/vm/nativeimage.cpp b/src/coreclr/vm/nativeimage.cpp similarity index 100% rename from src/coreclr/src/vm/nativeimage.cpp rename to src/coreclr/vm/nativeimage.cpp diff --git a/src/coreclr/src/vm/nativeimage.h b/src/coreclr/vm/nativeimage.h similarity index 100% rename from src/coreclr/src/vm/nativeimage.h rename to src/coreclr/vm/nativeimage.h diff --git a/src/coreclr/src/vm/nativelibrarynative.cpp b/src/coreclr/vm/nativelibrarynative.cpp similarity index 100% rename from src/coreclr/src/vm/nativelibrarynative.cpp rename to src/coreclr/vm/nativelibrarynative.cpp diff --git a/src/coreclr/src/vm/nativelibrarynative.h b/src/coreclr/vm/nativelibrarynative.h similarity index 100% rename from src/coreclr/src/vm/nativelibrarynative.h rename to src/coreclr/vm/nativelibrarynative.h diff --git a/src/coreclr/src/vm/nativeoverlapped.cpp b/src/coreclr/vm/nativeoverlapped.cpp similarity index 100% rename from src/coreclr/src/vm/nativeoverlapped.cpp rename to src/coreclr/vm/nativeoverlapped.cpp diff --git a/src/coreclr/src/vm/nativeoverlapped.h b/src/coreclr/vm/nativeoverlapped.h similarity index 100% rename from src/coreclr/src/vm/nativeoverlapped.h rename to src/coreclr/vm/nativeoverlapped.h diff --git a/src/coreclr/src/vm/ngenhash.h b/src/coreclr/vm/ngenhash.h similarity index 100% rename from src/coreclr/src/vm/ngenhash.h rename to src/coreclr/vm/ngenhash.h diff --git a/src/coreclr/src/vm/ngenhash.inl b/src/coreclr/vm/ngenhash.inl similarity index 100% rename from src/coreclr/src/vm/ngenhash.inl rename to src/coreclr/vm/ngenhash.inl diff --git a/src/coreclr/src/vm/notifyexternals.cpp b/src/coreclr/vm/notifyexternals.cpp similarity index 100% rename from src/coreclr/src/vm/notifyexternals.cpp rename to src/coreclr/vm/notifyexternals.cpp diff --git a/src/coreclr/src/vm/notifyexternals.h b/src/coreclr/vm/notifyexternals.h similarity index 100% rename from src/coreclr/src/vm/notifyexternals.h rename to src/coreclr/vm/notifyexternals.h diff --git a/src/coreclr/src/vm/object.cpp b/src/coreclr/vm/object.cpp similarity index 100% rename from src/coreclr/src/vm/object.cpp rename to src/coreclr/vm/object.cpp diff --git a/src/coreclr/src/vm/object.h b/src/coreclr/vm/object.h similarity index 100% rename from src/coreclr/src/vm/object.h rename to src/coreclr/vm/object.h diff --git a/src/coreclr/src/vm/object.inl b/src/coreclr/vm/object.inl similarity index 100% rename from src/coreclr/src/vm/object.inl rename to src/coreclr/vm/object.inl diff --git a/src/coreclr/src/vm/objectlist.cpp b/src/coreclr/vm/objectlist.cpp similarity index 100% rename from src/coreclr/src/vm/objectlist.cpp rename to src/coreclr/vm/objectlist.cpp diff --git a/src/coreclr/src/vm/objectlist.h b/src/coreclr/vm/objectlist.h similarity index 100% rename from src/coreclr/src/vm/objectlist.h rename to src/coreclr/vm/objectlist.h diff --git a/src/coreclr/src/vm/olecontexthelpers.cpp b/src/coreclr/vm/olecontexthelpers.cpp similarity index 100% rename from src/coreclr/src/vm/olecontexthelpers.cpp rename to src/coreclr/vm/olecontexthelpers.cpp diff --git a/src/coreclr/src/vm/olecontexthelpers.h b/src/coreclr/vm/olecontexthelpers.h similarity index 100% rename from src/coreclr/src/vm/olecontexthelpers.h rename to src/coreclr/vm/olecontexthelpers.h diff --git a/src/coreclr/src/vm/oletls.h b/src/coreclr/vm/oletls.h similarity index 100% rename from src/coreclr/src/vm/oletls.h rename to src/coreclr/vm/oletls.h diff --git a/src/coreclr/src/vm/olevariant.cpp b/src/coreclr/vm/olevariant.cpp similarity index 100% rename from src/coreclr/src/vm/olevariant.cpp rename to src/coreclr/vm/olevariant.cpp diff --git a/src/coreclr/src/vm/olevariant.h b/src/coreclr/vm/olevariant.h similarity index 100% rename from src/coreclr/src/vm/olevariant.h rename to src/coreclr/vm/olevariant.h diff --git a/src/coreclr/src/vm/onstackreplacement.cpp b/src/coreclr/vm/onstackreplacement.cpp similarity index 100% rename from src/coreclr/src/vm/onstackreplacement.cpp rename to src/coreclr/vm/onstackreplacement.cpp diff --git a/src/coreclr/src/vm/onstackreplacement.h b/src/coreclr/vm/onstackreplacement.h similarity index 100% rename from src/coreclr/src/vm/onstackreplacement.h rename to src/coreclr/vm/onstackreplacement.h diff --git a/src/coreclr/src/vm/packedfields.inl b/src/coreclr/vm/packedfields.inl similarity index 100% rename from src/coreclr/src/vm/packedfields.inl rename to src/coreclr/vm/packedfields.inl diff --git a/src/coreclr/src/vm/pefile.cpp b/src/coreclr/vm/pefile.cpp similarity index 100% rename from src/coreclr/src/vm/pefile.cpp rename to src/coreclr/vm/pefile.cpp diff --git a/src/coreclr/src/vm/pefile.h b/src/coreclr/vm/pefile.h similarity index 100% rename from src/coreclr/src/vm/pefile.h rename to src/coreclr/vm/pefile.h diff --git a/src/coreclr/src/vm/pefile.inl b/src/coreclr/vm/pefile.inl similarity index 100% rename from src/coreclr/src/vm/pefile.inl rename to src/coreclr/vm/pefile.inl diff --git a/src/coreclr/src/vm/peimage.cpp b/src/coreclr/vm/peimage.cpp similarity index 100% rename from src/coreclr/src/vm/peimage.cpp rename to src/coreclr/vm/peimage.cpp diff --git a/src/coreclr/src/vm/peimage.h b/src/coreclr/vm/peimage.h similarity index 100% rename from src/coreclr/src/vm/peimage.h rename to src/coreclr/vm/peimage.h diff --git a/src/coreclr/src/vm/peimage.inl b/src/coreclr/vm/peimage.inl similarity index 100% rename from src/coreclr/src/vm/peimage.inl rename to src/coreclr/vm/peimage.inl diff --git a/src/coreclr/src/vm/peimagelayout.cpp b/src/coreclr/vm/peimagelayout.cpp similarity index 100% rename from src/coreclr/src/vm/peimagelayout.cpp rename to src/coreclr/vm/peimagelayout.cpp diff --git a/src/coreclr/src/vm/peimagelayout.h b/src/coreclr/vm/peimagelayout.h similarity index 100% rename from src/coreclr/src/vm/peimagelayout.h rename to src/coreclr/vm/peimagelayout.h diff --git a/src/coreclr/src/vm/peimagelayout.inl b/src/coreclr/vm/peimagelayout.inl similarity index 100% rename from src/coreclr/src/vm/peimagelayout.inl rename to src/coreclr/vm/peimagelayout.inl diff --git a/src/coreclr/src/vm/pendingload.cpp b/src/coreclr/vm/pendingload.cpp similarity index 100% rename from src/coreclr/src/vm/pendingload.cpp rename to src/coreclr/vm/pendingload.cpp diff --git a/src/coreclr/src/vm/pendingload.h b/src/coreclr/vm/pendingload.h similarity index 100% rename from src/coreclr/src/vm/pendingload.h rename to src/coreclr/vm/pendingload.h diff --git a/src/coreclr/src/vm/perfinfo.cpp b/src/coreclr/vm/perfinfo.cpp similarity index 100% rename from src/coreclr/src/vm/perfinfo.cpp rename to src/coreclr/vm/perfinfo.cpp diff --git a/src/coreclr/src/vm/perfinfo.h b/src/coreclr/vm/perfinfo.h similarity index 100% rename from src/coreclr/src/vm/perfinfo.h rename to src/coreclr/vm/perfinfo.h diff --git a/src/coreclr/src/vm/perfmap.cpp b/src/coreclr/vm/perfmap.cpp similarity index 100% rename from src/coreclr/src/vm/perfmap.cpp rename to src/coreclr/vm/perfmap.cpp diff --git a/src/coreclr/src/vm/perfmap.h b/src/coreclr/vm/perfmap.h similarity index 100% rename from src/coreclr/src/vm/perfmap.h rename to src/coreclr/vm/perfmap.h diff --git a/src/coreclr/src/vm/pgo.cpp b/src/coreclr/vm/pgo.cpp similarity index 100% rename from src/coreclr/src/vm/pgo.cpp rename to src/coreclr/vm/pgo.cpp diff --git a/src/coreclr/src/vm/pgo.h b/src/coreclr/vm/pgo.h similarity index 100% rename from src/coreclr/src/vm/pgo.h rename to src/coreclr/vm/pgo.h diff --git a/src/coreclr/src/vm/pinvokeoverride.cpp b/src/coreclr/vm/pinvokeoverride.cpp similarity index 100% rename from src/coreclr/src/vm/pinvokeoverride.cpp rename to src/coreclr/vm/pinvokeoverride.cpp diff --git a/src/coreclr/src/vm/precode.cpp b/src/coreclr/vm/precode.cpp similarity index 100% rename from src/coreclr/src/vm/precode.cpp rename to src/coreclr/vm/precode.cpp diff --git a/src/coreclr/src/vm/precode.h b/src/coreclr/vm/precode.h similarity index 100% rename from src/coreclr/src/vm/precode.h rename to src/coreclr/vm/precode.h diff --git a/src/coreclr/src/vm/prestub.cpp b/src/coreclr/vm/prestub.cpp similarity index 100% rename from src/coreclr/src/vm/prestub.cpp rename to src/coreclr/vm/prestub.cpp diff --git a/src/coreclr/src/vm/processdiagnosticsprotocolhelper.cpp b/src/coreclr/vm/processdiagnosticsprotocolhelper.cpp similarity index 100% rename from src/coreclr/src/vm/processdiagnosticsprotocolhelper.cpp rename to src/coreclr/vm/processdiagnosticsprotocolhelper.cpp diff --git a/src/coreclr/src/vm/processdiagnosticsprotocolhelper.h b/src/coreclr/vm/processdiagnosticsprotocolhelper.h similarity index 100% rename from src/coreclr/src/vm/processdiagnosticsprotocolhelper.h rename to src/coreclr/vm/processdiagnosticsprotocolhelper.h diff --git a/src/coreclr/src/vm/profdetach.cpp b/src/coreclr/vm/profdetach.cpp similarity index 100% rename from src/coreclr/src/vm/profdetach.cpp rename to src/coreclr/vm/profdetach.cpp diff --git a/src/coreclr/src/vm/profdetach.h b/src/coreclr/vm/profdetach.h similarity index 100% rename from src/coreclr/src/vm/profdetach.h rename to src/coreclr/vm/profdetach.h diff --git a/src/coreclr/src/vm/profilerdiagnosticprotocolhelper.cpp b/src/coreclr/vm/profilerdiagnosticprotocolhelper.cpp similarity index 100% rename from src/coreclr/src/vm/profilerdiagnosticprotocolhelper.cpp rename to src/coreclr/vm/profilerdiagnosticprotocolhelper.cpp diff --git a/src/coreclr/src/vm/profilerdiagnosticprotocolhelper.h b/src/coreclr/vm/profilerdiagnosticprotocolhelper.h similarity index 100% rename from src/coreclr/src/vm/profilerdiagnosticprotocolhelper.h rename to src/coreclr/vm/profilerdiagnosticprotocolhelper.h diff --git a/src/coreclr/src/vm/profilermetadataemitvalidator.cpp b/src/coreclr/vm/profilermetadataemitvalidator.cpp similarity index 100% rename from src/coreclr/src/vm/profilermetadataemitvalidator.cpp rename to src/coreclr/vm/profilermetadataemitvalidator.cpp diff --git a/src/coreclr/src/vm/profilermetadataemitvalidator.h b/src/coreclr/vm/profilermetadataemitvalidator.h similarity index 100% rename from src/coreclr/src/vm/profilermetadataemitvalidator.h rename to src/coreclr/vm/profilermetadataemitvalidator.h diff --git a/src/coreclr/src/vm/profilingenumerators.cpp b/src/coreclr/vm/profilingenumerators.cpp similarity index 100% rename from src/coreclr/src/vm/profilingenumerators.cpp rename to src/coreclr/vm/profilingenumerators.cpp diff --git a/src/coreclr/src/vm/profilingenumerators.h b/src/coreclr/vm/profilingenumerators.h similarity index 100% rename from src/coreclr/src/vm/profilingenumerators.h rename to src/coreclr/vm/profilingenumerators.h diff --git a/src/coreclr/src/vm/profilinghelper.cpp b/src/coreclr/vm/profilinghelper.cpp similarity index 100% rename from src/coreclr/src/vm/profilinghelper.cpp rename to src/coreclr/vm/profilinghelper.cpp diff --git a/src/coreclr/src/vm/profilinghelper.h b/src/coreclr/vm/profilinghelper.h similarity index 100% rename from src/coreclr/src/vm/profilinghelper.h rename to src/coreclr/vm/profilinghelper.h diff --git a/src/coreclr/src/vm/profilinghelper.inl b/src/coreclr/vm/profilinghelper.inl similarity index 100% rename from src/coreclr/src/vm/profilinghelper.inl rename to src/coreclr/vm/profilinghelper.inl diff --git a/src/coreclr/src/vm/proftoeeinterfaceimpl.cpp b/src/coreclr/vm/proftoeeinterfaceimpl.cpp similarity index 100% rename from src/coreclr/src/vm/proftoeeinterfaceimpl.cpp rename to src/coreclr/vm/proftoeeinterfaceimpl.cpp diff --git a/src/coreclr/src/vm/proftoeeinterfaceimpl.h b/src/coreclr/vm/proftoeeinterfaceimpl.h similarity index 100% rename from src/coreclr/src/vm/proftoeeinterfaceimpl.h rename to src/coreclr/vm/proftoeeinterfaceimpl.h diff --git a/src/coreclr/src/vm/proftoeeinterfaceimpl.inl b/src/coreclr/vm/proftoeeinterfaceimpl.inl similarity index 100% rename from src/coreclr/src/vm/proftoeeinterfaceimpl.inl rename to src/coreclr/vm/proftoeeinterfaceimpl.inl diff --git a/src/coreclr/src/vm/qcall.cpp b/src/coreclr/vm/qcall.cpp similarity index 100% rename from src/coreclr/src/vm/qcall.cpp rename to src/coreclr/vm/qcall.cpp diff --git a/src/coreclr/src/vm/qcall.h b/src/coreclr/vm/qcall.h similarity index 100% rename from src/coreclr/src/vm/qcall.h rename to src/coreclr/vm/qcall.h diff --git a/src/coreclr/src/vm/rcwrefcache.cpp b/src/coreclr/vm/rcwrefcache.cpp similarity index 100% rename from src/coreclr/src/vm/rcwrefcache.cpp rename to src/coreclr/vm/rcwrefcache.cpp diff --git a/src/coreclr/src/vm/rcwrefcache.h b/src/coreclr/vm/rcwrefcache.h similarity index 100% rename from src/coreclr/src/vm/rcwrefcache.h rename to src/coreclr/vm/rcwrefcache.h diff --git a/src/coreclr/src/vm/readytoruninfo.cpp b/src/coreclr/vm/readytoruninfo.cpp similarity index 100% rename from src/coreclr/src/vm/readytoruninfo.cpp rename to src/coreclr/vm/readytoruninfo.cpp diff --git a/src/coreclr/src/vm/readytoruninfo.h b/src/coreclr/vm/readytoruninfo.h similarity index 100% rename from src/coreclr/src/vm/readytoruninfo.h rename to src/coreclr/vm/readytoruninfo.h diff --git a/src/coreclr/src/vm/reflectclasswriter.cpp b/src/coreclr/vm/reflectclasswriter.cpp similarity index 100% rename from src/coreclr/src/vm/reflectclasswriter.cpp rename to src/coreclr/vm/reflectclasswriter.cpp diff --git a/src/coreclr/src/vm/reflectclasswriter.h b/src/coreclr/vm/reflectclasswriter.h similarity index 100% rename from src/coreclr/src/vm/reflectclasswriter.h rename to src/coreclr/vm/reflectclasswriter.h diff --git a/src/coreclr/src/vm/reflectioninvocation.cpp b/src/coreclr/vm/reflectioninvocation.cpp similarity index 100% rename from src/coreclr/src/vm/reflectioninvocation.cpp rename to src/coreclr/vm/reflectioninvocation.cpp diff --git a/src/coreclr/src/vm/reflectioninvocation.h b/src/coreclr/vm/reflectioninvocation.h similarity index 100% rename from src/coreclr/src/vm/reflectioninvocation.h rename to src/coreclr/vm/reflectioninvocation.h diff --git a/src/coreclr/src/vm/rejit.cpp b/src/coreclr/vm/rejit.cpp similarity index 100% rename from src/coreclr/src/vm/rejit.cpp rename to src/coreclr/vm/rejit.cpp diff --git a/src/coreclr/src/vm/rejit.h b/src/coreclr/vm/rejit.h similarity index 100% rename from src/coreclr/src/vm/rejit.h rename to src/coreclr/vm/rejit.h diff --git a/src/coreclr/src/vm/rejit.inl b/src/coreclr/vm/rejit.inl similarity index 100% rename from src/coreclr/src/vm/rejit.inl rename to src/coreclr/vm/rejit.inl diff --git a/src/coreclr/src/vm/rexcep.h b/src/coreclr/vm/rexcep.h similarity index 100% rename from src/coreclr/src/vm/rexcep.h rename to src/coreclr/vm/rexcep.h diff --git a/src/coreclr/src/vm/rtlfunctions.cpp b/src/coreclr/vm/rtlfunctions.cpp similarity index 100% rename from src/coreclr/src/vm/rtlfunctions.cpp rename to src/coreclr/vm/rtlfunctions.cpp diff --git a/src/coreclr/src/vm/rtlfunctions.h b/src/coreclr/vm/rtlfunctions.h similarity index 100% rename from src/coreclr/src/vm/rtlfunctions.h rename to src/coreclr/vm/rtlfunctions.h diff --git a/src/coreclr/src/vm/runtimecallablewrapper.cpp b/src/coreclr/vm/runtimecallablewrapper.cpp similarity index 100% rename from src/coreclr/src/vm/runtimecallablewrapper.cpp rename to src/coreclr/vm/runtimecallablewrapper.cpp diff --git a/src/coreclr/src/vm/runtimecallablewrapper.h b/src/coreclr/vm/runtimecallablewrapper.h similarity index 100% rename from src/coreclr/src/vm/runtimecallablewrapper.h rename to src/coreclr/vm/runtimecallablewrapper.h diff --git a/src/coreclr/src/vm/runtimeexceptionkind.h b/src/coreclr/vm/runtimeexceptionkind.h similarity index 100% rename from src/coreclr/src/vm/runtimeexceptionkind.h rename to src/coreclr/vm/runtimeexceptionkind.h diff --git a/src/coreclr/src/vm/runtimehandles.cpp b/src/coreclr/vm/runtimehandles.cpp similarity index 100% rename from src/coreclr/src/vm/runtimehandles.cpp rename to src/coreclr/vm/runtimehandles.cpp diff --git a/src/coreclr/src/vm/runtimehandles.h b/src/coreclr/vm/runtimehandles.h similarity index 100% rename from src/coreclr/src/vm/runtimehandles.h rename to src/coreclr/vm/runtimehandles.h diff --git a/src/coreclr/src/vm/safehandle.cpp b/src/coreclr/vm/safehandle.cpp similarity index 100% rename from src/coreclr/src/vm/safehandle.cpp rename to src/coreclr/vm/safehandle.cpp diff --git a/src/coreclr/src/vm/sampleprofiler.cpp b/src/coreclr/vm/sampleprofiler.cpp similarity index 100% rename from src/coreclr/src/vm/sampleprofiler.cpp rename to src/coreclr/vm/sampleprofiler.cpp diff --git a/src/coreclr/src/vm/sampleprofiler.h b/src/coreclr/vm/sampleprofiler.h similarity index 100% rename from src/coreclr/src/vm/sampleprofiler.h rename to src/coreclr/vm/sampleprofiler.h diff --git a/src/coreclr/src/vm/sigformat.cpp b/src/coreclr/vm/sigformat.cpp similarity index 100% rename from src/coreclr/src/vm/sigformat.cpp rename to src/coreclr/vm/sigformat.cpp diff --git a/src/coreclr/src/vm/sigformat.h b/src/coreclr/vm/sigformat.h similarity index 100% rename from src/coreclr/src/vm/sigformat.h rename to src/coreclr/vm/sigformat.h diff --git a/src/coreclr/src/vm/siginfo.cpp b/src/coreclr/vm/siginfo.cpp similarity index 100% rename from src/coreclr/src/vm/siginfo.cpp rename to src/coreclr/vm/siginfo.cpp diff --git a/src/coreclr/src/vm/siginfo.hpp b/src/coreclr/vm/siginfo.hpp similarity index 100% rename from src/coreclr/src/vm/siginfo.hpp rename to src/coreclr/vm/siginfo.hpp diff --git a/src/coreclr/src/vm/simplerwlock.cpp b/src/coreclr/vm/simplerwlock.cpp similarity index 100% rename from src/coreclr/src/vm/simplerwlock.cpp rename to src/coreclr/vm/simplerwlock.cpp diff --git a/src/coreclr/src/vm/simplerwlock.hpp b/src/coreclr/vm/simplerwlock.hpp similarity index 100% rename from src/coreclr/src/vm/simplerwlock.hpp rename to src/coreclr/vm/simplerwlock.hpp diff --git a/src/coreclr/src/vm/sourceline.cpp b/src/coreclr/vm/sourceline.cpp similarity index 100% rename from src/coreclr/src/vm/sourceline.cpp rename to src/coreclr/vm/sourceline.cpp diff --git a/src/coreclr/src/vm/sourceline.h b/src/coreclr/vm/sourceline.h similarity index 100% rename from src/coreclr/src/vm/sourceline.h rename to src/coreclr/vm/sourceline.h diff --git a/src/coreclr/src/vm/specialstatics.h b/src/coreclr/vm/specialstatics.h similarity index 100% rename from src/coreclr/src/vm/specialstatics.h rename to src/coreclr/vm/specialstatics.h diff --git a/src/coreclr/src/vm/spinlock.cpp b/src/coreclr/vm/spinlock.cpp similarity index 100% rename from src/coreclr/src/vm/spinlock.cpp rename to src/coreclr/vm/spinlock.cpp diff --git a/src/coreclr/src/vm/spinlock.h b/src/coreclr/vm/spinlock.h similarity index 100% rename from src/coreclr/src/vm/spinlock.h rename to src/coreclr/vm/spinlock.h diff --git a/src/coreclr/src/vm/stackcontents.h b/src/coreclr/vm/stackcontents.h similarity index 100% rename from src/coreclr/src/vm/stackcontents.h rename to src/coreclr/vm/stackcontents.h diff --git a/src/coreclr/src/vm/stackingallocator.cpp b/src/coreclr/vm/stackingallocator.cpp similarity index 100% rename from src/coreclr/src/vm/stackingallocator.cpp rename to src/coreclr/vm/stackingallocator.cpp diff --git a/src/coreclr/src/vm/stackingallocator.h b/src/coreclr/vm/stackingallocator.h similarity index 100% rename from src/coreclr/src/vm/stackingallocator.h rename to src/coreclr/vm/stackingallocator.h diff --git a/src/coreclr/src/vm/stacksampler.cpp b/src/coreclr/vm/stacksampler.cpp similarity index 100% rename from src/coreclr/src/vm/stacksampler.cpp rename to src/coreclr/vm/stacksampler.cpp diff --git a/src/coreclr/src/vm/stacksampler.h b/src/coreclr/vm/stacksampler.h similarity index 100% rename from src/coreclr/src/vm/stacksampler.h rename to src/coreclr/vm/stacksampler.h diff --git a/src/coreclr/src/vm/stackwalk.cpp b/src/coreclr/vm/stackwalk.cpp similarity index 100% rename from src/coreclr/src/vm/stackwalk.cpp rename to src/coreclr/vm/stackwalk.cpp diff --git a/src/coreclr/src/vm/stackwalk.h b/src/coreclr/vm/stackwalk.h similarity index 100% rename from src/coreclr/src/vm/stackwalk.h rename to src/coreclr/vm/stackwalk.h diff --git a/src/coreclr/src/vm/stackwalktypes.h b/src/coreclr/vm/stackwalktypes.h similarity index 100% rename from src/coreclr/src/vm/stackwalktypes.h rename to src/coreclr/vm/stackwalktypes.h diff --git a/src/coreclr/src/vm/staticallocationhelpers.inl b/src/coreclr/vm/staticallocationhelpers.inl similarity index 100% rename from src/coreclr/src/vm/staticallocationhelpers.inl rename to src/coreclr/vm/staticallocationhelpers.inl diff --git a/src/coreclr/src/vm/stdinterfaces.cpp b/src/coreclr/vm/stdinterfaces.cpp similarity index 100% rename from src/coreclr/src/vm/stdinterfaces.cpp rename to src/coreclr/vm/stdinterfaces.cpp diff --git a/src/coreclr/src/vm/stdinterfaces.h b/src/coreclr/vm/stdinterfaces.h similarity index 100% rename from src/coreclr/src/vm/stdinterfaces.h rename to src/coreclr/vm/stdinterfaces.h diff --git a/src/coreclr/src/vm/stdinterfaces_internal.h b/src/coreclr/vm/stdinterfaces_internal.h similarity index 100% rename from src/coreclr/src/vm/stdinterfaces_internal.h rename to src/coreclr/vm/stdinterfaces_internal.h diff --git a/src/coreclr/src/vm/stdinterfaces_wrapper.cpp b/src/coreclr/vm/stdinterfaces_wrapper.cpp similarity index 100% rename from src/coreclr/src/vm/stdinterfaces_wrapper.cpp rename to src/coreclr/vm/stdinterfaces_wrapper.cpp diff --git a/src/coreclr/src/vm/stringliteralmap.cpp b/src/coreclr/vm/stringliteralmap.cpp similarity index 100% rename from src/coreclr/src/vm/stringliteralmap.cpp rename to src/coreclr/vm/stringliteralmap.cpp diff --git a/src/coreclr/src/vm/stringliteralmap.h b/src/coreclr/vm/stringliteralmap.h similarity index 100% rename from src/coreclr/src/vm/stringliteralmap.h rename to src/coreclr/vm/stringliteralmap.h diff --git a/src/coreclr/src/vm/stubcache.cpp b/src/coreclr/vm/stubcache.cpp similarity index 100% rename from src/coreclr/src/vm/stubcache.cpp rename to src/coreclr/vm/stubcache.cpp diff --git a/src/coreclr/src/vm/stubcache.h b/src/coreclr/vm/stubcache.h similarity index 100% rename from src/coreclr/src/vm/stubcache.h rename to src/coreclr/vm/stubcache.h diff --git a/src/coreclr/src/vm/stubgen.cpp b/src/coreclr/vm/stubgen.cpp similarity index 100% rename from src/coreclr/src/vm/stubgen.cpp rename to src/coreclr/vm/stubgen.cpp diff --git a/src/coreclr/src/vm/stubgen.h b/src/coreclr/vm/stubgen.h similarity index 100% rename from src/coreclr/src/vm/stubgen.h rename to src/coreclr/vm/stubgen.h diff --git a/src/coreclr/src/vm/stubhelpers.cpp b/src/coreclr/vm/stubhelpers.cpp similarity index 100% rename from src/coreclr/src/vm/stubhelpers.cpp rename to src/coreclr/vm/stubhelpers.cpp diff --git a/src/coreclr/src/vm/stubhelpers.h b/src/coreclr/vm/stubhelpers.h similarity index 100% rename from src/coreclr/src/vm/stubhelpers.h rename to src/coreclr/vm/stubhelpers.h diff --git a/src/coreclr/src/vm/stublink.cpp b/src/coreclr/vm/stublink.cpp similarity index 100% rename from src/coreclr/src/vm/stublink.cpp rename to src/coreclr/vm/stublink.cpp diff --git a/src/coreclr/src/vm/stublink.h b/src/coreclr/vm/stublink.h similarity index 100% rename from src/coreclr/src/vm/stublink.h rename to src/coreclr/vm/stublink.h diff --git a/src/coreclr/src/vm/stublink.inl b/src/coreclr/vm/stublink.inl similarity index 100% rename from src/coreclr/src/vm/stublink.inl rename to src/coreclr/vm/stublink.inl diff --git a/src/coreclr/src/vm/stubmgr.cpp b/src/coreclr/vm/stubmgr.cpp similarity index 100% rename from src/coreclr/src/vm/stubmgr.cpp rename to src/coreclr/vm/stubmgr.cpp diff --git a/src/coreclr/src/vm/stubmgr.h b/src/coreclr/vm/stubmgr.h similarity index 100% rename from src/coreclr/src/vm/stubmgr.h rename to src/coreclr/vm/stubmgr.h diff --git a/src/coreclr/src/vm/syncblk.cpp b/src/coreclr/vm/syncblk.cpp similarity index 100% rename from src/coreclr/src/vm/syncblk.cpp rename to src/coreclr/vm/syncblk.cpp diff --git a/src/coreclr/src/vm/syncblk.h b/src/coreclr/vm/syncblk.h similarity index 100% rename from src/coreclr/src/vm/syncblk.h rename to src/coreclr/vm/syncblk.h diff --git a/src/coreclr/src/vm/syncblk.inl b/src/coreclr/vm/syncblk.inl similarity index 100% rename from src/coreclr/src/vm/syncblk.inl rename to src/coreclr/vm/syncblk.inl diff --git a/src/coreclr/src/vm/syncclean.cpp b/src/coreclr/vm/syncclean.cpp similarity index 100% rename from src/coreclr/src/vm/syncclean.cpp rename to src/coreclr/vm/syncclean.cpp diff --git a/src/coreclr/src/vm/syncclean.hpp b/src/coreclr/vm/syncclean.hpp similarity index 100% rename from src/coreclr/src/vm/syncclean.hpp rename to src/coreclr/vm/syncclean.hpp diff --git a/src/coreclr/src/vm/synch.cpp b/src/coreclr/vm/synch.cpp similarity index 100% rename from src/coreclr/src/vm/synch.cpp rename to src/coreclr/vm/synch.cpp diff --git a/src/coreclr/src/vm/synch.h b/src/coreclr/vm/synch.h similarity index 100% rename from src/coreclr/src/vm/synch.h rename to src/coreclr/vm/synch.h diff --git a/src/coreclr/src/vm/tailcallhelp.cpp b/src/coreclr/vm/tailcallhelp.cpp similarity index 100% rename from src/coreclr/src/vm/tailcallhelp.cpp rename to src/coreclr/vm/tailcallhelp.cpp diff --git a/src/coreclr/src/vm/tailcallhelp.h b/src/coreclr/vm/tailcallhelp.h similarity index 100% rename from src/coreclr/src/vm/tailcallhelp.h rename to src/coreclr/vm/tailcallhelp.h diff --git a/src/coreclr/src/vm/threaddebugblockinginfo.cpp b/src/coreclr/vm/threaddebugblockinginfo.cpp similarity index 100% rename from src/coreclr/src/vm/threaddebugblockinginfo.cpp rename to src/coreclr/vm/threaddebugblockinginfo.cpp diff --git a/src/coreclr/src/vm/threaddebugblockinginfo.h b/src/coreclr/vm/threaddebugblockinginfo.h similarity index 100% rename from src/coreclr/src/vm/threaddebugblockinginfo.h rename to src/coreclr/vm/threaddebugblockinginfo.h diff --git a/src/coreclr/src/vm/threadpoolrequest.cpp b/src/coreclr/vm/threadpoolrequest.cpp similarity index 100% rename from src/coreclr/src/vm/threadpoolrequest.cpp rename to src/coreclr/vm/threadpoolrequest.cpp diff --git a/src/coreclr/src/vm/threadpoolrequest.h b/src/coreclr/vm/threadpoolrequest.h similarity index 100% rename from src/coreclr/src/vm/threadpoolrequest.h rename to src/coreclr/vm/threadpoolrequest.h diff --git a/src/coreclr/src/vm/threads.cpp b/src/coreclr/vm/threads.cpp similarity index 100% rename from src/coreclr/src/vm/threads.cpp rename to src/coreclr/vm/threads.cpp diff --git a/src/coreclr/src/vm/threads.h b/src/coreclr/vm/threads.h similarity index 100% rename from src/coreclr/src/vm/threads.h rename to src/coreclr/vm/threads.h diff --git a/src/coreclr/src/vm/threads.inl b/src/coreclr/vm/threads.inl similarity index 100% rename from src/coreclr/src/vm/threads.inl rename to src/coreclr/vm/threads.inl diff --git a/src/coreclr/src/vm/threadstatics.cpp b/src/coreclr/vm/threadstatics.cpp similarity index 100% rename from src/coreclr/src/vm/threadstatics.cpp rename to src/coreclr/vm/threadstatics.cpp diff --git a/src/coreclr/src/vm/threadstatics.h b/src/coreclr/vm/threadstatics.h similarity index 100% rename from src/coreclr/src/vm/threadstatics.h rename to src/coreclr/vm/threadstatics.h diff --git a/src/coreclr/src/vm/threadsuspend.cpp b/src/coreclr/vm/threadsuspend.cpp similarity index 100% rename from src/coreclr/src/vm/threadsuspend.cpp rename to src/coreclr/vm/threadsuspend.cpp diff --git a/src/coreclr/src/vm/threadsuspend.h b/src/coreclr/vm/threadsuspend.h similarity index 100% rename from src/coreclr/src/vm/threadsuspend.h rename to src/coreclr/vm/threadsuspend.h diff --git a/src/coreclr/src/vm/tieredcompilation.cpp b/src/coreclr/vm/tieredcompilation.cpp similarity index 100% rename from src/coreclr/src/vm/tieredcompilation.cpp rename to src/coreclr/vm/tieredcompilation.cpp diff --git a/src/coreclr/src/vm/tieredcompilation.h b/src/coreclr/vm/tieredcompilation.h similarity index 100% rename from src/coreclr/src/vm/tieredcompilation.h rename to src/coreclr/vm/tieredcompilation.h diff --git a/src/coreclr/src/vm/typectxt.cpp b/src/coreclr/vm/typectxt.cpp similarity index 100% rename from src/coreclr/src/vm/typectxt.cpp rename to src/coreclr/vm/typectxt.cpp diff --git a/src/coreclr/src/vm/typectxt.h b/src/coreclr/vm/typectxt.h similarity index 100% rename from src/coreclr/src/vm/typectxt.h rename to src/coreclr/vm/typectxt.h diff --git a/src/coreclr/src/vm/typedesc.cpp b/src/coreclr/vm/typedesc.cpp similarity index 100% rename from src/coreclr/src/vm/typedesc.cpp rename to src/coreclr/vm/typedesc.cpp diff --git a/src/coreclr/src/vm/typedesc.h b/src/coreclr/vm/typedesc.h similarity index 100% rename from src/coreclr/src/vm/typedesc.h rename to src/coreclr/vm/typedesc.h diff --git a/src/coreclr/src/vm/typedesc.inl b/src/coreclr/vm/typedesc.inl similarity index 100% rename from src/coreclr/src/vm/typedesc.inl rename to src/coreclr/vm/typedesc.inl diff --git a/src/coreclr/src/vm/typeequivalencehash.cpp b/src/coreclr/vm/typeequivalencehash.cpp similarity index 100% rename from src/coreclr/src/vm/typeequivalencehash.cpp rename to src/coreclr/vm/typeequivalencehash.cpp diff --git a/src/coreclr/src/vm/typeequivalencehash.hpp b/src/coreclr/vm/typeequivalencehash.hpp similarity index 100% rename from src/coreclr/src/vm/typeequivalencehash.hpp rename to src/coreclr/vm/typeequivalencehash.hpp diff --git a/src/coreclr/src/vm/typehandle.cpp b/src/coreclr/vm/typehandle.cpp similarity index 100% rename from src/coreclr/src/vm/typehandle.cpp rename to src/coreclr/vm/typehandle.cpp diff --git a/src/coreclr/src/vm/typehandle.h b/src/coreclr/vm/typehandle.h similarity index 100% rename from src/coreclr/src/vm/typehandle.h rename to src/coreclr/vm/typehandle.h diff --git a/src/coreclr/src/vm/typehandle.inl b/src/coreclr/vm/typehandle.inl similarity index 100% rename from src/coreclr/src/vm/typehandle.inl rename to src/coreclr/vm/typehandle.inl diff --git a/src/coreclr/src/vm/typehash.cpp b/src/coreclr/vm/typehash.cpp similarity index 100% rename from src/coreclr/src/vm/typehash.cpp rename to src/coreclr/vm/typehash.cpp diff --git a/src/coreclr/src/vm/typehash.h b/src/coreclr/vm/typehash.h similarity index 100% rename from src/coreclr/src/vm/typehash.h rename to src/coreclr/vm/typehash.h diff --git a/src/coreclr/src/vm/typehashingalgorithms.h b/src/coreclr/vm/typehashingalgorithms.h similarity index 100% rename from src/coreclr/src/vm/typehashingalgorithms.h rename to src/coreclr/vm/typehashingalgorithms.h diff --git a/src/coreclr/src/vm/typekey.h b/src/coreclr/vm/typekey.h similarity index 100% rename from src/coreclr/src/vm/typekey.h rename to src/coreclr/vm/typekey.h diff --git a/src/coreclr/src/vm/typeparse.cpp b/src/coreclr/vm/typeparse.cpp similarity index 100% rename from src/coreclr/src/vm/typeparse.cpp rename to src/coreclr/vm/typeparse.cpp diff --git a/src/coreclr/src/vm/typeparse.h b/src/coreclr/vm/typeparse.h similarity index 100% rename from src/coreclr/src/vm/typeparse.h rename to src/coreclr/vm/typeparse.h diff --git a/src/coreclr/src/vm/typestring.cpp b/src/coreclr/vm/typestring.cpp similarity index 100% rename from src/coreclr/src/vm/typestring.cpp rename to src/coreclr/vm/typestring.cpp diff --git a/src/coreclr/src/vm/typestring.h b/src/coreclr/vm/typestring.h similarity index 100% rename from src/coreclr/src/vm/typestring.h rename to src/coreclr/vm/typestring.h diff --git a/src/coreclr/src/vm/util.cpp b/src/coreclr/vm/util.cpp similarity index 100% rename from src/coreclr/src/vm/util.cpp rename to src/coreclr/vm/util.cpp diff --git a/src/coreclr/src/vm/util.hpp b/src/coreclr/vm/util.hpp similarity index 100% rename from src/coreclr/src/vm/util.hpp rename to src/coreclr/vm/util.hpp diff --git a/src/coreclr/src/vm/vars.cpp b/src/coreclr/vm/vars.cpp similarity index 100% rename from src/coreclr/src/vm/vars.cpp rename to src/coreclr/vm/vars.cpp diff --git a/src/coreclr/src/vm/vars.hpp b/src/coreclr/vm/vars.hpp similarity index 100% rename from src/coreclr/src/vm/vars.hpp rename to src/coreclr/vm/vars.hpp diff --git a/src/coreclr/src/vm/versionresilienthashcode.cpp b/src/coreclr/vm/versionresilienthashcode.cpp similarity index 100% rename from src/coreclr/src/vm/versionresilienthashcode.cpp rename to src/coreclr/vm/versionresilienthashcode.cpp diff --git a/src/coreclr/src/vm/versionresilienthashcode.h b/src/coreclr/vm/versionresilienthashcode.h similarity index 100% rename from src/coreclr/src/vm/versionresilienthashcode.h rename to src/coreclr/vm/versionresilienthashcode.h diff --git a/src/coreclr/src/vm/virtualcallstub.cpp b/src/coreclr/vm/virtualcallstub.cpp similarity index 100% rename from src/coreclr/src/vm/virtualcallstub.cpp rename to src/coreclr/vm/virtualcallstub.cpp diff --git a/src/coreclr/src/vm/virtualcallstub.h b/src/coreclr/vm/virtualcallstub.h similarity index 100% rename from src/coreclr/src/vm/virtualcallstub.h rename to src/coreclr/vm/virtualcallstub.h diff --git a/src/coreclr/src/vm/vmholder.h b/src/coreclr/vm/vmholder.h similarity index 100% rename from src/coreclr/src/vm/vmholder.h rename to src/coreclr/vm/vmholder.h diff --git a/src/coreclr/src/vm/weakreferencenative.cpp b/src/coreclr/vm/weakreferencenative.cpp similarity index 100% rename from src/coreclr/src/vm/weakreferencenative.cpp rename to src/coreclr/vm/weakreferencenative.cpp diff --git a/src/coreclr/src/vm/weakreferencenative.h b/src/coreclr/vm/weakreferencenative.h similarity index 100% rename from src/coreclr/src/vm/weakreferencenative.h rename to src/coreclr/vm/weakreferencenative.h diff --git a/src/coreclr/src/vm/wellknownattributes.h b/src/coreclr/vm/wellknownattributes.h similarity index 100% rename from src/coreclr/src/vm/wellknownattributes.h rename to src/coreclr/vm/wellknownattributes.h diff --git a/src/coreclr/src/vm/win32threadpool.cpp b/src/coreclr/vm/win32threadpool.cpp similarity index 100% rename from src/coreclr/src/vm/win32threadpool.cpp rename to src/coreclr/vm/win32threadpool.cpp diff --git a/src/coreclr/src/vm/win32threadpool.h b/src/coreclr/vm/win32threadpool.h similarity index 100% rename from src/coreclr/src/vm/win32threadpool.h rename to src/coreclr/vm/win32threadpool.h diff --git a/src/coreclr/src/vm/wks/CMakeLists.txt b/src/coreclr/vm/wks/CMakeLists.txt similarity index 100% rename from src/coreclr/src/vm/wks/CMakeLists.txt rename to src/coreclr/vm/wks/CMakeLists.txt diff --git a/src/coreclr/src/vm/wrappers.h b/src/coreclr/vm/wrappers.h similarity index 100% rename from src/coreclr/src/vm/wrappers.h rename to src/coreclr/vm/wrappers.h diff --git a/src/coreclr/src/vm/yieldprocessornormalized.cpp b/src/coreclr/vm/yieldprocessornormalized.cpp similarity index 100% rename from src/coreclr/src/vm/yieldprocessornormalized.cpp rename to src/coreclr/vm/yieldprocessornormalized.cpp diff --git a/src/coreclr/src/vm/zapsig.cpp b/src/coreclr/vm/zapsig.cpp similarity index 100% rename from src/coreclr/src/vm/zapsig.cpp rename to src/coreclr/vm/zapsig.cpp diff --git a/src/coreclr/src/vm/zapsig.h b/src/coreclr/vm/zapsig.h similarity index 100% rename from src/coreclr/src/vm/zapsig.h rename to src/coreclr/vm/zapsig.h diff --git a/src/coreclr/src/zap/CMakeLists.txt b/src/coreclr/zap/CMakeLists.txt similarity index 100% rename from src/coreclr/src/zap/CMakeLists.txt rename to src/coreclr/zap/CMakeLists.txt diff --git a/src/coreclr/src/zap/common.h b/src/coreclr/zap/common.h similarity index 100% rename from src/coreclr/src/zap/common.h rename to src/coreclr/zap/common.h diff --git a/src/coreclr/src/zap/nativeformatwriter.cpp b/src/coreclr/zap/nativeformatwriter.cpp similarity index 100% rename from src/coreclr/src/zap/nativeformatwriter.cpp rename to src/coreclr/zap/nativeformatwriter.cpp diff --git a/src/coreclr/src/zap/nativeformatwriter.h b/src/coreclr/zap/nativeformatwriter.h similarity index 100% rename from src/coreclr/src/zap/nativeformatwriter.h rename to src/coreclr/zap/nativeformatwriter.h diff --git a/src/coreclr/src/zap/svcworker.cpp b/src/coreclr/zap/svcworker.cpp similarity index 100% rename from src/coreclr/src/zap/svcworker.cpp rename to src/coreclr/zap/svcworker.cpp diff --git a/src/coreclr/src/zap/zapcode.cpp b/src/coreclr/zap/zapcode.cpp similarity index 100% rename from src/coreclr/src/zap/zapcode.cpp rename to src/coreclr/zap/zapcode.cpp diff --git a/src/coreclr/src/zap/zapcode.h b/src/coreclr/zap/zapcode.h similarity index 100% rename from src/coreclr/src/zap/zapcode.h rename to src/coreclr/zap/zapcode.h diff --git a/src/coreclr/src/zap/zapheaders.cpp b/src/coreclr/zap/zapheaders.cpp similarity index 100% rename from src/coreclr/src/zap/zapheaders.cpp rename to src/coreclr/zap/zapheaders.cpp diff --git a/src/coreclr/src/zap/zapheaders.h b/src/coreclr/zap/zapheaders.h similarity index 100% rename from src/coreclr/src/zap/zapheaders.h rename to src/coreclr/zap/zapheaders.h diff --git a/src/coreclr/src/zap/zapimage.cpp b/src/coreclr/zap/zapimage.cpp similarity index 100% rename from src/coreclr/src/zap/zapimage.cpp rename to src/coreclr/zap/zapimage.cpp diff --git a/src/coreclr/src/zap/zapimage.h b/src/coreclr/zap/zapimage.h similarity index 100% rename from src/coreclr/src/zap/zapimage.h rename to src/coreclr/zap/zapimage.h diff --git a/src/coreclr/src/zap/zapimport.cpp b/src/coreclr/zap/zapimport.cpp similarity index 100% rename from src/coreclr/src/zap/zapimport.cpp rename to src/coreclr/zap/zapimport.cpp diff --git a/src/coreclr/src/zap/zapimport.h b/src/coreclr/zap/zapimport.h similarity index 100% rename from src/coreclr/src/zap/zapimport.h rename to src/coreclr/zap/zapimport.h diff --git a/src/coreclr/src/zap/zapinfo.cpp b/src/coreclr/zap/zapinfo.cpp similarity index 100% rename from src/coreclr/src/zap/zapinfo.cpp rename to src/coreclr/zap/zapinfo.cpp diff --git a/src/coreclr/src/zap/zapinfo.h b/src/coreclr/zap/zapinfo.h similarity index 100% rename from src/coreclr/src/zap/zapinfo.h rename to src/coreclr/zap/zapinfo.h diff --git a/src/coreclr/src/zap/zapinnerptr.cpp b/src/coreclr/zap/zapinnerptr.cpp similarity index 100% rename from src/coreclr/src/zap/zapinnerptr.cpp rename to src/coreclr/zap/zapinnerptr.cpp diff --git a/src/coreclr/src/zap/zapinnerptr.h b/src/coreclr/zap/zapinnerptr.h similarity index 100% rename from src/coreclr/src/zap/zapinnerptr.h rename to src/coreclr/zap/zapinnerptr.h diff --git a/src/coreclr/src/zap/zaplog.h b/src/coreclr/zap/zaplog.h similarity index 100% rename from src/coreclr/src/zap/zaplog.h rename to src/coreclr/zap/zaplog.h diff --git a/src/coreclr/src/zap/zapmetadata.cpp b/src/coreclr/zap/zapmetadata.cpp similarity index 100% rename from src/coreclr/src/zap/zapmetadata.cpp rename to src/coreclr/zap/zapmetadata.cpp diff --git a/src/coreclr/src/zap/zapmetadata.h b/src/coreclr/zap/zapmetadata.h similarity index 100% rename from src/coreclr/src/zap/zapmetadata.h rename to src/coreclr/zap/zapmetadata.h diff --git a/src/coreclr/src/zap/zapnodetype.h b/src/coreclr/zap/zapnodetype.h similarity index 100% rename from src/coreclr/src/zap/zapnodetype.h rename to src/coreclr/zap/zapnodetype.h diff --git a/src/coreclr/src/zap/zapper.cpp b/src/coreclr/zap/zapper.cpp similarity index 100% rename from src/coreclr/src/zap/zapper.cpp rename to src/coreclr/zap/zapper.cpp diff --git a/src/coreclr/src/zap/zapperstats.cpp b/src/coreclr/zap/zapperstats.cpp similarity index 100% rename from src/coreclr/src/zap/zapperstats.cpp rename to src/coreclr/zap/zapperstats.cpp diff --git a/src/coreclr/src/zap/zapperstats.h b/src/coreclr/zap/zapperstats.h similarity index 100% rename from src/coreclr/src/zap/zapperstats.h rename to src/coreclr/zap/zapperstats.h diff --git a/src/coreclr/src/zap/zapreadytorun.cpp b/src/coreclr/zap/zapreadytorun.cpp similarity index 100% rename from src/coreclr/src/zap/zapreadytorun.cpp rename to src/coreclr/zap/zapreadytorun.cpp diff --git a/src/coreclr/src/zap/zapreadytorun.h b/src/coreclr/zap/zapreadytorun.h similarity index 100% rename from src/coreclr/src/zap/zapreadytorun.h rename to src/coreclr/zap/zapreadytorun.h diff --git a/src/coreclr/src/zap/zaprelocs.cpp b/src/coreclr/zap/zaprelocs.cpp similarity index 100% rename from src/coreclr/src/zap/zaprelocs.cpp rename to src/coreclr/zap/zaprelocs.cpp diff --git a/src/coreclr/src/zap/zaprelocs.h b/src/coreclr/zap/zaprelocs.h similarity index 100% rename from src/coreclr/src/zap/zaprelocs.h rename to src/coreclr/zap/zaprelocs.h diff --git a/src/coreclr/src/zap/zapwrapper.cpp b/src/coreclr/zap/zapwrapper.cpp similarity index 100% rename from src/coreclr/src/zap/zapwrapper.cpp rename to src/coreclr/zap/zapwrapper.cpp diff --git a/src/coreclr/src/zap/zapwrapper.h b/src/coreclr/zap/zapwrapper.h similarity index 100% rename from src/coreclr/src/zap/zapwrapper.h rename to src/coreclr/zap/zapwrapper.h diff --git a/src/coreclr/src/zap/zapwriter.cpp b/src/coreclr/zap/zapwriter.cpp similarity index 100% rename from src/coreclr/src/zap/zapwriter.cpp rename to src/coreclr/zap/zapwriter.cpp diff --git a/src/coreclr/src/zap/zapwriter.h b/src/coreclr/zap/zapwriter.h similarity index 100% rename from src/coreclr/src/zap/zapwriter.h rename to src/coreclr/zap/zapwriter.h diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index 9eccdfd5aa267..fdc509005e437 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -10,7 +10,7 @@ include(../../eng/native/configurepaths.cmake) include(${CLR_ENG_NATIVE_DIR}/configurecompiler.cmake) # Add this subdir. We install the headers for the jit. -add_subdirectory(../coreclr/src/pal/prebuilt/inc ../coreclr/src/pal/prebuilt/inc) +add_subdirectory(../coreclr/pal/prebuilt/inc ../coreclr/pal/prebuilt/inc) set(INC_PLATFORM_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Common/Platform) if (CLR_CMAKE_TARGET_WIN32) diff --git a/src/tests/Common/scripts/format.py b/src/tests/Common/scripts/format.py index 8fc4ca8afa1df..47089497631f1 100644 --- a/src/tests/Common/scripts/format.py +++ b/src/tests/Common/scripts/format.py @@ -218,7 +218,7 @@ def main(argv): if returncode != 0: # Create a patch file print("Creating patch file " + patchFilePath) - jitSrcPath = os.path.join(coreclr, "src", "jit") + jitSrcPath = os.path.join(coreclr, "jit") patchFile = open(patchFilePath, "w") proc = subprocess.Popen(["git", "diff", "--patch", "-U20", "--", jitSrcPath], env=my_env, stdout=patchFile) output,error = proc.communicate() diff --git a/src/tests/ilverify/ILVerification.Tests.csproj b/src/tests/ilverify/ILVerification.Tests.csproj index 5eaea1b89ea44..779ef5ed4e5b2 100644 --- a/src/tests/ilverify/ILVerification.Tests.csproj +++ b/src/tests/ilverify/ILVerification.Tests.csproj @@ -15,7 +15,7 @@ - + diff --git a/src/tests/profiler/native/CMakeLists.txt b/src/tests/profiler/native/CMakeLists.txt index 73af9302647b8..b8b261f34b0ed 100644 --- a/src/tests/profiler/native/CMakeLists.txt +++ b/src/tests/profiler/native/CMakeLists.txt @@ -22,10 +22,10 @@ set(SOURCES dllmain.cpp guids.cpp) -include_directories(../../../coreclr/src/pal/prebuilt/inc) +include_directories(../../../coreclr/pal/prebuilt/inc) if(NOT WIN32) - include_directories(../../../coreclr/src/pal/inc/rt ../../../coreclr/src/pal/inc ../../../coreclr/src/inc) + include_directories(../../../coreclr/pal/inc/rt ../../../coreclr/pal/inc ../../../coreclr/inc) add_compile_options(-DPAL_STDCPP_COMPAT) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_compile_options(-Wno-null-arithmetic) From cbc10faf082a9626d13212a369f6e1002f46f743 Mon Sep 17 00:00:00 2001 From: Andy Gocke Date: Mon, 7 Dec 2020 19:21:23 -0800 Subject: [PATCH 61/87] Change temp folder name used in installer tests (#45523) Tests in the AppHost.Bundle.Tests assembly seem to randomly fail due to a race condition with the file system. They try to create separate '0','1','2'... subdirectories to isolate the published files for each test, but I think what's happening is that files may be marked for deletion, but then not deleted until a later write. For instance, files in '2' may be marked for deletion and some may fail a File.Exists check, which leads to '2' being recreated, at which point deletion may occur, which will cause the current test to fail due to a concurrent write operation. This change tries to avoid locking & contention by randomly generating folder names and using a (hopefully atomically created) lock file to indicate ownership of a particular name. Fixes #43316 --- .../NetCoreApp3CompatModeTests.cs | 23 ++------ .../SingleFileApiTests.cs | 24 ++------- .../SingleFileSharedState.cs | 29 +++++++++++ src/installer/tests/TestUtils/TestArtifact.cs | 52 +++++++++++++------ 4 files changed, 73 insertions(+), 55 deletions(-) create mode 100644 src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/SingleFileSharedState.cs diff --git a/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/NetCoreApp3CompatModeTests.cs b/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/NetCoreApp3CompatModeTests.cs index dc64be2b47dbc..95e1061f20c27 100644 --- a/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/NetCoreApp3CompatModeTests.cs +++ b/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/NetCoreApp3CompatModeTests.cs @@ -13,11 +13,11 @@ namespace AppHost.Bundle.Tests { - public class NetCoreApp3CompatModeTests : BundleTestBase, IClassFixture + public class NetCoreApp3CompatModeTests : BundleTestBase, IClassFixture { - private SharedTestState sharedTestState; + private SingleFileSharedState sharedTestState; - public NetCoreApp3CompatModeTests(SharedTestState fixture) + public NetCoreApp3CompatModeTests(SingleFileSharedState fixture) { sharedTestState = fixture; } @@ -25,7 +25,7 @@ public NetCoreApp3CompatModeTests(SharedTestState fixture) [Fact] public void Bundle_Is_Extracted() { - var fixture = sharedTestState.SingleFileTestFixture.Copy(); + var fixture = sharedTestState.TestFixture.Copy(); UseSingleFileSelfContainedHost(fixture); Bundler bundler = BundleHelper.BundleApp(fixture, out string singleFile, BundleOptions.BundleAllContent); var extractionBaseDir = BundleHelper.GetExtractionRootDir(fixture); @@ -52,20 +52,5 @@ public void Bundle_Is_Extracted() .ToArray(); extractionDir.Should().HaveFiles(publishedFiles); } - - public class SharedTestState : SharedTestStateBase, IDisposable - { - public TestProjectFixture SingleFileTestFixture { get; set; } - - public SharedTestState() - { - SingleFileTestFixture = PreparePublishedSelfContainedTestProject("SingleFileApiTests"); - } - - public void Dispose() - { - SingleFileTestFixture.Dispose(); - } - } } } diff --git a/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/SingleFileApiTests.cs b/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/SingleFileApiTests.cs index 7121eadb33af3..068c8f2b65614 100644 --- a/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/SingleFileApiTests.cs +++ b/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/SingleFileApiTests.cs @@ -8,11 +8,11 @@ namespace AppHost.Bundle.Tests { - public class SingleFileApiTests : BundleTestBase, IClassFixture + public class SingleFileApiTests : BundleTestBase, IClassFixture { - private SharedTestState sharedTestState; + private SingleFileSharedState sharedTestState; - public SingleFileApiTests(SharedTestState fixture) + public SingleFileApiTests(SingleFileSharedState fixture) { sharedTestState = fixture; } @@ -120,23 +120,5 @@ public void AppContext_Native_Search_Dirs_Contains_Bundle_And_Extraction_Dirs() .And.HaveStdOutContaining(extractionDir) .And.HaveStdOutContaining(bundleDir); } - - public class SharedTestState : SharedTestStateBase, IDisposable - { - public TestProjectFixture TestFixture { get; set; } - - public SharedTestState() - { - // We include mockcoreclr in our project to test native binaries extraction. - string mockCoreClrPath = Path.Combine(RepoDirectories.Artifacts, "corehost_test", - RuntimeInformationExtensions.GetSharedLibraryFileNameForCurrentPlatform("mockcoreclr")); - TestFixture = PreparePublishedSelfContainedTestProject("SingleFileApiTests", $"/p:AddFile={mockCoreClrPath}"); - } - - public void Dispose() - { - TestFixture.Dispose(); - } - } } } diff --git a/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/SingleFileSharedState.cs b/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/SingleFileSharedState.cs new file mode 100644 index 0000000000000..7051c3fa327d5 --- /dev/null +++ b/src/installer/tests/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/SingleFileSharedState.cs @@ -0,0 +1,29 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.IO; +using Microsoft.DotNet.CoreSetup.Test; +using Xunit; +using static AppHost.Bundle.Tests.BundleTestBase; + +namespace AppHost.Bundle.Tests +{ + public class SingleFileSharedState : SharedTestStateBase, IDisposable + { + public TestProjectFixture TestFixture { get; set; } + + public SingleFileSharedState() + { + // We include mockcoreclr in our project to test native binaries extraction. + string mockCoreClrPath = Path.Combine(RepoDirectories.Artifacts, "corehost_test", + RuntimeInformationExtensions.GetSharedLibraryFileNameForCurrentPlatform("mockcoreclr")); + TestFixture = PreparePublishedSelfContainedTestProject("SingleFileApiTests", $"/p:AddFile={mockCoreClrPath}"); + } + + public void Dispose() + { + TestFixture.Dispose(); + } + } +} \ No newline at end of file diff --git a/src/installer/tests/TestUtils/TestArtifact.cs b/src/installer/tests/TestUtils/TestArtifact.cs index 517c2f23bbe90..8483e4c88f7a8 100644 --- a/src/installer/tests/TestUtils/TestArtifact.cs +++ b/src/installer/tests/TestUtils/TestArtifact.cs @@ -1,11 +1,13 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +#nullable enable + using Microsoft.DotNet.CoreSetup.Test.HostActivation; using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; -using System.Threading; namespace Microsoft.DotNet.CoreSetup.Test { @@ -22,7 +24,7 @@ public class TestArtifact : IDisposable { return _repoDirectoriesProvider.Value.GetTestContextVariable(TestArtifactDirectoryEnvironmentVariable) ?? Path.Combine(AppContext.BaseDirectory, TestArtifactDirectoryEnvironmentVariable); - }); + }, isThreadSafe: true); public static bool PreserveTestRuns() => _preserveTestRuns.Value; public static string TestArtifactsPath => _testArtifactsPath.Value; @@ -32,7 +34,7 @@ public class TestArtifact : IDisposable private readonly List _copies = new List(); - public TestArtifact(string location, string name = null) + public TestArtifact(string location, string? name = null) { Location = location; Name = name ?? Path.GetFileName(Location); @@ -57,7 +59,18 @@ public virtual void Dispose() { if (!PreserveTestRuns() && Directory.Exists(Location)) { - Directory.Delete(Location, true); + try + { + Directory.Delete(Location, true); + + // Delete lock file last + Debug.Assert(!Directory.Exists(Location)); + var lockPath = Directory.GetParent(Location) + ".lock"; + File.Delete(lockPath); + } catch (Exception e) + { + Console.WriteLine("delete failed" + e); + } } foreach (TestArtifact copy in _copies) @@ -68,21 +81,30 @@ public virtual void Dispose() _copies.Clear(); } - private static readonly object _pathCountLock = new object(); protected static string GetNewTestArtifactPath(string artifactName) { - int projectCount = 0; - string projectCountDir() => Path.Combine(TestArtifactsPath, projectCount.ToString(), artifactName); - - for (; Directory.Exists(projectCountDir()); projectCount++); - - lock (_pathCountLock) + Exception? lastException = null; + for (int i = 0; i < 10; i++) { - string projectDirectory; - for (; Directory.Exists(projectDirectory = projectCountDir()); projectCount++); - FileUtils.EnsureDirectoryExists(projectDirectory); - return projectDirectory; + var parentPath = Path.Combine(TestArtifactsPath, Path.GetRandomFileName()); + // Create a lock file next to the target folder + var lockPath = parentPath + ".lock"; + var artifactPath = Path.Combine(parentPath, artifactName); + try + { + File.Open(lockPath, FileMode.CreateNew, FileAccess.Write).Dispose(); + } + catch (Exception e) + { + // Lock file cannot be created, potential collision + lastException = e; + continue; + } + Directory.CreateDirectory(artifactPath); + return artifactPath; } + Debug.Assert(lastException != null); + throw lastException; } protected static void CopyRecursive(string sourceDirectory, string destinationDirectory, bool overwrite = false) From 518eed2ecab58b4703019a3dc1bab2c61cdb253f Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Mon, 7 Dec 2020 20:43:26 -0800 Subject: [PATCH 62/87] Fix conditions for implicit use of hardware intrinsics (#45662) JIT uses hardware intrinsics implicitly in certain cases. Unlike regular hardware intrinsics, these transformations are not guarded using explicit IsSupported checks. NativeAOT had fragile code that tried to step around this limitation. This change makes this contract explicit by allowing notifyInstructionSetUsage callback to return bool that the EE side can use to suppress implicit use of hardware intrinsics. Fixes dotnet/runtimelab#425 --- .../superpmi-shared/icorjitinfoimpl.h | 2 +- .../superpmi-shim-collector/icorjitinfo.cpp | 4 +- .../superpmi-shim-counter/icorjitinfo.cpp | 4 +- .../superpmi-shim-simple/icorjitinfo.cpp | 4 +- .../ToolBox/superpmi/superpmi/icorjitinfo.cpp | 3 +- src/coreclr/inc/corinfo.h | 3 +- src/coreclr/inc/jiteeversionguid.h | 10 ++--- src/coreclr/jit/ICorJitInfo_API_wrapper.hpp | 5 ++- src/coreclr/jit/compiler.cpp | 5 ++- src/coreclr/jit/compiler.h | 42 ++++++++++++++----- src/coreclr/jit/hwintrinsic.cpp | 9 ++-- src/coreclr/jit/namedintrinsiclist.h | 1 + .../tools/Common/JitInterface/CorInfoBase.cs | 7 ++-- .../tools/Common/JitInterface/CorInfoImpl.cs | 26 +++++------- .../ThunkGenerator/ThunkInput.txt | 2 +- .../tools/aot/jitinterface/jitinterface.h | 7 ++-- src/coreclr/vm/jitinterface.cpp | 3 +- src/coreclr/vm/jitinterface.h | 2 +- src/coreclr/zap/zapinfo.cpp | 4 +- src/coreclr/zap/zapinfo.h | 2 +- 20 files changed, 86 insertions(+), 59 deletions(-) diff --git a/src/coreclr/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h index 7763f2181b6bb..3089d361e20a4 100644 --- a/src/coreclr/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h +++ b/src/coreclr/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h @@ -624,7 +624,7 @@ bool convertPInvokeCalliToCall( CORINFO_RESOLVED_TOKEN* pResolvedToken, bool mustConvert); -void notifyInstructionSetUsage( +bool notifyInstructionSetUsage( CORINFO_InstructionSet instructionSet, bool supportEnabled); diff --git a/src/coreclr/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp index 40935680d97b9..90462003479c5 100644 --- a/src/coreclr/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp +++ b/src/coreclr/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp @@ -2105,7 +2105,7 @@ DWORD interceptor_ICJI::getExpectedTargetArchitecture() return original_ICorJitInfo->getExpectedTargetArchitecture(); } -void interceptor_ICJI::notifyInstructionSetUsage(CORINFO_InstructionSet instructionSet, bool supported) +bool interceptor_ICJI::notifyInstructionSetUsage(CORINFO_InstructionSet instructionSet, bool supported) { - original_ICorJitInfo->notifyInstructionSetUsage(instructionSet, supported); + return original_ICorJitInfo->notifyInstructionSetUsage(instructionSet, supported); } diff --git a/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp index 68d226cc8b59f..36a7e280cfa7b 100644 --- a/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp +++ b/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp @@ -1225,12 +1225,12 @@ bool interceptor_ICJI::convertPInvokeCalliToCall( return original_ICorJitInfo->convertPInvokeCalliToCall(pResolvedToken, mustConvert); } -void interceptor_ICJI::notifyInstructionSetUsage( +bool interceptor_ICJI::notifyInstructionSetUsage( CORINFO_InstructionSet instructionSet, bool supportEnabled) { mcs->AddCall("notifyInstructionSetUsage"); - original_ICorJitInfo->notifyInstructionSetUsage(instructionSet, supportEnabled); + return original_ICorJitInfo->notifyInstructionSetUsage(instructionSet, supportEnabled); } void interceptor_ICJI::allocMem( diff --git a/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp index f32838307c10b..de8ca59c54813 100644 --- a/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp +++ b/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp @@ -1072,11 +1072,11 @@ bool interceptor_ICJI::convertPInvokeCalliToCall( return original_ICorJitInfo->convertPInvokeCalliToCall(pResolvedToken, mustConvert); } -void interceptor_ICJI::notifyInstructionSetUsage( +bool interceptor_ICJI::notifyInstructionSetUsage( CORINFO_InstructionSet instructionSet, bool supportEnabled) { - original_ICorJitInfo->notifyInstructionSetUsage(instructionSet, supportEnabled); + return original_ICorJitInfo->notifyInstructionSetUsage(instructionSet, supportEnabled); } void interceptor_ICJI::allocMem( diff --git a/src/coreclr/ToolBox/superpmi/superpmi/icorjitinfo.cpp b/src/coreclr/ToolBox/superpmi/superpmi/icorjitinfo.cpp index 62e8bc9066e02..0bbbd1f0e2532 100644 --- a/src/coreclr/ToolBox/superpmi/superpmi/icorjitinfo.cpp +++ b/src/coreclr/ToolBox/superpmi/superpmi/icorjitinfo.cpp @@ -1548,9 +1548,10 @@ bool MyICJI::convertPInvokeCalliToCall(CORINFO_RESOLVED_TOKEN* pResolvedToken, b return jitInstance->mc->repConvertPInvokeCalliToCall(pResolvedToken, fMustConvert); } -void MyICJI::notifyInstructionSetUsage(CORINFO_InstructionSet instructionSet, bool supported) +bool MyICJI::notifyInstructionSetUsage(CORINFO_InstructionSet instructionSet, bool supported) { jitInstance->mc->cr->AddCall("notifyInstructionSetUsage"); + return supported; } // Stuff directly on ICorJitInfo diff --git a/src/coreclr/inc/corinfo.h b/src/coreclr/inc/corinfo.h index bcaaab5ed2060..b1207b32d25a5 100644 --- a/src/coreclr/inc/corinfo.h +++ b/src/coreclr/inc/corinfo.h @@ -3111,7 +3111,8 @@ class ICorDynamicInfo : public ICorStaticInfo bool fMustConvert ) = 0; - virtual void notifyInstructionSetUsage( + // Notify EE about intent to use or not to use instruction set in the method. Returns true if the instruction set is supported unconditionally. + virtual bool notifyInstructionSetUsage( CORINFO_InstructionSet instructionSet, bool supportEnabled ) = 0; diff --git a/src/coreclr/inc/jiteeversionguid.h b/src/coreclr/inc/jiteeversionguid.h index fc5bea70ee2ad..88eb44da50c80 100644 --- a/src/coreclr/inc/jiteeversionguid.h +++ b/src/coreclr/inc/jiteeversionguid.h @@ -25,11 +25,11 @@ // ////////////////////////////////////////////////////////////////////////////////////////////////////////// -constexpr GUID JITEEVersionIdentifier = { /* f4746286-33ad-45a2-a37e-d226d689524d */ - 0xf4746286, - 0x33ad, - 0x45a2, - {0xa3, 0x7e, 0xd2, 0x26, 0xd6, 0x89, 0x52, 0x4d} +constexpr GUID JITEEVersionIdentifier = { /* 790de1e5-1426-4ecf-939c-2cd60445c219 */ + 0x790de1e5, + 0x1426, + 0x4ecf, + { 0x93, 0x9c, 0x2c, 0xd6, 0x4, 0x45, 0xc2, 0x19 } }; ////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/coreclr/jit/ICorJitInfo_API_wrapper.hpp b/src/coreclr/jit/ICorJitInfo_API_wrapper.hpp index 29f9fd9ae8def..9a9723a0c4b54 100644 --- a/src/coreclr/jit/ICorJitInfo_API_wrapper.hpp +++ b/src/coreclr/jit/ICorJitInfo_API_wrapper.hpp @@ -1495,13 +1495,14 @@ bool WrapICorJitInfo::convertPInvokeCalliToCall( return temp; } -void WrapICorJitInfo::notifyInstructionSetUsage( +bool WrapICorJitInfo::notifyInstructionSetUsage( CORINFO_InstructionSet instructionSet, bool supportEnabled) { API_ENTER(notifyInstructionSetUsage); - wrapHnd->notifyInstructionSetUsage(instructionSet, supportEnabled); + bool temp = wrapHnd->notifyInstructionSetUsage(instructionSet, supportEnabled); API_LEAVE(notifyInstructionSetUsage); + return temp; } void WrapICorJitInfo::allocMem( diff --git a/src/coreclr/jit/compiler.cpp b/src/coreclr/jit/compiler.cpp index 41bc1d600c98d..4642388b574e4 100644 --- a/src/coreclr/jit/compiler.cpp +++ b/src/coreclr/jit/compiler.cpp @@ -2335,6 +2335,7 @@ void Compiler::compSetProcessor() CORINFO_InstructionSetFlags instructionSetFlags = jitFlags.GetInstructionSetFlags(); opts.compSupportsISA = 0; opts.compSupportsISAReported = 0; + opts.compSupportsISAExactly = 0; #ifdef TARGET_XARCH if (JitConfig.EnableHWIntrinsic()) @@ -2504,11 +2505,11 @@ void Compiler::compSetProcessor() #endif // TARGET_XARCH } -void Compiler::notifyInstructionSetUsage(CORINFO_InstructionSet isa, bool supported) const +bool Compiler::notifyInstructionSetUsage(CORINFO_InstructionSet isa, bool supported) const { const char* isaString = InstructionSetToString(isa); JITDUMP("Notify VM instruction set (%s) %s be supported.\n", isaString, supported ? "must" : "must not"); - info.compCompHnd->notifyInstructionSetUsage(isa, supported); + return info.compCompHnd->notifyInstructionSetUsage(isa, supported); } #ifdef PROFILING_SUPPORTED diff --git a/src/coreclr/jit/compiler.h b/src/coreclr/jit/compiler.h index 1bf93fbce8468..9306d20631921 100644 --- a/src/coreclr/jit/compiler.h +++ b/src/coreclr/jit/compiler.h @@ -8665,24 +8665,22 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX } #endif // DEBUG - void notifyInstructionSetUsage(CORINFO_InstructionSet isa, bool supported) const; + bool notifyInstructionSetUsage(CORINFO_InstructionSet isa, bool supported) const; - // Answer the question: Is a particular ISA supported? + // Answer the question: Is a particular ISA allowed to be used implicitly by optimizations? // The result of this api call will exactly match the target machine // on which the function is executed (except for CoreLib, where there are special rules) bool compExactlyDependsOn(CORINFO_InstructionSet isa) const { - #if defined(TARGET_XARCH) || defined(TARGET_ARM64) - uint64_t isaBit = (1ULL << isa); - bool isaSupported = (opts.compSupportsISA & (1ULL << isa)) != 0; + uint64_t isaBit = (1ULL << isa); if ((opts.compSupportsISAReported & isaBit) == 0) { - notifyInstructionSetUsage(isa, isaSupported); + if (notifyInstructionSetUsage(isa, (opts.compSupportsISA & isaBit) != 0)) + ((Compiler*)this)->opts.compSupportsISAExactly |= isaBit; ((Compiler*)this)->opts.compSupportsISAReported |= isaBit; } - - return isaSupported; + return (opts.compSupportsISAExactly & isaBit) != 0; #else return false; #endif @@ -8699,7 +8697,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX assert(!isaUseable); } - // Answer the question: Is a particular ISA supported? + // Answer the question: Is a particular ISA allowed to be used implicitly by optimizations? // The result of this api call will match the target machine if the result is true // If the result is false, then the target machine may have support for the instruction bool compOpportunisticallyDependsOn(CORINFO_InstructionSet isa) const @@ -8714,6 +8712,21 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX } } + // Answer the question: Is a particular ISA supported for explicit hardware intrinsics? + bool compHWIntrinsicDependsOn(CORINFO_InstructionSet isa) const + { + if ((opts.compSupportsISA & (1ULL << isa)) != 0) + { + // Report intent to use the ISA to the EE + compExactlyDependsOn(isa); + return true; + } + else + { + return false; + } + } + bool canUseVexEncoding() const { #ifdef TARGET_XARCH @@ -8813,8 +8826,17 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX { JitFlags* jitFlags; // all flags passed from the EE + // The instruction sets that the compiler is allowed to emit. uint64_t compSupportsISA; + // The instruction sets that were reported to the VM as being used by the current method. Subset of + // compSupportsISA. uint64_t compSupportsISAReported; + // The instruction sets that the compiler is allowed to take advantage of implicitly during optimizations. + // Subset of compSupportsISA. + // The instruction sets available in compSupportsISA and not available in compSupportsISAExactly can be only + // used via explicit hardware intrinsics. + uint64_t compSupportsISAExactly; + void setSupportedISAs(CORINFO_InstructionSetFlags isas) { compSupportsISA = isas.GetFlagsRaw(); @@ -8913,7 +8935,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX #endif // true if we should use the PINVOKE_{BEGIN,END} helpers instead of generating - // PInvoke transitions inline (e.g. when targeting CoreRT). + // PInvoke transitions inline. bool ShouldUsePInvokeHelpers() { return jitFlags->IsSet(JitFlags::JIT_FLAG_USE_PINVOKE_HELPERS); diff --git a/src/coreclr/jit/hwintrinsic.cpp b/src/coreclr/jit/hwintrinsic.cpp index 5723ac8f322b4..0aeab9b9aacf6 100644 --- a/src/coreclr/jit/hwintrinsic.cpp +++ b/src/coreclr/jit/hwintrinsic.cpp @@ -273,11 +273,12 @@ NamedIntrinsic HWIntrinsicInfo::lookupId(Compiler* comp, return NI_Illegal; } - bool isIsaSupported = comp->compExactlyDependsOn(isa) && comp->compSupportsHWIntrinsic(isa); + bool isIsaSupported = comp->compHWIntrinsicDependsOn(isa) && comp->compSupportsHWIntrinsic(isa); if (strcmp(methodName, "get_IsSupported") == 0) { - return isIsaSupported ? NI_IsSupported_True : NI_IsSupported_False; + return isIsaSupported ? (comp->compExactlyDependsOn(isa) ? NI_IsSupported_True : NI_IsSupported_Dynamic) + : NI_IsSupported_False; } else if (!isIsaSupported) { @@ -606,13 +607,13 @@ GenTree* Compiler::addRangeCheckIfNeeded( } //------------------------------------------------------------------------ -// compSupportsHWIntrinsic: check whether a given instruction set is supported +// compSupportsHWIntrinsic: check whether a given instruction is enabled via configuration // // Arguments: // isa - Instruction set // // Return Value: -// true iff the given instruction set is supported in the current compilation. +// true iff the given instruction set is enabled via configuration (environment variables, etc.). bool Compiler::compSupportsHWIntrinsic(CORINFO_InstructionSet isa) { return JitConfig.EnableHWIntrinsic() && (featureSIMD || HWIntrinsicInfo::isScalarIsa(isa)) && diff --git a/src/coreclr/jit/namedintrinsiclist.h b/src/coreclr/jit/namedintrinsiclist.h index 5c31fb8cfa137..4e851fb19a7f2 100644 --- a/src/coreclr/jit/namedintrinsiclist.h +++ b/src/coreclr/jit/namedintrinsiclist.h @@ -49,6 +49,7 @@ enum NamedIntrinsic : unsigned short NI_IsSupported_True, NI_IsSupported_False, + NI_IsSupported_Dynamic, NI_Throw_PlatformNotSupportedException, #ifdef FEATURE_HW_INTRINSICS diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoBase.cs b/src/coreclr/tools/Common/JitInterface/CorInfoBase.cs index c7e198be1d45e..1e87eb90e9be3 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoBase.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoBase.cs @@ -2272,16 +2272,17 @@ static byte _convertPInvokeCalliToCall(IntPtr thisHandle, IntPtr* ppException, C } [UnmanagedCallersOnly] - static void _notifyInstructionSetUsage(IntPtr thisHandle, IntPtr* ppException, InstructionSet instructionSet, byte supportEnabled) + static byte _notifyInstructionSetUsage(IntPtr thisHandle, IntPtr* ppException, InstructionSet instructionSet, byte supportEnabled) { var _this = GetThis(thisHandle); try { - _this.notifyInstructionSetUsage(instructionSet, supportEnabled != 0); + return _this.notifyInstructionSetUsage(instructionSet, supportEnabled != 0) ? 1 : 0; } catch (Exception ex) { *ppException = _this.AllocException(ex); + return default; } } @@ -2690,7 +2691,7 @@ static IntPtr GetUnmanagedCallbacks() callbacks[150] = (delegate* unmanaged)&_MethodCompileComplete; callbacks[151] = (delegate* unmanaged)&_getTailCallHelpers; callbacks[152] = (delegate* unmanaged)&_convertPInvokeCalliToCall; - callbacks[153] = (delegate* unmanaged)&_notifyInstructionSetUsage; + callbacks[153] = (delegate* unmanaged)&_notifyInstructionSetUsage; callbacks[154] = (delegate* unmanaged)&_allocMem; callbacks[155] = (delegate* unmanaged)&_reserveUnwindInfo; callbacks[156] = (delegate* unmanaged)&_allocUnwindInfo; diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs index cf0dfef9fd01b..4433a9b28af10 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs @@ -394,9 +394,9 @@ private void CompileMethodCleanup() #if READYTORUN _profileDataNode = null; _inlinedMethods = new ArrayBuilder(); -#endif _actualInstructionSetSupported = default(InstructionSetFlags); _actualInstructionSetUnsupported = default(InstructionSetFlags); +#endif } private Dictionary _objectToHandle = new Dictionary(); @@ -843,17 +843,7 @@ private uint getMethodAttribsInternal(MethodDesc method) // Check for hardware intrinsics if (HardwareIntrinsicHelpers.IsHardwareIntrinsic(method)) { -#if !READYTORUN - // Do not report the get_IsSupported method as an intrinsic - RyuJIT would expand it to - // a constant depending on the code generation flags passed to it, but we would like to - // do a dynamic check instead. - if ( - !HardwareIntrinsicHelpers.IsIsSupportedMethod(method) - || !_compilation.IsHardwareIntrinsicWithRuntimeDeterminedSupport(method)) -#endif - { - result |= CorInfoFlag.CORINFO_FLG_JIT_INTRINSIC; - } + result |= CorInfoFlag.CORINFO_FLG_JIT_INTRINSIC; } return (uint)result; @@ -3228,10 +3218,11 @@ private uint getJitFlags(ref CORJIT_FLAGS flags, uint sizeInBytes) } +#if READYTORUN InstructionSetFlags _actualInstructionSetSupported; InstructionSetFlags _actualInstructionSetUnsupported; - private void notifyInstructionSetUsage(InstructionSet instructionSet, bool supportEnabled) + private bool notifyInstructionSetUsage(InstructionSet instructionSet, bool supportEnabled) { if (supportEnabled) { @@ -3239,15 +3230,20 @@ private void notifyInstructionSetUsage(InstructionSet instructionSet, bool suppo } else { -#if READYTORUN // By policy we code review all changes into corelib, such that failing to use an instruction // set is not a reason to not support usage of it. if (!isMethodDefinedInCoreLib()) -#endif { _actualInstructionSetUnsupported.AddInstructionSet(instructionSet); } } + return supportEnabled; + } +#else + private bool notifyInstructionSetUsage(InstructionSet instructionSet, bool supportEnabled) + { + return supportEnabled ? _compilation.InstructionSetSupport.IsInstructionSetSupported(instructionSet) : false; } +#endif } } diff --git a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt index a381eadedac35..f83c4924ca240 100644 --- a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt +++ b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt @@ -311,7 +311,7 @@ FUNCTIONS void MethodCompileComplete(CORINFO_METHOD_HANDLE methHnd); bool getTailCallHelpers(CORINFO_RESOLVED_TOKEN* callToken, CORINFO_SIG_INFO* sig, CORINFO_GET_TAILCALL_HELPERS_FLAGS flags, CORINFO_TAILCALL_HELPERS* pResult); bool convertPInvokeCalliToCall(CORINFO_RESOLVED_TOKEN * pResolvedToken, bool mustConvert); - void notifyInstructionSetUsage(CORINFO_InstructionSet instructionSet,bool supportEnabled); + bool notifyInstructionSetUsage(CORINFO_InstructionSet instructionSet,bool supportEnabled); void allocMem( ULONG hotCodeSize, ULONG coldCodeSize, ULONG roDataSize, ULONG xcptnsCount, CorJitAllocMemFlag flag, void** hotCodeBlock, void** coldCodeBlock, void** roDataBlock ); void reserveUnwindInfo(bool isFunclet, bool isColdCode, ULONG unwindSize) void allocUnwindInfo(BYTE* pHotCode, BYTE* pColdCode, ULONG startOffset, ULONG endOffset, ULONG unwindSize, BYTE* pUnwindBlock, CorJitFuncKind funcKind) diff --git a/src/coreclr/tools/aot/jitinterface/jitinterface.h b/src/coreclr/tools/aot/jitinterface/jitinterface.h index 0db250bb170a5..fa2c9e7169998 100644 --- a/src/coreclr/tools/aot/jitinterface/jitinterface.h +++ b/src/coreclr/tools/aot/jitinterface/jitinterface.h @@ -163,7 +163,7 @@ struct JitInterfaceCallbacks void (* MethodCompileComplete)(void * thisHandle, CorInfoExceptionClass** ppException, void* methHnd); bool (* getTailCallHelpers)(void * thisHandle, CorInfoExceptionClass** ppException, void* callToken, void* sig, int flags, void* pResult); bool (* convertPInvokeCalliToCall)(void * thisHandle, CorInfoExceptionClass** ppException, void* pResolvedToken, bool mustConvert); - void (* notifyInstructionSetUsage)(void * thisHandle, CorInfoExceptionClass** ppException, int instructionSet, bool supportEnabled); + bool (* notifyInstructionSetUsage)(void * thisHandle, CorInfoExceptionClass** ppException, int instructionSet, bool supportEnabled); void (* allocMem)(void * thisHandle, CorInfoExceptionClass** ppException, unsigned int hotCodeSize, unsigned int coldCodeSize, unsigned int roDataSize, unsigned int xcptnsCount, int flag, void** hotCodeBlock, void** coldCodeBlock, void** roDataBlock); void (* reserveUnwindInfo)(void * thisHandle, CorInfoExceptionClass** ppException, bool isFunclet, bool isColdCode, unsigned int unwindSize); void (* allocUnwindInfo)(void * thisHandle, CorInfoExceptionClass** ppException, unsigned char* pHotCode, unsigned char* pColdCode, unsigned int startOffset, unsigned int endOffset, unsigned int unwindSize, unsigned char* pUnwindBlock, int funcKind); @@ -1662,13 +1662,14 @@ class JitInterfaceWrapper return temp; } - virtual void notifyInstructionSetUsage( + virtual bool notifyInstructionSetUsage( int instructionSet, bool supportEnabled) { CorInfoExceptionClass* pException = nullptr; - _callbacks->notifyInstructionSetUsage(_thisHandle, &pException, instructionSet, supportEnabled); + bool temp = _callbacks->notifyInstructionSetUsage(_thisHandle, &pException, instructionSet, supportEnabled); if (pException != nullptr) throw pException; + return temp; } virtual void allocMem( diff --git a/src/coreclr/vm/jitinterface.cpp b/src/coreclr/vm/jitinterface.cpp index 26aec7f7b5e71..8e95aaa372622 100644 --- a/src/coreclr/vm/jitinterface.cpp +++ b/src/coreclr/vm/jitinterface.cpp @@ -14328,12 +14328,13 @@ void CEEInfo::GetProfilingHandle(bool *pbHookFunction, UNREACHABLE(); // only called on derived class. } -void CEEInfo::notifyInstructionSetUsage(CORINFO_InstructionSet instructionSet, +bool CEEInfo::notifyInstructionSetUsage(CORINFO_InstructionSet instructionSet, bool supportEnabled) { LIMITED_METHOD_CONTRACT; // Do nothing. This api does not provide value in JIT scenarios and // crossgen does not utilize the api either. + return supportEnabled; } #endif // !DACCESS_COMPILE diff --git a/src/coreclr/vm/jitinterface.h b/src/coreclr/vm/jitinterface.h index fa081029e023d..6ae9aa76c921c 100644 --- a/src/coreclr/vm/jitinterface.h +++ b/src/coreclr/vm/jitinterface.h @@ -916,7 +916,7 @@ class CEEInfo : public ICorJitInfo bool convertPInvokeCalliToCall(CORINFO_RESOLVED_TOKEN * pResolvedToken, bool fMustConvert); - void notifyInstructionSetUsage(CORINFO_InstructionSet instructionSet, + bool notifyInstructionSetUsage(CORINFO_InstructionSet instructionSet, bool supportEnabled); void getFunctionEntryPoint(CORINFO_METHOD_HANDLE ftn, /* IN */ diff --git a/src/coreclr/zap/zapinfo.cpp b/src/coreclr/zap/zapinfo.cpp index c8e20edd83a34..81409427e912c 100644 --- a/src/coreclr/zap/zapinfo.cpp +++ b/src/coreclr/zap/zapinfo.cpp @@ -1944,9 +1944,9 @@ PVOID ZapInfo::embedDirectCall(CORINFO_METHOD_HANDLE ftn, return pEntryPointOrThunkToEmbed; } -void ZapInfo::notifyInstructionSetUsage(CORINFO_InstructionSet instructionSet, bool supportEnabled) +bool ZapInfo::notifyInstructionSetUsage(CORINFO_InstructionSet instructionSet, bool supportEnabled) { - m_pEEJitInfo->notifyInstructionSetUsage(instructionSet, supportEnabled); + return m_pEEJitInfo->notifyInstructionSetUsage(instructionSet, supportEnabled); } void ZapInfo::getFunctionEntryPoint( diff --git a/src/coreclr/zap/zapinfo.h b/src/coreclr/zap/zapinfo.h index 49400c2853644..8514cce6ccb29 100644 --- a/src/coreclr/zap/zapinfo.h +++ b/src/coreclr/zap/zapinfo.h @@ -367,7 +367,7 @@ class ZapInfo CORINFO_RESOLVED_TOKEN * pResolvedToken, bool fMustConvert); - void notifyInstructionSetUsage(CORINFO_InstructionSet instructionSet, bool supportEnabled); + bool notifyInstructionSetUsage(CORINFO_InstructionSet instructionSet, bool supportEnabled); void getFunctionEntryPoint( CORINFO_METHOD_HANDLE ftn, /* IN */ From 68fffd6f2fc17bc82120bee20ab9c7d80a09c536 Mon Sep 17 00:00:00 2001 From: Ben Adams Date: Tue, 8 Dec 2020 04:47:55 +0000 Subject: [PATCH 63/87] Fix .sln path for shared for coreclr (#45738) --- .../System.Private.CoreLib/System.Private.CoreLib.sln | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/coreclr/System.Private.CoreLib/System.Private.CoreLib.sln b/src/coreclr/System.Private.CoreLib/System.Private.CoreLib.sln index 86372c56c8a4d..5dce3334a8e89 100644 --- a/src/coreclr/System.Private.CoreLib/System.Private.CoreLib.sln +++ b/src/coreclr/System.Private.CoreLib/System.Private.CoreLib.sln @@ -4,12 +4,12 @@ VisualStudioVersion = 16.0.28902.138 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "System.Private.CoreLib.csproj", "{3DA06C3A-2E7B-4CB7-80ED-9B12916013F9}" EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "System.Private.CoreLib.Shared", "..\..\..\libraries\System.Private.CoreLib\src\System.Private.CoreLib.Shared.shproj", "{845C8B26-350B-4E63-BD11-2C8150444E28}" +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "System.Private.CoreLib.Shared", "..\..\libraries\System.Private.CoreLib\src\System.Private.CoreLib.Shared.shproj", "{845C8B26-350B-4E63-BD11-2C8150444E28}" EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution - ..\..\..\libraries\System.Private.CoreLib\src\System.Private.CoreLib.Shared.projitems*{3da06c3a-2e7b-4cb7-80ed-9b12916013f9}*SharedItemsImports = 5 - ..\..\..\libraries\System.Private.CoreLib\src\System.Private.CoreLib.Shared.projitems*{845c8b26-350b-4e63-bd11-2c8150444e28}*SharedItemsImports = 13 + ..\..\libraries\System.Private.CoreLib\src\System.Private.CoreLib.Shared.projitems*{3da06c3a-2e7b-4cb7-80ed-9b12916013f9}*SharedItemsImports = 5 + ..\..\libraries\System.Private.CoreLib\src\System.Private.CoreLib.Shared.projitems*{845c8b26-350b-4e63-bd11-2c8150444e28}*SharedItemsImports = 13 EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Checked|amd64 = Checked|amd64 From 8636dc8a76d687169db64033b71ec9f79d9ba4b5 Mon Sep 17 00:00:00 2001 From: Aaron Robinson Date: Mon, 7 Dec 2020 21:08:58 -0800 Subject: [PATCH 64/87] COM Host - Invalid compute of default value string length (#45728) Incorrectly compute the length of the default string value for a registry key. This doesn't impact the actual COM registration but does impact tooling that helps with COM registration. --- src/installer/corehost/cli/comhost/comhost.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/installer/corehost/cli/comhost/comhost.cpp b/src/installer/corehost/cli/comhost/comhost.cpp index 1b0753da6f37b..9e7317b15917c 100644 --- a/src/installer/corehost/cli/comhost/comhost.cpp +++ b/src/installer/corehost/cli/comhost/comhost.cpp @@ -269,7 +269,7 @@ namespace 0, REG_SZ, reinterpret_cast(entry.type.c_str()), - static_cast(sizeof(entry.type.size() + 1) * sizeof(entry.type[0]))); + static_cast((entry.type.size() + 1) * sizeof(entry.type[0]))); if (res != ERROR_SUCCESS) return __HRESULT_FROM_WIN32(res); @@ -346,7 +346,7 @@ namespace 0, REG_SZ, reinterpret_cast(defServerName), - static_cast(sizeof(defServerName) * sizeof(defServerName[0]))); + static_cast(sizeof(defServerName))); if (res != ERROR_SUCCESS) return __HRESULT_FROM_WIN32(res); From 3565463ecab1bd979a3ab8bd305f92f92507dffe Mon Sep 17 00:00:00 2001 From: Peter Sollich Date: Tue, 8 Dec 2020 11:29:08 +0100 Subject: [PATCH 65/87] Equalize marklists (#41599) Equalize mark lists across GC heaps in Server GC. With real world workloads, we observe that the size of the mark lists is often very uneven across the heaps. This will also lead to uneven sort times across the heaps. As the GC threads need to synchronize at the end of sort_mark_list, the GC threads with less work will need to wait for those with more work to finish. Therefore, it should be advantageous to even out the workload before we start sorting. This PR does this adding a new method equalize_mark_lists that is called at the beginning of sort_mark_list. This method is executed in parallel on all GC threads and computes what pieces of the mark list need to be moved from one heap to another to achieve an even distribution. To avoid additional synchronization, each GC thread only writes its own mark list, and treats the other mark lists as read-only. Performance analysis for a real-word scenario showed a 2.0 ms (3.2%) reduction in GC pause time. --- src/coreclr/gc/gc.cpp | 165 +++++++++++++++++++++++++++++++++++----- src/coreclr/gc/gcpriv.h | 6 +- 2 files changed, 151 insertions(+), 20 deletions(-) diff --git a/src/coreclr/gc/gc.cpp b/src/coreclr/gc/gc.cpp index 558deb7dd5aba..d25973eaa7277 100644 --- a/src/coreclr/gc/gc.cpp +++ b/src/coreclr/gc/gc.cpp @@ -9188,14 +9188,96 @@ static void do_vxsort (uint8_t** item_array, ptrdiff_t item_count, uint8_t* rang #ifdef MULTIPLE_HEAPS #ifdef PARALLEL_MARK_LIST_SORT +static size_t target_mark_count_for_heap (size_t total_mark_count, int heap_count, int heap_number) +{ + // compute the average (rounded down) + size_t average_mark_count = total_mark_count / heap_count; + + // compute the remainder + size_t remaining_mark_count = total_mark_count - (average_mark_count * heap_count); + + // compute the target count for this heap - last heap has the remainder + if (heap_number == (heap_count - 1)) + return (average_mark_count + remaining_mark_count); + else + return average_mark_count; +} +NOINLINE +uint8_t** gc_heap::equalize_mark_lists (size_t total_mark_list_size) +{ + size_t local_mark_count[MAX_SUPPORTED_CPUS]; + size_t total_mark_count = 0; + + // compute mark count per heap into a local array + // compute the total + for (int i = 0; i < n_heaps; i++) + { + gc_heap* hp = g_heaps[i]; + size_t mark_count = hp->mark_list_index - hp->mark_list; + local_mark_count[i] = mark_count; + total_mark_count += mark_count; + } + + // this should agree with our input parameter + assert(total_mark_count == total_mark_list_size); + + // compute the target count for this heap + size_t this_target_mark_count = target_mark_count_for_heap (total_mark_count, n_heaps, heap_number); + + // if our heap has sufficient entries, we can exit early + if (local_mark_count[heap_number] >= this_target_mark_count) + return (mark_list + this_target_mark_count); + + // In the following, we try to fill the deficit in heap "deficit_heap_index" with + // surplus from "surplus_heap_index". + // If there is no deficit or surplus (anymore), the indices are advanced. + int surplus_heap_index = 0; + for (int deficit_heap_index = 0; deficit_heap_index <= heap_number; deficit_heap_index++) + { + // compute the target count for this heap - last heap has the remainder + size_t deficit_target_mark_count = target_mark_count_for_heap (total_mark_count, n_heaps, deficit_heap_index); + + // if this heap has the target or larger count, skip it + if (local_mark_count[deficit_heap_index] >= deficit_target_mark_count) + continue; + + // while this heap is lower than average, fill it up + while ((surplus_heap_index < n_heaps) && (local_mark_count[deficit_heap_index] < deficit_target_mark_count)) + { + size_t deficit = deficit_target_mark_count - local_mark_count[deficit_heap_index]; + + size_t surplus_target_mark_count = target_mark_count_for_heap(total_mark_count, n_heaps, surplus_heap_index); + + if (local_mark_count[surplus_heap_index] > surplus_target_mark_count) + { + size_t surplus = local_mark_count[surplus_heap_index] - surplus_target_mark_count; + size_t amount_to_transfer = min(deficit, surplus); + local_mark_count[surplus_heap_index] -= amount_to_transfer; + if (deficit_heap_index == heap_number) + { + // copy amount_to_transfer mark list items + memcpy(&g_heaps[deficit_heap_index]->mark_list[local_mark_count[deficit_heap_index]], + &g_heaps[surplus_heap_index]->mark_list[local_mark_count[surplus_heap_index]], + (amount_to_transfer*sizeof(mark_list[0]))); + } + local_mark_count[deficit_heap_index] += amount_to_transfer; + } + else + { + surplus_heap_index++; + } + } + } + return (mark_list + local_mark_count[heap_number]); +} NOINLINE -void gc_heap::sort_mark_list() +size_t gc_heap::sort_mark_list() { if (settings.condemned_generation >= max_generation) { // fake a mark list overflow so merge_mark_lists knows to quit early mark_list_index = mark_list_end + 1; - return; + return 0; } // if this heap had a mark list overflow, we don't do anything @@ -9203,7 +9285,7 @@ void gc_heap::sort_mark_list() { // printf("sort_mark_list: overflow on heap %d\n", heap_number); mark_list_overflow = true; - return; + return 0; } // if any other heap had a mark list overflow, we fake one too, @@ -9214,7 +9296,7 @@ void gc_heap::sort_mark_list() { mark_list_index = mark_list_end + 1; // printf("sort_mark_list: overflow on heap %d\n", i); - return; + return 0; } } @@ -9241,11 +9323,13 @@ void gc_heap::sort_mark_list() mark_list_index = mark_list_end + 1; // let's not count this as a mark list overflow mark_list_overflow = false; - return; + return 0; } + uint8_t **local_mark_list_index = equalize_mark_lists (total_mark_list_size); + #ifdef USE_VXSORT - ptrdiff_t item_count = mark_list_index - mark_list; + ptrdiff_t item_count = local_mark_list_index - mark_list; //#define WRITE_SORT_DATA #if defined(_DEBUG) || defined(WRITE_SORT_DATA) // in debug, make a copy of the mark list @@ -9307,9 +9391,9 @@ void gc_heap::sort_mark_list() #else //USE_VXSORT dprintf (3, ("Sorting mark lists")); - if (mark_list_index > mark_list) + if (local_mark_list_index > mark_list) { - introsort::sort (mark_list, mark_list_index - 1, 0); + introsort::sort (mark_list, local_mark_list_index - 1, 0); } #endif @@ -9327,10 +9411,10 @@ void gc_heap::sort_mark_list() uint8_t** x = mark_list; // predicate means: x is still within the mark list, and within the bounds of this heap -#define predicate(x) (((x) < mark_list_index) && (*(x) < heap->ephemeral_high)) +#define predicate(x) (((x) < local_mark_list_index) && (*(x) < heap->ephemeral_high)) heap_num = -1; - while (x < mark_list_index) + while (x < local_mark_list_index) { gc_heap* heap; // find the heap x points into - searching cyclically from the last heap, @@ -9356,9 +9440,9 @@ void gc_heap::sort_mark_list() if (predicate(x)) { // let's see if we get lucky and the whole rest belongs to this piece - if (predicate(mark_list_index-1)) + if (predicate(local_mark_list_index -1)) { - x = mark_list_index; + x = local_mark_list_index; mark_list_piece_end[heap_num] = x; break; } @@ -9402,9 +9486,10 @@ void gc_heap::sort_mark_list() #undef predicate // printf("second phase of sort_mark_list for heap %d took %u cycles\n", this->heap_number, GetCycleCount32() - start); + return total_mark_list_size; } -void gc_heap::append_to_mark_list(uint8_t **start, uint8_t **end) +void gc_heap::append_to_mark_list (uint8_t **start, uint8_t **end) { size_t slots_needed = end - start; size_t slots_available = mark_list_end + 1 - mark_list_index; @@ -9414,7 +9499,32 @@ void gc_heap::append_to_mark_list(uint8_t **start, uint8_t **end) // printf("heap %d: appended %Id slots to mark_list\n", heap_number, slots_to_copy); } -void gc_heap::merge_mark_lists() +#ifdef _DEBUG + +#if !defined(_MSC_VER) +#if !defined(__cdecl) +#if defined(__i386__) +#define __cdecl __attribute__((cdecl)) +#else +#define __cdecl +#endif +#endif +#endif + +static int __cdecl cmp_mark_list_item (const void* vkey, const void* vdatum) +{ + uint8_t** key = (uint8_t**)vkey; + uint8_t** datum = (uint8_t**)vdatum; + if (*key < *datum) + return -1; + else if (*key > *datum) + return 1; + else + return 0; +} +#endif // _DEBUG + +void gc_heap::merge_mark_lists (size_t total_mark_list_size) { uint8_t** source[MAX_SUPPORTED_CPUS]; uint8_t** source_end[MAX_SUPPORTED_CPUS]; @@ -9422,12 +9532,31 @@ void gc_heap::merge_mark_lists() int source_count = 0; // in case of mark list overflow, don't bother - if (mark_list_index > mark_list_end) + if (total_mark_list_size == 0) { -// printf("merge_mark_lists: overflow\n"); return; } +#ifdef _DEBUG + // if we had more than the average number of mark list items, + // make sure these got copied to another heap, i.e. didn't get lost + size_t this_mark_list_size = target_mark_count_for_heap (total_mark_list_size, n_heaps, heap_number); + for (uint8_t** p = mark_list + this_mark_list_size; p < mark_list_index; p++) + { + uint8_t* item = *p; + uint8_t** found_slot = nullptr; + for (int i = 0; i < n_heaps; i++) + { + uint8_t** heap_mark_list = &g_mark_list[i * mark_list_size]; + size_t heap_mark_list_size = target_mark_count_for_heap (total_mark_list_size, n_heaps, i); + found_slot = (uint8_t**)bsearch (&item, heap_mark_list, heap_mark_list_size, sizeof(item), cmp_mark_list_item); + if (found_slot != nullptr) + break; + } + assert ((found_slot != nullptr) && (*found_slot == item)); + } +#endif + dprintf(3, ("merge_mark_lists: heap_number = %d starts out with %Id entries", heap_number, mark_list_index - mark_list)); // unsigned long start = GetCycleCount32(); for (int i = 0; i < n_heaps; i++) @@ -23062,7 +23191,7 @@ void gc_heap::mark_phase (int condemned_gen_number, BOOL mark_only_p) #ifdef MARK_LIST #ifdef PARALLEL_MARK_LIST_SORT // unsigned long start = GetCycleCount32(); - sort_mark_list(); + size_t total_mark_list_size = sort_mark_list(); // printf("sort_mark_list took %u cycles\n", GetCycleCount32() - start); // first thread to finish sorting will scan the sync syncblk cache if ((syncblock_scan_p == 0) && (Interlocked::Increment(&syncblock_scan_p) == 1)) @@ -23199,7 +23328,7 @@ void gc_heap::mark_phase (int condemned_gen_number, BOOL mark_only_p) #ifdef MARK_LIST #ifdef PARALLEL_MARK_LIST_SORT // start = GetCycleCount32(); - merge_mark_lists(); + merge_mark_lists(total_mark_list_size); // printf("merge_mark_lists took %u cycles\n", GetCycleCount32() - start); #endif //PARALLEL_MARK_LIST_SORT #endif //MARK_LIST diff --git a/src/coreclr/gc/gcpriv.h b/src/coreclr/gc/gcpriv.h index 0d034f45dc6d9..c7a071e5716be 100644 --- a/src/coreclr/gc/gcpriv.h +++ b/src/coreclr/gc/gcpriv.h @@ -3114,9 +3114,11 @@ class gc_heap #ifdef MARK_LIST #ifdef PARALLEL_MARK_LIST_SORT PER_HEAP - void sort_mark_list(); + size_t sort_mark_list(); PER_HEAP - void merge_mark_lists(); + uint8_t** equalize_mark_lists(size_t total_mark_list_size); + PER_HEAP + void merge_mark_lists(size_t total_mark_list_size); PER_HEAP void append_to_mark_list(uint8_t **start, uint8_t **end); #else //PARALLEL_MARK_LIST_SORT From 814efd9470e326f20d32bd7b9b2ab1c2fbe8cb34 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 8 Dec 2020 10:34:03 +0000 Subject: [PATCH 66/87] Update dependencies from https://github.com/dotnet/xharness build 20201207.2 (#45726) [master] Update dependencies from dotnet/xharness --- .config/dotnet-tools.json | 2 +- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 09ecad3d19428..fcf279308e4f0 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -15,7 +15,7 @@ ] }, "microsoft.dotnet.xharness.cli": { - "version": "1.0.0-prerelease.20607.1", + "version": "1.0.0-prerelease.20607.2", "commands": [ "xharness" ] diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d99fd0e2f56cb..2fb0cbfa30f99 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -198,13 +198,13 @@ https://github.com/mono/linker c68434193ec938e1f7f2360107c95007d7c831ee - + https://github.com/dotnet/xharness - ccbbdf666b6834881f5a2e4ee1832cbba01c9076 + c5b9bc678e348967ec28f639a2f16687adc7b7f1 - + https://github.com/dotnet/xharness - ccbbdf666b6834881f5a2e4ee1832cbba01c9076 + c5b9bc678e348967ec28f639a2f16687adc7b7f1 diff --git a/eng/Versions.props b/eng/Versions.props index 0b54acddd862a..f5a923abbe2cf 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -139,8 +139,8 @@ 1.0.1-prerelease-00006 16.8.0-release-20201022-02 - 1.0.0-prerelease.20607.1 - 1.0.0-prerelease.20607.1 + 1.0.0-prerelease.20607.2 + 1.0.0-prerelease.20607.2 2.4.1 2.4.2 1.3.0 From e35526f2e7e004681708849d1e35cff8f71c8a29 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Tue, 8 Dec 2020 13:31:52 +0100 Subject: [PATCH 67/87] Move msbuild tasks into src folder and delete dead code (#45722) * Move tools-local\tasks to src\tasks * Delete dead task code * nit installer.tasks.csproj changes * Remove mobile.tasks intermediate folder --- eng/Configurations.props | 2 +- src/mono/Directory.Build.props | 6 +- ...ft.NET.Runtime.Android.Sample.Mono.pkgproj | 2 +- ...rosoft.NET.Runtime.iOS.Sample.Mono.pkgproj | 6 +- ...osoft.NET.Runtime.wasm.Sample.Mono.pkgproj | 2 +- src/mono/netcore/sample/iOS/Makefile | 2 +- src/mono/netcore/sample/iOS/Program.csproj | 2 +- .../sample/wasm/browser/WasmSample.csproj | 2 +- .../sample/wasm/console/WasmSample.csproj | 4 +- src/mono/wasm/Makefile | 4 +- .../tests/debugger-test/debugger-test.csproj | 2 +- .../AndroidApkFileReplacerTask.cs | 0 .../AndroidAppBuilder/AndroidAppBuilder.cs | 0 .../AndroidAppBuilder.csproj | 0 .../tasks}/AndroidAppBuilder/ApkBuilder.cs | 0 .../Templates/AndroidManifest.xml | 0 .../Templates/CMakeLists-android.txt | 0 .../Templates/MainActivity.java | 0 .../Templates/MonoRunner.java | 0 .../AndroidAppBuilder/Templates/monodroid.c | 0 .../tasks}/AndroidAppBuilder/Utils.cs | 0 .../tasks}/AotCompilerTask/MonoAOTCompiler.cs | 0 .../AotCompilerTask/MonoAOTCompiler.csproj | 0 .../AotCompilerTask/MonoAOTCompiler.props | 0 .../tasks}/AotCompilerTask/Utils.cs | 0 .../tasks}/AppleAppBuilder/AppleAppBuilder.cs | 0 .../AppleAppBuilder/AppleAppBuilder.csproj | 0 .../Templates/CMakeLists.txt.template | 0 .../Templates/Info.plist.template | 0 .../AppleAppBuilder/Templates/main-console.m | 0 .../AppleAppBuilder/Templates/main-simple.m | 0 .../AppleAppBuilder/Templates/runtime.h | 0 .../AppleAppBuilder/Templates/runtime.m | 0 .../tasks}/AppleAppBuilder/Utils.cs | 0 .../tasks}/AppleAppBuilder/Xcode.cs | 0 .../WasmAppBuilder/PInvokeTableGenerator.cs | 0 .../tasks}/WasmAppBuilder/WasmAppBuilder.cs | 0 .../WasmAppBuilder/WasmAppBuilder.csproj | 0 .../WasmBuildTasks/GenerateWasmBundle.cs | 0 .../WasmBuildTasks/WasmBuildTasks.csproj | 0 .../tasks/installer.tasks/BuildTask.cs | 0 .../CloudTestTasks/AzureBlobLease.cs | 0 .../AzureConnectionStringBuildTask.cs | 0 .../CloudTestTasks/AzureHelper.cs | 0 .../CloudTestTasks/CopyAzureBlobToBlob.cs | 0 .../CloudTestTasks/DeleteAzureBlob.cs | 0 .../CloudTestTasks/DownloadFromAzure.cs | 0 .../CloudTestTasks/ListAzureBlobs.cs | 0 .../PublishStringToAzureBlob.cs | 0 .../CloudTestTasks/UploadClient.cs | 0 .../CloudTestTasks/UploadToAzure.cs | 0 .../BuildTools.Publish/README.md | 0 .../Tasks/GenerateChecksums.cs | 0 .../tasks/installer.tasks/FileUtilities.cs | 0 .../tasks/installer.tasks/FinalizeBuild.cs | 0 .../installer.tasks/GenerateCurrentVersion.cs | 0 .../GenerateFileVersionProps.cs | 0 .../installer.tasks/GenerateGuidFromName.cs | 0 .../installer.tasks/GenerateMsiVersion.cs | 0 .../installer.tasks/GenerateRunScript.cs | 0 .../GenerateTestSharedFrameworkDepsFile.cs | 0 .../RegenerateDownloadTable.cs | 0 .../installer.tasks/installer.tasks.csproj | 37 ++ {tools-local => src}/tasks/tasks.proj | 10 +- .../installer.tasks/BuildFPMToolPreReqs.cs | 351 ------------------ .../ChangeEntryPointLibraryName.cs | 69 ---- .../installer.tasks/ReplaceFileContents.cs | 106 ------ .../ValidateBinInspectResults.cs | 77 ---- .../ZipFileCreateFromDirectory.cs | 133 ------- .../installer.tasks/installer.tasks.csproj | 46 --- .../net46/ProcessSharedFrameworkDeps.net46.cs | 20 - 71 files changed, 59 insertions(+), 824 deletions(-) rename {tools-local/tasks/mobile.tasks => src/tasks}/AndroidAppBuilder/AndroidApkFileReplacerTask.cs (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AndroidAppBuilder/AndroidAppBuilder.cs (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AndroidAppBuilder/AndroidAppBuilder.csproj (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AndroidAppBuilder/ApkBuilder.cs (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AndroidAppBuilder/Templates/AndroidManifest.xml (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AndroidAppBuilder/Templates/CMakeLists-android.txt (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AndroidAppBuilder/Templates/MainActivity.java (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AndroidAppBuilder/Templates/MonoRunner.java (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AndroidAppBuilder/Templates/monodroid.c (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AndroidAppBuilder/Utils.cs (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AotCompilerTask/MonoAOTCompiler.cs (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AotCompilerTask/MonoAOTCompiler.csproj (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AotCompilerTask/MonoAOTCompiler.props (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AotCompilerTask/Utils.cs (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AppleAppBuilder/AppleAppBuilder.cs (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AppleAppBuilder/AppleAppBuilder.csproj (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AppleAppBuilder/Templates/CMakeLists.txt.template (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AppleAppBuilder/Templates/Info.plist.template (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AppleAppBuilder/Templates/main-console.m (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AppleAppBuilder/Templates/main-simple.m (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AppleAppBuilder/Templates/runtime.h (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AppleAppBuilder/Templates/runtime.m (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AppleAppBuilder/Utils.cs (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/AppleAppBuilder/Xcode.cs (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/WasmAppBuilder/PInvokeTableGenerator.cs (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/WasmAppBuilder/WasmAppBuilder.cs (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/WasmAppBuilder/WasmAppBuilder.csproj (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/WasmBuildTasks/GenerateWasmBundle.cs (100%) rename {tools-local/tasks/mobile.tasks => src/tasks}/WasmBuildTasks/WasmBuildTasks.csproj (100%) rename {tools-local => src}/tasks/installer.tasks/BuildTask.cs (100%) rename {tools-local => src}/tasks/installer.tasks/BuildTools.Publish/CloudTestTasks/AzureBlobLease.cs (100%) rename {tools-local => src}/tasks/installer.tasks/BuildTools.Publish/CloudTestTasks/AzureConnectionStringBuildTask.cs (100%) rename {tools-local => src}/tasks/installer.tasks/BuildTools.Publish/CloudTestTasks/AzureHelper.cs (100%) rename {tools-local => src}/tasks/installer.tasks/BuildTools.Publish/CloudTestTasks/CopyAzureBlobToBlob.cs (100%) rename {tools-local => src}/tasks/installer.tasks/BuildTools.Publish/CloudTestTasks/DeleteAzureBlob.cs (100%) rename {tools-local => src}/tasks/installer.tasks/BuildTools.Publish/CloudTestTasks/DownloadFromAzure.cs (100%) rename {tools-local => src}/tasks/installer.tasks/BuildTools.Publish/CloudTestTasks/ListAzureBlobs.cs (100%) rename {tools-local => src}/tasks/installer.tasks/BuildTools.Publish/CloudTestTasks/PublishStringToAzureBlob.cs (100%) rename {tools-local => src}/tasks/installer.tasks/BuildTools.Publish/CloudTestTasks/UploadClient.cs (100%) rename {tools-local => src}/tasks/installer.tasks/BuildTools.Publish/CloudTestTasks/UploadToAzure.cs (100%) rename {tools-local => src}/tasks/installer.tasks/BuildTools.Publish/README.md (100%) rename {tools-local => src}/tasks/installer.tasks/BuildTools.Publish/Tasks/GenerateChecksums.cs (100%) rename {tools-local => src}/tasks/installer.tasks/FileUtilities.cs (100%) rename {tools-local => src}/tasks/installer.tasks/FinalizeBuild.cs (100%) rename {tools-local => src}/tasks/installer.tasks/GenerateCurrentVersion.cs (100%) rename {tools-local => src}/tasks/installer.tasks/GenerateFileVersionProps.cs (100%) rename {tools-local => src}/tasks/installer.tasks/GenerateGuidFromName.cs (100%) rename {tools-local => src}/tasks/installer.tasks/GenerateMsiVersion.cs (100%) rename {tools-local => src}/tasks/installer.tasks/GenerateRunScript.cs (100%) rename {tools-local => src}/tasks/installer.tasks/GenerateTestSharedFrameworkDepsFile.cs (100%) rename {tools-local => src}/tasks/installer.tasks/RegenerateDownloadTable.cs (100%) create mode 100644 src/tasks/installer.tasks/installer.tasks.csproj rename {tools-local => src}/tasks/tasks.proj (80%) delete mode 100644 tools-local/tasks/installer.tasks/BuildFPMToolPreReqs.cs delete mode 100644 tools-local/tasks/installer.tasks/ChangeEntryPointLibraryName.cs delete mode 100644 tools-local/tasks/installer.tasks/ReplaceFileContents.cs delete mode 100644 tools-local/tasks/installer.tasks/ValidateBinInspectResults.cs delete mode 100644 tools-local/tasks/installer.tasks/ZipFileCreateFromDirectory.cs delete mode 100644 tools-local/tasks/installer.tasks/installer.tasks.csproj delete mode 100644 tools-local/tasks/installer.tasks/net46/ProcessSharedFrameworkDeps.net46.cs diff --git a/eng/Configurations.props b/eng/Configurations.props index 7034d1d9de6e3..159efbf3977a8 100644 --- a/eng/Configurations.props +++ b/eng/Configurations.props @@ -15,7 +15,7 @@ $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'mono')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'installer')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'tools-local')) - $([MSBuild]::NormalizeDirectory('$(RepoToolsLocalDir)', 'tasks')) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'tasks')) $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'ibc')) $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'docs')) diff --git a/src/mono/Directory.Build.props b/src/mono/Directory.Build.props index 20f40bcfac596..9ec2eefef6ad6 100644 --- a/src/mono/Directory.Build.props +++ b/src/mono/Directory.Build.props @@ -86,10 +86,10 @@ - $([MSBuild]::NormalizeDirectory('$(RepoTasksDir)', 'mobile.tasks', 'AppleAppBuilder')) + $([MSBuild]::NormalizeDirectory('$(RepoTasksDir)', 'AppleAppBuilder')) $([MSBuild]::NormalizeDirectory('$(LibrariesProjectRoot)', 'Common', tests, 'AppleTestRunner')) - $([MSBuild]::NormalizeDirectory('$(RepoTasksDir)', 'mobile.tasks', 'AndroidAppBuilder')) + $([MSBuild]::NormalizeDirectory('$(RepoTasksDir)', 'AndroidAppBuilder')) $([MSBuild]::NormalizeDirectory('$(LibrariesProjectRoot)', 'Common', tests, 'AndroidTestRunner')) - $([MSBuild]::NormalizeDirectory('$(RepoTasksDir)', 'mobile.tasks', 'AotCompilerTask')) + $([MSBuild]::NormalizeDirectory('$(RepoTasksDir)', 'AotCompilerTask')) diff --git a/src/mono/netcore/nuget/Microsoft.NET.Runtime.Android.Sample.Mono/Microsoft.NET.Runtime.Android.Sample.Mono.pkgproj b/src/mono/netcore/nuget/Microsoft.NET.Runtime.Android.Sample.Mono/Microsoft.NET.Runtime.Android.Sample.Mono.pkgproj index 8497332ea9727..86071c5d16640 100644 --- a/src/mono/netcore/nuget/Microsoft.NET.Runtime.Android.Sample.Mono/Microsoft.NET.Runtime.Android.Sample.Mono.pkgproj +++ b/src/mono/netcore/nuget/Microsoft.NET.Runtime.Android.Sample.Mono/Microsoft.NET.Runtime.Android.Sample.Mono.pkgproj @@ -3,7 +3,7 @@ - + diff --git a/src/mono/netcore/nuget/Microsoft.NET.Runtime.iOS.Sample.Mono/Microsoft.NET.Runtime.iOS.Sample.Mono.pkgproj b/src/mono/netcore/nuget/Microsoft.NET.Runtime.iOS.Sample.Mono/Microsoft.NET.Runtime.iOS.Sample.Mono.pkgproj index ba5734abc0381..8b7e035c630fd 100644 --- a/src/mono/netcore/nuget/Microsoft.NET.Runtime.iOS.Sample.Mono/Microsoft.NET.Runtime.iOS.Sample.Mono.pkgproj +++ b/src/mono/netcore/nuget/Microsoft.NET.Runtime.iOS.Sample.Mono/Microsoft.NET.Runtime.iOS.Sample.Mono.pkgproj @@ -3,13 +3,13 @@ - + <_iOSSampleFiles Include="$(ArtifactsDir)bin\AppleAppBuilder\$(Configuration)\$(NetCoreAppToolCurrent)\AppleAppBuilder.dll" /> - <_iOSSampleFiles Include="$(RepoToolsLocalDir)tasks\mobile.tasks\AppleAppBuilder\Templates\runtime.m" /> - <_iOSSampleFiles Include="$(RepoToolsLocalDir)tasks\mobile.tasks\AppleAppBuilder\Templates\runtime.h" /> + <_iOSSampleFiles Include="$(RepoTasksDir)AppleAppBuilder\Templates\runtime.m" /> + <_iOSSampleFiles Include="$(RepoTasksDir)AppleAppBuilder\Templates\runtime.h" /> diff --git a/src/mono/netcore/nuget/Microsoft.NET.Runtime.wasm.Sample.Mono/Microsoft.NET.Runtime.wasm.Sample.Mono.pkgproj b/src/mono/netcore/nuget/Microsoft.NET.Runtime.wasm.Sample.Mono/Microsoft.NET.Runtime.wasm.Sample.Mono.pkgproj index 7b7a58c68a0fe..e3f3e5c3fd7c8 100644 --- a/src/mono/netcore/nuget/Microsoft.NET.Runtime.wasm.Sample.Mono/Microsoft.NET.Runtime.wasm.Sample.Mono.pkgproj +++ b/src/mono/netcore/nuget/Microsoft.NET.Runtime.wasm.Sample.Mono/Microsoft.NET.Runtime.wasm.Sample.Mono.pkgproj @@ -3,7 +3,7 @@ - + diff --git a/src/mono/netcore/sample/iOS/Makefile b/src/mono/netcore/sample/iOS/Makefile index f9d7ec4ddce72..66fc336b7c0cc 100644 --- a/src/mono/netcore/sample/iOS/Makefile +++ b/src/mono/netcore/sample/iOS/Makefile @@ -5,7 +5,7 @@ USE_LLVM=True all: runtimepack run -TOOLS_DIR=../../../../../tools-local/tasks/mobile.tasks +TOOLS_DIR=../../../../tasks appbuilder: $(DOTNET) build -c Release $(TOOLS_DIR)/AotCompilerTask/MonoAOTCompiler.csproj $(DOTNET) build -c Release $(TOOLS_DIR)/AppleAppBuilder/AppleAppBuilder.csproj diff --git a/src/mono/netcore/sample/iOS/Program.csproj b/src/mono/netcore/sample/iOS/Program.csproj index d090c380b4595..f44489ca0725c 100644 --- a/src/mono/netcore/sample/iOS/Program.csproj +++ b/src/mono/netcore/sample/iOS/Program.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/mono/netcore/sample/wasm/browser/WasmSample.csproj b/src/mono/netcore/sample/wasm/browser/WasmSample.csproj index 18b86dccaa351..6f036c28068b9 100644 --- a/src/mono/netcore/sample/wasm/browser/WasmSample.csproj +++ b/src/mono/netcore/sample/wasm/browser/WasmSample.csproj @@ -13,7 +13,7 @@ - + - + - + diff --git a/src/mono/wasm/Makefile b/src/mono/wasm/Makefile index 4df7700d33644..0b0ef13445dd7 100644 --- a/src/mono/wasm/Makefile +++ b/src/mono/wasm/Makefile @@ -158,10 +158,10 @@ test-runner: $(DOTNET) build $(TOP)/src/libraries/Common/tests/WasmTestRunner /p:Configuration=$(CONFIG) app-builder: - $(DOTNET) build $(TOP)/tools-local/tasks/mobile.tasks/WasmAppBuilder + $(DOTNET) build $(TOP)/src/tasks/WasmAppBuilder build-tasks: - $(DOTNET) build $(TOP)/tools-local/tasks/mobile.tasks/WasmBuildTasks + $(DOTNET) build $(TOP)/src/tasks/WasmBuildTasks run-tests-v8-%: PATH="$(JSVU):$(PATH)" $(DOTNET) build $(TOP)/src/libraries/$*/tests/ /t:Test /p:TargetOS=Browser /p:TargetArchitecture=wasm /p:Configuration=$(CONFIG) /p:JSEngine=V8 $(MSBUILD_ARGS) diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj b/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj index 5baf3e83aebd6..f73b7770c8c94 100644 --- a/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj +++ b/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj @@ -20,7 +20,7 @@ - + + + netstandard2.0;net461 + false + false + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools-local/tasks/tasks.proj b/src/tasks/tasks.proj similarity index 80% rename from tools-local/tasks/tasks.proj rename to src/tasks/tasks.proj index a098f6bdc4bf2..cc8732bd4e50c 100644 --- a/tools-local/tasks/tasks.proj +++ b/src/tasks/tasks.proj @@ -1,15 +1,15 @@ - - - - - diff --git a/tools-local/tasks/installer.tasks/BuildFPMToolPreReqs.cs b/tools-local/tasks/installer.tasks/BuildFPMToolPreReqs.cs deleted file mode 100644 index d88f1ef280040..0000000000000 --- a/tools-local/tasks/installer.tasks/BuildFPMToolPreReqs.cs +++ /dev/null @@ -1,351 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using Microsoft.Build.Framework; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; - -namespace Microsoft.DotNet.Build.Tasks -{ - /// - /// This task prepares the command line parameters for running a RPM build using FPM tool and also updates the copyright and changelog file tokens. - /// If parses various values from the config json by first reading it into a model and then builds the required string for parameters and passes it back. - /// - /// - public class BuildFPMToolPreReqs : BuildTask - { - [Required] - public string InputDir { get; set; } - [Required] - public string OutputDir { get; set; } - [Required] - public string PackageVersion { get; set; } - [Required] - public string ConfigJsonFile { get; set; } - [Output] - public string FPMParameters { get; set; } - - public override bool Execute() - { - try - { - if (!File.Exists(ConfigJsonFile)) - { - throw new FileNotFoundException($"Expected file {ConfigJsonFile} was not found."); - } - - // Open the Config Json and read the values into the model - TextReader projectFileReader = File.OpenText(ConfigJsonFile); - if (projectFileReader != null) - { - string jsonFileText = projectFileReader.ReadToEnd(); - ConfigJson configJson = JsonConvert.DeserializeObject(jsonFileText); - - // Update the Changelog and Copyright files by replacing tokens with values from config json - UpdateChangelog(configJson, PackageVersion); - UpdateCopyRight(configJson); - - // Build the full list of parameters - FPMParameters = BuildCmdParameters(configJson, PackageVersion); - Log.LogMessage(MessageImportance.Normal, "Generated RPM paramters: " + FPMParameters); - } - else - { - throw new IOException($"Could not open the file {ConfigJsonFile} for reading."); - } - } - catch (Exception e) - { - Log.LogErrorFromException(e, true); - } - - return !Log.HasLoggedErrors; - } - - // Update the tokens in the changelog file from the config Json - private void UpdateChangelog(ConfigJson configJson, string package_version) - { - try - { - string changelogFile = Path.Combine(InputDir, "templates", "changelog"); - if (!File.Exists(changelogFile)) - { - throw new FileNotFoundException($"Expected file {changelogFile} was not found."); - } - string str = File.ReadAllText(changelogFile); - str = str.Replace("{PACKAGE_NAME}", configJson.Package_Name); - str = str.Replace("{PACKAGE_VERSION}", package_version); - str = str.Replace("{PACKAGE_REVISION}", configJson.Release.Package_Revision); - str = str.Replace("{URGENCY}", configJson.Release.Urgency); - str = str.Replace("{CHANGELOG_MESSAGE}", configJson.Release.Changelog_Message); - str = str.Replace("{MAINTAINER_NAME}", configJson.Maintainer_Name); - str = str.Replace("{MAINTAINER_EMAIL}", configJson.Maintainer_Email); - // The date format needs to be like Wed May 17 2017 - str = str.Replace("{DATE}", DateTime.UtcNow.ToString("ddd MMM dd yyyy")); - File.WriteAllText(changelogFile, str); - } - catch (Exception e) - { - Log.LogError("Exception while updating the changelog file: " + e.Message); - } - } - - private void UpdateCopyRight(ConfigJson configJson) - { - try - { - // Update the tokens in the copyright file from the config Json - string copyrightFile = Path.Combine(InputDir, "templates", "copyright"); - if (!File.Exists(copyrightFile)) - { - throw new FileNotFoundException($"Expected file {copyrightFile} was not found."); - } - string str = File.ReadAllText(copyrightFile); - str = str.Replace("{COPYRIGHT_TEXT}", configJson.CopyRight); - str = str.Replace("{LICENSE_NAME}", configJson.License.Type); - str = str.Replace("{LICENSE_NAME}", configJson.License.Type); - str = str.Replace("{LICENSE_TEXT}", configJson.License.Full_Text); - File.WriteAllText(copyrightFile, str); - } - catch (Exception e) - { - Log.LogError("Exception while updating the copyright file: " + e.Message); - } - } - - private string BuildCmdParameters(ConfigJson configJson, string package_version) - { - // Parameter list that needs to be passed to FPM tool: - // -s : is the input source type(dir) --Static - // -t : is the type of package(rpm) --Static - // -n : is for the name of the package --JSON - // -v : is the version to give to the package --ARG - // -a : architecture --JSON - // -d : is for all dependent packages. This can be used multiple times to specify the dependencies of the package. --JSON - // --rpm-os : the operating system to target this rpm --Static - // --rpm-changelog : the changelog from FILEPATH contents --ARG - // --rpm-summary : it is the RPM summary that shows in the Title --JSON - // --description : it is the description for the package --JSON - // -p : The actual package name (with path) for your package. --ARG+JSON - // --conflicts : Other packages/versions this package conflicts with provided as CSV --JSON - // --directories : Recursively add directories as being owned by the package. --JSON - // --after-install : FILEPATH to the script to be run after install of the package --JSON - // --after-remove : FILEPATH to the script to be run after package removal --JSON - // --license : the licensing name for the package. This will include the license type in the meta-data for the package, but will not include the associated license file within the package itself. --JSON - // --iteration : the iteration to give to the package. This comes from the package_revision --JSON - // --url : url for this package. --JSON - // --verbose : Set verbose output for FPM tool --Static - // : Add all the folder mappings for packge_root, docs, man pages --Static - - var parameters = new List(); - parameters.Add("-s dir"); - parameters.Add("-t rpm"); - parameters.Add(string.Concat("-n ", configJson.Package_Name)); - parameters.Add(string.Concat("-v ", package_version)); - parameters.Add(string.Concat("-a ", configJson.Control.Architecture)); - - // Build the list of dependencies as -d -d - if (configJson.Rpm_Dependencies != null) - { - IEnumerable dependencies; - - switch (configJson.Rpm_Dependencies) - { - case JArray dependencyArray: - dependencies = dependencyArray.ToObject(); - break; - - case JObject dependencyDictionary: - dependencies = dependencyDictionary - .ToObject>() - .Select(pair => new RpmDependency - { - Package_Name = pair.Key, - Package_Version = pair.Value - }); - break; - - default: - throw new ArgumentException( - "Expected 'rpm_dependencies' to be JArray or JObject, but found " + - configJson.Rpm_Dependencies.Type); - } - - foreach (RpmDependency rpmdep in dependencies) - { - string dependency = ""; - if (rpmdep.Package_Name != "") - { - // If no version is specified then the dependency is just the package without >= check - if (rpmdep.Package_Version == "") - { - dependency = rpmdep.Package_Name; - } - else - { - dependency = string.Concat(rpmdep.Package_Name, " >= ", rpmdep.Package_Version); - } - } - if (dependency != "") - { - parameters.Add(string.Concat("-d ", EscapeArg(dependency))); - } - } - } - - // Build the list of owned directories - if (configJson.Directories != null) - { - foreach (string dir in configJson.Directories) - { - if (dir != "") - { - parameters.Add(string.Concat("--directories ", EscapeArg(dir))); - } - } - } - - parameters.Add("--rpm-os linux"); - parameters.Add(string.Concat("--rpm-changelog ", EscapeArg(Path.Combine(InputDir, "templates", "changelog")))); // Changelog File - parameters.Add(string.Concat("--rpm-summary ", EscapeArg(configJson.Short_Description))); - parameters.Add(string.Concat("--description ", EscapeArg(configJson.Long_Description))); - parameters.Add(string.Concat("--maintainer ", EscapeArg(configJson.Maintainer_Name + " <" + configJson.Maintainer_Email + ">"))); - parameters.Add(string.Concat("--vendor ", EscapeArg(configJson.Vendor))); - parameters.Add(string.Concat("-p ", Path.Combine(OutputDir, configJson.Package_Name + ".rpm"))); - if (configJson.Package_Conflicts != null) parameters.Add(string.Concat("--conflicts ", EscapeArg(string.Join(",", configJson.Package_Conflicts)))); - if (configJson.After_Install_Source != null) parameters.Add(string.Concat("--after-install ", Path.Combine(InputDir, EscapeArg(configJson.After_Install_Source)))); - if (configJson.After_Remove_Source != null) parameters.Add(string.Concat("--after-remove ", Path.Combine(InputDir, EscapeArg(configJson.After_Remove_Source)))); - parameters.Add(string.Concat("--license ", EscapeArg(configJson.License.Type))); - parameters.Add(string.Concat("--iteration ", configJson.Release.Package_Revision)); - parameters.Add(string.Concat("--url ", "\"", EscapeArg(configJson.Homepage), "\"")); - parameters.Add("--verbose"); - - // Map all the payload directories as they need to install on the system - if (configJson.Install_Root != null) parameters.Add(string.Concat(Path.Combine(InputDir, "package_root/="), configJson.Install_Root)); // Package Files - if (configJson.Install_Man != null) parameters.Add(string.Concat(Path.Combine(InputDir, "docs", "host/="), configJson.Install_Man)); // Man Pages - if (configJson.Install_Doc != null) parameters.Add(string.Concat(Path.Combine(InputDir, "templates", "copyright="), configJson.Install_Doc)); // CopyRight File - - return string.Join(" ", parameters); - } - - private string EscapeArg(string arg) - { - var sb = new StringBuilder(); - - bool quoted = ShouldSurroundWithQuotes(arg); - if (quoted) sb.Append("\""); - - for (int i = 0; i < arg.Length; ++i) - { - var backslashCount = 0; - - // Consume All Backslashes - while (i < arg.Length && arg[i] == '\\') - { - backslashCount++; - i++; - } - - // Escape any backslashes at the end of the arg - // This ensures the outside quote is interpreted as - // an argument delimiter - if (i == arg.Length) - { - sb.Append('\\', 2 * backslashCount); - } - - // Escape any preceding backslashes and the quote - else if (arg[i] == '"') - { - sb.Append('\\', (2 * backslashCount) + 1); - sb.Append('"'); - } - - // Output any consumed backslashes and the character - else - { - sb.Append('\\', backslashCount); - sb.Append(arg[i]); - } - } - - if (quoted) sb.Append("\""); - - return sb.ToString(); - } - private bool ShouldSurroundWithQuotes(string argument) - { - // Don't quote already quoted strings - if (argument.StartsWith("\"", StringComparison.Ordinal) && - argument.EndsWith("\"", StringComparison.Ordinal)) - { - return false; - } - - // Only quote if whitespace exists in the string - if (argument.Contains(" ") || argument.Contains("\t") || argument.Contains("\n")) - { - return true; - } - return false; - } - - /// - /// Model classes for reading and storing the JSON. - /// - private class ConfigJson - { - public string Maintainer_Name { get; set; } - public string Maintainer_Email { get; set; } - public string Vendor { get; set; } - public string Package_Name { get; set; } - public string Install_Root { get; set; } - public string Install_Doc { get; set; } - public string Install_Man { get; set; } - public string Short_Description { get; set; } - public string Long_Description { get; set; } - public string Homepage { get; set; } - public string CopyRight { get; set; } - public Release Release { get; set; } - public Control Control { get; set; } - public License License { get; set; } - public JContainer Rpm_Dependencies { get; set; } - public List Package_Conflicts { get; set; } - public List Directories { get; set; } - public string After_Install_Source { get; set; } - public string After_Remove_Source { get; set; } - } - - private class Release - { - public string Package_Version { get; set; } - public string Package_Revision { get; set; } - public string Urgency { get; set; } - public string Changelog_Message { get; set; } - } - - private class Control - { - public string Priority { get; set; } - public string Section { get; set; } - public string Architecture { get; set; } - } - - private class License - { - public string Type { get; set; } - public string Full_Text { get; set; } - } - - private class RpmDependency - { - public string Package_Name { get; set; } - public string Package_Version { get; set; } - } - } -} diff --git a/tools-local/tasks/installer.tasks/ChangeEntryPointLibraryName.cs b/tools-local/tasks/installer.tasks/ChangeEntryPointLibraryName.cs deleted file mode 100644 index 490b0e9211842..0000000000000 --- a/tools-local/tasks/installer.tasks/ChangeEntryPointLibraryName.cs +++ /dev/null @@ -1,69 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using Microsoft.Build.Framework; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using System.IO; -using System.Linq; - -namespace Microsoft.DotNet.Build.Tasks -{ - public class ChangeEntryPointLibraryName : BuildTask - { - [Required] - public string DepsFile { get; set; } - - public string NewName { get; set; } - - public override bool Execute() - { - JToken deps; - using (var file = File.OpenText(DepsFile)) - using (JsonTextReader reader = new JsonTextReader(file)) - { - deps = JObject.ReadFrom(reader); - } - - if (deps == null) return false; - - string version = string.Empty; - foreach (JProperty target in deps["targets"]) - { - var targetLibrary = target.Value.Children().FirstOrDefault(); - if (targetLibrary == null) - { - continue; - } - version = targetLibrary.Name.Substring(targetLibrary.Name.IndexOf('/') + 1); - if (string.IsNullOrEmpty(NewName)) - { - targetLibrary.Remove(); - } - else - { - targetLibrary.Replace(new JProperty(NewName + '/' + version, targetLibrary.Value)); - } - } - if (!string.IsNullOrEmpty(version)) - { - var library = deps["libraries"].Children().First(); - if (string.IsNullOrEmpty(NewName)) - { - library.Remove(); - } - else - { - library.Replace(new JProperty(NewName + '/' + version, library.Value)); - } - using (var file = File.CreateText(DepsFile)) - using (var writer = new JsonTextWriter(file) { Formatting = Formatting.Indented }) - { - deps.WriteTo(writer); - } - } - - return true; - } - } -} diff --git a/tools-local/tasks/installer.tasks/ReplaceFileContents.cs b/tools-local/tasks/installer.tasks/ReplaceFileContents.cs deleted file mode 100644 index 8c30c6a1eda34..0000000000000 --- a/tools-local/tasks/installer.tasks/ReplaceFileContents.cs +++ /dev/null @@ -1,106 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using Microsoft.Build.Framework; -using Microsoft.Build.Utilities; -using System; -using System.IO; - -namespace Microsoft.DotNet.Build.Tasks -{ - /// - /// Reads contents of an input file, and searches for each replacement passed in. - /// - /// When ReplacementItems is matched, it will replace the Include/ItemSpec with the corresponding - /// ReplacementString metadata value. This can be useful if the ReplacementString is a value that - /// cannot be represented by ITaskItem.ItemSpec (like string.Empty). - /// - /// When a ReplacementPattern is matched it will replace it with the string of the corresponding (by index) - /// item in ReplacementStrings. - /// - /// For example, if 2 ReplacementPatterns are passed in, 2 ReplacementStrings must also passed in and the first - /// pattern will be replaced with the first string, and the second pattern replaced with the second string. - /// - /// ReplacementPattern could easily be a regex, but it isn't needed for current use cases, so leaving this - /// as just a string that will be replaced. - /// - public class ReplaceFileContents : Task - { - [Required] - public string InputFile { get; set; } - - [Required] - public string DestinationFile { get; set; } - - public ITaskItem[] ReplacementItems { get; set; } - - public ITaskItem[] ReplacementPatterns { get; set; } - - public ITaskItem[] ReplacementStrings { get; set; } - - private ITaskItem[] Empty = new ITaskItem[0]; - - public override bool Execute() - { - if (ReplacementItems == null && ReplacementPatterns == null && ReplacementStrings == null) - { - throw new Exception($"ReplaceFileContents was called with no replacement values. Either pass ReplacementItems or ReplacementPatterns/ReplacementStrings properties."); - } - - ReplacementItems = ReplacementItems ?? Empty; - ReplacementPatterns = ReplacementPatterns ?? Empty; - ReplacementStrings = ReplacementStrings ?? Empty; - - if (ReplacementPatterns.Length != ReplacementStrings.Length) - { - throw new Exception($"Expected {nameof(ReplacementPatterns)} (length {ReplacementPatterns.Length}) and {nameof(ReplacementStrings)} (length {ReplacementStrings.Length}) to have the same length."); - } - - if (!File.Exists(InputFile)) - { - throw new FileNotFoundException($"Expected file {InputFile} was not found."); - } - - string inputFileText = File.ReadAllText(InputFile); - string outputFileText = ReplacePatterns(inputFileText); - - WriteOutputFile(outputFileText); - - return true; - } - - public string ReplacePatterns(string inputFileText) - { - var outText = inputFileText; - - foreach (var replacementItem in ReplacementItems) - { - var replacementPattern = replacementItem.ItemSpec; - var replacementString = replacementItem.GetMetadata("ReplacementString"); - - outText = outText.Replace(replacementPattern, replacementString); - } - - for (int i=0; i reportedFailures = new List(); - - // Gather all of the rows with error results - IEnumerable errorRows = from descendant in rows - where descendant.Descendants().FirstOrDefault(f => f.Name == s_ResultElement).Value == "False" - select descendant; - - // Filter out baselined files which are stored as regex patterns - HashSet baselineExcludeElements = new HashSet(); - if(BaselineFiles != null) - { - foreach(var baselineFile in BaselineFiles) - { - IEnumerable baselineExcluded = errorRows.Where(f => Regex.IsMatch(f.Descendants(s_NameElement).First().Value, baselineFile.ItemSpec, RegexOptions.IgnoreCase)); - foreach(var baselineExclude in baselineExcluded) - { - baselineExcludeElements.Add(baselineExclude); - } - } - } - // Gather the results with baselined files filtered out - IEnumerable baselinedRows = errorRows.Except(baselineExcludeElements); - - foreach (var filteredRow in baselinedRows) - { - ITaskItem item = new TaskItem(filteredRow.Descendants(s_NameElement).First().Value); - item.SetMetadata("Error", filteredRow.Descendants(s_ErrorElement).First().Value); - reportedFailures.Add(item); - } - - ErrorResults = reportedFailures.ToArray(); - foreach(var result in ErrorResults) - { - Log.LogError($"{result.ItemSpec} failed with error {result.GetMetadata("Error")}"); - } - return !Log.HasLoggedErrors; - } - } -} diff --git a/tools-local/tasks/installer.tasks/ZipFileCreateFromDirectory.cs b/tools-local/tasks/installer.tasks/ZipFileCreateFromDirectory.cs deleted file mode 100644 index e187008b94a0a..0000000000000 --- a/tools-local/tasks/installer.tasks/ZipFileCreateFromDirectory.cs +++ /dev/null @@ -1,133 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using Microsoft.Build.Framework; -using Microsoft.Build.Utilities; -using System; -using System.IO; -using System.IO.Compression; -using System.Text.RegularExpressions; - -namespace Microsoft.DotNet.Build.Tasks -{ - public sealed class ZipFileCreateFromDirectory : Task - { - /// - /// The path to the directory to be archived. - /// - [Required] - public string SourceDirectory { get; set; } - - /// - /// The path of the archive to be created. - /// - [Required] - public string DestinationArchive { get; set; } - - /// - /// Indicates if the destination archive should be overwritten if it already exists. - /// - public bool OverwriteDestination { get; set; } - - /// - /// If zipping an entire folder without exclusion patterns, whether to include the folder in the archive. - /// - public bool IncludeBaseDirectory { get; set; } - - /// - /// An item group of regular expressions for content to exclude from the archive. - /// - public ITaskItem[] ExcludePatterns { get; set; } - - public override bool Execute() - { - try - { - if (File.Exists(DestinationArchive)) - { - if (OverwriteDestination == true) - { - Log.LogMessage(MessageImportance.Low, "{0} already existed, deleting before zipping...", DestinationArchive); - File.Delete(DestinationArchive); - } - else - { - Log.LogWarning("'{0}' already exists. Did you forget to set '{1}' to true?", DestinationArchive, nameof(OverwriteDestination)); - } - } - - Log.LogMessage(MessageImportance.High, "Compressing {0} into {1}...", SourceDirectory, DestinationArchive); - string destinationDirectory = Path.GetDirectoryName(DestinationArchive); - if (!Directory.Exists(destinationDirectory) && !string.IsNullOrEmpty(destinationDirectory)) - { - Directory.CreateDirectory(destinationDirectory); - } - - if (ExcludePatterns == null) - { - ZipFile.CreateFromDirectory(SourceDirectory, DestinationArchive, CompressionLevel.Optimal, IncludeBaseDirectory); - } - else - { - // convert to regular expressions - Regex[] regexes = new Regex[ExcludePatterns.Length]; - for (int i = 0; i < ExcludePatterns.Length; ++i) - regexes[i] = new Regex(ExcludePatterns[i].ItemSpec, RegexOptions.IgnoreCase); - - using (FileStream writer = new FileStream(DestinationArchive, FileMode.CreateNew)) - { - using (ZipArchive zipFile = new ZipArchive(writer, ZipArchiveMode.Create)) - { - var files = Directory.GetFiles(SourceDirectory, "*", SearchOption.AllDirectories); - - foreach (var file in files) - { - // look for a match - bool foundMatch = false; - foreach (var regex in regexes) - { - if (regex.IsMatch(file)) - { - foundMatch = true; - break; - } - } - - if (foundMatch) - { - Log.LogMessage(MessageImportance.Low, "Excluding {0} from archive.", file); - continue; - } - - var relativePath = MakeRelativePath(SourceDirectory, file); - zipFile.CreateEntryFromFile(file, relativePath, CompressionLevel.Optimal); - } - } - } - } - } - catch (Exception e) - { - // We have 2 log calls because we want a nice error message but we also want to capture the callstack in the log. - Log.LogError("An exception has occurred while trying to compress '{0}' into '{1}'.", SourceDirectory, DestinationArchive); - Log.LogErrorFromException(e, /*show stack=*/ true, /*show detail=*/ true, DestinationArchive); - return false; - } - - return true; - } - - private string MakeRelativePath(string root, string subdirectory) - { - if (!subdirectory.StartsWith(root)) - throw new Exception(string.Format("'{0}' is not a subdirectory of '{1}'.", subdirectory, root)); - - // returned string should not start with a directory separator - int chop = root.Length; - if (subdirectory[chop] == Path.DirectorySeparatorChar) - ++chop; - - return subdirectory.Substring(chop); - } - } -} diff --git a/tools-local/tasks/installer.tasks/installer.tasks.csproj b/tools-local/tasks/installer.tasks/installer.tasks.csproj deleted file mode 100644 index fc7b567d4b647..0000000000000 --- a/tools-local/tasks/installer.tasks/installer.tasks.csproj +++ /dev/null @@ -1,46 +0,0 @@ - - - netstandard2.0 - $(TargetFrameworks);net461 - false - false - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools-local/tasks/installer.tasks/net46/ProcessSharedFrameworkDeps.net46.cs b/tools-local/tasks/installer.tasks/net46/ProcessSharedFrameworkDeps.net46.cs deleted file mode 100644 index d514bd1863229..0000000000000 --- a/tools-local/tasks/installer.tasks/net46/ProcessSharedFrameworkDeps.net46.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Reflection; - -namespace Microsoft.DotNet.Build.Tasks -{ - public partial class ProcessSharedFrameworkDeps - { - partial void EnsureInitialized(string buildTasksAssemblyPath) - { - // Ensure the Arcade AssemblyResolver is enabled, so we get the correct assembly - // unification even if an Arcade assembly hasn't been loaded yet. - Assembly buildTasksAssembly = Assembly.Load(AssemblyName.GetAssemblyName(buildTasksAssemblyPath)); - Type assemblyResolver = buildTasksAssembly.GetType("Microsoft.DotNet.Build.Common.Desktop.AssemblyResolver"); - assemblyResolver.GetMethod("Enable").Invoke(null, new object[] { }); - } - } -} From 7b90eac0175de4034572b57a42384a858a09d139 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Tue, 8 Dec 2020 16:24:24 +0100 Subject: [PATCH 68/87] Add Microsoft StrongNameKey back to System.Composition* (#45756) --- src/libraries/System.Composition/Directory.Build.props | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libraries/System.Composition/Directory.Build.props b/src/libraries/System.Composition/Directory.Build.props index ad247e4c80f99..321f1f0b26e38 100644 --- a/src/libraries/System.Composition/Directory.Build.props +++ b/src/libraries/System.Composition/Directory.Build.props @@ -1,3 +1,6 @@  - \ No newline at end of file + + Microsoft + + From f3176e0ec93432df9c11fcf0cfc63589489be7cc Mon Sep 17 00:00:00 2001 From: monojenkins Date: Tue, 8 Dec 2020 12:48:04 -0500 Subject: [PATCH 69/87] Fix LLVM link issues when compiling static library on Windows. (#45752) Co-authored-by: lateralusX --- src/mono/mono/mini/mini-llvm.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/mono/mono/mini/mini-llvm.c b/src/mono/mono/mini/mini-llvm.c index 3012b1bb933c3..d519e70424cef 100644 --- a/src/mono/mono/mini/mini-llvm.c +++ b/src/mono/mono/mini/mini-llvm.c @@ -3266,7 +3266,12 @@ emit_gc_safepoint_poll (MonoLLVMModule *module, LLVMModuleRef lmodule, MonoCompi LLVMValueRef func = mono_llvm_get_or_insert_gc_safepoint_poll (lmodule); mono_llvm_add_func_attr (func, LLVM_ATTR_NO_UNWIND); if (is_aot) { - LLVMSetLinkage (func, LLVMWeakODRLinkage); +#if TARGET_WIN32 + if (module->static_link) + LLVMSetLinkage (func, LLVMInternalLinkage); + else +#endif + LLVMSetLinkage (func, LLVMWeakODRLinkage); } else { mono_llvm_add_func_attr (func, LLVM_ATTR_OPTIMIZE_NONE); // no need to waste time here, the function is already optimized and will be inlined. mono_llvm_add_func_attr (func, LLVM_ATTR_NO_INLINE); // optnone attribute requires noinline (but it will be inlined anyway) From 18d1527c079e5f4c1e3ee0ccd1ca22f92f7969c9 Mon Sep 17 00:00:00 2001 From: Anton Firszov Date: Tue, 8 Dec 2020 19:09:03 +0100 Subject: [PATCH 70/87] WinHttpHandler: apply [SupportedOSPlatform("windows10.0.19041")] on TcpKeepAlive properties (#45494) WINHTTP_OPTION_TCP_KEEPALIVE is only available since the May 2020 Update, so it's reasonable to decorate the TcpKeepalive API with [SupportedOSPlatform] --- .../ref/System.Net.Http.WinHttpHandler.cs | 3 +++ .../src/System/Net/Http/WinHttpHandler.cs | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/src/libraries/System.Net.Http.WinHttpHandler/ref/System.Net.Http.WinHttpHandler.cs b/src/libraries/System.Net.Http.WinHttpHandler/ref/System.Net.Http.WinHttpHandler.cs index 12c86997fb1e0..c9c63bb27e826 100644 --- a/src/libraries/System.Net.Http.WinHttpHandler/ref/System.Net.Http.WinHttpHandler.cs +++ b/src/libraries/System.Net.Http.WinHttpHandler/ref/System.Net.Http.WinHttpHandler.cs @@ -44,8 +44,11 @@ public WinHttpHandler() { } public System.Func? ServerCertificateValidationCallback { get { throw null; } set { } } public System.Net.ICredentials? ServerCredentials { get { throw null; } set { } } public System.Security.Authentication.SslProtocols SslProtocols { get { throw null; } set { } } + [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows10.0.19041")] public bool TcpKeepAliveEnabled { get { throw null; } set { } } + [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows10.0.19041")] public System.TimeSpan TcpKeepAliveTime { get { throw null; } set { } } + [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows10.0.19041")] public System.TimeSpan TcpKeepAliveInterval { get { throw null; } set { } } public System.Net.Http.WindowsProxyUsePolicy WindowsProxyUsePolicy { get { throw null; } set { } } protected override void Dispose(bool disposing) { } diff --git a/src/libraries/System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpHandler.cs b/src/libraries/System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpHandler.cs index 85a12519030af..0d9ce3f5bc0aa 100644 --- a/src/libraries/System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpHandler.cs +++ b/src/libraries/System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpHandler.cs @@ -7,6 +7,7 @@ using System.Net.Http.Headers; using System.Net.Security; using System.Runtime.InteropServices; +using System.Runtime.Versioning; using System.Security.Authentication; using System.Security.Cryptography.X509Certificates; using System.Text; @@ -418,9 +419,11 @@ public TimeSpan ReceiveDataTimeout /// Gets or sets a value indicating whether TCP keep-alive is enabled. /// /// + /// Only supported on Windows 10 version 2004 or newer. /// If enabled, the values of and will be forwarded /// to set WINHTTP_OPTION_TCP_KEEPALIVE, enabling and configuring TCP keep-alive for the backing TCP socket. /// + [SupportedOSPlatform("windows10.0.19041")] public bool TcpKeepAliveEnabled { get @@ -438,9 +441,11 @@ public bool TcpKeepAliveEnabled /// Gets or sets the TCP keep-alive timeout. /// /// + /// Only supported on Windows 10 version 2004 or newer. /// Has no effect if is . /// The default value of this property is 2 hours. /// + [SupportedOSPlatform("windows10.0.19041")] public TimeSpan TcpKeepAliveTime { get @@ -459,9 +464,11 @@ public TimeSpan TcpKeepAliveTime /// Gets or sets the TCP keep-alive interval. /// /// + /// Only supported on Windows 10 version 2004 or newer. /// Has no effect if is . /// The default value of this property is 1 second. /// + [SupportedOSPlatform("windows10.0.19041")] public TimeSpan TcpKeepAliveInterval { get From 10381a2cdc33860f0dc649b24cbb703d23b9ea33 Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Tue, 8 Dec 2020 10:40:17 -0800 Subject: [PATCH 71/87] Find&Replace coreclr/src -> coreclr (#45761) --- .gitattributes | 4 +-- .github/CODEOWNERS | 6 ++-- CONTRIBUTING.md | 2 +- docs/README.md | 2 +- docs/coding-guidelines/EventLogging.md | 6 ++-- docs/coding-guidelines/clr-code-guide.md | 22 +++++++------- docs/design/coreclr/botr/corelib.md | 14 ++++----- docs/design/coreclr/botr/dac-notes.md | 8 ++--- docs/design/coreclr/botr/exceptions.md | 2 +- .../design/coreclr/botr/garbage-collection.md | 2 +- docs/design/coreclr/botr/guide-for-porting.md | 6 ++-- docs/design/coreclr/botr/method-descriptor.md | 2 +- docs/design/coreclr/botr/profilability.md | 6 ++-- docs/design/coreclr/botr/readytorun-format.md | 10 +++---- docs/design/coreclr/botr/shared-generics.md | 6 ++-- docs/design/coreclr/botr/stackwalking.md | 6 ++-- docs/design/coreclr/botr/threading.md | 6 ++-- docs/design/coreclr/botr/type-loader.md | 2 +- .../coreclr/botr/virtual-stub-dispatch.md | 4 +-- .../coreclr/botr/xplat-minidump-generation.md | 4 +-- docs/design/coreclr/jit/ryujit-overview.md | 28 +++++++++--------- docs/design/coreclr/jit/ryujit-tutorial.md | 2 +- docs/design/coreclr/jit/viewing-jit-dumps.md | 2 +- docs/design/features/DynamicPgo.md | 2 +- docs/design/features/code-versioning.md | 4 +-- docs/design/features/hw-intrinsics.md | 6 ++-- docs/design/features/native-hosting.md | 4 +-- .../design/features/standalone-gc-eventing.md | 2 +- docs/design/features/standalone-gc-loading.md | 2 +- docs/design/features/tiered-compilation.md | 6 ++-- docs/project/glossary.md | 4 +-- docs/project/updating-jitinterface.md | 2 +- docs/workflow/building/coreclr/android.md | 2 +- docs/workflow/ci/coreclr-ci-health.md | 2 +- docs/workflow/editing-and-debugging.md | 2 +- .../testing/coreclr/unix-test-instructions.md | 4 +-- eng/build.ps1 | 2 +- eng/native/sanitizerblacklist.txt | 2 +- eng/pipelines/coreclr/ilasm.yml | 4 +-- eng/pipelines/coreclr/jitrollingbuild.yml | 2 +- eng/pipelines/coreclr/superpmi.yml | 2 +- src/coreclr/ToolBox/superpmi/readme.md | 2 +- .../superpmi-shared/icorjitinfoimpl.h | 2 +- .../superpmi-shim-counter/icorjitinfo.cpp | 2 +- .../superpmi-shim-simple/icorjitinfo.cpp | 2 +- .../vxsort/smallsort/codegen/bitonic_gen.py | 2 +- src/coreclr/inc/corinfoinstructionset.h | 4 +-- src/coreclr/inc/crosscomp.h | 2 +- src/coreclr/inc/readytorun.h | 2 +- src/coreclr/inc/readytoruninstructionset.h | 4 +-- src/coreclr/jit/ICorJitInfo_API_names.h | 2 +- src/coreclr/jit/ICorJitInfo_API_wrapper.hpp | 2 +- src/coreclr/pal/prebuilt/idl/clrdata_i.cpp | 2 +- src/coreclr/pal/prebuilt/idl/sospriv_i.cpp | 2 +- src/coreclr/pal/prebuilt/inc/clrdata.h | 2 +- src/coreclr/pal/prebuilt/inc/corprof.h | 2 +- src/coreclr/pal/prebuilt/inc/sospriv.h | 2 +- src/coreclr/pal/prebuilt/inc/xcordebug.h | 2 +- src/coreclr/pal/src/exception/seh-unwind.cpp | 2 +- src/coreclr/scripts/scripts.pyproj | 2 +- .../Common/Internal/Runtime/ModuleHeaders.cs | 2 +- .../Runtime/ReadyToRunInstructionSet.cs | 4 +-- .../Runtime/ReadyToRunInstructionSetHelper.cs | 4 +-- .../tools/Common/JitInterface/CorInfoBase.cs | 2 +- .../JitInterface/CorInfoInstructionSet.cs | 4 +-- .../JitInterface/CorInfoTypes.VarInfo.cs | 2 +- .../ThunkGenerator/InstructionSetGenerator.cs | 20 ++++++------- .../JitInterface/ThunkGenerator/Program.cs | 2 +- src/coreclr/tools/ILVerification/README.md | 2 +- src/coreclr/tools/ILVerify/README.md | 2 +- .../ReadyToRunMethod.cs | 2 +- .../tools/aot/jitinterface/jitinterface.h | 2 +- src/coreclr/vm/compile.cpp | 4 +-- src/libraries/GenerateLibrariesSln.ps1 | 2 +- .../System.AppContext/System.AppContext.sln | 2 +- .../System.Buffers/System.Buffers.sln | 2 +- .../System.Collections.Concurrent.sln | 2 +- .../System.Collections/System.Collections.sln | 2 +- .../System.Data.Common/System.Data.Common.sln | 2 +- .../System.Diagnostics.Contracts.sln | 2 +- .../System.Diagnostics.Debug.sln | 2 +- .../System.Diagnostics.StackTrace.sln | 2 +- .../System.Diagnostics.Tools.sln | 2 +- .../System.Diagnostics.TraceSource.sln | 2 +- .../System.Diagnostics.Tracing.sln | 2 +- .../System.Globalization.Calendars.sln | 2 +- .../System.Globalization.sln | 2 +- .../System.IO.UnmanagedMemoryStream.sln | 2 +- src/libraries/System.Memory/System.Memory.sln | 2 +- .../System.Numerics.Vectors.sln | 2 +- .../System.Private.CoreLib/src/README.md | 2 +- .../System.Private.Uri/System.Private.Uri.sln | 2 +- .../System.Reflection.Emit.ILGeneration.sln | 2 +- .../System.Reflection.Emit.Lightweight.sln | 2 +- .../System.Reflection.Emit.sln | 2 +- .../System.Reflection.Primitives.sln | 2 +- .../System.Reflection.TypeExtensions.sln | 2 +- .../System.Reflection/System.Reflection.sln | 2 +- .../System.Resources.ResourceManager.sln | 2 +- .../System.Runtime.Extensions.sln | 2 +- .../System.Runtime.InteropServices.sln | 2 +- .../System.Runtime.Intrinsics.sln | 2 +- .../System.Runtime.Loader.sln | 2 +- ...ystem.Runtime.Serialization.Formatters.sln | 2 +- ...ystem.Runtime.Serialization.Formatters.sln | Bin 46616 -> 46592 bytes .../System.Runtime/System.Runtime.sln | 2 +- .../System.Security.Principal.sln | 2 +- .../System.Text.Encoding.Extensions.sln | 2 +- .../System.Text.Encoding.sln | 2 +- .../System.Threading.Overlapped.sln | 2 +- .../System.Threading.Tasks.Extensions.sln | 2 +- .../System.Threading.Tasks.sln | 2 +- .../System.Threading.Thread.sln | 2 +- .../System.Threading.ThreadPool.sln | 2 +- .../System.Threading.Timer.sln | 2 +- .../System.Threading/System.Threading.sln | 2 +- src/mono/mono/eventpipe/ep-rt-mono.h | 2 +- src/mono/mono/metadata/icall.c | 2 +- .../src/System/RuntimeType.Mono.cs | 2 +- 119 files changed, 195 insertions(+), 195 deletions(-) diff --git a/.gitattributes b/.gitattributes index 04518684225a8..b4e3bcd074565 100644 --- a/.gitattributes +++ b/.gitattributes @@ -67,8 +67,8 @@ *.h linguist-language=C # CLR specific -src/coreclr/src/pal/tests/palsuite/paltestlist.txt text eol=lf -src/coreclr/src/pal/tests/palsuite/paltestlist_to_be_reviewed.txt text eol=lf +src/coreclr/pal/tests/palsuite/paltestlist.txt text eol=lf +src/coreclr/pal/tests/palsuite/paltestlist_to_be_reviewed.txt text eol=lf src/tests/JIT/Performance/CodeQuality/BenchmarksGame/regex-redux/regexdna-input25.txt text eol=lf src/tests/JIT/Performance/CodeQuality/BenchmarksGame/regex-redux/regexdna-input25000.txt text eol=lf src/tests/JIT/Performance/CodeQuality/BenchmarksGame/reverse-complement/revcomp-input25.txt text eol=lf diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index f970427a97e89..4aeb19e35f951 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -9,9 +9,9 @@ # CoreCLR Code Owners -/src/coreclr/src/inc/corinfo.h @dotnet/jit-contrib -/src/coreclr/src/inc/corjit.h @dotnet/jit-contrib -/src/coreclr/src/jit/ @dotnet/jit-contrib +/src/coreclr/inc/corinfo.h @dotnet/jit-contrib +/src/coreclr/inc/corjit.h @dotnet/jit-contrib +/src/coreclr/jit/ @dotnet/jit-contrib # Mono Code Owners diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a8cf7c3ce6d5c..fd80057e8f387 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -107,7 +107,7 @@ The following file header is the used for .NET Core. Please use it for new files // The .NET Foundation licenses this file to you under the MIT license. ``` -- See [class.cpp](./src/coreclr/src/vm/class.cpp) for an example of the header in a C++ file. +- See [class.cpp](./src/coreclr/vm/class.cpp) for an example of the header in a C++ file. - See [List.cs](./src/libraries/System.Private.CoreLib/src/System/Collections/Generic/List.cs) for an example of the header in a C# file. ## PR - CI Process diff --git a/docs/README.md b/docs/README.md index bbbc1515913fe..023cb7b568609 100644 --- a/docs/README.md +++ b/docs/README.md @@ -71,6 +71,6 @@ Other Information - [.NET Filename Encyclopedia](project/dotnet-filenames.md) - [Porting to .NET Core](https://docs.microsoft.com/en-us/dotnet/standard/analyzers/portability-analyzer) - [.NET Standards (Ecma)](project/dotnet-standards.md) -- [CLR Configuration Knobs](../src/coreclr/src/inc/clrconfigvalues.h) +- [CLR Configuration Knobs](../src/coreclr/inc/clrconfigvalues.h) - [CLR overview](https://docs.microsoft.com/dotnet/standard/clr) - [Wikipedia Entry for the CLR](https://en.wikipedia.org/wiki/Common_Language_Runtime) diff --git a/docs/coding-guidelines/EventLogging.md b/docs/coding-guidelines/EventLogging.md index f2063a1a5c140..8d581cb29254c 100644 --- a/docs/coding-guidelines/EventLogging.md +++ b/docs/coding-guidelines/EventLogging.md @@ -6,9 +6,9 @@ Event Logging is a mechanism by which CoreClr can provide a variety of informati # Adding Events to the Runtime -- Edit the [Event manifest](../../src/coreclr/src/vm/ClrEtwAll.man) to add a new event. For guidelines on adding new events, take a look at the existing events in the manifest and this guide for [ETW Manifests](https://msdn.microsoft.com/en-us/library/dd996930%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396). +- Edit the [Event manifest](../../src/coreclr/vm/ClrEtwAll.man) to add a new event. For guidelines on adding new events, take a look at the existing events in the manifest and this guide for [ETW Manifests](https://msdn.microsoft.com/en-us/library/dd996930%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396). - The build system should automatically generate the required artifacts for the added events. -- Add entries in the [exclusion list](../../src/coreclr/src/vm/ClrEtwAllMeta.lst) if necessary +- Add entries in the [exclusion list](../../src/coreclr/vm/ClrEtwAllMeta.lst) if necessary - The Event Logging Mechanism provides the following two functions, which can be used within the VM: - **FireEtw**EventName, this is used to trigger the event - **EventEnabled**EventName, this is used to see if any consumer has subscribed to this event @@ -16,4 +16,4 @@ Event Logging is a mechanism by which CoreClr can provide a variety of informati # Adding New Logging System -Though the the Event logging system was designed for ETW, the build system provides a mechanism, basically an [adapter script- genEventing.py](../../src/coreclr/src/scripts/genEventing.py) so that other Logging System can be added and used by CoreClr. An Example of such an extension for [LTTng logging system](https://lttng.org/) can be found in [genLttngProvider.py](../../src/coreclr/src/scripts/genLttngProvider.py ) +Though the the Event logging system was designed for ETW, the build system provides a mechanism, basically an [adapter script- genEventing.py](../../src/coreclr/scripts/genEventing.py) so that other Logging System can be added and used by CoreClr. An Example of such an extension for [LTTng logging system](https://lttng.org/) can be found in [genLttngProvider.py](../../src/coreclr/scripts/genLttngProvider.py ) diff --git a/docs/coding-guidelines/clr-code-guide.md b/docs/coding-guidelines/clr-code-guide.md index 9818c1163f84f..ece1900b3f4fe 100644 --- a/docs/coding-guidelines/clr-code-guide.md +++ b/docs/coding-guidelines/clr-code-guide.md @@ -105,7 +105,7 @@ Rules can either be imposed by invariants or team policy. Team policy rules are not necessarily less important than invariants. For example, the rule to use [safemath.h][safemath.h] rather that coding your own integer overflow check is a policy rule. But because it deals with security, we'd probably treat it as higher priority than a very obscure (non-security) related bug. -[safemath.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/inc/safemath.h +[safemath.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/inc/safemath.h One type of rule you won't find here are purely syntactic "code formatting" rules such as brace placement. While there is value in uniform stylistic conventions, we don't want to "lay down the law" on these to the extent that we do for the more semantic-oriented issues covered here. The rules included in this document are here because breaking them would do one of the following: @@ -238,8 +238,8 @@ The solution is the OBJECTHANDLE. OBJECTHANDLE allocates a location from special Handles are implemented through several layers of abstraction – the "official" interface for public use is the one described here and is exposed through [objecthandle.h][objecthandle.h]. Don't confuse this with [handletable.h][handletable.h] which contains the internals. The CreateHandle() api allocates a new location. ObjectFromHandle() dereferences the handle and returns an up-to-date reference. DestroyHandle() frees the location. -[objecthandle.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/gc/objecthandle.h -[handletable.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/gc/handletable.h +[objecthandle.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/gc/objecthandle.h +[handletable.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/gc/handletable.h The following code fragment shows how handles are used. In practice, of course, people use GCPROTECT rather than handles for situations this simple. @@ -551,7 +551,7 @@ First, look for a prebaked holder that does what you want. Some common ones are If no existing holder fits your need, make one. If it's your first holder, start by reading [src\inc\holder.h][holder.h]. Decide if you want a holder or a wrapper. If you don't do much with a resource except acquire and release it, use a holder. Otherwise, you want the wrapper since its overloaded operators make it much easier to replace the resource variable with the wrapper. -[holder.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/inc/holder.h +[holder.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/inc/holder.h Instantiate the holder or wrapper template with the required parameters. You must supply the data type being managed, the RELEASE function, the default value for uninitialized constructions, the IS_NULL function and the ACQUIRE function. Unless you're implementing a critical section holder, you can probably supply a NOP for ACQUIRE . Most resources can't be meaningfully released and reacquired so it's easier to allocate the resource outside the holder and pass it in through its constructor. For convenience, [holder.h][holder.h] defines a DoNothing template that creates a NOP ACQUIRE function for any given resource type. There are also convenience templates for writing RELEASE functions. See [holder.h][holder.h] for their definitions and examples of their use. @@ -716,7 +716,7 @@ SString is the abstraction to use for unmanaged strings in CLR code. It is impor This section will provide an overview for SString. For specific details on methods and use, see the file [src\inc\sstring.h][sstring.h]. SString has been in use in our codebase for quite a few years now so examples of its use should be easy to find. -[sstring.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/inc/sstring.h +[sstring.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/inc/sstring.h An SString object represents a Unicode string. It has its own buffer which it internally manages. The string buffer is typically not referenced directly by user code; instead the string is manipulated indirectly by methods defined on SString. Ultimately there are several ways to get at the raw string buffer if such functionality is needed to interface to existing APIs. But these should be used only when absolutely necessary. @@ -822,7 +822,7 @@ We used to assign levels manually, but this leads to problems when it comes time Instead we now record the explicit dependencies as a set of rules in the src\inc\CrstTypes.def file and use a tool to automatically assign compatible levels to each Crst type. See CrstTypes.def for a description of the rule syntax and other instructions for updating Crst types. -[crst.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/crst.h +[crst.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/crst.h ### 2.6.3 Creating Crsts @@ -1034,7 +1034,7 @@ Here are some immediate tips for working well with the managed-debugging service - GetFoo() - fails if a Foo does not exist. Being non-mutating, this should also be GC_NOTRIGGER. Non-mutating will also make it much easier to DAC-ize. This is what the debugger will call. - and GetOrCreateFoo() that is built around GetFoo(). The rest of the runtime can call this. - The debugger can then just call GetFoo(), and deal with the failure accordingly. -- If you add a new stub (or way to call managed code), make sure that you can source-level step-in (F11) it under the debugger. The debugger is not psychic. A source-level step-in needs to be able to go from the source-line before a call to the source-line after the call, or managed code developers will be very confused. If you make that call transition be a giant 500 line stub, you must cooperate with the debugger for it to know how to step-through it. (This is what StubManagers are all about. See [src\vm\stubmgr.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/stubmgr.h)). Try doing a step-in through your new codepath under the debugger. +- If you add a new stub (or way to call managed code), make sure that you can source-level step-in (F11) it under the debugger. The debugger is not psychic. A source-level step-in needs to be able to go from the source-line before a call to the source-line after the call, or managed code developers will be very confused. If you make that call transition be a giant 500 line stub, you must cooperate with the debugger for it to know how to step-through it. (This is what StubManagers are all about. See [src\vm\stubmgr.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/stubmgr.h)). Try doing a step-in through your new codepath under the debugger. - **Beware of timeouts** : The debugger may completely suspend your process at arbitrary points. In most cases, the debugger will do the right thing (and suspend your timeout too), but not always. For example, if you have some other process waiting for info from the debuggee, it [may hit a timeout](https://docs.microsoft.com/en-us/archive/blogs/jmstall/why-you-sometimes-get-a-bogus-contextswitchdeadlock-mda-under-the-debugger). - **Use CLR synchronization primitives (like Crst)**. In addition to all the reasons listed in the synchronization section, the CLR-aware primitives can cooperate with the debugging services. For example: - The debugger needs to know when threads are modifying sensitive data (which correlates to when the threads lock that data). @@ -1057,7 +1057,7 @@ Here are some immediate tips for working well with the managed-debugging service Because the CLR is ultimately compiled on several different platforms, we have to be careful about the primitive types which are used in our code. Some compilers can have slightly different declarations in standard header files, and different processor word sizes can require values to have different representations on different platforms. -Because of this, we have gathered definition all of the "blessed" CLR types in a single header file, [clrtypes.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/inc/clrtypes.h). In general, you should only use primitive types which are defined in this file. As an exception, you may use built-in primitive types like int and short when precision isn't particularly interesting. +Because of this, we have gathered definition all of the "blessed" CLR types in a single header file, [clrtypes.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/inc/clrtypes.h). In general, you should only use primitive types which are defined in this file. As an exception, you may use built-in primitive types like int and short when precision isn't particularly interesting. The types are grouped into several categories. @@ -1133,7 +1133,7 @@ This item asserts that the thread is in a particular mode or declares that the f #### 2.10.1.5 LOADS_TYPE(_loadlevel_) -This item asserts that the function may invoke the loader and cause a type to loaded up to (and including) the indicated loadlevel. Valid load levels are taken from ClassLoadLevel enumerationin [classLoadLevel.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/classloadlevel.h). +This item asserts that the function may invoke the loader and cause a type to loaded up to (and including) the indicated loadlevel. Valid load levels are taken from ClassLoadLevel enumerationin [classLoadLevel.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/classloadlevel.h). The CLR asserts if any attempt is made to load a type past the current limit set by LOADS_TYPE. A call to any function that has a LOADS_TYPE contract is treated as an attempt to load a type up to that limit. @@ -1143,7 +1143,7 @@ These declare whether a function or callee takes any kind of EE or user lock: Cr In TLS we keep track of the current intent (whether to lock), and actual reality (what locks are actually taken). Enforcement occurs as follows: -[contract.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/inc/contract.h +[contract.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/inc/contract.h - SCAN - A CANNOT_TAKE_LOCK function calling a CAN_TAKE_LOCK function is illegal (just like THROWS/NOTHROWS) @@ -1258,4 +1258,4 @@ At a high level, DAC is a technique to enable execution of CLR algorithms from o Various tools (most notably the debugger and SOS) rely on portions of the CLR code being properly "DACized". Writing code in this way can be tricky and error-prone. Use the following references for more details: -- The best documentation is in the code itself. See the large comments at the top of [src\inc\daccess.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/inc/daccess.h). +- The best documentation is in the code itself. See the large comments at the top of [src\inc\daccess.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/inc/daccess.h). diff --git a/docs/design/coreclr/botr/corelib.md b/docs/design/coreclr/botr/corelib.md index 288e4be0353b7..6f2ced10c98b9 100644 --- a/docs/design/coreclr/botr/corelib.md +++ b/docs/design/coreclr/botr/corelib.md @@ -36,7 +36,7 @@ To implement these, we need a way for the CLR to specify and optionally verify t The managed mechanism for calling into native code must also support the special managed calling convention used by `String`'s constructors, where the constructor allocates the memory used by the object (instead of the typical convention where the constructor is called after the GC allocates memory). -The CLR provides a [`mscorlib` binder](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/binder.cpp) internally, providing a mapping between unmanaged types and fields to managed types and fields. The binder will look up and load classes and allows the calling of managed methods. It also performs simple verification to ensure the correctness of any layout information specified in both managed and native code. The binder ensures that the managed class attempting to load exists in mscorlib, has been loaded, and the field offsets are correct. It also needs the ability to differentiate between method overloads with different signatures. +The CLR provides a [`mscorlib` binder](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/binder.cpp) internally, providing a mapping between unmanaged types and fields to managed types and fields. The binder will look up and load classes and allows the calling of managed methods. It also performs simple verification to ensure the correctness of any layout information specified in both managed and native code. The binder ensures that the managed class attempting to load exists in mscorlib, has been loaded, and the field offsets are correct. It also needs the ability to differentiate between method overloads with different signatures. # Calling from managed to native code @@ -70,7 +70,7 @@ The preferred types for QCall arguments are primitive types that are efficiently The pointers to common unmanaged EE structures should be wrapped into handle types. This is to make the managed implementation type safe and avoid falling into unsafe C# everywhere. See AssemblyHandle in [vm\qcall.h][qcall] for an example. -[qcall]: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/qcall.h +[qcall]: https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/qcall.h Passing object references in and out of QCalls is done by wrapping a pointer to a local variable in a handle. It is intentionally cumbersome and should be avoided if reasonably possible. See the `StringHandleOnStack` in the example below. Returning objects, especially strings, from QCalls is the only common pattern where passing the raw objects is widely acceptable. (For reasoning on why this set of restrictions helps make QCalls less prone to GC holes, read the ["GC Holes, FCall, and QCall"](#gcholes) section below.) @@ -112,7 +112,7 @@ Do not replicate the comments into your actual QCall implementation. The QCall entrypoint has to be registered in tables in [vm\ecalllist.h][ecalllist] using `QCFuncEntry` macro. See ["Registering your QCall or FCall Method"](#register) below. -[ecalllist]: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/ecalllist.h +[ecalllist]: https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/ecalllist.h ```C++ class FooNative @@ -173,7 +173,7 @@ FCalls allow more flexibility in terms of passing object references around, but FCalls require a lot of boilerplate code, too much to describe here. Refer to [fcall.h][fcall] for details. -[fcall]: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/fcall.h +[fcall]: https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/fcall.h ### GC holes, FCall, and QCall @@ -193,7 +193,7 @@ The managed stack walker needs to be able to find its way from FCalls. It is rel Complex constructs like stack allocated objects with destructors or exception handling in the FCall implementation may confuse the epilog walker. This can lead to GC holes or crashes during stack walking. There is no comprehensive list of what constructs should be avoided to prevent this class of bugs. An FCall implementation that is fine one day may break with the next C++ compiler update. We depend on stress runs and code coverage to find bugs in this area. -Setting a breakpoint inside an FCall implementation may confuse the epilog walker. It leads to an "Invalid breakpoint in a helpermethod frame epilog" assert inside [vm\i386\gmsx86.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/i386/gmsx86.cpp). +Setting a breakpoint inside an FCall implementation may confuse the epilog walker. It leads to an "Invalid breakpoint in a helpermethod frame epilog" assert inside [vm\i386\gmsx86.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/i386/gmsx86.cpp). ### FCall example – managed @@ -287,7 +287,7 @@ The CLR provides a binder for this purpose. After you define your managed and na In [mscorlib.h][mscorlib.h], use macros ending in "_U" to describe a type, the name of fields in managed code, and the name of fields in a corresponding native data structure. Additionally, you can specify a list of methods, and reference them by name when you attempt to call them later. -[mscorlib.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/mscorlib.h +[mscorlib.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/mscorlib.h ``` C++ DEFINE_CLASS_U(SAFE_HANDLE, Interop, SafeHandle, SafeHandle) @@ -349,4 +349,4 @@ For QCalls, look in [qcall.h][qcall] for associated infrastructure, and [ecallli More general infrastructure and some native type definitions can be found in [object.h][object.h]. The binder uses `mscorlib.h` to associate managed and native classes. -[object.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/object.h +[object.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/object.h diff --git a/docs/design/coreclr/botr/dac-notes.md b/docs/design/coreclr/botr/dac-notes.md index 43b1714b1d8c9..497da0616e864 100644 --- a/docs/design/coreclr/botr/dac-notes.md +++ b/docs/design/coreclr/botr/dac-notes.md @@ -54,7 +54,7 @@ Marshaling Specifics DAC marshaling works through a collection of typedefs, macros and templated types that generally have one meaning in DAC builds and a different meaning in non-DAC builds. You can find these declarations in [src\inc\daccess.h][daccess.h]. You will also find a long comment at the beginning of this file that explains the details necessary to write code that uses the DAC. -[daccess.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/inc/daccess.h +[daccess.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/inc/daccess.h An example may be helpful in understanding how marshaling works. The common debugging scenario is represented in the following block diagram: @@ -139,8 +139,8 @@ Even better, in a DAC build, the DAC will automatically marshal variables, data The `GPTR` and `VPTR` macros are common enough to warrant special mention here. Both the way we use these and their external behavior is quite similar to `DPTR`s. Again, marshaling is automatic and transparent. The `VPTR` macro declares a marshaled pointer type for a class with virtual functions. This special macro is necessary because the virtual function table is essentially an implicit extra field. The DAC has to marshal this separately, since the function addresses are all target addresses that the DAC must convert to host addresses. Treating these classes in this way means that the DAC automatically instantiates the correct implementation class, making casts between base and derived types unnecessary. When you declare a `VPTR` type, you must also list it in [vptr_list.h][vptr_list.h]. `__GlobalPtr` types provide base functionality to marshal both global variables and static data members through the `GPTR`, `GVAL`, `SPTR` and `SVAL` macros. The implementation of global variables is almost identical to that of static fields (both use the `__GlobalPtr` class) and require the addition of an entry in [dacvars.h][dacvars.h]. The comments in [daccess.h][daccess.h] and [dacvars.h][dacvars.h] provide more details about declaring these types. -[dacvars.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/inc/dacvars.h -[vptr_list.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/inc/vptr_list.h +[dacvars.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/inc/dacvars.h +[vptr_list.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/inc/vptr_list.h Global and static values and pointers are interesting because they form the entry points to the target address space (all other uses of the DAC require you to have a target address already). Many of the globals in the runtime are already DACized. It occasionally becomes necessary to make a previously un-DACized (or a newly introduced) global available to the DAC. By using the appropriate macros and [dacvars.h][dacvars.h] entry, you enable a post-build step (DacTableGen.exe run by the build in ndp\clr\src\dacupdatedll) to save the address of the global (from clr.pdb) into a table that is embedded into mscordacwks.dll. The DAC uses this table at run-time to determine where to look in the target address space when the code accesses a global. @@ -205,7 +205,7 @@ When do you need to DACize? Whenever you add a new feature, you will need to consider its debuggability needs and DACize the code to support your feature. You must also ensure that any other changes, such as bug fixes or code clean-up, conform to the DAC rules when necessary. Otherwise, the changes will break the debugger or SOS. If you are simply modifying existing code (as opposed to implementing a new feature), you will generally be able to determine that you need to worry about the DAC when a function you modify includes a `SUPPORTS_DAC` contract. This contract has a few variants such as `SUPPORTS_DAC_WRAPPER` and `LEAF_DAC_CONTRACT`. You can find comments explaining the differences in [contract.h][contract.h]. If you see a number of DAC-specific types in the function, you should assume the code will run in DAC builds. -[contract.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/inc/contract.h +[contract.h]: https://github.com/dotnet/runtime/blob/master/src/coreclr/inc/contract.h DACizing ensures that code in the engine will work correctly with the DAC. It is important to use the DAC correctly to marshal values from the target to the host. Target addresses used incorrectly from the host (or vice versa) may reference unmapped addresses. If addresses are mapped, the values will be completely unrelated to the values expected. As a result, DACizing mostly involves ensuring that we use `PTR` types for all values that the DAC needs to marshal. Another major task is to ensure that we do not allow invasive code to execute in DAC builds. In practice, this means that we must sometimes refactor code or add `DACCESS_COMPILE` preprocessor directives. We also want to be sure that we add the appropriate `SUPPORTS_DAC` contract. The use of this contract signals to developers that the function works with the DAC. This is important for two reasons: diff --git a/docs/design/coreclr/botr/exceptions.md b/docs/design/coreclr/botr/exceptions.md index 9aa3556c8f686..370663852cfc1 100644 --- a/docs/design/coreclr/botr/exceptions.md +++ b/docs/design/coreclr/botr/exceptions.md @@ -162,7 +162,7 @@ Throwing an Exception in the CLR is generally a matter of calling COMPlusThrow ( < args > ) -There are a number of overloads, but the idea is to pass the "kind" of the exception to COMPlusThrow. The list of "kinds" is generated by a set of macros operating on [rexcep.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/rexcep.h), and the various "kinds" are kAmbiguousMatchException, kApplicationException, and so forth. Additional arguments (for the overloads) specify resources and substitution text. Generally, the right "kind" is selected by looking for other code that reports a similar error. +There are a number of overloads, but the idea is to pass the "kind" of the exception to COMPlusThrow. The list of "kinds" is generated by a set of macros operating on [rexcep.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/rexcep.h), and the various "kinds" are kAmbiguousMatchException, kApplicationException, and so forth. Additional arguments (for the overloads) specify resources and substitution text. Generally, the right "kind" is selected by looking for other code that reports a similar error. There are some pre-defined convenience variations: diff --git a/docs/design/coreclr/botr/garbage-collection.md b/docs/design/coreclr/botr/garbage-collection.md index f912b2ae4d286..88325a99413cb 100644 --- a/docs/design/coreclr/botr/garbage-collection.md +++ b/docs/design/coreclr/botr/garbage-collection.md @@ -327,7 +327,7 @@ Given WKS GC with concurrent GC on (default case), the code flow for a backgroun Resources ========= -- [.NET CLR GC Implementation](https://raw.githubusercontent.com/dotnet/runtime/master/src/coreclr/src/gc/gc.cpp) +- [.NET CLR GC Implementation](https://raw.githubusercontent.com/dotnet/runtime/master/src/coreclr/gc/gc.cpp) - [The Garbage Collection Handbook: The Art of Automatic Memory Management](http://www.amazon.com/Garbage-Collection-Handbook-Management-Algorithms/dp/1420082795) - [Garbage collection (Wikipedia)](http://en.wikipedia.org/wiki/Garbage_collection_(computer_science)) - [Pro .NET Memory Management](https://prodotnetmemory.com/) diff --git a/docs/design/coreclr/botr/guide-for-porting.md b/docs/design/coreclr/botr/guide-for-porting.md index 62c294881bd10..fec15080c5a81 100644 --- a/docs/design/coreclr/botr/guide-for-porting.md +++ b/docs/design/coreclr/botr/guide-for-porting.md @@ -228,7 +228,7 @@ Notable components very machine specific paths. 4. The unwinder. The unwinder is used to unwind stacks on non-Windows platforms. - It is located in https://github.com/dotnet/runtime/tree/master/src/coreclr/src/unwinder. + It is located in https://github.com/dotnet/runtime/tree/master/src/coreclr/unwinder. 4. System.Private.CoreLib/System.Reflection. There is little to no architecture specific work here that is necessary for bringup. Nice-to-have work involves @@ -267,12 +267,12 @@ there are also architecture specific components. 4. jitsupport.cpp - Depending on how the features of the CPU are exposed, there may need to be code to call OS apis to gather information about CPU features. -5. pal arch directory - https://github.com/dotnet/runtime/tree/master/src/coreclr/src/pal/src/arch +5. pal arch directory - https://github.com/dotnet/runtime/tree/master/src/coreclr/pal/src/arch This directory primarily contains assembly stubs for architecture specific handling of signals and exceptions. In addition to the PAL source code, there is a comprehensive set of PAL tests located -in https://github.com/dotnet/runtime/tree/master/src/coreclr/src/pal/tests. +in https://github.com/dotnet/runtime/tree/master/src/coreclr/pal/tests. CLR VM ------ diff --git a/docs/design/coreclr/botr/method-descriptor.md b/docs/design/coreclr/botr/method-descriptor.md index 453e850f1d7ed..e163a8ca31ff4 100644 --- a/docs/design/coreclr/botr/method-descriptor.md +++ b/docs/design/coreclr/botr/method-descriptor.md @@ -91,7 +91,7 @@ The slot is either in MethodTable or in MethodDesc itself. The location of the s The slot is stored in MethodTable for methods that require efficient lookup via slot index, e.g. virtual methods or methods on generic types. The MethodDesc contains the slot index to allow fast lookup of the entry point in this case. -Otherwise, the slot is part of the MethodDesc itself. This arrangement improves data locality and saves working set. Also, it is not even always possible to preallocate a slot in a MethodTable upfront for dynamically created MethodDescs, such as for methods added by Edit & Continue, instantiations of generic methods or [dynamic methods](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs). +Otherwise, the slot is part of the MethodDesc itself. This arrangement improves data locality and saves working set. Also, it is not even always possible to preallocate a slot in a MethodTable upfront for dynamically created MethodDescs, such as for methods added by Edit & Continue, instantiations of generic methods or [dynamic methods](https://github.com/dotnet/runtime/blob/master/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs). MethodDesc Chunks ----------------- diff --git a/docs/design/coreclr/botr/profilability.md b/docs/design/coreclr/botr/profilability.md index 81aa394ed911f..ed32066516c62 100644 --- a/docs/design/coreclr/botr/profilability.md +++ b/docs/design/coreclr/botr/profilability.md @@ -225,14 +225,14 @@ It's pretty straightforward where to go, to add or modify methods, and code insp corprof.idl ----------- -All profiling API interfaces and types are defined in [src\inc\corprof.idl](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/inc/corprof.idl). Go here first to define your types and methods. +All profiling API interfaces and types are defined in [src\inc\corprof.idl](https://github.com/dotnet/runtime/blob/master/src/coreclr/inc/corprof.idl). Go here first to define your types and methods. EEToProfInterfaceImpl.\* ----------------------- -Wrapper around the profiler's implementation of ICorProfilerCallback is located at [src\vm\EEToProfInterfaceImpl.\*](https://github.com/dotnet/runtime/tree/master/src/coreclr/src/vm). +Wrapper around the profiler's implementation of ICorProfilerCallback is located at [src\vm\EEToProfInterfaceImpl.\*](https://github.com/dotnet/runtime/tree/master/src/coreclr/vm). ProfToEEInterfaceImpl.\* ----------------------- -Implementation of ICorProfilerInfo is located at [src\vm\ProfToEEInterfaceImpl.\*](https://github.com/dotnet/runtime/tree/master/src/coreclr/src/vm). +Implementation of ICorProfilerInfo is located at [src\vm\ProfToEEInterfaceImpl.\*](https://github.com/dotnet/runtime/tree/master/src/coreclr/vm). diff --git a/docs/design/coreclr/botr/readytorun-format.md b/docs/design/coreclr/botr/readytorun-format.md index ff48f53c16c30..10f2193d49539 100644 --- a/docs/design/coreclr/botr/readytorun-format.md +++ b/docs/design/coreclr/botr/readytorun-format.md @@ -58,7 +58,7 @@ The limitations of the current format are: # Structures The structures and accompanying constants are defined in the [readytorun.h] -(https://github.com/dotnet/runtime/blob/master/src/coreclr/src/inc/readytorun.h) header file. +(https://github.com/dotnet/runtime/blob/master/src/coreclr/inc/readytorun.h) header file. Basically the entire R2R executable image is addressed through the READYTORUN_HEADER singleton pointed to by the well-known export RTR_HEADER in the export section of the native executable envelope. @@ -281,7 +281,7 @@ additional data determined by the flags. ### READYTORUN_IMPORT_SECTIONS::AuxiliaryData For slots resolved lazily via `READYTORUN_HELPER_DelayLoad_MethodCall` helper, auxiliary data are -compressed argument maps that allow precise GC stack scanning while the helper is running. The CoreCLR runtime class [`GCRefMapDecoder`](https://github.com/dotnet/runtime/blob/8c6b1314c95857b9e2f5c222a10f2f089ee02dfe/src/coreclr/src/inc/gcrefmap.h#L157) is used to parse this information. This data would not be required for runtimes that allow conservative stack scanning. +compressed argument maps that allow precise GC stack scanning while the helper is running. The CoreCLR runtime class [`GCRefMapDecoder`](https://github.com/dotnet/runtime/blob/69e114c1abf91241a0eeecf1ecceab4711b8aa62/src/coreclr/inc/gcrefmap.h#L158) is used to parse this information. This data would not be required for runtimes that allow conservative stack scanning. The auxiliary data table contains the exact same number of GC ref map records as there are method entries in the import section. To accelerate GC ref map lookup, the auxiliary data section starts with a lookup table holding the offset of every 1024-th method in the runtime function table within the linearized GC ref map. @@ -294,7 +294,7 @@ The auxiliary data table contains the exact same number of GC ref map records as | 4 * (MethodCount / 1024 + 1) | ... | Serialized GC ref map info The GCRef map is used to encode GC type of arguments for callsites. Logically, it is a sequence `` where `pos` is -position of the reference in the stack frame and `token` is type of GC reference (one of [`GCREFMAP_XXX`](https://github.com/dotnet/runtime/blob/8c6b1314c95857b9e2f5c222a10f2f089ee02dfe/src/coreclr/src/inc/corcompile.h#L627) values): +position of the reference in the stack frame and `token` is type of GC reference (one of [`GCREFMAP_XXX`](https://github.com/dotnet/runtime/blob/69e114c1abf91241a0eeecf1ecceab4711b8aa62/src/coreclr/inc/corcompile.h#L633) values): | CORCOMPILE_GCREFMAP_TOKENS | Value | Stack frame entry interpretation |:---------------------------|------:|:-------------------------------- @@ -440,7 +440,7 @@ This section contains a native hashtable of all defined & export types within th | 1 | exported type The version-resilient hashing algorithm used for hashing the type names is implemented in -[vm/versionresilienthashcode.cpp](https://github.com/dotnet/runtime/blob/8c6b1314c95857b9e2f5c222a10f2f089ee02dfe/src/coreclr/src/vm/versionresilienthashcode.cpp#L75). +[vm/versionresilienthashcode.cpp](https://github.com/dotnet/runtime/blob/69e114c1abf91241a0eeecf1ecceab4711b8aa62/src/coreclr/vm/versionresilienthashcode.cpp#L74). **Note:** This is a per-assembly section. In single-file R2R files, it is pointed to directly by the main R2R header; in composite R2R files, each component module has its own available type section pointed to @@ -451,7 +451,7 @@ by the `READYTORUN_SECTION_ASSEMBLIES_ENTRY` core header structure. This section contains a native hashtable of all generic method instantiations compiled into the R2R executable. The key is the method instance signature; the appropriate version-resilient hash code calculation is implemented in -[vm/versionresilienthashcode.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/versionresilienthashcode.cpp#L127); +[vm/versionresilienthashcode.cpp](https://github.com/dotnet/runtime/blob/69e114c1abf91241a0eeecf1ecceab4711b8aa62/src/coreclr/vm/versionresilienthashcode.cpp#L126); the value, represented by the `EntryPointWithBlobVertex` class, stores the method index in the runtime function table, the fixups blob and a blob encoding the method signature. diff --git a/docs/design/coreclr/botr/shared-generics.md b/docs/design/coreclr/botr/shared-generics.md index 367d2caa6d8b3..0689b0d891d62 100644 --- a/docs/design/coreclr/botr/shared-generics.md +++ b/docs/design/coreclr/botr/shared-generics.md @@ -111,7 +111,7 @@ When loading information from a slot that is still NULL, the generic code will c - `JIT_GenericHandleClass`: Used to lookup a value in a generic type dictionary. This helper is used by all instance methods on generic types. - `JIT_GenericHandleMethod`: Used to lookup a value in a generic method dictionary. This helper used by all generic methods, or non-generic static methods on generic types. -When generating shared generic code, the JIT knows which slots to use for the various lookups, and the kind of information contained in each slot using the help of the `DictionaryLayout` implementation ([genericdict.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/genericdict.cpp)). +When generating shared generic code, the JIT knows which slots to use for the various lookups, and the kind of information contained in each slot using the help of the `DictionaryLayout` implementation ([genericdict.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/genericdict.cpp)). ### Dictionary Layouts @@ -165,7 +165,7 @@ The feature is simple in concept: change dictionary layouts from a linked list o The current implementation expands the dictionary layout and the actual dictionaries separately to keep things simple: - - Dictionary layouts are expanded when we are out of empty slots. See implementations of `DictionaryLayout::FindToken()` in [genericdict.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/genericdict.cpp). + - Dictionary layouts are expanded when we are out of empty slots. See implementations of `DictionaryLayout::FindToken()` in [genericdict.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/genericdict.cpp). - Instantiated type and method dictionaries are expanded lazily on demand whenever any code is attempting to read the value of a slot beyond the size of the dictionary of that type or method. This is done through a call to the helper functions mentioned previously (`JIT_GenericHandleClass` and `JIT_GenericHandleMethod`). The dictionary access codegen is equivalent to the following (both in JITted code and ReadyToRun code): @@ -184,7 +184,7 @@ else This size check is **not** done unconditionally every time we need to read a value from the dictionary, otherwise this would cause a noticeable performance regression. When a dictionary layout is first allocated, we keep track of the initial number of slots that were allocated, and **only** perform the size checks if we are attempting to read the value of a slot beyond those initial number of slots. -Dictionaries on types and methods are expanded by the `Dictionary::GetTypeDictionaryWithSizeCheck()` and `Dictionary::GetMethodDictionaryWithSizeCheck()` helper functions in [genericdict.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/genericdict.cpp). +Dictionaries on types and methods are expanded by the `Dictionary::GetTypeDictionaryWithSizeCheck()` and `Dictionary::GetMethodDictionaryWithSizeCheck()` helper functions in [genericdict.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/genericdict.cpp). One thing to note regarding types is that they can inherit dictionary pointers from their base types. This means that if we resize the generic dictionary on any given generic type, we will need to propagate the new dictionary pointer to all of its derived types. This propagation is also done in a lazy way whenever the code calls into the `JIT_GenericHandleWorker` helper function with a derived type MethodTable pointer. In that helper, if we find that the dictionary pointer on the base type has been updated, we copy it to the derived type. diff --git a/docs/design/coreclr/botr/stackwalking.md b/docs/design/coreclr/botr/stackwalking.md index 75b4d4b8120c4..34870a049403d 100644 --- a/docs/design/coreclr/botr/stackwalking.md +++ b/docs/design/coreclr/botr/stackwalking.md @@ -62,7 +62,7 @@ Essentially the stack walker, having decoded the current frame, always has two p When managed code calls into the unmanaged runtime one of several forms of transition Frame is often pushed by the unmanaged target method. This is needed both to record the register state of the calling managed method (so that the stack walker can resume virtual unwinding of managed frames once it has finished enumerating the unmanaged Frames) and in many cases because managed object references are passed as arguments to the unmanaged method and must be reported to the GC in the event of a garbage collection. -A full description of the available Frame types and their uses is beyond the scope of the document. Further details can be found in the [frames.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/frames.h) header file. +A full description of the available Frame types and their uses is beyond the scope of the document. Further details can be found in the [frames.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/frames.h) header file. # Stackwalker Interface @@ -72,11 +72,11 @@ The caller of this method provides three main inputs: 1. Some context indicating the starting point of the walk. This is either an initial register set (for instance if you've suspended the target thread and can call GetThreadContext() on it) or an initial Frame (in cases where you know the code in question is in runtime unmanaged code). Although most stack walks are made from the top of the stack it's possible to start lower down if you can determine the correct starting context. 2. A function pointer and associated context. The function provided is called by the stack walker for each interesting frame (in order from the newest to the oldest). The context value provided is passed to each invocation of the callback so that it can record or build up state during the walk. -3. Flags indicating what sort of frames should trigger a callback. This allows the caller to specify that only pure managed method frames should be reported for instance. For a full list see [threads.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/threads.h) (just above the declaration of StackWalkFramesEx()). +3. Flags indicating what sort of frames should trigger a callback. This allows the caller to specify that only pure managed method frames should be reported for instance. For a full list see [threads.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/threads.h) (just above the declaration of StackWalkFramesEx()). StackWalkFramesEx() returns an enum value that indicates whether the walk terminated normally (got to the stack base and ran out of methods to report), was aborted by one of the callbacks (the callbacks return an enum of the same type to the stack walk to control this) or suffered some other miscellaneous error. -Aside from the context value passed to StackWalkFramesEx(), stack callback functions are passed one other piece of context: the CrawlFrame. This class is defined in [stackwalk.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/stackwalk.h) and contains all sorts of context gathered as the stack walk proceeds. +Aside from the context value passed to StackWalkFramesEx(), stack callback functions are passed one other piece of context: the CrawlFrame. This class is defined in [stackwalk.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/stackwalk.h) and contains all sorts of context gathered as the stack walk proceeds. For instance the CrawlFrame indicates the MethodDesc* for managed frames and the Frame* for unmanaged Frames. It also provides the current register set inferred by virtually unwinding frames up to that point. diff --git a/docs/design/coreclr/botr/threading.md b/docs/design/coreclr/botr/threading.md index d6150209e382d..cc5d0b16a78e3 100644 --- a/docs/design/coreclr/botr/threading.md +++ b/docs/design/coreclr/botr/threading.md @@ -27,7 +27,7 @@ Every managed thread has an associated Thread object, defined in [threads.h][thr All Thread objects are stored in the ThreadStore (also defined in [threads.h][threads.h]), which is a simple list of all known Thread objects. To enumerate all managed threads, one must first acquire the ThreadStoreLock, then use ThreadStore::GetAllThreadList to enumerate all Thread objects. This list may include managed threads which are not currently assigned to native threads (for example, they may not yet be started, or the native thread may already have exited). -[threads.h]: ../../../../src/coreclr/src/vm/threads.h +[threads.h]: ../../../../src/coreclr/vm/threads.h Each managed thread that is currently assigned to a native thread is reachable via a native thread-local storage (TLS) slot on that native thread. This allows code that is executing on that native thread to get the corresponding Thread object, via GetThread(). @@ -135,8 +135,8 @@ Sync blocks are stored in the Sync Block Table, and are addressed by sync block The details of object headers and sync blocks are defined in [syncblk.h][syncblk.h]/[.cpp][syncblk.cpp]. -[syncblk.h]: ../../../../src/coreclr/src/vm/syncblk.h -[syncblk.cpp]: ../../../../src/coreclr/src/vm/syncblk.cpp +[syncblk.h]: ../../../../src/coreclr/vm/syncblk.h +[syncblk.cpp]: ../../../../src/coreclr/vm/syncblk.cpp If there is room on the object header, Monitor stores the managed thread ID of the thread that currently holds the lock on the object (or zero (0) if no thread holds the lock). Acquiring the lock in this case is a simple matter of spin-waiting until the object header's thread ID is zero, and then atomically setting it to the current thread's managed thread ID. diff --git a/docs/design/coreclr/botr/type-loader.md b/docs/design/coreclr/botr/type-loader.md index d60676e3bcb8e..b193c3f15a2a9 100644 --- a/docs/design/coreclr/botr/type-loader.md +++ b/docs/design/coreclr/botr/type-loader.md @@ -166,7 +166,7 @@ These are valid types and apparently `A` depends on `B` and `B` depends on `A`. The loader initially creates the structure(s) representing the type and initializes them with data that can be obtained without loading other types. When this "no-dependencies" work is done, the structure(s) can be referred from other places, usually by sticking pointers to them into another structures. After that the loader progresses in incremental steps and fills the structure(s) with more and more information until it finally arrives at a fully loaded type. In the above example, the base types of `A` and `B` will be approximated by something that does not include the other type, and substituted by the real thing later. -The exact half-loaded state is described by the so-called load level, starting with CLASS\_LOAD\_BEGIN, ending with CLASS\_LOADED, and having a couple of intermediate levels in between. There are rich and useful comments about individual load levels in the [classloadlevel.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/classloadlevel.h) source file. Notice that although types can be saved in NGEN images, the representing structures cannot be simply mapped or blitted into memory and used without additional work called "restoring". The fact that a type came from an NGEN image and needs to be restored is also captured by its load level. +The exact half-loaded state is described by the so-called load level, starting with CLASS\_LOAD\_BEGIN, ending with CLASS\_LOADED, and having a couple of intermediate levels in between. There are rich and useful comments about individual load levels in the [classloadlevel.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/classloadlevel.h) source file. Notice that although types can be saved in NGEN images, the representing structures cannot be simply mapped or blitted into memory and used without additional work called "restoring". The fact that a type came from an NGEN image and needs to be restored is also captured by its load level. See [Design and Implementation of Generics for the .NET Common Language diff --git a/docs/design/coreclr/botr/virtual-stub-dispatch.md b/docs/design/coreclr/botr/virtual-stub-dispatch.md index bf67c5895bcb9..43f4f10a0801d 100644 --- a/docs/design/coreclr/botr/virtual-stub-dispatch.md +++ b/docs/design/coreclr/botr/virtual-stub-dispatch.md @@ -183,6 +183,6 @@ As a result of disabling VSD for virtual instance method calls, every type has a Physical Architecture ===================== -For dispatch token and map implementation details, please see [clr/src/vm/contractImpl.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/contractimpl.h) and [clr/src/vm/contractImpl.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/contractimpl.cpp). +For dispatch token and map implementation details, please see [clr/src/vm/contractImpl.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/contractimpl.h) and [clr/src/vm/contractImpl.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/contractimpl.cpp). -For virtual stub dispatch implementation details, please see [clr/src/vm/virtualcallstub.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/virtualcallstub.h) and [clr/src/vm/virtualcallstub.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/virtualcallstub.cpp). +For virtual stub dispatch implementation details, please see [clr/src/vm/virtualcallstub.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/virtualcallstub.h) and [clr/src/vm/virtualcallstub.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/virtualcallstub.cpp). diff --git a/docs/design/coreclr/botr/xplat-minidump-generation.md b/docs/design/coreclr/botr/xplat-minidump-generation.md index 46fd6bdf37276..2e871f5f4842f 100644 --- a/docs/design/coreclr/botr/xplat-minidump-generation.md +++ b/docs/design/coreclr/botr/xplat-minidump-generation.md @@ -12,7 +12,7 @@ Our solution at this time is to intercept any unhandled exception in the PAL lay We looked at the existing technologies like Breakpad and its derivatives (e.g.: an internal MS version called _msbreakpad_ from the SQL team....). Breakpad generates Windows minidumps but they are not compatible with existing tools like Windbg, etc. Msbreakpad even more so. There is a minidump to Linux core conversion utility but it seems like a wasted extra step. _Breakpad_ does allow the minidump to be generated in-process inside the signal handlers. It restricts the APIs to what was allowed in a "async" signal handler (like SIGSEGV) and has a small subset of the C++ runtime that was also similarly constrained. We also need to add the set of memory regions for the "managed" state which requires loading and using the _DAC_'s (*) enumerate memory interfaces. Loading modules is not allowed in an async signal handler but forking/execve is allowed so launching an utility that loads the _DAC_, enumerates the list of memory regions and writes the dump is the only reasonable option. It would also allow uploading the dump to a server too. -\* The _DAC_ is a special build of parts of the coreclr runtime that allows inspection of the runtime's managed state (stacks, variables, GC state heaps) out of context. One of the many interfaces it provides is [ICLRDataEnumMemoryRegions](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/debug/daccess/dacimpl.h) which enumerates all the managed state a minidump would require to enable a fruitful debugging experience. +\* The _DAC_ is a special build of parts of the coreclr runtime that allows inspection of the runtime's managed state (stacks, variables, GC state heaps) out of context. One of the many interfaces it provides is [ICLRDataEnumMemoryRegions](https://github.com/dotnet/runtime/blob/master/src/coreclr/debug/daccess/dacimpl.h) which enumerates all the managed state a minidump would require to enable a fruitful debugging experience. _Breakpad_ could have still been used out of context in the generation utility but there seemed no value to their Windows-like minidump format when it would have to be converted to the native Linux core format away because in most scenarios using the platform tools like _lldb_ is necessary. It also adds a coreclr build dependency on Google's _Breakpad_ or SQL's _msbreakpad_ source repo. The only advantage is that the breakpad minidumps may be a little smaller because minidumps memory regions are byte granule and Linux core memory regions need to be page granule. @@ -20,7 +20,7 @@ _Breakpad_ could have still been used out of context in the generation utility b ### Linux ### -Core dump generation is triggered anytime coreclr is going to abort (via [PROCAbort()](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/pal/src/include/pal/process.h)) the process because of an unhandled managed exception or an async signal like SIGSEGV, SIGILL, SIGFPE, etc. The _createdump_ utility is located in the same directory as libcoreclr.so and is launched with fork/execve. The child _createdump_ process is given permission to ptrace and access to the various special /proc files of the crashing process which waits until _createdump_ finishes. +Core dump generation is triggered anytime coreclr is going to abort (via [PROCAbort()](https://github.com/dotnet/runtime/blob/master/src/coreclr/pal/src/include/pal/process.h)) the process because of an unhandled managed exception or an async signal like SIGSEGV, SIGILL, SIGFPE, etc. The _createdump_ utility is located in the same directory as libcoreclr.so and is launched with fork/execve. The child _createdump_ process is given permission to ptrace and access to the various special /proc files of the crashing process which waits until _createdump_ finishes. The _createdump_ utility starts by using ptrace to enumerate and suspend all the threads in the target process. The process and thread info (status, registers, etc.) is gathered. The auxv entries and _DSO_ info is enumerated. _DSO_ is the in memory data structures that described the shared modules loaded by the target. This memory is needed in the dump by gdb and lldb to enumerate the shared modules loaded and access their symbols. The module memory mappings are gathered from /proc/$pid/maps. None of the program or shared modules memory regions are explicitly added to dump's memory regions. The _DAC_ is loaded and the enumerate memory region interfaces are used to build the memory regions list just like on Windows. The threads stacks and one page of code around the IP are added. The byte sized regions are rounded up to pages and then combined into contiguous regions. diff --git a/docs/design/coreclr/jit/ryujit-overview.md b/docs/design/coreclr/jit/ryujit-overview.md index 73cc095e065bd..110fa5cbe18a8 100644 --- a/docs/design/coreclr/jit/ryujit-overview.md +++ b/docs/design/coreclr/jit/ryujit-overview.md @@ -25,9 +25,9 @@ Depending upon the configuration, the EE and JIT may reside in the same or diffe implements the JIT side of the JIT/EE interfaces: * `ICorJitCompiler` – this is the interface that the JIT compiler implements. This interface is defined in -[src/inc/corjit.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/inc/corjit.h) +[src/inc/corjit.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/inc/corjit.h) and its implementation is in -[src/jit/ee_il_dll.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/jit/ee_il_dll.cpp). +[src/jit/ee_il_dll.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/jit/ee_il_dll.cpp). The following are the key methods on this interface: * `compileMethod` is the main entry point for the JIT. The EE passes it a `ICorJitInfo` object, and the "info" containing the IL, the method header, and various other useful tidbits. @@ -38,9 +38,9 @@ The following are the key methods on this interface: * `ICorJitInfo` – this is the interface that the EE implements. It has many methods defined on it that allow the JIT to look up metadata tokens, traverse type signatures, compute field and vtable offsets, find method entry points, construct string literals, etc. This bulk of this interface is inherited from `ICorDynamicInfo` which is defined in -[src/inc/corinfo.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/inc/corinfo.h). The implementation +[src/inc/corinfo.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/inc/corinfo.h). The implementation is defined in -[src/vm/jitinterface.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/jitinterface.cpp). +[src/vm/jitinterface.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/jitinterface.cpp). # Internal Representation (IR) @@ -698,11 +698,11 @@ at points where accurate counts are valuable. Currently this happens before and ## Instruction encoding Instruction encoding is performed by the emitter -([emit.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/jit/emit.h)), using the +([emit.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/jit/emit.h)), using the `insGroup`/`instrDesc` representation. The code generator calls methods on the emitter to construct `instrDescs`. The encodings information is captured in the following: -* The "instruction" enumeration itemizes the different instructions available on each target, and is used as an index into the various encoding tables (e.g. `instInfo[]`, `emitInsModeFmtTab[]`) generated from the `instrs{tgt}.h` (e.g., [instrsxarch.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/jit/instrsxarch.h)). +* The "instruction" enumeration itemizes the different instructions available on each target, and is used as an index into the various encoding tables (e.g. `instInfo[]`, `emitInsModeFmtTab[]`) generated from the `instrs{tgt}.h` (e.g., [instrsxarch.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/jit/instrsxarch.h)). * The skeleton encodings are contained in the tables, and then there are methods on the emitter that handle the special encoding constraints for the various instructions, addressing modes, register types, etc. ## GC Info @@ -713,10 +713,10 @@ Reporting of live GC references is done in two ways: * For lclVars with tracked lifetimes, or for expression involving GC references, we report the range over which the reference is live. This is done by the emitter, which adds this information to the instruction group, and which terminates instruction groups when the GC info changes. The tracking of GC reference lifetimes is done via the `GCInfo` class in the JIT. It is declared in -[src/jit/jitgcinfo.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/jit/jitgcinfo.h) (to +[src/jit/jitgcinfo.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/jit/jitgcinfo.h) (to differentiate it from -[src/inc/gcinfo.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/inc/gcinfo.h)), and implemented in -[src/jit/gcinfo.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/jit/gcinfo.cpp). +[src/inc/gcinfo.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/inc/gcinfo.h)), and implemented in +[src/jit/gcinfo.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/jit/gcinfo.cpp). In a JitDump, the generated GC info can be seen following the "In gcInfoBlockHdrSave()" line. @@ -729,15 +729,15 @@ Debug info consists primarily of two types of information in the JIT: * the `gtLclILoffs` on lclVar references (`GenTreeLclVar`) * The IL offsets are captured during CodeGen by calling `CodeGen::genIPmappingAdd()`, and then written to debug tables by `CodeGen::genIPmappingGen()`. * Mapping of user locals to location (register or stack). This is accomplished via: - * Struct `siVarLoc` (in [compiler.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/jit/compiler.h)) captures the location - * `VarScopeDsc` ([compiler.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/jit/compiler.h)) captures the live range of a local variable in a given location. + * Struct `siVarLoc` (in [compiler.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/jit/compiler.h)) captures the location + * `VarScopeDsc` ([compiler.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/jit/compiler.h)) captures the live range of a local variable in a given location. ## Exception handling Exception handling information is captured in an `EHblkDsc` for each exception handling region. Each region includes the first and last blocks of the try and handler regions, exception type, enclosing region, among other things. Look -at [jiteh.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/jit/jiteh.h) and -[jiteh.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/jit/jiteh.cpp), especially, for details. +at [jiteh.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/jit/jiteh.h) and +[jiteh.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/jit/jiteh.cpp), especially, for details. Look at `Compiler::fgVerifyHandlerTab()` to see how the exception table constraints are verified. # Reading a JitDump @@ -838,7 +838,7 @@ STMT00000 (IL 0x010... ???) Tree nodes are identified by their `gtTreeID`. This field only exists in DEBUG builds, but is quite useful for debugging, since all tree nodes are created from the routine `gtNewNode` (in -[src/jit/gentree.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/jit/gentree.cpp)). If you find a +[src/jit/gentree.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/jit/gentree.cpp)). If you find a bad tree and wish to understand how it got corrupted, you can place a conditional breakpoint at the end of `gtNewNode` to see when it is created, and then a data breakpoint on the field that you believe is corrupted. diff --git a/docs/design/coreclr/jit/ryujit-tutorial.md b/docs/design/coreclr/jit/ryujit-tutorial.md index 69e90580fbfa4..d402f6b948ac0 100644 --- a/docs/design/coreclr/jit/ryujit-tutorial.md +++ b/docs/design/coreclr/jit/ryujit-tutorial.md @@ -6,7 +6,7 @@ - An implementation of the Common Language Infrastructure [ECMA 335] - Supports multiple languages, including C#, F# and VB - RyuJIT is the "next generation" just in time compiler for .NET -- Sources are at https://github.com/dotnet/runtime/tree/master/src/coreclr/src/jit +- Sources are at https://github.com/dotnet/runtime/tree/master/src/coreclr/jit #### Notes For context, the .NET runtime has been around since about the turn of the millennium. It is a virtual machine that supports the execution of a number of languages, primarily C#, Visual Basic, and F#. diff --git a/docs/design/coreclr/jit/viewing-jit-dumps.md b/docs/design/coreclr/jit/viewing-jit-dumps.md index 8e282e0166bfa..41cc479d41157 100644 --- a/docs/design/coreclr/jit/viewing-jit-dumps.md +++ b/docs/design/coreclr/jit/viewing-jit-dumps.md @@ -98,7 +98,7 @@ The first thing to do is setup the .NET Core app we want to dump. Here are the s ## Setting configuration variables -The behavior of the JIT can be controlled via a number of configuration variables. These are declared in [inc/clrconfigvalues.h](/src/coreclr/src/inc/clrconfigvalues.h) and [jit/jitconfigvalues.h](/src/coreclr/src/jit/jitconfigvalues.h). When used as an environment variable, the string name generally has `COMPlus_` prepended. When used as a registry value name, the configuration name is used directly. +The behavior of the JIT can be controlled via a number of configuration variables. These are declared in [inc/clrconfigvalues.h](/src/coreclr/inc/clrconfigvalues.h) and [jit/jitconfigvalues.h](/src/coreclr/jit/jitconfigvalues.h). When used as an environment variable, the string name generally has `COMPlus_` prepended. When used as a registry value name, the configuration name is used directly. These can be set in one of three ways: diff --git a/docs/design/features/DynamicPgo.md b/docs/design/features/DynamicPgo.md index b29f165ddd5e1..d74307aa9a19f 100644 --- a/docs/design/features/DynamicPgo.md +++ b/docs/design/features/DynamicPgo.md @@ -144,7 +144,7 @@ The implementation for TieredPGO was intentionally kept simple (in part to allow If we want to externalize data for offline analysis or to feed into a subsequent run of the program, we also need to produce some keying data so that the per-method data can be matched up properly later on. -This is surprisingly challenging in .NET as there's not a strong external notion of method identity from one run to the next. We currently rely on token, hash, and il size as keys. Note things like the multi-core JIT must solve similar problems. We will leverage David Wrighton's [dotnet-pgo](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/tools/dotnet-pgo/dotnet-pgo-experiment.md) work here. +This is surprisingly challenging in .NET as there's not a strong external notion of method identity from one run to the next. We currently rely on token, hash, and il size as keys. Note things like the multi-core JIT must solve similar problems. We will leverage David Wrighton's [dotnet-pgo](https://github.com/dotnet/runtime/blob/master/src/coreclr/tools/dotnet-pgo/dotnet-pgo-experiment.md) work here. We may also wish to externalize flow graphs to allow offline analysis or to allow some kind of fuzzy matching of old profile data in a new version of the program (this is done by MSVC for example). diff --git a/docs/design/features/code-versioning.md b/docs/design/features/code-versioning.md index aa75023a83987..800a77b9951bb 100644 --- a/docs/design/features/code-versioning.md +++ b/docs/design/features/code-versioning.md @@ -158,7 +158,7 @@ Implementation ### Code Versions ### -The implementation can be located in [codeversion.h](../../../src/coreclr/src/vm/codeversion.h) and [codeversion.cpp](../../../src/coreclr/src/vm/codeversion.cpp) +The implementation can be located in [codeversion.h](../../../src/coreclr/vm/codeversion.h) and [codeversion.cpp](../../../src/coreclr/vm/codeversion.cpp) Code versions are embodied by the configuration in NativeCodeVersion structure as well as the configuration in the transitively reachable ILCodeVersion. NativeCodeVersion::GetILCodeVersion() allows trivial access from one part of the configuration to the other. These structures have various accesors to retrieve all the code and configuration data such as: @@ -327,7 +327,7 @@ to update the active child at either of those levels (ReJIT uses SetActiveILCode 2. Recalculate the active code version for each entrypoint 3. Update the published code version for each entrypoint to match the active code version -In order to do step 3 the `CodeVersionManager` relies on one of three different mechanisms, a `FixupPrecode`, a `JumpStamp`, or backpatching entry point slots. In [method.hpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/vm/method.hpp) these mechanisms are described in the `MethodDesc::IsVersionableWith*()` functions, and all methods have been classified to use at most one of the techniques, based on the `MethodDesc::IsVersionableWith*()` functions. +In order to do step 3 the `CodeVersionManager` relies on one of three different mechanisms, a `FixupPrecode`, a `JumpStamp`, or backpatching entry point slots. In [method.hpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/vm/method.hpp) these mechanisms are described in the `MethodDesc::IsVersionableWith*()` functions, and all methods have been classified to use at most one of the techniques, based on the `MethodDesc::IsVersionableWith*()` functions. ### Thread-safety ### CodeVersionManager is designed for use in a free-threaded environment, in many cases by requiring the caller to acquire a lock before calling. This lock can be acquired by constructing an instance of `CodeVersionManager::LockHolder`. diff --git a/docs/design/features/hw-intrinsics.md b/docs/design/features/hw-intrinsics.md index 5dba25eac13ce..70aec90f29e1b 100644 --- a/docs/design/features/hw-intrinsics.md +++ b/docs/design/features/hw-intrinsics.md @@ -12,7 +12,7 @@ There is a design document for the Arm64 intrinsics: https://github.com/dotnet/r The reference assemblies for the hardware intrinsics live in corefx, but all of the implementation is in the coreclr repo: -* The C# implementation lives in coreclr/src/System.Private.CoreLib/shared/System/Runtime/Intrinsics. These are little more than skeleton methods that are only compiled if needed for indirect invocation. +* The C# implementation lives in coreclr/System.Private.CoreLib/shared/System/Runtime/Intrinsics. These are little more than skeleton methods that are only compiled if needed for indirect invocation. * Note that they are mirrored to other repositories, including corefx, corert and mono. @@ -53,7 +53,7 @@ The JIT depends on the VM and configuration settings to determine what target pl ### Importation -Hardware intrinsics are built on RyuJIT's `NamedIntrinsic` mechanism to identify method calls that should be recognized as intrinsics (see https://github.com/dotnet/runtime/blob/master/src/coreclr/src/jit/namedintrinsiclist.h). In the incoming IL, intrinsic invocations are just method calls, so the JIT must distinguish intrinsic calls from ordinary call-sites and map them to its IR representation: the `GenTreeHWIntrinsic` node. +Hardware intrinsics are built on RyuJIT's `NamedIntrinsic` mechanism to identify method calls that should be recognized as intrinsics (see https://github.com/dotnet/runtime/blob/master/src/coreclr/jit/namedintrinsiclist.h). In the incoming IL, intrinsic invocations are just method calls, so the JIT must distinguish intrinsic calls from ordinary call-sites and map them to its IR representation: the `GenTreeHWIntrinsic` node. The [Intrinsic] attribute was added to eliminate the need to check each call-site. It [Intrinsic] attribute has a different meaning on each attribute target: @@ -112,7 +112,7 @@ By design, the actual code generation is fairly straightforward, since the hardw The only thing that makes the hardware intrinsics different in the area of instruction encodings is that they depend on many instructions (and their encodings) that are not used in any context other than the implementation of the associated hardware intrinsic. -The encodings are largely specified by `coreclr\src\jit\instrs{arch}.h`, and most of the target-specific code is in the `emit{arch}.*` files. +The encodings are largely specified by `coreclr\jit\instrs{arch}.h`, and most of the target-specific code is in the `emit{arch}.*` files. This is an area of the JIT that could use some redesign and refactoring (https://github.com/dotnet/runtime/issues/12178 and https://github.com/dotnet/runtime/issues/11631 among others). diff --git a/docs/design/features/native-hosting.md b/docs/design/features/native-hosting.md index 92afe1b019ad8..38c61d8eecb7f 100644 --- a/docs/design/features/native-hosting.md +++ b/docs/design/features/native-hosting.md @@ -18,10 +18,10 @@ App (native or .NET Core both) which needs to use some of the other services pro ## Existing support * **C-style ABI in `coreclr`** -`coreclr` exposes ABI to host the .NET runtime and run managed code already using C-style APIs. See this [header file](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/hosts/inc/coreclrhost.h) for the exposed functions. +`coreclr` exposes ABI to host the .NET runtime and run managed code already using C-style APIs. See this [header file](https://github.com/dotnet/runtime/blob/master/src/coreclr/hosts/inc/coreclrhost.h) for the exposed functions. This API requires the native host to locate the runtime and to fully specify all startup parameters for the runtime. There's no inherent interoperability between these APIs and the .NET SDK. * **COM-style ABI in `coreclr`** -`coreclr` exposes COM-style ABI to host the .NET runtime and perform a wide range of operations on it. See this [header file](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/pal/prebuilt/inc/mscoree.h) for more details. +`coreclr` exposes COM-style ABI to host the .NET runtime and perform a wide range of operations on it. See this [header file](https://github.com/dotnet/runtime/blob/master/src/coreclr/pal/prebuilt/inc/mscoree.h) for more details. Similarly to the C-style ABI the COM-style ABI also requires the native host to locate the runtime and to fully specify all startup parameters. There's no inherent interoperability between these APIs and the .NET SDK. The COM-style ABI is deprecated and should not be used going forward. diff --git a/docs/design/features/standalone-gc-eventing.md b/docs/design/features/standalone-gc-eventing.md index 7b1f9dd560d51..899714883b62e 100644 --- a/docs/design/features/standalone-gc-eventing.md +++ b/docs/design/features/standalone-gc-eventing.md @@ -186,7 +186,7 @@ Tools (specifically PerfView) will want to be enlightened about dynamic events f we want to make this experience nice is up to us, but we will most likely want to ship PerfView support for any dynamic event that we end up shipping with the CLR GC. -[1]: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/gc/env/etmdummy.h#L5-L57 +[1]: https://github.com/dotnet/runtime/blob/master/src/coreclr/gc/env/etmdummy.h#L5-L57 ### Concrete Example: Porting a single known event to IGCToCLREventSink diff --git a/docs/design/features/standalone-gc-loading.md b/docs/design/features/standalone-gc-loading.md index 5a4ce9f72805b..2bdc65f830d66 100644 --- a/docs/design/features/standalone-gc-loading.md +++ b/docs/design/features/standalone-gc-loading.md @@ -47,7 +47,7 @@ Worth noting is that the JIT (both RyuJIT and the legacy JIT(s) before it) can b and have realized these same benefits. The existence of an interface and an implementation loadable from shared libraries has enabled RyuJIT in particular to be used as the code generator for both the CoreRT compiler and crossgen, while still being flexible enough to be tested using tools that implement -very non-standard execution engines such as [SuperPMI](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/ToolBox/superpmi/readme.txt). +very non-standard execution engines such as [SuperPMI](https://github.com/dotnet/runtime/blob/master/src/coreclr/ToolBox/superpmi/readme.txt). The below loading protocol is inspired directly by the JIT loader and many aspects of the GC loader are identical to what the JIT does when loading dynamic shared libraries. diff --git a/docs/design/features/tiered-compilation.md b/docs/design/features/tiered-compilation.md index caedd79f94f14..dcade2e53cf45 100644 --- a/docs/design/features/tiered-compilation.md +++ b/docs/design/features/tiered-compilation.md @@ -82,11 +82,11 @@ Despite the anticipated shortcomings, the 2.1 RTM policy is a surprisingly decen Implementation ============== -The majority of the implementation can be located in [tieredcompilation.h](../../../src/coreclr/src/vm/tieredcompilation.h), and [tieredcompilation.cpp](../../../src/coreclr/src/vm/tieredcompilation.cpp) +The majority of the implementation can be located in [tieredcompilation.h](../../../src/coreclr/vm/tieredcompilation.h), and [tieredcompilation.cpp](../../../src/coreclr/vm/tieredcompilation.cpp) -The call counter is implemented in [callcounter.h](../../../src/coreclr/src/vm/callcounter.h), and [callcounter.cpp](../../../src/coreclr/src/vm/callcounter.cpp) +The call counter is implemented in [callcounter.h](../../../src/coreclr/vm/callcounter.h), and [callcounter.cpp](../../../src/coreclr/vm/callcounter.cpp) -The policy that determines which methods are eligible for tiering is implemented in `MethodDesc::IsEligibleForTieredCompilation`, located in [method.hpp](../../../src/coreclr/src/vm/method.hpp) +The policy that determines which methods are eligible for tiering is implemented in `MethodDesc::IsEligibleForTieredCompilation`, located in [method.hpp](../../../src/coreclr/vm/method.hpp) Most of the implementation is relatively straightforward given the design and best described by reading the code, but a few notes: diff --git a/docs/project/glossary.md b/docs/project/glossary.md index b36f0eaf4cdf0..54adf55a3f3bc 100644 --- a/docs/project/glossary.md +++ b/docs/project/glossary.md @@ -24,7 +24,7 @@ terminology. | GC | [Garbage Collector](https://github.com/dotnet/runtime/blob/master/docs/design/coreclr/botr/garbage-collection.md). | | IPC | Inter-Process Communication. | | JIT | [Just-in-Time](https://github.com/dotnet/runtime/blob/master/docs/design/coreclr/jit/ryujit-overview.md) compiler. RyuJIT is the code name for the next generation Just-in-Time(aka "JIT") for the .NET runtime. | -| LCG | Lightweight Code Generation. An early name for [dynamic methods](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs). | +| LCG | Lightweight Code Generation. An early name for [dynamic methods](https://github.com/dotnet/runtime/blob/master/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs). | | MD | MetaData. | | MDA | Managed Debugging Assistant - see [details](https://docs.microsoft.com/en-us/dotnet/framework/debug-trace-profile/diagnosing-errors-with-managed-debugging-assistants) (Note: Not in .NET Core, equivalent diagnostic functionality is made available on a case-by-case basis, e.g. [#9418](https://github.com/dotnet/runtime/issues/9418)) | | NGen | Native Image Generator. | @@ -37,7 +37,7 @@ terminology. | R2R | Ready-to-Run. A flavor of native images - command line switch of [crossgen](../workflow/building/coreclr/crossgen.md). | | Redhawk | Codename for experimental minimal managed code runtime that evolved into [CoreRT](https://github.com/dotnet/corert/). | | SOS | [Son of Strike](https://docs.microsoft.com/en-us/archive/blogs/jasonz/sos-debugging-of-the-clr-part-1). The debugging extension for DbgEng based debuggers. Uses the DAC as an abstraction layer for its operation. | -| SuperPMI | JIT component test framework (super fast JIT testing - it mocks/replays EE in EE-JIT interface) - see [SuperPMI details](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/ToolBox/superpmi/readme.txt). | +| SuperPMI | JIT component test framework (super fast JIT testing - it mocks/replays EE in EE-JIT interface) - see [SuperPMI details](https://github.com/dotnet/runtime/blob/master/src/coreclr/ToolBox/superpmi/readme.txt). | | SVR | The CLR used to be built as two variants, with one called "mscorsvr.dll", to mean the "server" version. In particular, it contained the server GC implementation, which was intended for multi-threaded apps capable of taking advantage of multiple processors. In the .NET Framework 2 release, the two variants were merged into "mscorwks.dll". The WKS version was the default, however the SVR version remained available. | | TPA | Trusted Platform Assemblies used to be a special set of assemblies that comprised the platform assemblies, when it was originally designed. As of today, it is simply the set of assemblies known to constitute the application. | | URT | Universal Runtime. Ancient name for what ended up being .NET, is used in the WinError facility name FACILITY_URT. | diff --git a/docs/project/updating-jitinterface.md b/docs/project/updating-jitinterface.md index d5304124d1ec3..b3750e533c546 100644 --- a/docs/project/updating-jitinterface.md +++ b/docs/project/updating-jitinterface.md @@ -12,7 +12,7 @@ There are several components that consume the JIT outside of the runtime. Since The JitInterface is versioned by a GUID. Any change to JitInterface is required to update the JitInterface GUID located in jiteeversionguid.h (look for `JITEEVersionIdentifier`). Not doing so has consequences that are sometimes hard to debug. -If a method was added or modified in ICorStaticInfo or ICorDynamicInfo, port the change to src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt. Functions must be in the same order in ThunkInput.txt as they exist in corinfo.h and corjit.h. Run gen.bat or gen.sh to regenerate CorInfoBase.cs, jitinterface.h, ICorJitInfo_API_names.h, ICorJitInfo_API_wrapper.hpp, superpmi-shared\icorjitinfoimpl.h, superpmi-shim-counter\icorjitinfo.cpp, and superpmi-shim-simple\icorjitinfo.cpp from ThunkInput.txt. Provide a managed implementation of the method in CorInfoImpl.cs. +If a method was added or modified in ICorStaticInfo or ICorDynamicInfo, port the change to src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt. Functions must be in the same order in ThunkInput.txt as they exist in corinfo.h and corjit.h. Run gen.bat or gen.sh to regenerate CorInfoBase.cs, jitinterface.h, ICorJitInfo_API_names.h, ICorJitInfo_API_wrapper.hpp, superpmi-shared\icorjitinfoimpl.h, superpmi-shim-counter\icorjitinfo.cpp, and superpmi-shim-simple\icorjitinfo.cpp from ThunkInput.txt. Provide a managed implementation of the method in CorInfoImpl.cs. ## Porting JitInterface changes to crossgen2 diff --git a/docs/workflow/building/coreclr/android.md b/docs/workflow/building/coreclr/android.md index 74a2d19ecd49a..4b785ccad31ad 100644 --- a/docs/workflow/building/coreclr/android.md +++ b/docs/workflow/building/coreclr/android.md @@ -42,7 +42,7 @@ You can run the PAL tests on an Android device. To run the tests, you first copy To copy the PAL tests over to an Android phone: ``` -adb push artifacts/obj/coreclr/Linux.arm64.Debug/src/pal/tests/palsuite/ /data/local/tmp/coreclr/src/pal/tests/palsuite +adb push artifacts/obj/coreclr/Linux.arm64.Debug/src/pal/tests/palsuite/ /data/local/tmp/coreclr/pal/tests/palsuite adb push cross/android/toolchain/arm64/sysroot/usr/lib/libandroid-support.so /data/local/tmp/coreclr/lib/ adb push cross/android/toolchain/arm64/sysroot/usr/lib/libandroid-glob.so /data/local/tmp/coreclr/lib/ adb push src/pal/tests/palsuite/paltestlist.txt /data/local/tmp/coreclr diff --git a/docs/workflow/ci/coreclr-ci-health.md b/docs/workflow/ci/coreclr-ci-health.md index 935b6c9087f4c..b48f52cd84155 100644 --- a/docs/workflow/ci/coreclr-ci-health.md +++ b/docs/workflow/ci/coreclr-ci-health.md @@ -42,7 +42,7 @@ a "Shared" comment it signifies that our tests are built on OSX in ~15 minutes i *Special Jobs* -`Formatting Linux x64` and `Formatting Windows x64` are special jobs which run clang-tidy of `src/coreclr/src/jit/*`. If there is a failure, there is a patch file that is created that can be applied to fix the source formatting. +`Formatting Linux x64` and `Formatting Windows x64` are special jobs which run clang-tidy of `src/coreclr/jit/*`. If there is a failure, there is a patch file that is created that can be applied to fix the source formatting. | OS | Architecture | Build Type | Product Build | Build Tests | Run coreclr Tests | Test Count | R2R | | -- | ------------ | ---------- | ------------- | ----------- | ----------------- | ---------- | ----- | diff --git a/docs/workflow/editing-and-debugging.md b/docs/workflow/editing-and-debugging.md index 5ffc9813b9ca4..50213150e4b9d 100644 --- a/docs/workflow/editing-and-debugging.md +++ b/docs/workflow/editing-and-debugging.md @@ -17,7 +17,7 @@ more on Markdown in general. The repository has a number of Visual Studio Solutions files (`*.sln`) that are useful for editing parts of the repository. In particular - * `src\coreclr\src\System.Private.CoreLib\System.Private.CorLib.sln` - This solution is for all managed (C#) code that is defined + * `src\coreclr\System.Private.CoreLib\System.Private.CorLib.sln` - This solution is for all managed (C#) code that is defined in the runtime itself. This is all class library support of one form or another. * `artifacts\obj\coreclr\windows..\CoreCLR.sln` - this solution contains most native (C++) projects associated with the repository, including diff --git a/docs/workflow/testing/coreclr/unix-test-instructions.md b/docs/workflow/testing/coreclr/unix-test-instructions.md index eeee6137909c0..c11a694396584 100644 --- a/docs/workflow/testing/coreclr/unix-test-instructions.md +++ b/docs/workflow/testing/coreclr/unix-test-instructions.md @@ -110,7 +110,7 @@ Run tests: To run all tests including disabled tests ```sh -./src/coreclr/src/pal/tests/palsuite/runpaltests.sh $(pwd)/artifacts/bin/coreclr/$(uname).x64.Debug/paltests +./src/coreclr/pal/tests/palsuite/runpaltests.sh $(pwd)/artifacts/bin/coreclr/$(uname).x64.Debug/paltests # on macOS, replace $(uname) with OSX ``` To only run enabled tests for the platform the tests were built for: @@ -122,4 +122,4 @@ artifacts/bin/coreclr/$(uname).x64.Debug/paltests/runpaltests.sh $(pwd)/artifact Test results will go into: `/tmp/PalTestOutput/default/pal_tests.xml` To disable tests in the CI edit -`src/coreclr/src/pal/tests/palsuite/issues.targets` +`src/coreclr/pal/tests/palsuite/issues.targets` diff --git a/eng/build.ps1 b/eng/build.ps1 index 4faea7ff30c3d..1edde94bd2872 100644 --- a/eng/build.ps1 +++ b/eng/build.ps1 @@ -150,7 +150,7 @@ if ($vs) { $vs = Split-Path $PSScriptRoot -Parent | Join-Path -ChildPath "src\mono\netcore" | Join-Path -ChildPath $vs | Join-Path -ChildPath "$vs.sln" } else { # Search for the solution in coreclr - $vs = Split-Path $PSScriptRoot -Parent | Join-Path -ChildPath "src\coreclr\src" | Join-Path -ChildPath $vs | Join-Path -ChildPath "$vs.sln" + $vs = Split-Path $PSScriptRoot -Parent | Join-Path -ChildPath "src\coreclr" | Join-Path -ChildPath $vs | Join-Path -ChildPath "$vs.sln" } if (-Not (Test-Path $vs)) { diff --git a/eng/native/sanitizerblacklist.txt b/eng/native/sanitizerblacklist.txt index ec3313973bfa3..ecc8bef9bf688 100644 --- a/eng/native/sanitizerblacklist.txt +++ b/eng/native/sanitizerblacklist.txt @@ -8,7 +8,7 @@ fun:_ZN11CMiniMdBase19UsesAllocatedMemoryEP11CMiniColDef # 0 0x4e8a0c in __ubsan::checkDynamicType(void*, void*, unsigned long) # 1 0x4e807f in HandleDynamicTypeCacheMiss(__ubsan::DynamicTypeCacheMissData*, unsigned long, unsigned long, __ubsan::ReportOptions) # 2 0x4e8051 in __ubsan_handle_dynamic_type_cache_miss -# 3 0x7f02ce676cd8 in JIT_InitPInvokeFrame(InlinedCallFrame*, void*) /home/steveharter/git/dotnet_coreclr/src/vm/jithelpers.cpp:6491:9 +# 3 0x7f02ce676cd8 in JIT_InitPInvokeFrame(InlinedCallFrame*, void*) /home/steveharter/git/dotnet_coreclr/vm/jithelpers.cpp:6491:9 # 4 0x7f0252bbceb2 () fun:_Z20JIT_InitPInvokeFrameP16InlinedCallFramePv diff --git a/eng/pipelines/coreclr/ilasm.yml b/eng/pipelines/coreclr/ilasm.yml index ebf13e9011954..d7554c288bd91 100644 --- a/eng/pipelines/coreclr/ilasm.yml +++ b/eng/pipelines/coreclr/ilasm.yml @@ -6,8 +6,8 @@ pr: - master paths: include: - - src/coreclr/src/ilasm/* - - src/coreclr/src/ildasm/* + - src/coreclr/ilasm/* + - src/coreclr/ildasm/* schedules: - cron: "0 19 * * 6" diff --git a/eng/pipelines/coreclr/jitrollingbuild.yml b/eng/pipelines/coreclr/jitrollingbuild.yml index 9d608216059f9..3055961a44c19 100644 --- a/eng/pipelines/coreclr/jitrollingbuild.yml +++ b/eng/pipelines/coreclr/jitrollingbuild.yml @@ -5,7 +5,7 @@ trigger: - master paths: include: - - src/coreclr/src/jit/* + - src/coreclr/jit/* pr: none diff --git a/eng/pipelines/coreclr/superpmi.yml b/eng/pipelines/coreclr/superpmi.yml index e05d1cd3a9cfa..4cbb976f1635a 100644 --- a/eng/pipelines/coreclr/superpmi.yml +++ b/eng/pipelines/coreclr/superpmi.yml @@ -9,7 +9,7 @@ trigger: - master paths: include: - - src/coreclr/src/inc/jiteeversionguid.h + - src/coreclr/inc/jiteeversionguid.h pr: none diff --git a/src/coreclr/ToolBox/superpmi/readme.md b/src/coreclr/ToolBox/superpmi/readme.md index 9195711a1eabe..d9aded28c479a 100644 --- a/src/coreclr/ToolBox/superpmi/readme.md +++ b/src/coreclr/ToolBox/superpmi/readme.md @@ -1,6 +1,6 @@ # Overview -This directory (`src/coreclr/src/ToolBox/superpmi` in the GitHub +This directory (`src/coreclr/ToolBox/superpmi` in the GitHub https://github.com/dotnet/runtime repository) contains the SuperPMI tool used for testing the .NET just-in-time (JIT) compiler. diff --git a/src/coreclr/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h b/src/coreclr/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h index 3089d361e20a4..9693846a6f3b9 100644 --- a/src/coreclr/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h +++ b/src/coreclr/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h @@ -2,7 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// To regenerate run the gen script in src/coreclr/src/tools/Common/JitInterface/ThunkGenerator +// To regenerate run the gen script in src/coreclr/tools/Common/JitInterface/ThunkGenerator // and follow the instructions in docs/project/updating-jitinterface.md #ifndef _ICorJitInfoImpl diff --git a/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp index 36a7e280cfa7b..bb32bdf36a393 100644 --- a/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp +++ b/src/coreclr/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp @@ -2,7 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// To regenerate run the gen script in src/coreclr/src/tools/Common/JitInterface/ThunkGenerator +// To regenerate run the gen script in src/coreclr/tools/Common/JitInterface/ThunkGenerator // and follow the instructions in docs/project/updating-jitinterface.md #include "standardpch.h" diff --git a/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp b/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp index de8ca59c54813..64c3e0e9e8580 100644 --- a/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp +++ b/src/coreclr/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp @@ -2,7 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// To regenerate run the gen script in src/coreclr/src/tools/Common/JitInterface/ThunkGenerator +// To regenerate run the gen script in src/coreclr/tools/Common/JitInterface/ThunkGenerator // and follow the instructions in docs/project/updating-jitinterface.md #include "standardpch.h" diff --git a/src/coreclr/gc/vxsort/smallsort/codegen/bitonic_gen.py b/src/coreclr/gc/vxsort/smallsort/codegen/bitonic_gen.py index 55ef7bbc0f4c8..7e488d8545399 100644 --- a/src/coreclr/gc/vxsort/smallsort/codegen/bitonic_gen.py +++ b/src/coreclr/gc/vxsort/smallsort/codegen/bitonic_gen.py @@ -10,7 +10,7 @@ # usage: bitonic_gen.py [-h] [--vector-isa VECTOR_ISA [VECTOR_ISA ...]] # [--break-inline BREAK_INLINE] [--output-dir OUTPUT_DIR] # -# the files in src/coreclr/src/gc/vxsort/smallsort that are currently checked in can be generated with: +# the files in src/coreclr/gc/vxsort/smallsort that are currently checked in can be generated with: # python bitonic_gen.py --output-dir c:\temp --vector-isa AVX2 AVX512 --break-inline 4 # import argparse diff --git a/src/coreclr/inc/corinfoinstructionset.h b/src/coreclr/inc/corinfoinstructionset.h index c292403b9e1cd..75ab11d7aeab7 100644 --- a/src/coreclr/inc/corinfoinstructionset.h +++ b/src/coreclr/inc/corinfoinstructionset.h @@ -2,8 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// FROM /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt -// using /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/gen.bat +// FROM /src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt +// using /src/coreclr/tools/Common/JitInterface/ThunkGenerator/gen.bat #ifndef CORINFOINSTRUCTIONSET_H #define CORINFOINSTRUCTIONSET_H diff --git a/src/coreclr/inc/crosscomp.h b/src/coreclr/inc/crosscomp.h index e942db59e4a63..d5d8cc8bd70b0 100644 --- a/src/coreclr/inc/crosscomp.h +++ b/src/coreclr/inc/crosscomp.h @@ -399,7 +399,7 @@ enum #if defined(DACCESS_COMPILE) && defined(TARGET_UNIX) // This is a TARGET oriented copy of CRITICAL_SECTION and PAL_CS_NATIVE_DATA_SIZE // It is configured based on TARGET configuration rather than HOST configuration -// There is validation code in src/coreclr/src/vm/crst.cpp to keep these from +// There is validation code in src/coreclr/vm/crst.cpp to keep these from // getting out of sync #define T_CRITICAL_SECTION_VALIDATION_MESSAGE "T_CRITICAL_SECTION validation failed. It is not in sync with CRITICAL_SECTION" diff --git a/src/coreclr/inc/readytorun.h b/src/coreclr/inc/readytorun.h index 84d3a81a94afc..5122aa52610b9 100644 --- a/src/coreclr/inc/readytorun.h +++ b/src/coreclr/inc/readytorun.h @@ -14,7 +14,7 @@ #define READYTORUN_SIGNATURE 0x00525452 // 'RTR' -// Keep these in sync with src/coreclr/src/tools/Common/Internal/Runtime/ModuleHeaders.cs +// Keep these in sync with src/coreclr/tools/Common/Internal/Runtime/ModuleHeaders.cs #define READYTORUN_MAJOR_VERSION 0x0004 #define READYTORUN_MINOR_VERSION 0x0002 diff --git a/src/coreclr/inc/readytoruninstructionset.h b/src/coreclr/inc/readytoruninstructionset.h index 670a66458ff73..9a4d0ba2ef9b1 100644 --- a/src/coreclr/inc/readytoruninstructionset.h +++ b/src/coreclr/inc/readytoruninstructionset.h @@ -2,8 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// FROM /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt -// using /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/gen.bat +// FROM /src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt +// using /src/coreclr/tools/Common/JitInterface/ThunkGenerator/gen.bat #ifndef READYTORUNINSTRUCTIONSET_H #define READYTORUNINSTRUCTIONSET_H diff --git a/src/coreclr/jit/ICorJitInfo_API_names.h b/src/coreclr/jit/ICorJitInfo_API_names.h index d9a6719efcd9c..d5a683a12176b 100644 --- a/src/coreclr/jit/ICorJitInfo_API_names.h +++ b/src/coreclr/jit/ICorJitInfo_API_names.h @@ -2,7 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// To regenerate run the gen script in src/coreclr/src/tools/Common/JitInterface/ThunkGenerator +// To regenerate run the gen script in src/coreclr/tools/Common/JitInterface/ThunkGenerator // and follow the instructions in docs/project/updating-jitinterface.md DEF_CLR_API(getMethodAttribs) DEF_CLR_API(setMethodAttribs) diff --git a/src/coreclr/jit/ICorJitInfo_API_wrapper.hpp b/src/coreclr/jit/ICorJitInfo_API_wrapper.hpp index 9a9723a0c4b54..fb10358a4129f 100644 --- a/src/coreclr/jit/ICorJitInfo_API_wrapper.hpp +++ b/src/coreclr/jit/ICorJitInfo_API_wrapper.hpp @@ -2,7 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// To regenerate run the gen script in src/coreclr/src/tools/Common/JitInterface/ThunkGenerator +// To regenerate run the gen script in src/coreclr/tools/Common/JitInterface/ThunkGenerator // and follow the instructions in docs/project/updating-jitinterface.md #define API_ENTER(name) wrapComp->CLR_API_Enter(API_##name); diff --git a/src/coreclr/pal/prebuilt/idl/clrdata_i.cpp b/src/coreclr/pal/prebuilt/idl/clrdata_i.cpp index d88a456414d2c..7d6b61a14f133 100644 --- a/src/coreclr/pal/prebuilt/idl/clrdata_i.cpp +++ b/src/coreclr/pal/prebuilt/idl/clrdata_i.cpp @@ -9,7 +9,7 @@ /* File created by MIDL compiler version 8.01.0622 */ /* at Mon Jan 18 19:14:07 2038 */ -/* Compiler settings for C:/ssd/runtime/src/coreclr/src/inc/clrdata.idl: +/* Compiler settings for C:/ssd/runtime/src/coreclr/inc/clrdata.idl: Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data diff --git a/src/coreclr/pal/prebuilt/idl/sospriv_i.cpp b/src/coreclr/pal/prebuilt/idl/sospriv_i.cpp index 44e6f3ca739e0..c00c70a183b23 100644 --- a/src/coreclr/pal/prebuilt/idl/sospriv_i.cpp +++ b/src/coreclr/pal/prebuilt/idl/sospriv_i.cpp @@ -8,7 +8,7 @@ /* File created by MIDL compiler version 8.01.0622 */ /* at Mon Jan 18 19:14:07 2038 */ -/* Compiler settings for C:/ssd/runtime/src/coreclr/src/inc/sospriv.idl: +/* Compiler settings for C:/ssd/runtime/src/coreclr/inc/sospriv.idl: Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data diff --git a/src/coreclr/pal/prebuilt/inc/clrdata.h b/src/coreclr/pal/prebuilt/inc/clrdata.h index b0675c9d43a09..29f72974c5cf8 100644 --- a/src/coreclr/pal/prebuilt/inc/clrdata.h +++ b/src/coreclr/pal/prebuilt/inc/clrdata.h @@ -7,7 +7,7 @@ /* File created by MIDL compiler version 8.01.0622 */ /* at Mon Jan 18 19:14:07 2038 */ -/* Compiler settings for C:/ssd/runtime/src/coreclr/src/inc/clrdata.idl: +/* Compiler settings for C:/ssd/runtime/src/coreclr/inc/clrdata.idl: Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data diff --git a/src/coreclr/pal/prebuilt/inc/corprof.h b/src/coreclr/pal/prebuilt/inc/corprof.h index 9a1e4b490a66f..2311aa5068626 100644 --- a/src/coreclr/pal/prebuilt/inc/corprof.h +++ b/src/coreclr/pal/prebuilt/inc/corprof.h @@ -6,7 +6,7 @@ /* File created by MIDL compiler version 8.01.0622 */ /* at Mon Jan 18 19:14:07 2038 */ -/* Compiler settings for C:/git/runtime/src/coreclr/src/inc/corprof.idl: +/* Compiler settings for C:/git/runtime/src/coreclr/inc/corprof.idl: Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data diff --git a/src/coreclr/pal/prebuilt/inc/sospriv.h b/src/coreclr/pal/prebuilt/inc/sospriv.h index 38bb6791ea177..a2d4bfb49ef8b 100644 --- a/src/coreclr/pal/prebuilt/inc/sospriv.h +++ b/src/coreclr/pal/prebuilt/inc/sospriv.h @@ -6,7 +6,7 @@ /* File created by MIDL compiler version 8.01.0622 */ /* at Mon Jan 18 19:14:07 2038 */ -/* Compiler settings for C:/git/runtime/src/coreclr/src/inc/sospriv.idl: +/* Compiler settings for C:/git/runtime/src/coreclr/inc/sospriv.idl: Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data diff --git a/src/coreclr/pal/prebuilt/inc/xcordebug.h b/src/coreclr/pal/prebuilt/inc/xcordebug.h index f19f96589dfe2..7ad62e3175713 100644 --- a/src/coreclr/pal/prebuilt/inc/xcordebug.h +++ b/src/coreclr/pal/prebuilt/inc/xcordebug.h @@ -6,7 +6,7 @@ /* File created by MIDL compiler version 8.01.0622 */ /* at Mon Jan 18 19:14:07 2038 */ -/* Compiler settings for F:/Dev/coreclr/src/inc/xcordebug.idl: +/* Compiler settings for F:/Dev/coreclr/inc/xcordebug.idl: Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data diff --git a/src/coreclr/pal/src/exception/seh-unwind.cpp b/src/coreclr/pal/src/exception/seh-unwind.cpp index 5db8a80a88cdf..5f4df9ae4dc78 100644 --- a/src/coreclr/pal/src/exception/seh-unwind.cpp +++ b/src/coreclr/pal/src/exception/seh-unwind.cpp @@ -529,7 +529,7 @@ PAL_FreeExceptionRecords(IN EXCEPTION_RECORD *exceptionRecord, IN CONTEXT *conte Note: The name of this function and the name of the ExceptionRecord parameter is used in the sos lldb plugin code to read the exception - record. See coreclr\src\ToolBox\SOS\lldbplugin\services.cpp. + record. See coreclr\ToolBox\SOS\lldbplugin\services.cpp. This function must not be inlined or optimized so the below PAL_VirtualUnwind calls end up with RaiseException caller's context and so the above debugger diff --git a/src/coreclr/scripts/scripts.pyproj b/src/coreclr/scripts/scripts.pyproj index a36591d2834b0..37e587d88339d 100644 --- a/src/coreclr/scripts/scripts.pyproj +++ b/src/coreclr/scripts/scripts.pyproj @@ -12,7 +12,7 @@ {888888a0-9f3d-457c-b088-3a5042f75d52} Standard Python launcher Global|PythonCore|2.7 - --man c:\src\coreclr\src\vm\clretwall.man --intermediate c:\work\runtimeeventsource + --man c:\src\coreclr\vm\clretwall.man --intermediate c:\work\runtimeeventsource False diff --git a/src/coreclr/tools/Common/Internal/Runtime/ModuleHeaders.cs b/src/coreclr/tools/Common/Internal/Runtime/ModuleHeaders.cs index caee23c7e81c5..e003ff6c93009 100644 --- a/src/coreclr/tools/Common/Internal/Runtime/ModuleHeaders.cs +++ b/src/coreclr/tools/Common/Internal/Runtime/ModuleHeaders.cs @@ -7,7 +7,7 @@ namespace Internal.Runtime { // // Please keep the data structures in this file in sync with the native version at - // src/coreclr/src/inc/readytorun.h + // src/coreclr/inc/readytorun.h // internal struct ReadyToRunHeaderConstants diff --git a/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSet.cs b/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSet.cs index c4b646cb22d9e..5a1093e1dbce5 100644 --- a/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSet.cs +++ b/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSet.cs @@ -2,8 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// FROM /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt -// using /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/gen.bat +// FROM /src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt +// using /src/coreclr/tools/Common/JitInterface/ThunkGenerator/gen.bat using System; using System.Runtime.InteropServices; diff --git a/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSetHelper.cs b/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSetHelper.cs index 059f13eba29ac..e064a954e6087 100644 --- a/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSetHelper.cs +++ b/src/coreclr/tools/Common/Internal/Runtime/ReadyToRunInstructionSetHelper.cs @@ -2,8 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// FROM /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt -// using /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/gen.bat +// FROM /src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt +// using /src/coreclr/tools/Common/JitInterface/ThunkGenerator/gen.bat using System; using System.Runtime.InteropServices; diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoBase.cs b/src/coreclr/tools/Common/JitInterface/CorInfoBase.cs index 1e87eb90e9be3..2326320e34eb4 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoBase.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoBase.cs @@ -2,7 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// To regenerate run the gen script in src/coreclr/src/tools/Common/JitInterface/ThunkGenerator +// To regenerate run the gen script in src/coreclr/tools/Common/JitInterface/ThunkGenerator // and follow the instructions in docs/project/updating-jitinterface.md using System; diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoInstructionSet.cs b/src/coreclr/tools/Common/JitInterface/CorInfoInstructionSet.cs index 4fc31bd7f3450..4270c1e69c10e 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoInstructionSet.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoInstructionSet.cs @@ -2,8 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// FROM /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt -// using /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/gen.bat +// FROM /src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt +// using /src/coreclr/tools/Common/JitInterface/ThunkGenerator/gen.bat using System; using System.Collections; diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoTypes.VarInfo.cs b/src/coreclr/tools/Common/JitInterface/CorInfoTypes.VarInfo.cs index 5e84af72a4c42..8808979a79b21 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoTypes.VarInfo.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoTypes.VarInfo.cs @@ -53,7 +53,7 @@ public struct VarLoc /* Changes to the following types may require revisiting the above layout. - In coreclr\src\inc\cordebuginfo.h + In coreclr\inc\cordebuginfo.h enum VarLocType { diff --git a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetGenerator.cs b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetGenerator.cs index 05019075c7704..aeece5255661f 100644 --- a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetGenerator.cs +++ b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetGenerator.cs @@ -248,8 +248,8 @@ public void WriteManagedReadyToRunInstructionSet(TextWriter tr) // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// FROM /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt -// using /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/gen.bat +// FROM /src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt +// using /src/coreclr/tools/Common/JitInterface/ThunkGenerator/gen.bat using System; using System.Runtime.InteropServices; @@ -277,8 +277,8 @@ public void WriteManagedReadyToRunInstructionSetHelper(TextWriter tr) // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// FROM /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt -// using /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/gen.bat +// FROM /src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt +// using /src/coreclr/tools/Common/JitInterface/ThunkGenerator/gen.bat using System; using System.Runtime.InteropServices; @@ -349,8 +349,8 @@ public void WriteManagedJitInstructionSet(TextWriter tr) // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// FROM /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt -// using /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/gen.bat +// FROM /src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt +// using /src/coreclr/tools/Common/JitInterface/ThunkGenerator/gen.bat using System; using System.Collections; @@ -636,8 +636,8 @@ public void WriteNativeCorInfoInstructionSet(TextWriter tr) // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// FROM /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt -// using /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/gen.bat +// FROM /src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt +// using /src/coreclr/tools/Common/JitInterface/ThunkGenerator/gen.bat #ifndef CORINFOINSTRUCTIONSET_H #define CORINFOINSTRUCTIONSET_H @@ -856,8 +856,8 @@ public void WriteNativeReadyToRunInstructionSet(TextWriter tr) // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// FROM /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt -// using /src/coreclr/src/tools/Common/JitInterface/ThunkGenerator/gen.bat +// FROM /src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt +// using /src/coreclr/tools/Common/JitInterface/ThunkGenerator/gen.bat #ifndef READYTORUNINSTRUCTIONSET_H #define READYTORUNINSTRUCTIONSET_H diff --git a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/Program.cs b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/Program.cs index c7e97f4aea78b..f8b9a16a2bec2 100644 --- a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/Program.cs +++ b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/Program.cs @@ -265,7 +265,7 @@ static void WriteAutogeneratedHeader(TextWriter tw) // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// To regenerate run the gen script in src/coreclr/src/tools/Common/JitInterface/ThunkGenerator +// To regenerate run the gen script in src/coreclr/tools/Common/JitInterface/ThunkGenerator // and follow the instructions in docs/project/updating-jitinterface.md "); } diff --git a/src/coreclr/tools/ILVerification/README.md b/src/coreclr/tools/ILVerification/README.md index 48ed8724f6640..0f8821d99389c 100644 --- a/src/coreclr/tools/ILVerification/README.md +++ b/src/coreclr/tools/ILVerification/README.md @@ -1,3 +1,3 @@ # ILVerification -The ILVerification library is part of the ILVerify project. See details under [src/coreclr/src/tools/ILVerify](../ILVerify). +The ILVerification library is part of the ILVerify project. See details under [src/coreclr/tools/ILVerify](../ILVerify). diff --git a/src/coreclr/tools/ILVerify/README.md b/src/coreclr/tools/ILVerify/README.md index fcab2c2d848c1..23175857e87cf 100644 --- a/src/coreclr/tools/ILVerify/README.md +++ b/src/coreclr/tools/ILVerify/README.md @@ -95,6 +95,6 @@ All ILVerify issues are labeled with [area-ILVerification](https://github.com/se Useful sources: - [PEVerify source code](https://github.com/lewischeng-ms/sscli/blob/master/clr/src/jit64/newverify.cpp) - - [RyuJIT source code](https://github.com/dotnet/runtime/tree/master/src/coreclr/src/jit), specifically: [exception handling specific part](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/jit/jiteh.cpp), [importer.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/jit/importer.cpp) (look for `Compiler::ver`, `Verify`, `VerifyOrReturn`, and `VerifyOrReturnSpeculative`), [_typeinfo.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/jit/_typeinfo.h), [typeinfo.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/src/jit/typeinfo.cpp) + - [RyuJIT source code](https://github.com/dotnet/runtime/tree/master/src/coreclr/jit), specifically: [exception handling specific part](https://github.com/dotnet/runtime/blob/master/src/coreclr/jit/jiteh.cpp), [importer.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/jit/importer.cpp) (look for `Compiler::ver`, `Verify`, `VerifyOrReturn`, and `VerifyOrReturnSpeculative`), [_typeinfo.h](https://github.com/dotnet/runtime/blob/master/src/coreclr/jit/_typeinfo.h), [typeinfo.cpp](https://github.com/dotnet/runtime/blob/master/src/coreclr/jit/typeinfo.cpp) - [ECMA-335 standard](https://www.ecma-international.org/publications/standards/Ecma-335.htm) - [Expert .NET 2.0 IL Assembler book](http://www.apress.com/us/book/9781590596463) by Serge Lidin diff --git a/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunMethod.cs b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunMethod.cs index 486f60e091bfd..59c455a08598c 100644 --- a/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunMethod.cs +++ b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ReadyToRunMethod.cs @@ -84,7 +84,7 @@ public abstract class BaseGcInfo /// A runtime function corresponds to a contiguous fragment of code that implements a method. /// /// - /// Based on src/pal/inc/pal.h _RUNTIME_FUNCTION + /// Based on src/pal/inc/pal.h _RUNTIME_FUNCTION /// public class RuntimeFunction { diff --git a/src/coreclr/tools/aot/jitinterface/jitinterface.h b/src/coreclr/tools/aot/jitinterface/jitinterface.h index fa2c9e7169998..e7a9609b6e456 100644 --- a/src/coreclr/tools/aot/jitinterface/jitinterface.h +++ b/src/coreclr/tools/aot/jitinterface/jitinterface.h @@ -2,7 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. // DO NOT EDIT THIS FILE! IT IS AUTOGENERATED -// To regenerate run the gen script in src/coreclr/src/tools/Common/JitInterface/ThunkGenerator +// To regenerate run the gen script in src/coreclr/tools/Common/JitInterface/ThunkGenerator // and follow the instructions in docs/project/updating-jitinterface.md diff --git a/src/coreclr/vm/compile.cpp b/src/coreclr/vm/compile.cpp index 3f18c36acc756..616c0e58e019a 100644 --- a/src/coreclr/vm/compile.cpp +++ b/src/coreclr/vm/compile.cpp @@ -4602,7 +4602,7 @@ static BOOL CanSatisfyConstraints(Instantiation typicalInst, Instantiation candi // -// This method has duplicated logic from coreclr\src\System.Private.CoreLib\src\System\Collections\Generic\ComparerHelpers.cs +// This method has duplicated logic from coreclr\System.Private.CoreLib\src\System\Collections\Generic\ComparerHelpers.cs // static void SpecializeComparer(SString& ss, Instantiation& inst) { @@ -4656,7 +4656,7 @@ static void SpecializeComparer(SString& ss, Instantiation& inst) } // -// This method has duplicated logic from coreclr\src\System.Private.CoreLib\src\System\Collections\Generic\ComparerHelpers.cs +// This method has duplicated logic from coreclr\System.Private.CoreLib\src\System\Collections\Generic\ComparerHelpers.cs // and matching logic in jitinterface.cpp // static void SpecializeEqualityComparer(SString& ss, Instantiation& inst) diff --git a/src/libraries/GenerateLibrariesSln.ps1 b/src/libraries/GenerateLibrariesSln.ps1 index e3e8531edb2d7..8805a8ba94b61 100644 --- a/src/libraries/GenerateLibrariesSln.ps1 +++ b/src/libraries/GenerateLibrariesSln.ps1 @@ -35,5 +35,5 @@ foreach ($f in Get-ChildItem -Recurse -Path $([System.IO.Path]::Combine("*", $ty if ($type -eq "src") { # Also add CoreLib if this is for src projects - dotnet sln $SolutionName add --in-root $f.FullName $([System.IO.Path]::Combine("..", "coreclr", "src", "System.Private.CoreLib", "System.Private.CoreLib.csproj")) + dotnet sln $SolutionName add --in-root $f.FullName $([System.IO.Path]::Combine("..", "coreclr", "System.Private.CoreLib", "System.Private.CoreLib.csproj")) } diff --git a/src/libraries/System.AppContext/System.AppContext.sln b/src/libraries/System.AppContext/System.AppContext.sln index 90c5de42be310..a2adc157233c3 100644 --- a/src/libraries/System.AppContext/System.AppContext.sln +++ b/src/libraries/System.AppContext/System.AppContext.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{751F6E52-BD51-406F-9EB6-06D3C27BF469}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{751F6E52-BD51-406F-9EB6-06D3C27BF469}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F9B2FCA3-69C0-45A6-B1FA-E989263536C4}" EndProject diff --git a/src/libraries/System.Buffers/System.Buffers.sln b/src/libraries/System.Buffers/System.Buffers.sln index 166ac1588dd3c..004ffc2334946 100644 --- a/src/libraries/System.Buffers/System.Buffers.sln +++ b/src/libraries/System.Buffers/System.Buffers.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{006429DB-0860-4688-BD1D-459C9364594D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{006429DB-0860-4688-BD1D-459C9364594D}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{350A679C-F690-49B3-AB97-340AF05E1250}" EndProject diff --git a/src/libraries/System.Collections.Concurrent/System.Collections.Concurrent.sln b/src/libraries/System.Collections.Concurrent/System.Collections.Concurrent.sln index 8c31f04ca8941..4caef513dc208 100644 --- a/src/libraries/System.Collections.Concurrent/System.Collections.Concurrent.sln +++ b/src/libraries/System.Collections.Concurrent/System.Collections.Concurrent.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{A8E6D68A-AFEE-4B68-ACE1-074CD1BCC322}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{7C2B8279-F7BB-4AD4-BA44-B9071090AF46}" EndProject diff --git a/src/libraries/System.Collections/System.Collections.sln b/src/libraries/System.Collections/System.Collections.sln index 4a97408e014ef..5d692a6d1e3da 100644 --- a/src/libraries/System.Collections/System.Collections.sln +++ b/src/libraries/System.Collections/System.Collections.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{4385739F-14A1-4F21-96E3-12EA90580575}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{4385739F-14A1-4F21-96E3-12EA90580575}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{38D8F258-655E-459B-B2CE-0DED144AFBF7}" EndProject diff --git a/src/libraries/System.Data.Common/System.Data.Common.sln b/src/libraries/System.Data.Common/System.Data.Common.sln index c70eb8721636c..f1745ac2cbc0f 100644 --- a/src/libraries/System.Data.Common/System.Data.Common.sln +++ b/src/libraries/System.Data.Common/System.Data.Common.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{F3DC1DF9-698A-4970-9A5E-AB946D6F763B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{F3DC1DF9-698A-4970-9A5E-AB946D6F763B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{0BD22D2A-C12C-4641-8F12-73D21AAAFBA3}" EndProject diff --git a/src/libraries/System.Diagnostics.Contracts/System.Diagnostics.Contracts.sln b/src/libraries/System.Diagnostics.Contracts/System.Diagnostics.Contracts.sln index f92fd9a4f313e..9debd25976698 100644 --- a/src/libraries/System.Diagnostics.Contracts/System.Diagnostics.Contracts.sln +++ b/src/libraries/System.Diagnostics.Contracts/System.Diagnostics.Contracts.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{D5A81248-C2F8-464A-8EA4-2AB2528206BC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{D5A81248-C2F8-464A-8EA4-2AB2528206BC}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{E4B95B10-EC2A-4874-8E71-858A90A4BDFE}" EndProject diff --git a/src/libraries/System.Diagnostics.Debug/System.Diagnostics.Debug.sln b/src/libraries/System.Diagnostics.Debug/System.Diagnostics.Debug.sln index ecd12e97e0e51..b565dc3eb3158 100644 --- a/src/libraries/System.Diagnostics.Debug/System.Diagnostics.Debug.sln +++ b/src/libraries/System.Diagnostics.Debug/System.Diagnostics.Debug.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{6CBF7573-4865-4DD2-A38B-74003FB43C9E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{6CBF7573-4865-4DD2-A38B-74003FB43C9E}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{1C01EFBD-2332-4392-BB4A-918178861EDC}" EndProject diff --git a/src/libraries/System.Diagnostics.StackTrace/System.Diagnostics.StackTrace.sln b/src/libraries/System.Diagnostics.StackTrace/System.Diagnostics.StackTrace.sln index 064c4f1110284..e045045c80020 100644 --- a/src/libraries/System.Diagnostics.StackTrace/System.Diagnostics.StackTrace.sln +++ b/src/libraries/System.Diagnostics.StackTrace/System.Diagnostics.StackTrace.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{E34F351F-8EB7-4D44-BA44-85F791F662CC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{E34F351F-8EB7-4D44-BA44-85F791F662CC}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{65FFFD20-CE5D-4FC0-A525-1C308186A16F}" EndProject diff --git a/src/libraries/System.Diagnostics.Tools/System.Diagnostics.Tools.sln b/src/libraries/System.Diagnostics.Tools/System.Diagnostics.Tools.sln index 998703f735c05..ac162dd3f847c 100644 --- a/src/libraries/System.Diagnostics.Tools/System.Diagnostics.Tools.sln +++ b/src/libraries/System.Diagnostics.Tools/System.Diagnostics.Tools.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{4E534B56-D245-41B7-B4D0-F8AB7BCC8877}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{4E534B56-D245-41B7-B4D0-F8AB7BCC8877}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{6FF6D8F0-403D-40DF-9D75-895E2AF22B88}" EndProject diff --git a/src/libraries/System.Diagnostics.TraceSource/System.Diagnostics.TraceSource.sln b/src/libraries/System.Diagnostics.TraceSource/System.Diagnostics.TraceSource.sln index ae5060c54c8c2..7a590b036b37f 100644 --- a/src/libraries/System.Diagnostics.TraceSource/System.Diagnostics.TraceSource.sln +++ b/src/libraries/System.Diagnostics.TraceSource/System.Diagnostics.TraceSource.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{89B01AF7-F0CE-4168-8C4A-33FCDCF33B73}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{F6BCA6EF-777E-408B-B49B-B055B5A0BA19}" EndProject diff --git a/src/libraries/System.Diagnostics.Tracing/System.Diagnostics.Tracing.sln b/src/libraries/System.Diagnostics.Tracing/System.Diagnostics.Tracing.sln index fd3321e9d15ed..34c6d34dd56f3 100644 --- a/src/libraries/System.Diagnostics.Tracing/System.Diagnostics.Tracing.sln +++ b/src/libraries/System.Diagnostics.Tracing/System.Diagnostics.Tracing.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{370DCE61-CBDF-466E-91DB-5AE622BF2E52}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{370DCE61-CBDF-466E-91DB-5AE622BF2E52}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{6E159831-C97C-40FD-AD1A-E8B1EE3E7168}" EndProject diff --git a/src/libraries/System.Globalization.Calendars/System.Globalization.Calendars.sln b/src/libraries/System.Globalization.Calendars/System.Globalization.Calendars.sln index 14313ef439a12..3f5e76742b4a1 100644 --- a/src/libraries/System.Globalization.Calendars/System.Globalization.Calendars.sln +++ b/src/libraries/System.Globalization.Calendars/System.Globalization.Calendars.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{E70B35E3-B6C3-4196-9FAB-1A0D45748E79}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{E70B35E3-B6C3-4196-9FAB-1A0D45748E79}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{32F01C47-D495-45CE-9567-E4C434F7D627}" EndProject diff --git a/src/libraries/System.Globalization/System.Globalization.sln b/src/libraries/System.Globalization/System.Globalization.sln index 73c181f692823..508ce9153219d 100644 --- a/src/libraries/System.Globalization/System.Globalization.sln +++ b/src/libraries/System.Globalization/System.Globalization.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{E269F8BB-F629-4C96-B9B2-03A00D8B1BFB}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities.Unicode", "..\Common\tests\TestUtilities.Unicode\TestUtilities.Unicode.csproj", "{79613DED-481D-44EF-BB89-7AC6BD53026B}" EndProject diff --git a/src/libraries/System.IO.UnmanagedMemoryStream/System.IO.UnmanagedMemoryStream.sln b/src/libraries/System.IO.UnmanagedMemoryStream/System.IO.UnmanagedMemoryStream.sln index 8fe751b8ace35..e0d7f1dcff1d4 100644 --- a/src/libraries/System.IO.UnmanagedMemoryStream/System.IO.UnmanagedMemoryStream.sln +++ b/src/libraries/System.IO.UnmanagedMemoryStream/System.IO.UnmanagedMemoryStream.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{074D8726-9CC3-43B5-9D28-1AD33A6100F7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{074D8726-9CC3-43B5-9D28-1AD33A6100F7}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{7DC8F0E9-5D6C-47F7-AE83-9AB1180AF51E}" EndProject diff --git a/src/libraries/System.Memory/System.Memory.sln b/src/libraries/System.Memory/System.Memory.sln index 6db556d3fb964..63f9436b6adc5 100644 --- a/src/libraries/System.Memory/System.Memory.sln +++ b/src/libraries/System.Memory/System.Memory.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{7746BFD6-E6D6-4703-AA2D-43380B5DEA22}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{7746BFD6-E6D6-4703-AA2D-43380B5DEA22}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{6A54FACA-933E-4C1D-92AB-1A5506CFC212}" EndProject diff --git a/src/libraries/System.Numerics.Vectors/System.Numerics.Vectors.sln b/src/libraries/System.Numerics.Vectors/System.Numerics.Vectors.sln index 850c9665498d8..f1f46e31e9e48 100644 --- a/src/libraries/System.Numerics.Vectors/System.Numerics.Vectors.sln +++ b/src/libraries/System.Numerics.Vectors/System.Numerics.Vectors.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{634A3B2B-09F5-4810-B630-ADE4D36C47DF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{634A3B2B-09F5-4810-B630-ADE4D36C47DF}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{9EDBE037-EFE0-4B72-B602-E4C3F0C05F2F}" EndProject diff --git a/src/libraries/System.Private.CoreLib/src/README.md b/src/libraries/System.Private.CoreLib/src/README.md index 510365ed96525..0d1fd90fb4563 100644 --- a/src/libraries/System.Private.CoreLib/src/README.md +++ b/src/libraries/System.Private.CoreLib/src/README.md @@ -13,7 +13,7 @@ Any runtime-specific `partial` part which also has a shared part sholud use a ru ## System.Private.CoreLib CoreCLR Sources -The CoreCLR specific sources can be found at [src/coreclr/src/System.Private.CoreLib](../../../coreclr/src/System.Private.CoreLib/). +The CoreCLR specific sources can be found at [src/coreclr/System.Private.CoreLib](../../../coreclr/System.Private.CoreLib/). ## System.Private.CoreLib Mono Sources diff --git a/src/libraries/System.Private.Uri/System.Private.Uri.sln b/src/libraries/System.Private.Uri/System.Private.Uri.sln index 65923b8c66884..7c0aab144c3c1 100644 --- a/src/libraries/System.Private.Uri/System.Private.Uri.sln +++ b/src/libraries/System.Private.Uri/System.Private.Uri.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{C150B694-015F-48BD-8CB0-EFF1F7A84DCE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{C150B694-015F-48BD-8CB0-EFF1F7A84DCE}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{ADD88187-83E2-4EAF-BFB4-BC6249E76457}" EndProject diff --git a/src/libraries/System.Reflection.Emit.ILGeneration/System.Reflection.Emit.ILGeneration.sln b/src/libraries/System.Reflection.Emit.ILGeneration/System.Reflection.Emit.ILGeneration.sln index 286192f00fe93..55560fdb82272 100644 --- a/src/libraries/System.Reflection.Emit.ILGeneration/System.Reflection.Emit.ILGeneration.sln +++ b/src/libraries/System.Reflection.Emit.ILGeneration/System.Reflection.Emit.ILGeneration.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{B1053D24-237E-4E55-9413-20B34ED79F23}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{B1053D24-237E-4E55-9413-20B34ED79F23}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{05696F45-ACF1-4C02-B8D9-E8C1F5E28717}" EndProject diff --git a/src/libraries/System.Reflection.Emit.Lightweight/System.Reflection.Emit.Lightweight.sln b/src/libraries/System.Reflection.Emit.Lightweight/System.Reflection.Emit.Lightweight.sln index a5c9aeaf1bdfb..a0a4045b31840 100644 --- a/src/libraries/System.Reflection.Emit.Lightweight/System.Reflection.Emit.Lightweight.sln +++ b/src/libraries/System.Reflection.Emit.Lightweight/System.Reflection.Emit.Lightweight.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{209EDA22-1D20-4180-BE4C-53DEE1758B5D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{209EDA22-1D20-4180-BE4C-53DEE1758B5D}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{ECDDE645-347C-46D8-B6B6-BCFF6B9AFD4A}" EndProject diff --git a/src/libraries/System.Reflection.Emit/System.Reflection.Emit.sln b/src/libraries/System.Reflection.Emit/System.Reflection.Emit.sln index c7b9fee30095e..8aa13fb858dc5 100644 --- a/src/libraries/System.Reflection.Emit/System.Reflection.Emit.sln +++ b/src/libraries/System.Reflection.Emit/System.Reflection.Emit.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{772C93D4-FC45-46AA-B09F-26F01B672EDC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{772C93D4-FC45-46AA-B09F-26F01B672EDC}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{E5543842-139D-43BD-B604-E65EBB91649E}" EndProject diff --git a/src/libraries/System.Reflection.Primitives/System.Reflection.Primitives.sln b/src/libraries/System.Reflection.Primitives/System.Reflection.Primitives.sln index 1f755200fcd02..b018c7d177ea4 100644 --- a/src/libraries/System.Reflection.Primitives/System.Reflection.Primitives.sln +++ b/src/libraries/System.Reflection.Primitives/System.Reflection.Primitives.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{661E0A3D-E151-45B2-AA38-B30F8227A741}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{661E0A3D-E151-45B2-AA38-B30F8227A741}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Reflection.Primitives", "ref\System.Reflection.Primitives.csproj", "{9D308994-9721-4883-B32D-531FA8D9025B}" EndProject diff --git a/src/libraries/System.Reflection.TypeExtensions/System.Reflection.TypeExtensions.sln b/src/libraries/System.Reflection.TypeExtensions/System.Reflection.TypeExtensions.sln index 305bea700e657..ad0546d656bc9 100644 --- a/src/libraries/System.Reflection.TypeExtensions/System.Reflection.TypeExtensions.sln +++ b/src/libraries/System.Reflection.TypeExtensions/System.Reflection.TypeExtensions.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{F3F9D019-086A-4093-BD49-11B6B204D94A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{F3F9D019-086A-4093-BD49-11B6B204D94A}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{41438432-4DC0-4724-8C8F-0D100083490F}" EndProject diff --git a/src/libraries/System.Reflection/System.Reflection.sln b/src/libraries/System.Reflection/System.Reflection.sln index 4ca98e05f231b..5b47bef5c2fd1 100644 --- a/src/libraries/System.Reflection/System.Reflection.sln +++ b/src/libraries/System.Reflection/System.Reflection.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{27A1A006-6882-4C70-AB81-775D3D2C95A2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{27A1A006-6882-4C70-AB81-775D3D2C95A2}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{C5A7E7E7-E43B-4C87-9A92-13C3C817E714}" EndProject diff --git a/src/libraries/System.Resources.ResourceManager/System.Resources.ResourceManager.sln b/src/libraries/System.Resources.ResourceManager/System.Resources.ResourceManager.sln index 49634bfcf0c7d..2ece47f7818fb 100644 --- a/src/libraries/System.Resources.ResourceManager/System.Resources.ResourceManager.sln +++ b/src/libraries/System.Resources.ResourceManager/System.Resources.ResourceManager.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{152966B3-6D3D-4318-B62D-224940A6B746}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{152966B3-6D3D-4318-B62D-224940A6B746}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{B93B5C05-FB28-4173-8786-57B42CFE38F3}" EndProject diff --git a/src/libraries/System.Runtime.Extensions/System.Runtime.Extensions.sln b/src/libraries/System.Runtime.Extensions/System.Runtime.Extensions.sln index d6bcd1af77c08..b61a9738a25f1 100644 --- a/src/libraries/System.Runtime.Extensions/System.Runtime.Extensions.sln +++ b/src/libraries/System.Runtime.Extensions/System.Runtime.Extensions.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{5D8A8EF7-9A44-45C3-B7B2-B44A296A1BE7}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{D7A1E176-1515-41FE-86D0-A46C82B87B05}" EndProject diff --git a/src/libraries/System.Runtime.InteropServices/System.Runtime.InteropServices.sln b/src/libraries/System.Runtime.InteropServices/System.Runtime.InteropServices.sln index dff4fac3a4798..7400e16352b4f 100644 --- a/src/libraries/System.Runtime.InteropServices/System.Runtime.InteropServices.sln +++ b/src/libraries/System.Runtime.InteropServices/System.Runtime.InteropServices.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{94B59BA0-491F-4B59-ADFF-A057EC3EC835}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{94B59BA0-491F-4B59-ADFF-A057EC3EC835}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{1FF4CC8E-49C3-42A0-A6E0-2E5908455FBA}" EndProject diff --git a/src/libraries/System.Runtime.Intrinsics/System.Runtime.Intrinsics.sln b/src/libraries/System.Runtime.Intrinsics/System.Runtime.Intrinsics.sln index 627fc6a427b77..b138532035f79 100644 --- a/src/libraries/System.Runtime.Intrinsics/System.Runtime.Intrinsics.sln +++ b/src/libraries/System.Runtime.Intrinsics/System.Runtime.Intrinsics.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{5965CFFE-886A-418C-854F-5967D91DE914}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{5965CFFE-886A-418C-854F-5967D91DE914}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Runtime.Intrinsics", "ref\System.Runtime.Intrinsics.csproj", "{28B808CE-B1F8-4B05-9ADA-8884525BD87F}" EndProject diff --git a/src/libraries/System.Runtime.Loader/System.Runtime.Loader.sln b/src/libraries/System.Runtime.Loader/System.Runtime.Loader.sln index c3a8075c8db72..2412cb539439a 100644 --- a/src/libraries/System.Runtime.Loader/System.Runtime.Loader.sln +++ b/src/libraries/System.Runtime.Loader/System.Runtime.Loader.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{64DDD2AF-BF90-4DD8-AC24-D2084DB8D558}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{D6D16FFD-FD76-4700-B456-1DC4D093D1B5}" EndProject diff --git a/src/libraries/System.Runtime.Serialization.Formatters/System.Runtime.Serialization.Formatters.sln b/src/libraries/System.Runtime.Serialization.Formatters/System.Runtime.Serialization.Formatters.sln index 4afbab31c93f4..ce7c6e747953b 100644 --- a/src/libraries/System.Runtime.Serialization.Formatters/System.Runtime.Serialization.Formatters.sln +++ b/src/libraries/System.Runtime.Serialization.Formatters/System.Runtime.Serialization.Formatters.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\src\System.Private.CoreLib\System.Private.CoreLib.csproj", "{096171D9-C978-4509-B9D3-B6DBCD78420D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{096171D9-C978-4509-B9D3-B6DBCD78420D}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{25F48B11-0D57-47B7-88EE-7D407AFBA7B6}" EndProject diff --git a/src/libraries/System.Runtime.Serialization.Formatters/src/System.Runtime.Serialization.Formatters.sln b/src/libraries/System.Runtime.Serialization.Formatters/src/System.Runtime.Serialization.Formatters.sln index 40cb9c61ff5ffb2e17a0bc0041fcaf4bb70c49ff..cb761cce53024a842fe8369505aca5d28df83094 100644 GIT binary patch delta 40 ucmbR7hN Date: Tue, 8 Dec 2020 14:14:56 -0500 Subject: [PATCH 72/87] Add support for MONO_TYPE_FNPTR to aot. (#45616) Fixes https://github.com/dotnet/runtime/issues/45548. --- src/mono/mono/mini/aot-compiler.c | 6 ++++++ src/mono/mono/mini/aot-runtime.c | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/src/mono/mono/mini/aot-compiler.c b/src/mono/mono/mini/aot-compiler.c index a07c0e2d1e759..2242f05666b01 100644 --- a/src/mono/mono/mini/aot-compiler.c +++ b/src/mono/mono/mini/aot-compiler.c @@ -465,6 +465,9 @@ add_gsharedvt_wrappers (MonoAotCompile *acfg, MonoMethodSignature *sig, gboolean static void add_profile_instances (MonoAotCompile *acfg, ProfileData *data); +static void +encode_signature (MonoAotCompile *acfg, MonoMethodSignature *sig, guint8 *buf, guint8 **endbuf); + static gboolean ignore_cfg (MonoCompile *cfg) { @@ -3533,6 +3536,9 @@ encode_type (MonoAotCompile *acfg, MonoType *t, guint8 *buf, guint8 **endbuf) case MONO_TYPE_PTR: encode_type (acfg, t->data.type, p, &p); break; + case MONO_TYPE_FNPTR: + encode_signature (acfg, t->data.method, p, &p); + break; case MONO_TYPE_GENERICINST: { MonoClass *gclass = t->data.generic_class->container_class; MonoGenericInst *inst = t->data.generic_class->context.class_inst; diff --git a/src/mono/mono/mini/aot-runtime.c b/src/mono/mono/mini/aot-runtime.c index eb13d2af96679..54fa42d2eba4a 100644 --- a/src/mono/mono/mini/aot-runtime.c +++ b/src/mono/mono/mini/aot-runtime.c @@ -257,6 +257,9 @@ init_method (MonoAotModule *amodule, gpointer info, guint32 method_index, MonoMe static MonoJumpInfo* decode_patches (MonoAotModule *amodule, MonoMemPool *mp, int n_patches, gboolean llvm, guint32 *got_offsets); +static MonoMethodSignature* +decode_signature (MonoAotModule *module, guint8 *buf, guint8 **endbuf); + static void load_container_amodule (MonoAssemblyLoadContext *alc); @@ -756,6 +759,11 @@ decode_type (MonoAotModule *module, guint8 *buf, guint8 **endbuf, MonoError *err if (!t->data.type) goto fail; break; + case MONO_TYPE_FNPTR: + t->data.method = decode_signature (module, p, &p); + if (!t->data.method) + goto fail; + break; case MONO_TYPE_GENERICINST: { MonoClass *gclass; MonoGenericContext ctx; From 3424aa76320552d13df122ff8f28c1a7567eb36d Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Tue, 8 Dec 2020 11:23:00 -0800 Subject: [PATCH 73/87] Update package baseline for 5.0.1 (#45775) --- src/libraries/pkg/baseline/packageIndex.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/libraries/pkg/baseline/packageIndex.json b/src/libraries/pkg/baseline/packageIndex.json index 736e31b496772..94adae8b8bc12 100644 --- a/src/libraries/pkg/baseline/packageIndex.json +++ b/src/libraries/pkg/baseline/packageIndex.json @@ -542,7 +542,8 @@ "3.1.0", "3.1.1", "3.1.2", - "5.0.0" + "5.0.0", + "5.0.1" ], "InboxOn": {}, "AssemblyVersionInPackageVersion": { @@ -3577,7 +3578,8 @@ "4.5.2", "4.5.3", "4.6.0", - "5.0.0" + "5.0.0", + "5.0.1" ], "BaselineVersion": "6.0.0", "InboxOn": {}, @@ -6020,7 +6022,8 @@ "4.5.1", "4.5.2", "4.6.0", - "5.0.0" + "5.0.0", + "5.0.1" ], "BaselineVersion": "6.0.0", "InboxOn": {}, From 5432a66018c2499b88a54276f468ea903ed2b8de Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Tue, 8 Dec 2020 12:16:36 -0800 Subject: [PATCH 74/87] Simplify devirtualization in crossgen2 (#45744) --- src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs index 4433a9b28af10..b31079430320b 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs @@ -984,11 +984,9 @@ private bool resolveVirtualMethod(CORINFO_DEVIRTUALIZATION_INFO* info) impl = getUnboxingThunk(impl); } - MethodDesc exactImpl = TypeSystemHelpers.FindMethodOnTypeWithMatchingTypicalMethod(objType, impl); - info->devirtualizedMethod = ObjectToHandle(impl); info->requiresInstMethodTableArg = false; - info->exactContext = contextFromType(exactImpl.OwningType); + info->exactContext = contextFromType(impl.OwningType); return true; } From 66a1f9754a89c86a3893dcf82285018c72f8be16 Mon Sep 17 00:00:00 2001 From: monojenkins Date: Tue, 8 Dec 2020 17:03:02 -0500 Subject: [PATCH 75/87] [aot] Don't force gsharedvt to be enabled in llvmonly+interp mode. (#45687) Co-authored-by: vargaz --- src/mono/mono/mini/aot-compiler.c | 5 ++++- src/mono/mono/mini/aot-runtime.c | 10 ++++++---- src/mono/mono/mini/llvmonly-runtime.c | 6 +++++- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/mono/mono/mini/aot-compiler.c b/src/mono/mono/mini/aot-compiler.c index 2242f05666b01..e1ba92a742c6a 100644 --- a/src/mono/mono/mini/aot-compiler.c +++ b/src/mono/mono/mini/aot-compiler.c @@ -13831,7 +13831,10 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options, return 1; } #else - if (acfg->aot_opts.llvm_only || mono_aot_mode_is_full (&acfg->aot_opts) || mono_aot_mode_is_hybrid (&acfg->aot_opts)) + if (acfg->aot_opts.llvm_only) { + if (!mono_aot_mode_is_interp (&acfg->aot_opts)) + acfg->jit_opts |= MONO_OPT_GSHAREDVT; + } else if (mono_aot_mode_is_full (&acfg->aot_opts) || mono_aot_mode_is_hybrid (&acfg->aot_opts)) acfg->jit_opts |= MONO_OPT_GSHAREDVT; #endif diff --git a/src/mono/mono/mini/aot-runtime.c b/src/mono/mono/mini/aot-runtime.c index 54fa42d2eba4a..4c45a24c606ef 100644 --- a/src/mono/mono/mini/aot-runtime.c +++ b/src/mono/mono/mini/aot-runtime.c @@ -5077,10 +5077,12 @@ mono_aot_get_method (MonoDomain *domain, MonoMethod *method, MonoError *error) /* Common case */ method_index = mono_metadata_token_index (method->token) - 1; - guint32 num_methods = amodule->info.nmethods - amodule->info.nextra_methods; - if (method_index >= num_methods) - /* method not available in AOT image */ - return NULL; + if (!mono_llvm_only) { + guint32 num_methods = amodule->info.nmethods - amodule->info.nextra_methods; + if (method_index >= num_methods) + /* method not available in AOT image */ + return NULL; + } } code = (guint8 *)load_method (domain, amodule, m_class_get_image (klass), method, method->token, method_index, error); diff --git a/src/mono/mono/mini/llvmonly-runtime.c b/src/mono/mono/mini/llvmonly-runtime.c index 100cffb40f2a1..0068a280418d2 100644 --- a/src/mono/mono/mini/llvmonly-runtime.c +++ b/src/mono/mono/mini/llvmonly-runtime.c @@ -18,7 +18,11 @@ gpointer mini_llvmonly_load_method (MonoMethod *method, gboolean caller_gsharedvt, gboolean need_unbox, gpointer *out_arg, MonoError *error) { gpointer addr = mono_compile_method_checked (method, error); - return_val_if_nok (error, NULL); + + if (!is_ok (error)) { + mono_error_cleanup (error); + error_init_reuse (error); + } if (addr) { return mini_llvmonly_add_method_wrappers (method, (gpointer)addr, caller_gsharedvt, need_unbox, out_arg); From 1f114c4e3002f199644917c7f45d5766283c8481 Mon Sep 17 00:00:00 2001 From: Eric Erhardt Date: Tue, 8 Dec 2020 17:32:02 -0600 Subject: [PATCH 76/87] Address remaining Ref.Emit ILLink warnings in Mono. (#45723) * Address remaining Ref.Emit ILLink warnings in Mono. Contributes to #45623 * Remove mono suppressions file from illink-sharedframework.targets --- src/libraries/illink-sharedframework.targets | 1 - .../src/ILLink/ILLink.Suppressions.xml | 17 ----------------- .../Reflection/Emit/MethodOnTypeBuilderInst.cs | 3 +++ .../System/Reflection/Emit/TypeBuilder.Mono.cs | 6 ++++-- 4 files changed, 7 insertions(+), 20 deletions(-) delete mode 100644 src/mono/netcore/System.Private.CoreLib/src/ILLink/ILLink.Suppressions.xml diff --git a/src/libraries/illink-sharedframework.targets b/src/libraries/illink-sharedframework.targets index 5b1df7c13de16..5daa06860fa73 100644 --- a/src/libraries/illink-sharedframework.targets +++ b/src/libraries/illink-sharedframework.targets @@ -72,7 +72,6 @@ <_SuppressionsXmls Include="$(CoreLibSharedILLinkSuppressionsFilesPrefix).xml" /> <_SuppressionsXmls Condition="'$(TargetOS)' != 'windows'" Include="$(CoreLibSharedILLinkSuppressionsFilesPrefix).NonWindows.xml" /> - <_SuppressionsXmls Condition="'$(RuntimeFlavor)' == 'Mono'" Include="$(MonoProjectRoot)netcore\System.Private.CoreLib\$(ProjectILLinkSuppressionsFile).xml" /> diff --git a/src/mono/netcore/System.Private.CoreLib/src/ILLink/ILLink.Suppressions.xml b/src/mono/netcore/System.Private.CoreLib/src/ILLink/ILLink.Suppressions.xml deleted file mode 100644 index ea4c3cc3a9eec..0000000000000 --- a/src/mono/netcore/System.Private.CoreLib/src/ILLink/ILLink.Suppressions.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - ILLink - IL2060 - member - M:System.Reflection.Emit.MethodOnTypeBuilderInst.RuntimeResolve - - - ILLink - IL2074 - member - M:System.Reflection.Emit.TypeBuilder.ResolveUserTypes - - - \ No newline at end of file diff --git a/src/mono/netcore/System.Private.CoreLib/src/System/Reflection/Emit/MethodOnTypeBuilderInst.cs b/src/mono/netcore/System.Private.CoreLib/src/System/Reflection/Emit/MethodOnTypeBuilderInst.cs index 50c9711ec306c..98c09481bfbdc 100644 --- a/src/mono/netcore/System.Private.CoreLib/src/System/Reflection/Emit/MethodOnTypeBuilderInst.cs +++ b/src/mono/netcore/System.Private.CoreLib/src/System/Reflection/Emit/MethodOnTypeBuilderInst.cs @@ -100,6 +100,9 @@ private static MethodInfo ExtractBaseMethod(MethodInfo info) } // Called from the runtime to return the corresponding finished MethodInfo object + [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2060:MakeGenericMethod", + Justification = "MethodOnTypeBuilderInst is Reflection.Emit's underlying implementation of MakeGenericMethod. " + + "Callers of the outer calls to MakeGenericMethod will be warned as appropriate.")] internal MethodInfo RuntimeResolve() { Type type = instantiation.InternalResolve(); diff --git a/src/mono/netcore/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilder.Mono.cs b/src/mono/netcore/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilder.Mono.cs index b1d1c06193085..3febd6041e523 100644 --- a/src/mono/netcore/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilder.Mono.cs +++ b/src/mono/netcore/System.Private.CoreLib/src/System/Reflection/Emit/TypeBuilder.Mono.cs @@ -910,6 +910,8 @@ private bool has_ctor_method() return this; } + [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2074:UnrecognizedReflectionPattern", + Justification = "Linker doesn't analyze ResolveUserType but it's an identity function")] private void ResolveUserTypes() { parent = ResolveUserType(parent); @@ -1054,7 +1056,7 @@ public override Type GetElementType() /* Needed to keep signature compatibility with MS.NET */ [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicEvents)] [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2085:UnrecognizedReflectionPattern", - Justification = "Linker doesn't recongnize GetEvents(BindingFlags.Public) but this is what the body is doing")] + Justification = "Linker doesn't recognize GetEvents(BindingFlags.Public) but this is what the body is doing")] public override EventInfo[] GetEvents() { const BindingFlags DefaultBindingFlags = BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance; @@ -1615,7 +1617,7 @@ public FieldBuilder DefineUninitializedData(string name, int size, FieldAttribut public override int MetadataToken => 0x02000000 | table_idx; [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2074:UnrecognizedReflectionPattern", - Justification = "Linker doesn't recongnize ResolveUserType")] + Justification = "Linker doesn't analyze ResolveUserType but it's an identity function")] public void SetParent([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type? parent) { check_not_created(); From 3c0d0e6e659e739a94d5db55a2a11222b15bcd27 Mon Sep 17 00:00:00 2001 From: Eric Erhardt Date: Tue, 8 Dec 2020 17:33:56 -0600 Subject: [PATCH 77/87] Ensure XslCompiledTransform works with TrimMode=link (#45522) Resolve ILLinker warnings in Xml.Xsl in order to make a basic Xslt scenario work. Fix #45393 --- .../src/ILLink/ILLink.Suppressions.Debug.xml | 11 - .../src/ILLink/ILLink.Suppressions.xml | 54 -- .../System/Xml/Xsl/IlGen/GenerateHelper.cs | 628 +++++++++--------- .../Xml/Xsl/IlGen/IteratorDescriptor.cs | 34 +- .../src/System/Xml/Xsl/IlGen/XmlIlVisitor.cs | 102 +-- .../src/System/Xml/Xsl/Runtime/XsltLibrary.cs | 88 ++- .../System.Private.Xml.TrimmingTests.proj | 9 + .../XslCompiledTransformTests.cs | 74 +++ 8 files changed, 518 insertions(+), 482 deletions(-) delete mode 100644 src/libraries/System.Private.Xml/src/ILLink/ILLink.Suppressions.Debug.xml create mode 100644 src/libraries/System.Private.Xml/tests/TrimmingTests/System.Private.Xml.TrimmingTests.proj create mode 100644 src/libraries/System.Private.Xml/tests/TrimmingTests/XslCompiledTransformTests.cs diff --git a/src/libraries/System.Private.Xml/src/ILLink/ILLink.Suppressions.Debug.xml b/src/libraries/System.Private.Xml/src/ILLink/ILLink.Suppressions.Debug.xml deleted file mode 100644 index 53a3323537ddc..0000000000000 --- a/src/libraries/System.Private.Xml/src/ILLink/ILLink.Suppressions.Debug.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - ILLink - IL2075 - member - M:System.Xml.Xsl.IlGen.StorageDescriptor.Current(System.Reflection.Emit.LocalBuilder,System.Type) - - - \ No newline at end of file diff --git a/src/libraries/System.Private.Xml/src/ILLink/ILLink.Suppressions.xml b/src/libraries/System.Private.Xml/src/ILLink/ILLink.Suppressions.xml index 3256637c95633..5cc8e589f0faa 100644 --- a/src/libraries/System.Private.Xml/src/ILLink/ILLink.Suppressions.xml +++ b/src/libraries/System.Private.Xml/src/ILLink/ILLink.Suppressions.xml @@ -31,12 +31,6 @@ member M:System.Xml.Serialization.XmlSerializationWriterCodeGen.WriteCheckDefault(System.Xml.Serialization.TypeMapping,System.String,System.Object,System.Boolean) - - ILLink - IL2057 - member - M:System.Xml.Xsl.IlGen.XmlILStorageMethods.#ctor(System.Type) - ILLink IL2060 @@ -145,48 +139,12 @@ member M:System.Xml.Serialization.XmlReflectionImporter.GetMethodFromSchemaProvider(System.Xml.Serialization.XmlSchemaProviderAttribute,System.Type) - - ILLink - IL2070 - member - M:System.Xml.Xsl.IlGen.XmlILConstructors.GetConstructor(System.Type,System.Type[]) - - - ILLink - IL2070 - member - M:System.Xml.Xsl.IlGen.XmlILConstructors.GetConstructor(System.Type) - - - ILLink - IL2070 - member - M:System.Xml.Xsl.IlGen.XmlILMethods.GetMethod(System.Type,System.String,System.Type[]) - - - ILLink - IL2070 - member - M:System.Xml.Xsl.IlGen.XmlILMethods.GetMethod(System.Type,System.String) - ILLink IL2070 member M:System.Xml.Xsl.Runtime.EarlyBoundInfo.#ctor(System.String,System.Type) - - ILLink - IL2070 - member - M:System.Xml.Xsl.Runtime.XsltMethods.GetMethod(System.Type,System.String,System.Type[]) - - - ILLink - IL2070 - member - M:System.Xml.Xsl.Runtime.XsltMethods.GetMethod(System.Type,System.String) - ILLink IL2070 @@ -361,12 +319,6 @@ member M:System.Xml.Serialization.XmlSerializationWriterILGen.WriteElement(System.Xml.Serialization.SourceInfo,System.Xml.Serialization.ElementAccessor,System.String,System.Boolean) - - ILLink - IL2075 - member - M:System.Xml.Xsl.IlGen.IteratorDescriptor.PushValue - ILLink IL2075 @@ -391,12 +343,6 @@ member M:System.Xml.Serialization.XmlSerializationWriterILGen.WriteText(System.Xml.Serialization.SourceInfo,System.Xml.Serialization.TextAccessor) - - ILLink - IL2080 - member - M:System.Xml.Xsl.IlGen.XmlILStorageMethods.#ctor(System.Type) - ILLink IL2080 diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/IlGen/GenerateHelper.cs b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/IlGen/GenerateHelper.cs index 6891f91bf6851..65ca16a8928ad 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/IlGen/GenerateHelper.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/IlGen/GenerateHelper.cs @@ -27,105 +27,123 @@ namespace System.Xml.Xsl.IlGen internal class XmlILStorageMethods { // Aggregates - public MethodInfo? AggAvg; - public MethodInfo? AggAvgResult; - public MethodInfo? AggCreate; - public MethodInfo? AggIsEmpty; - public MethodInfo? AggMax; - public MethodInfo? AggMaxResult; - public MethodInfo? AggMin; - public MethodInfo? AggMinResult; - public MethodInfo? AggSum; - public MethodInfo? AggSumResult; + public readonly MethodInfo? AggAvg; + public readonly MethodInfo? AggAvgResult; + public readonly MethodInfo? AggCreate; + public readonly MethodInfo? AggIsEmpty; + public readonly MethodInfo? AggMax; + public readonly MethodInfo? AggMaxResult; + public readonly MethodInfo? AggMin; + public readonly MethodInfo? AggMinResult; + public readonly MethodInfo? AggSum; + public readonly MethodInfo? AggSumResult; // Sequences - public Type SeqType; - public FieldInfo SeqEmpty; - public MethodInfo SeqReuse; - public MethodInfo SeqReuseSgl; - public MethodInfo SeqAdd; - public MethodInfo SeqSortByKeys; + public readonly Type SeqType; + public readonly FieldInfo SeqEmpty; + public readonly MethodInfo SeqReuse; + public readonly MethodInfo SeqReuseSgl; + public readonly MethodInfo SeqAdd; + public readonly MethodInfo SeqSortByKeys; // IList<> - public Type IListType; - public MethodInfo IListCount; - public MethodInfo IListItem; + public readonly Type IListType; + public readonly MethodInfo IListCount; + public readonly MethodInfo IListItem; // XPathItem - public MethodInfo? ValueAs; + public readonly MethodInfo? ValueAs; // ToAtomicValue - public MethodInfo? ToAtomicValue; + public readonly MethodInfo? ToAtomicValue; public XmlILStorageMethods(Type storageType) { // Aggregates - if (storageType == typeof(int) || storageType == typeof(long) || - storageType == typeof(decimal) || storageType == typeof(double)) + Type? aggType = null; + if (storageType == typeof(int)) { - string aggTypeName = "System.Xml.Xsl.Runtime." + storageType.Name + "Aggregator"; - Type? aggType = Type.GetType(aggTypeName); - Debug.Assert(aggType != null, $"Could not find type `{aggTypeName}`"); - AggAvg = XmlILMethods.GetMethod(aggType, "Average"); - AggAvgResult = XmlILMethods.GetMethod(aggType, "get_AverageResult"); - AggCreate = XmlILMethods.GetMethod(aggType, "Create"); - AggIsEmpty = XmlILMethods.GetMethod(aggType, "get_IsEmpty"); - AggMax = XmlILMethods.GetMethod(aggType, "Maximum"); - AggMaxResult = XmlILMethods.GetMethod(aggType, "get_MaximumResult"); - AggMin = XmlILMethods.GetMethod(aggType, "Minimum"); - AggMinResult = XmlILMethods.GetMethod(aggType, "get_MinimumResult"); - AggSum = XmlILMethods.GetMethod(aggType, "Sum"); - AggSumResult = XmlILMethods.GetMethod(aggType, "get_SumResult"); + aggType = typeof(Int32Aggregator); + } + else if (storageType == typeof(long)) + { + aggType = typeof(Int64Aggregator); + } + else if (storageType == typeof(decimal)) + { + aggType = typeof(DecimalAggregator); + } + else if (storageType == typeof(double)) + { + aggType = typeof(DoubleAggregator); + } + + if (aggType != null) + { + AggAvg = aggType.GetMethod("Average"); + AggAvgResult = aggType.GetMethod("get_AverageResult"); + AggCreate = aggType.GetMethod("Create"); + AggIsEmpty = aggType.GetMethod("get_IsEmpty"); + AggMax = aggType.GetMethod("Maximum"); + AggMaxResult = aggType.GetMethod("get_MaximumResult"); + AggMin = aggType.GetMethod("Minimum"); + AggMinResult = aggType.GetMethod("get_MinimumResult"); + AggSum = aggType.GetMethod("Sum"); + AggSumResult = aggType.GetMethod("get_SumResult"); } // Sequences + // use local 'sequenceType' variable to work around https://github.com/mono/linker/issues/1664 + Type sequenceType; if (storageType == typeof(XPathNavigator)) { - SeqType = typeof(XmlQueryNodeSequence); - SeqAdd = XmlILMethods.GetMethod(SeqType, "AddClone"); + sequenceType = typeof(XmlQueryNodeSequence); + SeqAdd = sequenceType.GetMethod("AddClone")!; } else if (storageType == typeof(XPathItem)) { - SeqType = typeof(XmlQueryItemSequence); - SeqAdd = XmlILMethods.GetMethod(SeqType, "AddClone"); + sequenceType = typeof(XmlQueryItemSequence); + SeqAdd = sequenceType.GetMethod("AddClone")!; } else { - SeqType = typeof(XmlQuerySequence<>).MakeGenericType(storageType); - SeqAdd = XmlILMethods.GetMethod(SeqType, "Add"); + sequenceType = typeof(XmlQuerySequence<>).MakeGenericType(storageType); + SeqAdd = sequenceType.GetMethod("Add")!; } - FieldInfo? seqEmpty = SeqType.GetField("Empty"); + FieldInfo? seqEmpty = sequenceType.GetField("Empty"); Debug.Assert(seqEmpty != null, "Field `Empty` could not be found"); SeqEmpty = seqEmpty; - SeqReuse = XmlILMethods.GetMethod(SeqType, "CreateOrReuse", SeqType); - SeqReuseSgl = XmlILMethods.GetMethod(SeqType, "CreateOrReuse", SeqType, storageType); - SeqSortByKeys = XmlILMethods.GetMethod(SeqType, "SortByKeys"); + SeqReuse = sequenceType.GetMethod("CreateOrReuse", new[] { sequenceType })!; + SeqReuseSgl = sequenceType.GetMethod("CreateOrReuse", new[] { sequenceType, storageType })!; + SeqSortByKeys = sequenceType.GetMethod("SortByKeys")!; + SeqType = sequenceType; // IList<> - IListType = typeof(IList<>).MakeGenericType(storageType); - IListItem = XmlILMethods.GetMethod(IListType, "get_Item"); - IListCount = XmlILMethods.GetMethod(typeof(ICollection<>).MakeGenericType(storageType), "get_Count"); + Type listType = typeof(IList<>).MakeGenericType(storageType); + IListItem = listType.GetMethod("get_Item")!; + IListType = listType; + IListCount = typeof(ICollection<>).MakeGenericType(storageType).GetMethod("get_Count")!; // XPathItem.ValueAsXXX if (storageType == typeof(string)) - ValueAs = XmlILMethods.GetMethod(typeof(XPathItem), "get_Value"); + ValueAs = typeof(XPathItem).GetMethod("get_Value"); else if (storageType == typeof(int)) - ValueAs = XmlILMethods.GetMethod(typeof(XPathItem), "get_ValueAsInt"); + ValueAs = typeof(XPathItem).GetMethod("get_ValueAsInt"); else if (storageType == typeof(long)) - ValueAs = XmlILMethods.GetMethod(typeof(XPathItem), "get_ValueAsLong"); + ValueAs = typeof(XPathItem).GetMethod("get_ValueAsLong"); else if (storageType == typeof(DateTime)) - ValueAs = XmlILMethods.GetMethod(typeof(XPathItem), "get_ValueAsDateTime"); + ValueAs = typeof(XPathItem).GetMethod("get_ValueAsDateTime"); else if (storageType == typeof(double)) - ValueAs = XmlILMethods.GetMethod(typeof(XPathItem), "get_ValueAsDouble"); + ValueAs = typeof(XPathItem).GetMethod("get_ValueAsDouble"); else if (storageType == typeof(bool)) - ValueAs = XmlILMethods.GetMethod(typeof(XPathItem), "get_ValueAsBoolean"); + ValueAs = typeof(XPathItem).GetMethod("get_ValueAsBoolean"); // XmlILStorageConverter.XXXToAtomicValue if (storageType == typeof(byte[])) - ToAtomicValue = XmlILMethods.GetMethod(typeof(XmlILStorageConverter), "BytesToAtomicValue"); + ToAtomicValue = typeof(XmlILStorageConverter).GetMethod("BytesToAtomicValue"); else if (storageType != typeof(XPathItem) && storageType != typeof(XPathNavigator)) - ToAtomicValue = XmlILMethods.GetMethod(typeof(XmlILStorageConverter), storageType.Name + "ToAtomicValue"); + ToAtomicValue = typeof(XmlILStorageConverter).GetMethod(storageType.Name + "ToAtomicValue"); } } @@ -134,273 +152,285 @@ public XmlILStorageMethods(Type storageType) /// internal static class XmlILConstructors { - public static readonly ConstructorInfo DecFromParts = GetConstructor(typeof(decimal), typeof(int), typeof(int), typeof(int), typeof(bool), typeof(byte)); - public static readonly ConstructorInfo DecFromInt32 = GetConstructor(typeof(decimal), typeof(int)); - public static readonly ConstructorInfo DecFromInt64 = GetConstructor(typeof(decimal), typeof(long)); - public static readonly ConstructorInfo Debuggable = GetConstructor(typeof(DebuggableAttribute), typeof(DebuggableAttribute.DebuggingModes)); - public static readonly ConstructorInfo NonUserCode = GetConstructor(typeof(DebuggerNonUserCodeAttribute)); - public static readonly ConstructorInfo QName = GetConstructor(typeof(XmlQualifiedName), typeof(string), typeof(string)); - public static readonly ConstructorInfo StepThrough = GetConstructor(typeof(DebuggerStepThroughAttribute)); - public static readonly ConstructorInfo Transparent = GetConstructor(typeof(SecurityTransparentAttribute)); - - private static ConstructorInfo GetConstructor(Type className) - { - ConstructorInfo constrInfo = className.GetConstructor(Type.EmptyTypes)!; - Debug.Assert(constrInfo != null, "Constructor " + className + " cannot be null."); - return constrInfo; - } - - private static ConstructorInfo GetConstructor(Type className, params Type[] args) - { - ConstructorInfo constrInfo = className.GetConstructor(args)!; - Debug.Assert(constrInfo != null, "Constructor " + className + " cannot be null."); - return constrInfo; - } + public static readonly ConstructorInfo DecFromParts = typeof(decimal).GetConstructor(new[] { typeof(int), typeof(int), typeof(int), typeof(bool), typeof(byte) })!; + public static readonly ConstructorInfo DecFromInt32 = typeof(decimal).GetConstructor(new[] { typeof(int) })!; + public static readonly ConstructorInfo DecFromInt64 = typeof(decimal).GetConstructor(new[] { typeof(long) })!; + public static readonly ConstructorInfo Debuggable = typeof(DebuggableAttribute).GetConstructor(new[] { typeof(DebuggableAttribute.DebuggingModes) })!; + public static readonly ConstructorInfo NonUserCode = typeof(DebuggerNonUserCodeAttribute).GetConstructor(Type.EmptyTypes)!; + public static readonly ConstructorInfo QName = typeof(XmlQualifiedName).GetConstructor(new[] { typeof(string), typeof(string) })!; + public static readonly ConstructorInfo StepThrough = typeof(DebuggerStepThroughAttribute).GetConstructor(Type.EmptyTypes)!; + public static readonly ConstructorInfo Transparent = typeof(SecurityTransparentAttribute).GetConstructor(Type.EmptyTypes)!; } - /// /// List of all XmlIL runtime methods. /// internal static class XmlILMethods { // Iterators - public static readonly MethodInfo AncCreate = GetMethod(typeof(AncestorIterator), "Create"); - public static readonly MethodInfo AncNext = GetMethod(typeof(AncestorIterator), "MoveNext"); - public static readonly MethodInfo AncDOCreate = GetMethod(typeof(AncestorDocOrderIterator), "Create"); - public static readonly MethodInfo AncDONext = GetMethod(typeof(AncestorDocOrderIterator), "MoveNext"); - public static readonly MethodInfo AttrContentCreate = GetMethod(typeof(AttributeContentIterator), "Create"); - public static readonly MethodInfo AttrContentNext = GetMethod(typeof(AttributeContentIterator), "MoveNext"); - public static readonly MethodInfo AttrCreate = GetMethod(typeof(AttributeIterator), "Create"); - public static readonly MethodInfo AttrNext = GetMethod(typeof(AttributeIterator), "MoveNext"); - public static readonly MethodInfo ContentCreate = GetMethod(typeof(ContentIterator), "Create"); - public static readonly MethodInfo ContentNext = GetMethod(typeof(ContentIterator), "MoveNext"); - public static readonly MethodInfo ContentMergeCreate = GetMethod(typeof(ContentMergeIterator), "Create"); - public static readonly MethodInfo ContentMergeNext = GetMethod(typeof(ContentMergeIterator), "MoveNext"); - public static readonly MethodInfo DescCreate = GetMethod(typeof(DescendantIterator), "Create"); - public static readonly MethodInfo DescNext = GetMethod(typeof(DescendantIterator), "MoveNext"); - public static readonly MethodInfo DescMergeCreate = GetMethod(typeof(DescendantMergeIterator), "Create"); - public static readonly MethodInfo DescMergeNext = GetMethod(typeof(DescendantMergeIterator), "MoveNext"); - public static readonly MethodInfo DiffCreate = GetMethod(typeof(DifferenceIterator), "Create"); - public static readonly MethodInfo DiffNext = GetMethod(typeof(DifferenceIterator), "MoveNext"); - public static readonly MethodInfo DodMergeCreate = GetMethod(typeof(DodSequenceMerge), "Create"); - public static readonly MethodInfo DodMergeAdd = GetMethod(typeof(DodSequenceMerge), "AddSequence"); - public static readonly MethodInfo DodMergeSeq = GetMethod(typeof(DodSequenceMerge), "MergeSequences"); - public static readonly MethodInfo ElemContentCreate = GetMethod(typeof(ElementContentIterator), "Create"); - public static readonly MethodInfo ElemContentNext = GetMethod(typeof(ElementContentIterator), "MoveNext"); - public static readonly MethodInfo FollSibCreate = GetMethod(typeof(FollowingSiblingIterator), "Create"); - public static readonly MethodInfo FollSibNext = GetMethod(typeof(FollowingSiblingIterator), "MoveNext"); - public static readonly MethodInfo FollSibMergeCreate = GetMethod(typeof(FollowingSiblingMergeIterator), "Create"); - public static readonly MethodInfo FollSibMergeNext = GetMethod(typeof(FollowingSiblingMergeIterator), "MoveNext"); - public static readonly MethodInfo IdCreate = GetMethod(typeof(IdIterator), "Create"); - public static readonly MethodInfo IdNext = GetMethod(typeof(IdIterator), "MoveNext"); - public static readonly MethodInfo InterCreate = GetMethod(typeof(IntersectIterator), "Create"); - public static readonly MethodInfo InterNext = GetMethod(typeof(IntersectIterator), "MoveNext"); - public static readonly MethodInfo KindContentCreate = GetMethod(typeof(NodeKindContentIterator), "Create"); - public static readonly MethodInfo KindContentNext = GetMethod(typeof(NodeKindContentIterator), "MoveNext"); - public static readonly MethodInfo NmspCreate = GetMethod(typeof(NamespaceIterator), "Create"); - public static readonly MethodInfo NmspNext = GetMethod(typeof(NamespaceIterator), "MoveNext"); - public static readonly MethodInfo NodeRangeCreate = GetMethod(typeof(NodeRangeIterator), "Create"); - public static readonly MethodInfo NodeRangeNext = GetMethod(typeof(NodeRangeIterator), "MoveNext"); - public static readonly MethodInfo ParentCreate = GetMethod(typeof(ParentIterator), "Create"); - public static readonly MethodInfo ParentNext = GetMethod(typeof(ParentIterator), "MoveNext"); - public static readonly MethodInfo PrecCreate = GetMethod(typeof(PrecedingIterator), "Create"); - public static readonly MethodInfo PrecNext = GetMethod(typeof(PrecedingIterator), "MoveNext"); - public static readonly MethodInfo PreSibCreate = GetMethod(typeof(PrecedingSiblingIterator), "Create"); - public static readonly MethodInfo PreSibNext = GetMethod(typeof(PrecedingSiblingIterator), "MoveNext"); - public static readonly MethodInfo PreSibDOCreate = GetMethod(typeof(PrecedingSiblingDocOrderIterator), "Create"); - public static readonly MethodInfo PreSibDONext = GetMethod(typeof(PrecedingSiblingDocOrderIterator), "MoveNext"); - public static readonly MethodInfo SortKeyCreate = GetMethod(typeof(XmlSortKeyAccumulator), "Create"); - public static readonly MethodInfo SortKeyDateTime = GetMethod(typeof(XmlSortKeyAccumulator), "AddDateTimeSortKey"); - public static readonly MethodInfo SortKeyDecimal = GetMethod(typeof(XmlSortKeyAccumulator), "AddDecimalSortKey"); - public static readonly MethodInfo SortKeyDouble = GetMethod(typeof(XmlSortKeyAccumulator), "AddDoubleSortKey"); - public static readonly MethodInfo SortKeyEmpty = GetMethod(typeof(XmlSortKeyAccumulator), "AddEmptySortKey"); - public static readonly MethodInfo SortKeyFinish = GetMethod(typeof(XmlSortKeyAccumulator), "FinishSortKeys"); - public static readonly MethodInfo SortKeyInt = GetMethod(typeof(XmlSortKeyAccumulator), "AddIntSortKey"); - public static readonly MethodInfo SortKeyInteger = GetMethod(typeof(XmlSortKeyAccumulator), "AddIntegerSortKey"); - public static readonly MethodInfo SortKeyKeys = GetMethod(typeof(XmlSortKeyAccumulator), "get_Keys"); - public static readonly MethodInfo SortKeyString = GetMethod(typeof(XmlSortKeyAccumulator), "AddStringSortKey"); - public static readonly MethodInfo UnionCreate = GetMethod(typeof(UnionIterator), "Create"); - public static readonly MethodInfo UnionNext = GetMethod(typeof(UnionIterator), "MoveNext"); - public static readonly MethodInfo XPFollCreate = GetMethod(typeof(XPathFollowingIterator), "Create"); - public static readonly MethodInfo XPFollNext = GetMethod(typeof(XPathFollowingIterator), "MoveNext"); - public static readonly MethodInfo XPFollMergeCreate = GetMethod(typeof(XPathFollowingMergeIterator), "Create"); - public static readonly MethodInfo XPFollMergeNext = GetMethod(typeof(XPathFollowingMergeIterator), "MoveNext"); - public static readonly MethodInfo XPPrecCreate = GetMethod(typeof(XPathPrecedingIterator), "Create"); - public static readonly MethodInfo XPPrecNext = GetMethod(typeof(XPathPrecedingIterator), "MoveNext"); - public static readonly MethodInfo XPPrecDOCreate = GetMethod(typeof(XPathPrecedingDocOrderIterator), "Create"); - public static readonly MethodInfo XPPrecDONext = GetMethod(typeof(XPathPrecedingDocOrderIterator), "MoveNext"); - public static readonly MethodInfo XPPrecMergeCreate = GetMethod(typeof(XPathPrecedingMergeIterator), "Create"); - public static readonly MethodInfo XPPrecMergeNext = GetMethod(typeof(XPathPrecedingMergeIterator), "MoveNext"); + public static readonly MethodInfo AncCreate = typeof(AncestorIterator).GetMethod("Create")!; + public static readonly MethodInfo AncNext = typeof(AncestorIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo AncCurrent = typeof(AncestorIterator).GetMethod("get_Current")!; + public static readonly MethodInfo AncDOCreate = typeof(AncestorDocOrderIterator).GetMethod("Create")!; + public static readonly MethodInfo AncDONext = typeof(AncestorDocOrderIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo AncDOCurrent = typeof(AncestorDocOrderIterator).GetMethod("get_Current")!; + public static readonly MethodInfo AttrContentCreate = typeof(AttributeContentIterator).GetMethod("Create")!; + public static readonly MethodInfo AttrContentNext = typeof(AttributeContentIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo AttrContentCurrent = typeof(AttributeContentIterator).GetMethod("get_Current")!; + public static readonly MethodInfo AttrCreate = typeof(AttributeIterator).GetMethod("Create")!; + public static readonly MethodInfo AttrNext = typeof(AttributeIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo AttrCurrent = typeof(AttributeIterator).GetMethod("get_Current")!; + public static readonly MethodInfo ContentCreate = typeof(ContentIterator).GetMethod("Create")!; + public static readonly MethodInfo ContentNext = typeof(ContentIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo ContentCurrent = typeof(ContentIterator).GetMethod("get_Current")!; + public static readonly MethodInfo ContentMergeCreate = typeof(ContentMergeIterator).GetMethod("Create")!; + public static readonly MethodInfo ContentMergeNext = typeof(ContentMergeIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo ContentMergeCurrent = typeof(ContentMergeIterator).GetMethod("get_Current")!; + public static readonly MethodInfo DescCreate = typeof(DescendantIterator).GetMethod("Create")!; + public static readonly MethodInfo DescNext = typeof(DescendantIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo DescCurrent = typeof(DescendantIterator).GetMethod("get_Current")!; + public static readonly MethodInfo DescMergeCreate = typeof(DescendantMergeIterator).GetMethod("Create")!; + public static readonly MethodInfo DescMergeNext = typeof(DescendantMergeIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo DescMergeCurrent = typeof(DescendantMergeIterator).GetMethod("get_Current")!; + public static readonly MethodInfo DiffCreate = typeof(DifferenceIterator).GetMethod("Create")!; + public static readonly MethodInfo DiffNext = typeof(DifferenceIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo DiffCurrent = typeof(DifferenceIterator).GetMethod("get_Current")!; + public static readonly MethodInfo DodMergeCreate = typeof(DodSequenceMerge).GetMethod("Create")!; + public static readonly MethodInfo DodMergeAdd = typeof(DodSequenceMerge).GetMethod("AddSequence")!; + public static readonly MethodInfo DodMergeSeq = typeof(DodSequenceMerge).GetMethod("MergeSequences")!; + public static readonly MethodInfo ElemContentCreate = typeof(ElementContentIterator).GetMethod("Create")!; + public static readonly MethodInfo ElemContentNext = typeof(ElementContentIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo ElemContentCurrent = typeof(ElementContentIterator).GetMethod("get_Current")!; + public static readonly MethodInfo FollSibCreate = typeof(FollowingSiblingIterator).GetMethod("Create")!; + public static readonly MethodInfo FollSibNext = typeof(FollowingSiblingIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo FollSibCurrent = typeof(FollowingSiblingIterator).GetMethod("get_Current")!; + public static readonly MethodInfo FollSibMergeCreate = typeof(FollowingSiblingMergeIterator).GetMethod("Create")!; + public static readonly MethodInfo FollSibMergeNext = typeof(FollowingSiblingMergeIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo FollSibMergeCurrent = typeof(FollowingSiblingMergeIterator).GetMethod("get_Current")!; + public static readonly MethodInfo IdCreate = typeof(IdIterator).GetMethod("Create")!; + public static readonly MethodInfo IdNext = typeof(IdIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo IdCurrent = typeof(IdIterator).GetMethod("get_Current")!; + public static readonly MethodInfo InterCreate = typeof(IntersectIterator).GetMethod("Create")!; + public static readonly MethodInfo InterNext = typeof(IntersectIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo InterCurrent = typeof(IntersectIterator).GetMethod("get_Current")!; + public static readonly MethodInfo KindContentCreate = typeof(NodeKindContentIterator).GetMethod("Create")!; + public static readonly MethodInfo KindContentNext = typeof(NodeKindContentIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo KindContentCurrent = typeof(NodeKindContentIterator).GetMethod("get_Current")!; + public static readonly MethodInfo NmspCreate = typeof(NamespaceIterator).GetMethod("Create")!; + public static readonly MethodInfo NmspNext = typeof(NamespaceIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo NmspCurrent = typeof(NamespaceIterator).GetMethod("get_Current")!; + public static readonly MethodInfo NodeRangeCreate = typeof(NodeRangeIterator).GetMethod("Create")!; + public static readonly MethodInfo NodeRangeNext = typeof(NodeRangeIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo NodeRangeCurrent = typeof(NodeRangeIterator).GetMethod("get_Current")!; + public static readonly MethodInfo ParentCreate = typeof(ParentIterator).GetMethod("Create")!; + public static readonly MethodInfo ParentNext = typeof(ParentIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo ParentCurrent = typeof(ParentIterator).GetMethod("get_Current")!; + public static readonly MethodInfo PrecCreate = typeof(PrecedingIterator).GetMethod("Create")!; + public static readonly MethodInfo PrecNext = typeof(PrecedingIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo PrecCurrent = typeof(PrecedingIterator).GetMethod("get_Current")!; + public static readonly MethodInfo PreSibCreate = typeof(PrecedingSiblingIterator).GetMethod("Create")!; + public static readonly MethodInfo PreSibNext = typeof(PrecedingSiblingIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo PreSibCurrent = typeof(PrecedingSiblingIterator).GetMethod("get_Current")!; + public static readonly MethodInfo PreSibDOCreate = typeof(PrecedingSiblingDocOrderIterator).GetMethod("Create")!; + public static readonly MethodInfo PreSibDONext = typeof(PrecedingSiblingDocOrderIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo PreSibDOCurrent = typeof(PrecedingSiblingDocOrderIterator).GetMethod("get_Current")!; + public static readonly MethodInfo SortKeyCreate = typeof(XmlSortKeyAccumulator).GetMethod("Create")!; + public static readonly MethodInfo SortKeyDateTime = typeof(XmlSortKeyAccumulator).GetMethod("AddDateTimeSortKey")!; + public static readonly MethodInfo SortKeyDecimal = typeof(XmlSortKeyAccumulator).GetMethod("AddDecimalSortKey")!; + public static readonly MethodInfo SortKeyDouble = typeof(XmlSortKeyAccumulator).GetMethod("AddDoubleSortKey")!; + public static readonly MethodInfo SortKeyEmpty = typeof(XmlSortKeyAccumulator).GetMethod("AddEmptySortKey")!; + public static readonly MethodInfo SortKeyFinish = typeof(XmlSortKeyAccumulator).GetMethod("FinishSortKeys")!; + public static readonly MethodInfo SortKeyInt = typeof(XmlSortKeyAccumulator).GetMethod("AddIntSortKey")!; + public static readonly MethodInfo SortKeyInteger = typeof(XmlSortKeyAccumulator).GetMethod("AddIntegerSortKey")!; + public static readonly MethodInfo SortKeyKeys = typeof(XmlSortKeyAccumulator).GetMethod("get_Keys")!; + public static readonly MethodInfo SortKeyString = typeof(XmlSortKeyAccumulator).GetMethod("AddStringSortKey")!; + public static readonly MethodInfo UnionCreate = typeof(UnionIterator).GetMethod("Create")!; + public static readonly MethodInfo UnionNext = typeof(UnionIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo UnionCurrent = typeof(UnionIterator).GetMethod("get_Current")!; + public static readonly MethodInfo XPFollCreate = typeof(XPathFollowingIterator).GetMethod("Create")!; + public static readonly MethodInfo XPFollNext = typeof(XPathFollowingIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo XPFollCurrent = typeof(XPathFollowingIterator).GetMethod("get_Current")!; + public static readonly MethodInfo XPFollMergeCreate = typeof(XPathFollowingMergeIterator).GetMethod("Create")!; + public static readonly MethodInfo XPFollMergeNext = typeof(XPathFollowingMergeIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo XPFollMergeCurrent = typeof(XPathFollowingMergeIterator).GetMethod("get_Current")!; + public static readonly MethodInfo XPPrecCreate = typeof(XPathPrecedingIterator).GetMethod("Create")!; + public static readonly MethodInfo XPPrecNext = typeof(XPathPrecedingIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo XPPrecCurrent = typeof(XPathPrecedingIterator).GetMethod("get_Current")!; + public static readonly MethodInfo XPPrecDOCreate = typeof(XPathPrecedingDocOrderIterator).GetMethod("Create")!; + public static readonly MethodInfo XPPrecDONext = typeof(XPathPrecedingDocOrderIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo XPPrecDOCurrent = typeof(XPathPrecedingDocOrderIterator).GetMethod("get_Current")!; + public static readonly MethodInfo XPPrecMergeCreate = typeof(XPathPrecedingMergeIterator).GetMethod("Create")!; + public static readonly MethodInfo XPPrecMergeNext = typeof(XPathPrecedingMergeIterator).GetMethod("MoveNext")!; + public static readonly MethodInfo XPPrecMergeCurrent = typeof(XPathPrecedingMergeIterator).GetMethod("get_Current")!; // XmlQueryRuntime - public static readonly MethodInfo AddNewIndex = GetMethod(typeof(XmlQueryRuntime), "AddNewIndex"); - public static readonly MethodInfo ChangeTypeXsltArg = GetMethod(typeof(XmlQueryRuntime), "ChangeTypeXsltArgument", typeof(int), typeof(object), typeof(Type)); - public static readonly MethodInfo ChangeTypeXsltResult = GetMethod(typeof(XmlQueryRuntime), "ChangeTypeXsltResult"); - public static readonly MethodInfo CompPos = GetMethod(typeof(XmlQueryRuntime), "ComparePosition"); - public static readonly MethodInfo Context = GetMethod(typeof(XmlQueryRuntime), "get_ExternalContext"); - public static readonly MethodInfo CreateCollation = GetMethod(typeof(XmlQueryRuntime), "CreateCollation"); - public static readonly MethodInfo DocOrder = GetMethod(typeof(XmlQueryRuntime), "DocOrderDistinct"); - public static readonly MethodInfo EndRtfConstr = GetMethod(typeof(XmlQueryRuntime), "EndRtfConstruction"); - public static readonly MethodInfo EndSeqConstr = GetMethod(typeof(XmlQueryRuntime), "EndSequenceConstruction"); - public static readonly MethodInfo FindIndex = GetMethod(typeof(XmlQueryRuntime), "FindIndex"); - public static readonly MethodInfo GenId = GetMethod(typeof(XmlQueryRuntime), "GenerateId"); - public static readonly MethodInfo GetAtomizedName = GetMethod(typeof(XmlQueryRuntime), "GetAtomizedName"); - public static readonly MethodInfo GetCollation = GetMethod(typeof(XmlQueryRuntime), "GetCollation"); - public static readonly MethodInfo GetEarly = GetMethod(typeof(XmlQueryRuntime), "GetEarlyBoundObject"); - public static readonly MethodInfo GetNameFilter = GetMethod(typeof(XmlQueryRuntime), "GetNameFilter"); - public static readonly MethodInfo GetOutput = GetMethod(typeof(XmlQueryRuntime), "get_Output"); - public static readonly MethodInfo GetGlobalValue = GetMethod(typeof(XmlQueryRuntime), "GetGlobalValue"); - public static readonly MethodInfo GetTypeFilter = GetMethod(typeof(XmlQueryRuntime), "GetTypeFilter"); - public static readonly MethodInfo GlobalComputed = GetMethod(typeof(XmlQueryRuntime), "IsGlobalComputed"); - public static readonly MethodInfo ItemMatchesCode = GetMethod(typeof(XmlQueryRuntime), "MatchesXmlType", typeof(XPathItem), typeof(XmlTypeCode)); - public static readonly MethodInfo ItemMatchesType = GetMethod(typeof(XmlQueryRuntime), "MatchesXmlType", typeof(XPathItem), typeof(int)); - public static readonly MethodInfo QNameEqualLit = GetMethod(typeof(XmlQueryRuntime), "IsQNameEqual", typeof(XPathNavigator), typeof(int), typeof(int)); - public static readonly MethodInfo QNameEqualNav = GetMethod(typeof(XmlQueryRuntime), "IsQNameEqual", typeof(XPathNavigator), typeof(XPathNavigator)); - public static readonly MethodInfo RtfConstr = GetMethod(typeof(XmlQueryRuntime), "TextRtfConstruction"); - public static readonly MethodInfo SendMessage = GetMethod(typeof(XmlQueryRuntime), "SendMessage"); - public static readonly MethodInfo SeqMatchesCode = GetMethod(typeof(XmlQueryRuntime), "MatchesXmlType", typeof(IList), typeof(XmlTypeCode)); - public static readonly MethodInfo SeqMatchesType = GetMethod(typeof(XmlQueryRuntime), "MatchesXmlType", typeof(IList), typeof(int)); - public static readonly MethodInfo SetGlobalValue = GetMethod(typeof(XmlQueryRuntime), "SetGlobalValue"); - public static readonly MethodInfo StartRtfConstr = GetMethod(typeof(XmlQueryRuntime), "StartRtfConstruction"); - public static readonly MethodInfo StartSeqConstr = GetMethod(typeof(XmlQueryRuntime), "StartSequenceConstruction"); - public static readonly MethodInfo TagAndMappings = GetMethod(typeof(XmlQueryRuntime), "ParseTagName", typeof(string), typeof(int)); - public static readonly MethodInfo TagAndNamespace = GetMethod(typeof(XmlQueryRuntime), "ParseTagName", typeof(string), typeof(string)); - public static readonly MethodInfo ThrowException = GetMethod(typeof(XmlQueryRuntime), "ThrowException"); - public static readonly MethodInfo XsltLib = GetMethod(typeof(XmlQueryRuntime), "get_XsltFunctions"); + public static readonly MethodInfo AddNewIndex = typeof(XmlQueryRuntime).GetMethod("AddNewIndex")!; + public static readonly MethodInfo ChangeTypeXsltArg = typeof(XmlQueryRuntime).GetMethod("ChangeTypeXsltArgument", new[] { typeof(int), typeof(object), typeof(Type) })!; + public static readonly MethodInfo ChangeTypeXsltResult = typeof(XmlQueryRuntime).GetMethod("ChangeTypeXsltResult")!; + public static readonly MethodInfo CompPos = typeof(XmlQueryRuntime).GetMethod("ComparePosition")!; + public static readonly MethodInfo Context = typeof(XmlQueryRuntime).GetMethod("get_ExternalContext")!; + public static readonly MethodInfo CreateCollation = typeof(XmlQueryRuntime).GetMethod("CreateCollation")!; + public static readonly MethodInfo DocOrder = typeof(XmlQueryRuntime).GetMethod("DocOrderDistinct")!; + public static readonly MethodInfo EndRtfConstr = typeof(XmlQueryRuntime).GetMethod("EndRtfConstruction")!; + public static readonly MethodInfo EndSeqConstr = typeof(XmlQueryRuntime).GetMethod("EndSequenceConstruction")!; + public static readonly MethodInfo FindIndex = typeof(XmlQueryRuntime).GetMethod("FindIndex")!; + public static readonly MethodInfo GenId = typeof(XmlQueryRuntime).GetMethod("GenerateId")!; + public static readonly MethodInfo GetAtomizedName = typeof(XmlQueryRuntime).GetMethod("GetAtomizedName")!; + public static readonly MethodInfo GetCollation = typeof(XmlQueryRuntime).GetMethod("GetCollation")!; + public static readonly MethodInfo GetEarly = typeof(XmlQueryRuntime).GetMethod("GetEarlyBoundObject")!; + public static readonly MethodInfo GetNameFilter = typeof(XmlQueryRuntime).GetMethod("GetNameFilter")!; + public static readonly MethodInfo GetOutput = typeof(XmlQueryRuntime).GetMethod("get_Output")!; + public static readonly MethodInfo GetGlobalValue = typeof(XmlQueryRuntime).GetMethod("GetGlobalValue")!; + public static readonly MethodInfo GetTypeFilter = typeof(XmlQueryRuntime).GetMethod("GetTypeFilter")!; + public static readonly MethodInfo GlobalComputed = typeof(XmlQueryRuntime).GetMethod("IsGlobalComputed")!; + public static readonly MethodInfo ItemMatchesCode = typeof(XmlQueryRuntime).GetMethod("MatchesXmlType", new[] { typeof(XPathItem), typeof(XmlTypeCode) })!; + public static readonly MethodInfo ItemMatchesType = typeof(XmlQueryRuntime).GetMethod("MatchesXmlType", new[] { typeof(XPathItem), typeof(int) })!; + public static readonly MethodInfo QNameEqualLit = typeof(XmlQueryRuntime).GetMethod("IsQNameEqual", new[] { typeof(XPathNavigator), typeof(int), typeof(int) })!; + public static readonly MethodInfo QNameEqualNav = typeof(XmlQueryRuntime).GetMethod("IsQNameEqual", new[] { typeof(XPathNavigator), typeof(XPathNavigator) })!; + public static readonly MethodInfo RtfConstr = typeof(XmlQueryRuntime).GetMethod("TextRtfConstruction")!; + public static readonly MethodInfo SendMessage = typeof(XmlQueryRuntime).GetMethod("SendMessage")!; + public static readonly MethodInfo SeqMatchesCode = typeof(XmlQueryRuntime).GetMethod("MatchesXmlType", new[] { typeof(IList), typeof(XmlTypeCode) })!; + public static readonly MethodInfo SeqMatchesType = typeof(XmlQueryRuntime).GetMethod("MatchesXmlType", new[] { typeof(IList), typeof(int) })!; + public static readonly MethodInfo SetGlobalValue = typeof(XmlQueryRuntime).GetMethod("SetGlobalValue")!; + public static readonly MethodInfo StartRtfConstr = typeof(XmlQueryRuntime).GetMethod("StartRtfConstruction")!; + public static readonly MethodInfo StartSeqConstr = typeof(XmlQueryRuntime).GetMethod("StartSequenceConstruction")!; + public static readonly MethodInfo TagAndMappings = typeof(XmlQueryRuntime).GetMethod("ParseTagName", new[] { typeof(string), typeof(int) })!; + public static readonly MethodInfo TagAndNamespace = typeof(XmlQueryRuntime).GetMethod("ParseTagName", new[] { typeof(string), typeof(string) })!; + public static readonly MethodInfo ThrowException = typeof(XmlQueryRuntime).GetMethod("ThrowException")!; + public static readonly MethodInfo XsltLib = typeof(XmlQueryRuntime).GetMethod("get_XsltFunctions")!; // XmlQueryContext - public static readonly MethodInfo GetDataSource = GetMethod(typeof(XmlQueryContext), "GetDataSource"); - public static readonly MethodInfo GetDefaultDataSource = GetMethod(typeof(XmlQueryContext), "get_DefaultDataSource"); - public static readonly MethodInfo GetParam = GetMethod(typeof(XmlQueryContext), "GetParameter"); - public static readonly MethodInfo InvokeXsltLate = GetMethod(typeof(XmlQueryContext), "InvokeXsltLateBoundFunction"); + public static readonly MethodInfo GetDataSource = typeof(XmlQueryContext).GetMethod("GetDataSource")!; + public static readonly MethodInfo GetDefaultDataSource = typeof(XmlQueryContext).GetMethod("get_DefaultDataSource")!; + public static readonly MethodInfo GetParam = typeof(XmlQueryContext).GetMethod("GetParameter")!; + public static readonly MethodInfo InvokeXsltLate = typeof(XmlQueryContext).GetMethod("InvokeXsltLateBoundFunction")!; // XmlILIndex - public static readonly MethodInfo IndexAdd = GetMethod(typeof(XmlILIndex), "Add"); - public static readonly MethodInfo IndexLookup = GetMethod(typeof(XmlILIndex), "Lookup"); + public static readonly MethodInfo IndexAdd = typeof(XmlILIndex).GetMethod("Add")!; + public static readonly MethodInfo IndexLookup = typeof(XmlILIndex).GetMethod("Lookup")!; // XPathItem - public static readonly MethodInfo ItemIsNode = GetMethod(typeof(XPathItem), "get_IsNode"); - public static readonly MethodInfo Value = GetMethod(typeof(XPathItem), "get_Value"); - public static readonly MethodInfo ValueAsAny = GetMethod(typeof(XPathItem), "ValueAs", typeof(Type), typeof(IXmlNamespaceResolver)); + public static readonly MethodInfo ItemIsNode = typeof(XPathItem).GetMethod("get_IsNode")!; + public static readonly MethodInfo Value = typeof(XPathItem).GetMethod("get_Value")!; + public static readonly MethodInfo ValueAsAny = typeof(XPathItem).GetMethod("ValueAs", new[] { typeof(Type), typeof(IXmlNamespaceResolver) })!; // XPathNavigator - public static readonly MethodInfo NavClone = GetMethod(typeof(XPathNavigator), "Clone"); - public static readonly MethodInfo NavLocalName = GetMethod(typeof(XPathNavigator), "get_LocalName"); - public static readonly MethodInfo NavMoveAttr = GetMethod(typeof(XPathNavigator), "MoveToAttribute", typeof(string), typeof(string)); - public static readonly MethodInfo NavMoveId = GetMethod(typeof(XPathNavigator), "MoveToId"); - public static readonly MethodInfo NavMoveParent = GetMethod(typeof(XPathNavigator), "MoveToParent"); - public static readonly MethodInfo NavMoveRoot = GetMethod(typeof(XPathNavigator), "MoveToRoot"); - public static readonly MethodInfo NavMoveTo = GetMethod(typeof(XPathNavigator), "MoveTo"); - public static readonly MethodInfo NavNmsp = GetMethod(typeof(XPathNavigator), "get_NamespaceURI"); - public static readonly MethodInfo NavPrefix = GetMethod(typeof(XPathNavigator), "get_Prefix"); - public static readonly MethodInfo NavSamePos = GetMethod(typeof(XPathNavigator), "IsSamePosition"); - public static readonly MethodInfo NavType = GetMethod(typeof(XPathNavigator), "get_NodeType"); + public static readonly MethodInfo NavClone = typeof(XPathNavigator).GetMethod("Clone")!; + public static readonly MethodInfo NavLocalName = typeof(XPathNavigator).GetMethod("get_LocalName")!; + public static readonly MethodInfo NavMoveAttr = typeof(XPathNavigator).GetMethod("MoveToAttribute", new[] { typeof(string), typeof(string) })!; + public static readonly MethodInfo NavMoveId = typeof(XPathNavigator).GetMethod("MoveToId")!; + public static readonly MethodInfo NavMoveParent = typeof(XPathNavigator).GetMethod("MoveToParent")!; + public static readonly MethodInfo NavMoveRoot = typeof(XPathNavigator).GetMethod("MoveToRoot")!; + public static readonly MethodInfo NavMoveTo = typeof(XPathNavigator).GetMethod("MoveTo")!; + public static readonly MethodInfo NavNmsp = typeof(XPathNavigator).GetMethod("get_NamespaceURI")!; + public static readonly MethodInfo NavPrefix = typeof(XPathNavigator).GetMethod("get_Prefix")!; + public static readonly MethodInfo NavSamePos = typeof(XPathNavigator).GetMethod("IsSamePosition")!; + public static readonly MethodInfo NavType = typeof(XPathNavigator).GetMethod("get_NodeType")!; // XmlQueryOutput methods - public static readonly MethodInfo StartElemLitName = GetMethod(typeof(XmlQueryOutput), "WriteStartElement", typeof(string), typeof(string), typeof(string)); - public static readonly MethodInfo StartElemLocName = GetMethod(typeof(XmlQueryOutput), "WriteStartElementLocalName", typeof(string)); - public static readonly MethodInfo EndElemStackName = GetMethod(typeof(XmlQueryOutput), "WriteEndElement"); - public static readonly MethodInfo StartAttrLitName = GetMethod(typeof(XmlQueryOutput), "WriteStartAttribute", typeof(string), typeof(string), typeof(string)); - public static readonly MethodInfo StartAttrLocName = GetMethod(typeof(XmlQueryOutput), "WriteStartAttributeLocalName", typeof(string)); - public static readonly MethodInfo EndAttr = GetMethod(typeof(XmlQueryOutput), "WriteEndAttribute"); - public static readonly MethodInfo Text = GetMethod(typeof(XmlQueryOutput), "WriteString"); - public static readonly MethodInfo NoEntText = GetMethod(typeof(XmlQueryOutput), "WriteRaw", typeof(string)); - - public static readonly MethodInfo StartTree = GetMethod(typeof(XmlQueryOutput), "StartTree"); - public static readonly MethodInfo EndTree = GetMethod(typeof(XmlQueryOutput), "EndTree"); - - public static readonly MethodInfo StartElemLitNameUn = GetMethod(typeof(XmlQueryOutput), "WriteStartElementUnchecked", typeof(string), typeof(string), typeof(string)); - public static readonly MethodInfo StartElemLocNameUn = GetMethod(typeof(XmlQueryOutput), "WriteStartElementUnchecked", typeof(string)); - public static readonly MethodInfo StartContentUn = GetMethod(typeof(XmlQueryOutput), "StartElementContentUnchecked"); - public static readonly MethodInfo EndElemLitNameUn = GetMethod(typeof(XmlQueryOutput), "WriteEndElementUnchecked", typeof(string), typeof(string), typeof(string)); - public static readonly MethodInfo EndElemLocNameUn = GetMethod(typeof(XmlQueryOutput), "WriteEndElementUnchecked", typeof(string)); - public static readonly MethodInfo StartAttrLitNameUn = GetMethod(typeof(XmlQueryOutput), "WriteStartAttributeUnchecked", typeof(string), typeof(string), typeof(string)); - public static readonly MethodInfo StartAttrLocNameUn = GetMethod(typeof(XmlQueryOutput), "WriteStartAttributeUnchecked", typeof(string)); - public static readonly MethodInfo EndAttrUn = GetMethod(typeof(XmlQueryOutput), "WriteEndAttributeUnchecked"); - public static readonly MethodInfo NamespaceDeclUn = GetMethod(typeof(XmlQueryOutput), "WriteNamespaceDeclarationUnchecked"); - public static readonly MethodInfo TextUn = GetMethod(typeof(XmlQueryOutput), "WriteStringUnchecked"); - public static readonly MethodInfo NoEntTextUn = GetMethod(typeof(XmlQueryOutput), "WriteRawUnchecked"); - - public static readonly MethodInfo StartRoot = GetMethod(typeof(XmlQueryOutput), "WriteStartRoot"); - public static readonly MethodInfo EndRoot = GetMethod(typeof(XmlQueryOutput), "WriteEndRoot"); - public static readonly MethodInfo StartElemCopyName = GetMethod(typeof(XmlQueryOutput), "WriteStartElementComputed", typeof(XPathNavigator)); - public static readonly MethodInfo StartElemMapName = GetMethod(typeof(XmlQueryOutput), "WriteStartElementComputed", typeof(string), typeof(int)); - public static readonly MethodInfo StartElemNmspName = GetMethod(typeof(XmlQueryOutput), "WriteStartElementComputed", typeof(string), typeof(string)); - public static readonly MethodInfo StartElemQName = GetMethod(typeof(XmlQueryOutput), "WriteStartElementComputed", typeof(XmlQualifiedName)); - public static readonly MethodInfo StartAttrCopyName = GetMethod(typeof(XmlQueryOutput), "WriteStartAttributeComputed", typeof(XPathNavigator)); - public static readonly MethodInfo StartAttrMapName = GetMethod(typeof(XmlQueryOutput), "WriteStartAttributeComputed", typeof(string), typeof(int)); - public static readonly MethodInfo StartAttrNmspName = GetMethod(typeof(XmlQueryOutput), "WriteStartAttributeComputed", typeof(string), typeof(string)); - public static readonly MethodInfo StartAttrQName = GetMethod(typeof(XmlQueryOutput), "WriteStartAttributeComputed", typeof(XmlQualifiedName)); - public static readonly MethodInfo NamespaceDecl = GetMethod(typeof(XmlQueryOutput), "WriteNamespaceDeclaration"); - public static readonly MethodInfo StartComment = GetMethod(typeof(XmlQueryOutput), "WriteStartComment"); - public static readonly MethodInfo CommentText = GetMethod(typeof(XmlQueryOutput), "WriteCommentString"); - public static readonly MethodInfo EndComment = GetMethod(typeof(XmlQueryOutput), "WriteEndComment"); - public static readonly MethodInfo StartPI = GetMethod(typeof(XmlQueryOutput), "WriteStartProcessingInstruction"); - public static readonly MethodInfo PIText = GetMethod(typeof(XmlQueryOutput), "WriteProcessingInstructionString"); - public static readonly MethodInfo EndPI = GetMethod(typeof(XmlQueryOutput), "WriteEndProcessingInstruction"); - public static readonly MethodInfo WriteItem = GetMethod(typeof(XmlQueryOutput), "WriteItem"); - public static readonly MethodInfo CopyOf = GetMethod(typeof(XmlQueryOutput), "XsltCopyOf"); - public static readonly MethodInfo StartCopy = GetMethod(typeof(XmlQueryOutput), "StartCopy"); - public static readonly MethodInfo EndCopy = GetMethod(typeof(XmlQueryOutput), "EndCopy"); + public static readonly MethodInfo StartElemLitName = typeof(XmlQueryOutput).GetMethod("WriteStartElement", new[] { typeof(string), typeof(string), typeof(string) })!; + public static readonly MethodInfo StartElemLocName = typeof(XmlQueryOutput).GetMethod("WriteStartElementLocalName", new[] { typeof(string) })!; + public static readonly MethodInfo EndElemStackName = typeof(XmlQueryOutput).GetMethod("WriteEndElement")!; + public static readonly MethodInfo StartAttrLitName = typeof(XmlQueryOutput).GetMethod("WriteStartAttribute", new[] { typeof(string), typeof(string), typeof(string) })!; + public static readonly MethodInfo StartAttrLocName = typeof(XmlQueryOutput).GetMethod("WriteStartAttributeLocalName", new[] { typeof(string) })!; + public static readonly MethodInfo EndAttr = typeof(XmlQueryOutput).GetMethod("WriteEndAttribute")!; + public static readonly MethodInfo Text = typeof(XmlQueryOutput).GetMethod("WriteString")!; + public static readonly MethodInfo NoEntText = typeof(XmlQueryOutput).GetMethod("WriteRaw", new[] { typeof(string) })!; + + public static readonly MethodInfo StartTree = typeof(XmlQueryOutput).GetMethod("StartTree")!; + public static readonly MethodInfo EndTree = typeof(XmlQueryOutput).GetMethod("EndTree")!; + + public static readonly MethodInfo StartElemLitNameUn = typeof(XmlQueryOutput).GetMethod("WriteStartElementUnchecked", new[] { typeof(string), typeof(string), typeof(string) })!; + public static readonly MethodInfo StartElemLocNameUn = typeof(XmlQueryOutput).GetMethod("WriteStartElementUnchecked", new[] { typeof(string) })!; + public static readonly MethodInfo StartContentUn = typeof(XmlQueryOutput).GetMethod("StartElementContentUnchecked")!; + public static readonly MethodInfo EndElemLitNameUn = typeof(XmlQueryOutput).GetMethod("WriteEndElementUnchecked", new[] { typeof(string), typeof(string), typeof(string) })!; + public static readonly MethodInfo EndElemLocNameUn = typeof(XmlQueryOutput).GetMethod("WriteEndElementUnchecked", new[] { typeof(string) })!; + public static readonly MethodInfo StartAttrLitNameUn = typeof(XmlQueryOutput).GetMethod("WriteStartAttributeUnchecked", new[] { typeof(string), typeof(string), typeof(string) })!; + public static readonly MethodInfo StartAttrLocNameUn = typeof(XmlQueryOutput).GetMethod("WriteStartAttributeUnchecked", new[] { typeof(string) })!; + public static readonly MethodInfo EndAttrUn = typeof(XmlQueryOutput).GetMethod("WriteEndAttributeUnchecked")!; + public static readonly MethodInfo NamespaceDeclUn = typeof(XmlQueryOutput).GetMethod("WriteNamespaceDeclarationUnchecked")!; + public static readonly MethodInfo TextUn = typeof(XmlQueryOutput).GetMethod("WriteStringUnchecked")!; + public static readonly MethodInfo NoEntTextUn = typeof(XmlQueryOutput).GetMethod("WriteRawUnchecked")!; + + public static readonly MethodInfo StartRoot = typeof(XmlQueryOutput).GetMethod("WriteStartRoot")!; + public static readonly MethodInfo EndRoot = typeof(XmlQueryOutput).GetMethod("WriteEndRoot")!; + public static readonly MethodInfo StartElemCopyName = typeof(XmlQueryOutput).GetMethod("WriteStartElementComputed", new[] { typeof(XPathNavigator) })!; + public static readonly MethodInfo StartElemMapName = typeof(XmlQueryOutput).GetMethod("WriteStartElementComputed", new[] { typeof(string), typeof(int) })!; + public static readonly MethodInfo StartElemNmspName = typeof(XmlQueryOutput).GetMethod("WriteStartElementComputed", new[] { typeof(string), typeof(string) })!; + public static readonly MethodInfo StartElemQName = typeof(XmlQueryOutput).GetMethod("WriteStartElementComputed", new[] { typeof(XmlQualifiedName) })!; + public static readonly MethodInfo StartAttrCopyName = typeof(XmlQueryOutput).GetMethod("WriteStartAttributeComputed", new[] { typeof(XPathNavigator) })!; + public static readonly MethodInfo StartAttrMapName = typeof(XmlQueryOutput).GetMethod("WriteStartAttributeComputed", new[] { typeof(string), typeof(int) })!; + public static readonly MethodInfo StartAttrNmspName = typeof(XmlQueryOutput).GetMethod("WriteStartAttributeComputed", new[] { typeof(string), typeof(string) })!; + public static readonly MethodInfo StartAttrQName = typeof(XmlQueryOutput).GetMethod("WriteStartAttributeComputed", new[] { typeof(XmlQualifiedName) })!; + public static readonly MethodInfo NamespaceDecl = typeof(XmlQueryOutput).GetMethod("WriteNamespaceDeclaration")!; + public static readonly MethodInfo StartComment = typeof(XmlQueryOutput).GetMethod("WriteStartComment")!; + public static readonly MethodInfo CommentText = typeof(XmlQueryOutput).GetMethod("WriteCommentString")!; + public static readonly MethodInfo EndComment = typeof(XmlQueryOutput).GetMethod("WriteEndComment")!; + public static readonly MethodInfo StartPI = typeof(XmlQueryOutput).GetMethod("WriteStartProcessingInstruction")!; + public static readonly MethodInfo PIText = typeof(XmlQueryOutput).GetMethod("WriteProcessingInstructionString")!; + public static readonly MethodInfo EndPI = typeof(XmlQueryOutput).GetMethod("WriteEndProcessingInstruction")!; + public static readonly MethodInfo WriteItem = typeof(XmlQueryOutput).GetMethod("WriteItem")!; + public static readonly MethodInfo CopyOf = typeof(XmlQueryOutput).GetMethod("XsltCopyOf")!; + public static readonly MethodInfo StartCopy = typeof(XmlQueryOutput).GetMethod("StartCopy")!; + public static readonly MethodInfo EndCopy = typeof(XmlQueryOutput).GetMethod("EndCopy")!; // Datatypes - public static readonly MethodInfo DecAdd = GetMethod(typeof(decimal), "Add"); - public static readonly MethodInfo DecCmp = GetMethod(typeof(decimal), "Compare", typeof(decimal), typeof(decimal)); - public static readonly MethodInfo DecEq = GetMethod(typeof(decimal), "Equals", typeof(decimal), typeof(decimal)); - public static readonly MethodInfo DecSub = GetMethod(typeof(decimal), "Subtract"); - public static readonly MethodInfo DecMul = GetMethod(typeof(decimal), "Multiply"); - public static readonly MethodInfo DecDiv = GetMethod(typeof(decimal), "Divide"); - public static readonly MethodInfo DecRem = GetMethod(typeof(decimal), "Remainder"); - public static readonly MethodInfo DecNeg = GetMethod(typeof(decimal), "Negate"); - public static readonly MethodInfo QNameEq = GetMethod(typeof(XmlQualifiedName), "Equals"); - public static readonly MethodInfo StrEq = GetMethod(typeof(string), "Equals", typeof(string), typeof(string)); - public static readonly MethodInfo StrCat2 = GetMethod(typeof(string), "Concat", typeof(string), typeof(string)); - public static readonly MethodInfo StrCat3 = GetMethod(typeof(string), "Concat", typeof(string), typeof(string), typeof(string)); - public static readonly MethodInfo StrCat4 = GetMethod(typeof(string), "Concat", typeof(string), typeof(string), typeof(string), typeof(string)); - public static readonly MethodInfo StrCmp = GetMethod(typeof(string), "CompareOrdinal", typeof(string), typeof(string)); - public static readonly MethodInfo StrLen = GetMethod(typeof(string), "get_Length"); + public static readonly MethodInfo DecAdd = typeof(decimal).GetMethod("Add")!; + public static readonly MethodInfo DecCmp = typeof(decimal).GetMethod("Compare", new[] { typeof(decimal), typeof(decimal) })!; + public static readonly MethodInfo DecEq = typeof(decimal).GetMethod("Equals", new[] { typeof(decimal), typeof(decimal) })!; + public static readonly MethodInfo DecSub = typeof(decimal).GetMethod("Subtract")!; + public static readonly MethodInfo DecMul = typeof(decimal).GetMethod("Multiply")!; + public static readonly MethodInfo DecDiv = typeof(decimal).GetMethod("Divide")!; + public static readonly MethodInfo DecRem = typeof(decimal).GetMethod("Remainder")!; + public static readonly MethodInfo DecNeg = typeof(decimal).GetMethod("Negate")!; + public static readonly MethodInfo QNameEq = typeof(XmlQualifiedName).GetMethod("Equals")!; + public static readonly MethodInfo StrEq = typeof(string).GetMethod("Equals", new[] { typeof(string), typeof(string) })!; + public static readonly MethodInfo StrCat2 = typeof(string).GetMethod("Concat", new[] { typeof(string), typeof(string) })!; + public static readonly MethodInfo StrCat3 = typeof(string).GetMethod("Concat", new[] { typeof(string), typeof(string), typeof(string) })!; + public static readonly MethodInfo StrCat4 = typeof(string).GetMethod("Concat", new[] { typeof(string), typeof(string), typeof(string), typeof(string) })!; + public static readonly MethodInfo StrCmp = typeof(string).GetMethod("CompareOrdinal", new[] { typeof(string), typeof(string) })!; + public static readonly MethodInfo StrLen = typeof(string).GetMethod("get_Length")!; // XsltConvert - public static readonly MethodInfo DblToDec = GetMethod(typeof(XsltConvert), "ToDecimal", typeof(double)); - public static readonly MethodInfo DblToInt = GetMethod(typeof(XsltConvert), "ToInt", typeof(double)); - public static readonly MethodInfo DblToLng = GetMethod(typeof(XsltConvert), "ToLong", typeof(double)); - public static readonly MethodInfo DblToStr = GetMethod(typeof(XsltConvert), "ToString", typeof(double)); - public static readonly MethodInfo DecToDbl = GetMethod(typeof(XsltConvert), "ToDouble", typeof(decimal)); - public static readonly MethodInfo DTToStr = GetMethod(typeof(XsltConvert), "ToString", typeof(DateTime)); - public static readonly MethodInfo IntToDbl = GetMethod(typeof(XsltConvert), "ToDouble", typeof(int)); - public static readonly MethodInfo LngToDbl = GetMethod(typeof(XsltConvert), "ToDouble", typeof(long)); - public static readonly MethodInfo StrToDbl = GetMethod(typeof(XsltConvert), "ToDouble", typeof(string)); - public static readonly MethodInfo StrToDT = GetMethod(typeof(XsltConvert), "ToDateTime", typeof(string)); - - public static readonly MethodInfo ItemToBool = GetMethod(typeof(XsltConvert), "ToBoolean", typeof(XPathItem)); - public static readonly MethodInfo ItemToDbl = GetMethod(typeof(XsltConvert), "ToDouble", typeof(XPathItem)); - public static readonly MethodInfo ItemToStr = GetMethod(typeof(XsltConvert), "ToString", typeof(XPathItem)); - public static readonly MethodInfo ItemToNode = GetMethod(typeof(XsltConvert), "ToNode", typeof(XPathItem)); - public static readonly MethodInfo ItemToNodes = GetMethod(typeof(XsltConvert), "ToNodeSet", typeof(XPathItem)); - - public static readonly MethodInfo ItemsToBool = GetMethod(typeof(XsltConvert), "ToBoolean", typeof(IList)); - public static readonly MethodInfo ItemsToDbl = GetMethod(typeof(XsltConvert), "ToDouble", typeof(IList)); - public static readonly MethodInfo ItemsToNode = GetMethod(typeof(XsltConvert), "ToNode", typeof(IList)); - public static readonly MethodInfo ItemsToNodes = GetMethod(typeof(XsltConvert), "ToNodeSet", typeof(IList)); - public static readonly MethodInfo ItemsToStr = GetMethod(typeof(XsltConvert), "ToString", typeof(IList)); + public static readonly MethodInfo DblToDec = typeof(XsltConvert).GetMethod("ToDecimal", new[] { typeof(double) })!; + public static readonly MethodInfo DblToInt = typeof(XsltConvert).GetMethod("ToInt", new[] { typeof(double) })!; + public static readonly MethodInfo DblToLng = typeof(XsltConvert).GetMethod("ToLong", new[] { typeof(double) })!; + public static readonly MethodInfo DblToStr = typeof(XsltConvert).GetMethod("ToString", new[] { typeof(double) })!; + public static readonly MethodInfo DecToDbl = typeof(XsltConvert).GetMethod("ToDouble", new[] { typeof(decimal) })!; + public static readonly MethodInfo DTToStr = typeof(XsltConvert).GetMethod("ToString", new[] { typeof(DateTime) })!; + public static readonly MethodInfo IntToDbl = typeof(XsltConvert).GetMethod("ToDouble", new[] { typeof(int) })!; + public static readonly MethodInfo LngToDbl = typeof(XsltConvert).GetMethod("ToDouble", new[] { typeof(long) })!; + public static readonly MethodInfo StrToDbl = typeof(XsltConvert).GetMethod("ToDouble", new[] { typeof(string) })!; + public static readonly MethodInfo StrToDT = typeof(XsltConvert).GetMethod("ToDateTime", new[] { typeof(string) })!; + + public static readonly MethodInfo ItemToBool = typeof(XsltConvert).GetMethod("ToBoolean", new[] { typeof(XPathItem) })!; + public static readonly MethodInfo ItemToDbl = typeof(XsltConvert).GetMethod("ToDouble", new[] { typeof(XPathItem) })!; + public static readonly MethodInfo ItemToStr = typeof(XsltConvert).GetMethod("ToString", new[] { typeof(XPathItem) })!; + public static readonly MethodInfo ItemToNode = typeof(XsltConvert).GetMethod("ToNode", new[] { typeof(XPathItem) })!; + public static readonly MethodInfo ItemToNodes = typeof(XsltConvert).GetMethod("ToNodeSet", new[] { typeof(XPathItem) })!; + + public static readonly MethodInfo ItemsToBool = typeof(XsltConvert).GetMethod("ToBoolean", new[] { typeof(IList) })!; + public static readonly MethodInfo ItemsToDbl = typeof(XsltConvert).GetMethod("ToDouble", new[] { typeof(IList) })!; + public static readonly MethodInfo ItemsToNode = typeof(XsltConvert).GetMethod("ToNode", new[] { typeof(IList) })!; + public static readonly MethodInfo ItemsToNodes = typeof(XsltConvert).GetMethod("ToNodeSet", new[] { typeof(IList) })!; + public static readonly MethodInfo ItemsToStr = typeof(XsltConvert).GetMethod("ToString", new[] { typeof(IList) })!; // StringConcat - public static readonly MethodInfo StrCatCat = GetMethod(typeof(StringConcat), "Concat"); - public static readonly MethodInfo StrCatClear = GetMethod(typeof(StringConcat), "Clear"); - public static readonly MethodInfo StrCatResult = GetMethod(typeof(StringConcat), "GetResult"); - public static readonly MethodInfo StrCatDelim = GetMethod(typeof(StringConcat), "set_Delimiter"); + public static readonly MethodInfo StrCatCat = typeof(StringConcat).GetMethod("Concat")!; + public static readonly MethodInfo StrCatClear = typeof(StringConcat).GetMethod("Clear")!; + public static readonly MethodInfo StrCatResult = typeof(StringConcat).GetMethod("GetResult")!; + public static readonly MethodInfo StrCatDelim = typeof(StringConcat).GetMethod("set_Delimiter")!; // XmlILStorageConverter - public static readonly MethodInfo NavsToItems = GetMethod(typeof(XmlILStorageConverter), "NavigatorsToItems"); - public static readonly MethodInfo ItemsToNavs = GetMethod(typeof(XmlILStorageConverter), "ItemsToNavigators"); + public static readonly MethodInfo NavsToItems = typeof(XmlILStorageConverter).GetMethod("NavigatorsToItems")!; + public static readonly MethodInfo ItemsToNavs = typeof(XmlILStorageConverter).GetMethod("ItemsToNavigators")!; // XmlQueryNodeSequence - public static readonly MethodInfo SetDod = GetMethod(typeof(XmlQueryNodeSequence), "set_IsDocOrderDistinct"); + public static readonly MethodInfo SetDod = typeof(XmlQueryNodeSequence).GetMethod("set_IsDocOrderDistinct")!; // Miscellaneous - public static readonly MethodInfo GetTypeFromHandle = GetMethod(typeof(Type), "GetTypeFromHandle"); - public static readonly MethodInfo InitializeArray = GetMethod(typeof(System.Runtime.CompilerServices.RuntimeHelpers), "InitializeArray"); + public static readonly MethodInfo GetTypeFromHandle = typeof(Type).GetMethod("GetTypeFromHandle")!; + public static readonly MethodInfo InitializeArray = typeof(System.Runtime.CompilerServices.RuntimeHelpers).GetMethod("InitializeArray")!; public static readonly Dictionary StorageMethods = new Dictionary(13) { { typeof(string), new XmlILStorageMethods(typeof(string)) }, @@ -417,20 +447,6 @@ internal static class XmlILMethods { typeof(XPathItem), new XmlILStorageMethods(typeof(XPathItem)) }, { typeof(XPathNavigator), new XmlILStorageMethods(typeof(XPathNavigator)) }, }; - - public static MethodInfo GetMethod(Type className, string methName) - { - MethodInfo? methInfo = className.GetMethod(methName); - Debug.Assert(methInfo != null, "Method " + className.Name + "." + methName + " cannot be null."); - return methInfo; - } - - public static MethodInfo GetMethod(Type className, string methName, params Type[] args) - { - MethodInfo? methInfo = className.GetMethod(methName, args); - Debug.Assert(methInfo != null, "Method " + methName + " cannot be null."); - return methInfo; - } } diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/IlGen/IteratorDescriptor.cs b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/IlGen/IteratorDescriptor.cs index 5e6ef24dfe2dd..46bb78a63e092 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/IlGen/IteratorDescriptor.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/IlGen/IteratorDescriptor.cs @@ -106,14 +106,14 @@ public static StorageDescriptor Local(LocalBuilder loc, Type itemStorageType, bo /// /// Create a StorageDescriptor for an item which is the Current item in an iterator. /// - public static StorageDescriptor Current(LocalBuilder locIter, Type itemStorageType) + public static StorageDescriptor Current(LocalBuilder locIter, MethodInfo currentMethod, Type itemStorageType) { - Debug.Assert(locIter.LocalType.GetMethod("get_Current")!.ReturnType == itemStorageType, + Debug.Assert(currentMethod.ReturnType == itemStorageType, "Type " + itemStorageType + " does not match type of Current property."); StorageDescriptor storage = default; storage._location = ItemLocation.Current; - storage._locationObject = locIter; + storage._locationObject = new CurrentContext(locIter, currentMethod); storage._itemStorageType = itemStorageType; return storage; } @@ -191,12 +191,12 @@ public LocalBuilder? LocalLocation } /// - /// Return the LocalBuilder that will store this iterator's helper class. The Current property - /// on this iterator can be accessed to get the current iteration value. + /// Return the "Current" location information (LocalBuilder and Current MethodInfo) that will store + /// this iterator's helper class. The Current property on this iterator can be accessed to get the CurrentMethod. /// - public LocalBuilder? CurrentLocation + public CurrentContext? CurrentLocation { - get { return _locationObject as LocalBuilder; } + get { return _locationObject as CurrentContext; } } /// @@ -224,6 +224,21 @@ public Type ItemStorageType } } + /// + /// A data class to hold information for a "Current" StorageLocation. + /// + internal class CurrentContext + { + public CurrentContext(LocalBuilder local, MethodInfo currentMethod) + { + Local = local; + CurrentMethod = currentMethod; + } + + public readonly LocalBuilder Local; + public readonly MethodInfo CurrentMethod; + } + /// /// Iterators are joined together, are nested within each other, and reference each other. This internal class /// contains detailed information about iteration next labels, caching, iterator item location, etc. @@ -515,8 +530,9 @@ public void PushValue() break; case ItemLocation.Current: - _helper.Emit(OpCodes.Ldloca, _storage.CurrentLocation!); - _helper.Call(_storage.CurrentLocation!.LocalType.GetMethod("get_Current")!); + CurrentContext currentContext = _storage.CurrentLocation!; + _helper.Emit(OpCodes.Ldloca, currentContext.Local); + _helper.Call(currentContext.CurrentMethod); break; default: diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/IlGen/XmlIlVisitor.cs b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/IlGen/XmlIlVisitor.cs index 75f097381d794..10443b3ef29ea 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/IlGen/XmlIlVisitor.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/IlGen/XmlIlVisitor.cs @@ -1245,7 +1245,7 @@ private void Sequence(QilList ndSeq) /// protected override QilNode VisitUnion(QilBinary ndUnion) { - return CreateSetIterator(ndUnion, "$$$iterUnion", typeof(UnionIterator), XmlILMethods.UnionCreate, XmlILMethods.UnionNext); + return CreateSetIterator(ndUnion, "$$$iterUnion", typeof(UnionIterator), XmlILMethods.UnionCreate, XmlILMethods.UnionNext, XmlILMethods.UnionCurrent); } /// @@ -1253,7 +1253,7 @@ protected override QilNode VisitUnion(QilBinary ndUnion) /// protected override QilNode VisitIntersection(QilBinary ndInter) { - return CreateSetIterator(ndInter, "$$$iterInter", typeof(IntersectIterator), XmlILMethods.InterCreate, XmlILMethods.InterNext); + return CreateSetIterator(ndInter, "$$$iterInter", typeof(IntersectIterator), XmlILMethods.InterCreate, XmlILMethods.InterNext, XmlILMethods.InterCurrent); } /// @@ -1261,13 +1261,13 @@ protected override QilNode VisitIntersection(QilBinary ndInter) /// protected override QilNode VisitDifference(QilBinary ndDiff) { - return CreateSetIterator(ndDiff, "$$$iterDiff", typeof(DifferenceIterator), XmlILMethods.DiffCreate, XmlILMethods.DiffNext); + return CreateSetIterator(ndDiff, "$$$iterDiff", typeof(DifferenceIterator), XmlILMethods.DiffCreate, XmlILMethods.DiffNext, XmlILMethods.DiffCurrent); } /// /// Generate code to combine nodes from two nested iterators using Union, Intersection, or Difference semantics. /// - private QilNode CreateSetIterator(QilBinary ndSet, string iterName, Type iterType, MethodInfo methCreate, MethodInfo methNext) + private QilNode CreateSetIterator(QilBinary ndSet, string iterName, Type iterType, MethodInfo methCreate, MethodInfo methNext, MethodInfo methCurrent) { LocalBuilder locIter, locNav; Label lblNext, lblCall, lblNextLeft, lblNextRight, lblInitRight; @@ -1325,12 +1325,12 @@ private QilNode CreateSetIterator(QilBinary ndSet, string iterName, Type iterTyp if (ndSet.XmlType!.IsSingleton) { _helper.Emit(OpCodes.Switch, new Label[] { lblInitRight, lblNextLeft, lblNextRight }); - _iterCurr.Storage = StorageDescriptor.Current(locIter, typeof(XPathNavigator)); + _iterCurr.Storage = StorageDescriptor.Current(locIter, methCurrent, typeof(XPathNavigator)); } else { _helper.Emit(OpCodes.Switch, new Label[] { _iterCurr.GetLabelNext(), lblInitRight, lblNextLeft, lblNextRight }); - _iterCurr.SetIterator(lblNext, StorageDescriptor.Current(locIter, typeof(XPathNavigator))); + _iterCurr.SetIterator(lblNext, StorageDescriptor.Current(locIter, methCurrent, typeof(XPathNavigator))); } return ndSet; @@ -1951,13 +1951,13 @@ private bool HandleFilterPatterns(QilLoop ndFilter) _helper.CallGetAtomizedName(_helper.StaticData.DeclareName(name.NamespaceUri)); _helper.Call(XmlILMethods.ElemContentCreate); - GenerateSimpleIterator(typeof(XPathNavigator), locIter, XmlILMethods.ElemContentNext); + GenerateSimpleIterator(typeof(XPathNavigator), locIter, XmlILMethods.ElemContentNext, XmlILMethods.ElemContentCurrent); } else { if (kinds == XmlNodeKindFlags.Content) { - CreateSimpleIterator(input, "$$$iterContent", typeof(ContentIterator), XmlILMethods.ContentCreate, XmlILMethods.ContentNext); + CreateSimpleIterator(input, "$$$iterContent", typeof(ContentIterator), XmlILMethods.ContentCreate, XmlILMethods.ContentNext, XmlILMethods.ContentCurrent); } else { @@ -1970,55 +1970,55 @@ private bool HandleFilterPatterns(QilLoop ndFilter) _helper.LoadInteger((int)QilXmlToXPathNodeType(kinds)); _helper.Call(XmlILMethods.KindContentCreate); - GenerateSimpleIterator(typeof(XPathNavigator), locIter, XmlILMethods.KindContentNext); + GenerateSimpleIterator(typeof(XPathNavigator), locIter, XmlILMethods.KindContentNext, XmlILMethods.KindContentCurrent); } } return true; case QilNodeType.Parent: - CreateFilteredIterator(input, "$$$iterPar", typeof(ParentIterator), XmlILMethods.ParentCreate, XmlILMethods.ParentNext, + CreateFilteredIterator(input, "$$$iterPar", typeof(ParentIterator), XmlILMethods.ParentCreate, XmlILMethods.ParentNext, XmlILMethods.ParentCurrent, kinds, name, TriState.Unknown, null); return true; case QilNodeType.Ancestor: case QilNodeType.AncestorOrSelf: - CreateFilteredIterator(input, "$$$iterAnc", typeof(AncestorIterator), XmlILMethods.AncCreate, XmlILMethods.AncNext, + CreateFilteredIterator(input, "$$$iterAnc", typeof(AncestorIterator), XmlILMethods.AncCreate, XmlILMethods.AncNext, XmlILMethods.AncCurrent, kinds, name, (step.NodeType == QilNodeType.Ancestor) ? TriState.False : TriState.True, null); return true; case QilNodeType.Descendant: case QilNodeType.DescendantOrSelf: - CreateFilteredIterator(input, "$$$iterDesc", typeof(DescendantIterator), XmlILMethods.DescCreate, XmlILMethods.DescNext, + CreateFilteredIterator(input, "$$$iterDesc", typeof(DescendantIterator), XmlILMethods.DescCreate, XmlILMethods.DescNext, XmlILMethods.DescCurrent, kinds, name, (step.NodeType == QilNodeType.Descendant) ? TriState.False : TriState.True, null); return true; case QilNodeType.Preceding: - CreateFilteredIterator(input, "$$$iterPrec", typeof(PrecedingIterator), XmlILMethods.PrecCreate, XmlILMethods.PrecNext, + CreateFilteredIterator(input, "$$$iterPrec", typeof(PrecedingIterator), XmlILMethods.PrecCreate, XmlILMethods.PrecNext, XmlILMethods.PrecCurrent, kinds, name, TriState.Unknown, null); return true; case QilNodeType.FollowingSibling: - CreateFilteredIterator(input, "$$$iterFollSib", typeof(FollowingSiblingIterator), XmlILMethods.FollSibCreate, XmlILMethods.FollSibNext, + CreateFilteredIterator(input, "$$$iterFollSib", typeof(FollowingSiblingIterator), XmlILMethods.FollSibCreate, XmlILMethods.FollSibNext, XmlILMethods.FollSibCurrent, kinds, name, TriState.Unknown, null); return true; case QilNodeType.PrecedingSibling: - CreateFilteredIterator(input, "$$$iterPreSib", typeof(PrecedingSiblingIterator), XmlILMethods.PreSibCreate, XmlILMethods.PreSibNext, + CreateFilteredIterator(input, "$$$iterPreSib", typeof(PrecedingSiblingIterator), XmlILMethods.PreSibCreate, XmlILMethods.PreSibNext, XmlILMethods.PreSibCurrent, kinds, name, TriState.Unknown, null); return true; case QilNodeType.NodeRange: - CreateFilteredIterator(input, "$$$iterRange", typeof(NodeRangeIterator), XmlILMethods.NodeRangeCreate, XmlILMethods.NodeRangeNext, + CreateFilteredIterator(input, "$$$iterRange", typeof(NodeRangeIterator), XmlILMethods.NodeRangeCreate, XmlILMethods.NodeRangeNext, XmlILMethods.NodeRangeCurrent, kinds, name, TriState.Unknown, ((QilBinary)step).Right); return true; case QilNodeType.XPathFollowing: - CreateFilteredIterator(input, "$$$iterFoll", typeof(XPathFollowingIterator), XmlILMethods.XPFollCreate, XmlILMethods.XPFollNext, + CreateFilteredIterator(input, "$$$iterFoll", typeof(XPathFollowingIterator), XmlILMethods.XPFollCreate, XmlILMethods.XPFollNext, XmlILMethods.XPFollCurrent, kinds, name, TriState.Unknown, null); return true; case QilNodeType.XPathPreceding: - CreateFilteredIterator(input, "$$$iterPrec", typeof(XPathPrecedingIterator), XmlILMethods.XPPrecCreate, XmlILMethods.XPPrecNext, + CreateFilteredIterator(input, "$$$iterPrec", typeof(XPathPrecedingIterator), XmlILMethods.XPPrecCreate, XmlILMethods.XPPrecNext, XmlILMethods.XPPrecCurrent, kinds, name, TriState.Unknown, null); return true; @@ -2031,7 +2031,7 @@ private bool HandleFilterPatterns(QilLoop ndFilter) { // Handle FilterAttributeKind pattern input = (QilNode)patt.GetArgument(OptimizerPatternArgument.StepInput); - CreateSimpleIterator(input, "$$$iterAttr", typeof(AttributeIterator), XmlILMethods.AttrCreate, XmlILMethods.AttrNext); + CreateSimpleIterator(input, "$$$iterAttr", typeof(AttributeIterator), XmlILMethods.AttrCreate, XmlILMethods.AttrNext, XmlILMethods.AttrCurrent); return true; } else if (patt.MatchesPattern(OptimizerPatternName.EqualityIndex)) @@ -2441,28 +2441,28 @@ private bool HandleDodPatterns(QilUnary ndDod) switch (step.NodeType) { case QilNodeType.Content: - CreateContainerIterator(ndDod, "$$$iterContent", typeof(ContentMergeIterator), XmlILMethods.ContentMergeCreate, XmlILMethods.ContentMergeNext, + CreateContainerIterator(ndDod, "$$$iterContent", typeof(ContentMergeIterator), XmlILMethods.ContentMergeCreate, XmlILMethods.ContentMergeNext, XmlILMethods.ContentMergeCurrent, kinds, name, TriState.Unknown); return true; case QilNodeType.Descendant: case QilNodeType.DescendantOrSelf: - CreateContainerIterator(ndDod, "$$$iterDesc", typeof(DescendantMergeIterator), XmlILMethods.DescMergeCreate, XmlILMethods.DescMergeNext, + CreateContainerIterator(ndDod, "$$$iterDesc", typeof(DescendantMergeIterator), XmlILMethods.DescMergeCreate, XmlILMethods.DescMergeNext, XmlILMethods.DescMergeCurrent, kinds, name, (step.NodeType == QilNodeType.Descendant) ? TriState.False : TriState.True); return true; case QilNodeType.XPathFollowing: - CreateContainerIterator(ndDod, "$$$iterFoll", typeof(XPathFollowingMergeIterator), XmlILMethods.XPFollMergeCreate, XmlILMethods.XPFollMergeNext, + CreateContainerIterator(ndDod, "$$$iterFoll", typeof(XPathFollowingMergeIterator), XmlILMethods.XPFollMergeCreate, XmlILMethods.XPFollMergeNext, XmlILMethods.XPFollMergeCurrent, kinds, name, TriState.Unknown); return true; case QilNodeType.FollowingSibling: - CreateContainerIterator(ndDod, "$$$iterFollSib", typeof(FollowingSiblingMergeIterator), XmlILMethods.FollSibMergeCreate, XmlILMethods.FollSibMergeNext, + CreateContainerIterator(ndDod, "$$$iterFollSib", typeof(FollowingSiblingMergeIterator), XmlILMethods.FollSibMergeCreate, XmlILMethods.FollSibMergeNext, XmlILMethods.FollSibMergeCurrent, kinds, name, TriState.Unknown); return true; case QilNodeType.XPathPreceding: - CreateContainerIterator(ndDod, "$$$iterPrec", typeof(XPathPrecedingMergeIterator), XmlILMethods.XPPrecMergeCreate, XmlILMethods.XPPrecMergeNext, + CreateContainerIterator(ndDod, "$$$iterPrec", typeof(XPathPrecedingMergeIterator), XmlILMethods.XPPrecMergeCreate, XmlILMethods.XPPrecMergeNext, XmlILMethods.XPPrecMergeCurrent, kinds, name, TriState.Unknown); return true; @@ -2478,17 +2478,17 @@ private bool HandleDodPatterns(QilUnary ndDod) { case QilNodeType.Ancestor: case QilNodeType.AncestorOrSelf: - CreateFilteredIterator(input, "$$$iterAnc", typeof(AncestorDocOrderIterator), XmlILMethods.AncDOCreate, XmlILMethods.AncDONext, + CreateFilteredIterator(input, "$$$iterAnc", typeof(AncestorDocOrderIterator), XmlILMethods.AncDOCreate, XmlILMethods.AncDONext, XmlILMethods.AncDOCurrent, kinds, name, (step.NodeType == QilNodeType.Ancestor) ? TriState.False : TriState.True, null); return true; case QilNodeType.PrecedingSibling: - CreateFilteredIterator(input, "$$$iterPreSib", typeof(PrecedingSiblingDocOrderIterator), XmlILMethods.PreSibDOCreate, XmlILMethods.PreSibDONext, + CreateFilteredIterator(input, "$$$iterPreSib", typeof(PrecedingSiblingDocOrderIterator), XmlILMethods.PreSibDOCreate, XmlILMethods.PreSibDONext, XmlILMethods.PreSibDOCurrent, kinds, name, TriState.Unknown, null); return true; case QilNodeType.XPathPreceding: - CreateFilteredIterator(input, "$$$iterPrec", typeof(XPathPrecedingDocOrderIterator), XmlILMethods.XPPrecDOCreate, XmlILMethods.XPPrecDONext, + CreateFilteredIterator(input, "$$$iterPrec", typeof(XPathPrecedingDocOrderIterator), XmlILMethods.XPPrecDOCreate, XmlILMethods.XPPrecDONext, XmlILMethods.XPPrecDOCurrent, kinds, name, TriState.Unknown, null); return true; @@ -2583,7 +2583,7 @@ protected override QilNode VisitInvoke(QilInvoke ndInvoke) /// protected override QilNode VisitContent(QilUnary ndContent) { - CreateSimpleIterator(ndContent.Child, "$$$iterAttrContent", typeof(AttributeContentIterator), XmlILMethods.AttrContentCreate, XmlILMethods.AttrContentNext); + CreateSimpleIterator(ndContent.Child, "$$$iterAttrContent", typeof(AttributeContentIterator), XmlILMethods.AttrContentCreate, XmlILMethods.AttrContentNext, XmlILMethods.AttrContentCurrent); return ndContent; } @@ -2671,7 +2671,7 @@ protected override QilNode VisitXmlContext(QilNode ndCtxt) /// protected override QilNode VisitDescendant(QilUnary ndDesc) { - CreateFilteredIterator(ndDesc.Child, "$$$iterDesc", typeof(DescendantIterator), XmlILMethods.DescCreate, XmlILMethods.DescNext, + CreateFilteredIterator(ndDesc.Child, "$$$iterDesc", typeof(DescendantIterator), XmlILMethods.DescCreate, XmlILMethods.DescNext, XmlILMethods.DescCurrent, XmlNodeKindFlags.Any, null, TriState.False, null); return ndDesc; } @@ -2681,7 +2681,7 @@ protected override QilNode VisitDescendant(QilUnary ndDesc) /// protected override QilNode VisitDescendantOrSelf(QilUnary ndDesc) { - CreateFilteredIterator(ndDesc.Child, "$$$iterDesc", typeof(DescendantIterator), XmlILMethods.DescCreate, XmlILMethods.DescNext, + CreateFilteredIterator(ndDesc.Child, "$$$iterDesc", typeof(DescendantIterator), XmlILMethods.DescCreate, XmlILMethods.DescNext, XmlILMethods.DescCurrent, XmlNodeKindFlags.Any, null, TriState.True, null); return ndDesc; } @@ -2691,7 +2691,7 @@ protected override QilNode VisitDescendantOrSelf(QilUnary ndDesc) /// protected override QilNode VisitAncestor(QilUnary ndAnc) { - CreateFilteredIterator(ndAnc.Child, "$$$iterAnc", typeof(AncestorIterator), XmlILMethods.AncCreate, XmlILMethods.AncNext, + CreateFilteredIterator(ndAnc.Child, "$$$iterAnc", typeof(AncestorIterator), XmlILMethods.AncCreate, XmlILMethods.AncNext, XmlILMethods.AncCurrent, XmlNodeKindFlags.Any, null, TriState.False, null); return ndAnc; } @@ -2701,7 +2701,7 @@ protected override QilNode VisitAncestor(QilUnary ndAnc) /// protected override QilNode VisitAncestorOrSelf(QilUnary ndAnc) { - CreateFilteredIterator(ndAnc.Child, "$$$iterAnc", typeof(AncestorIterator), XmlILMethods.AncCreate, XmlILMethods.AncNext, + CreateFilteredIterator(ndAnc.Child, "$$$iterAnc", typeof(AncestorIterator), XmlILMethods.AncCreate, XmlILMethods.AncNext, XmlILMethods.AncCurrent, XmlNodeKindFlags.Any, null, TriState.True, null); return ndAnc; } @@ -2711,7 +2711,7 @@ protected override QilNode VisitAncestorOrSelf(QilUnary ndAnc) /// protected override QilNode VisitPreceding(QilUnary ndPrec) { - CreateFilteredIterator(ndPrec.Child, "$$$iterPrec", typeof(PrecedingIterator), XmlILMethods.PrecCreate, XmlILMethods.PrecNext, + CreateFilteredIterator(ndPrec.Child, "$$$iterPrec", typeof(PrecedingIterator), XmlILMethods.PrecCreate, XmlILMethods.PrecNext, XmlILMethods.PrecCurrent, XmlNodeKindFlags.Any, null, TriState.Unknown, null); return ndPrec; } @@ -2721,7 +2721,7 @@ protected override QilNode VisitPreceding(QilUnary ndPrec) /// protected override QilNode VisitFollowingSibling(QilUnary ndFollSib) { - CreateFilteredIterator(ndFollSib.Child, "$$$iterFollSib", typeof(FollowingSiblingIterator), XmlILMethods.FollSibCreate, XmlILMethods.FollSibNext, + CreateFilteredIterator(ndFollSib.Child, "$$$iterFollSib", typeof(FollowingSiblingIterator), XmlILMethods.FollSibCreate, XmlILMethods.FollSibNext, XmlILMethods.FollSibCurrent, XmlNodeKindFlags.Any, null, TriState.Unknown, null); return ndFollSib; } @@ -2731,7 +2731,7 @@ protected override QilNode VisitFollowingSibling(QilUnary ndFollSib) /// protected override QilNode VisitPrecedingSibling(QilUnary ndPreSib) { - CreateFilteredIterator(ndPreSib.Child, "$$$iterPreSib", typeof(PrecedingSiblingIterator), XmlILMethods.PreSibCreate, XmlILMethods.PreSibNext, + CreateFilteredIterator(ndPreSib.Child, "$$$iterPreSib", typeof(PrecedingSiblingIterator), XmlILMethods.PreSibCreate, XmlILMethods.PreSibNext, XmlILMethods.PreSibCurrent, XmlNodeKindFlags.Any, null, TriState.Unknown, null); return ndPreSib; } @@ -2741,7 +2741,7 @@ protected override QilNode VisitPrecedingSibling(QilUnary ndPreSib) /// protected override QilNode VisitNodeRange(QilBinary ndRange) { - CreateFilteredIterator(ndRange.Left, "$$$iterRange", typeof(NodeRangeIterator), XmlILMethods.NodeRangeCreate, XmlILMethods.NodeRangeNext, + CreateFilteredIterator(ndRange.Left, "$$$iterRange", typeof(NodeRangeIterator), XmlILMethods.NodeRangeCreate, XmlILMethods.NodeRangeNext, XmlILMethods.NodeRangeCurrent, XmlNodeKindFlags.Any, null, TriState.Unknown, ndRange.Right); return ndRange; } @@ -2760,7 +2760,7 @@ protected override QilNode VisitDeref(QilBinary ndDeref) NestedVisitEnsureStack(ndDeref.Right); _helper.Call(XmlILMethods.IdCreate); - GenerateSimpleIterator(typeof(XPathNavigator), locIter, XmlILMethods.IdNext); + GenerateSimpleIterator(typeof(XPathNavigator), locIter, XmlILMethods.IdNext, XmlILMethods.IdCurrent); return ndDeref; } @@ -3476,7 +3476,7 @@ protected override QilNode VisitXPathNodeValue(QilUnary ndVal) /// protected override QilNode VisitXPathFollowing(QilUnary ndFoll) { - CreateFilteredIterator(ndFoll.Child, "$$$iterFoll", typeof(XPathFollowingIterator), XmlILMethods.XPFollCreate, XmlILMethods.XPFollNext, + CreateFilteredIterator(ndFoll.Child, "$$$iterFoll", typeof(XPathFollowingIterator), XmlILMethods.XPFollCreate, XmlILMethods.XPFollNext, XmlILMethods.XPFollCurrent, XmlNodeKindFlags.Any, null, TriState.Unknown, null); return ndFoll; } @@ -3486,7 +3486,7 @@ protected override QilNode VisitXPathFollowing(QilUnary ndFoll) /// protected override QilNode VisitXPathPreceding(QilUnary ndPrec) { - CreateFilteredIterator(ndPrec.Child, "$$$iterPrec", typeof(XPathPrecedingIterator), XmlILMethods.XPPrecCreate, XmlILMethods.XPPrecNext, + CreateFilteredIterator(ndPrec.Child, "$$$iterPrec", typeof(XPathPrecedingIterator), XmlILMethods.XPPrecCreate, XmlILMethods.XPPrecNext, XmlILMethods.XPPrecCurrent, XmlNodeKindFlags.Any, null, TriState.Unknown, null); return ndPrec; } @@ -3496,7 +3496,7 @@ protected override QilNode VisitXPathPreceding(QilUnary ndPrec) /// protected override QilNode VisitXPathNamespace(QilUnary ndNmsp) { - CreateSimpleIterator(ndNmsp.Child, "$$$iterNmsp", typeof(NamespaceIterator), XmlILMethods.NmspCreate, XmlILMethods.NmspNext); + CreateSimpleIterator(ndNmsp.Child, "$$$iterNmsp", typeof(NamespaceIterator), XmlILMethods.NmspCreate, XmlILMethods.NmspNext, XmlILMethods.NmspCurrent); return ndNmsp; } @@ -3911,7 +3911,7 @@ private void SyncToNavigator(LocalBuilder locNav, QilNode ndCtxt) /// if (!iter.MoveNext()) /// goto LabelNextCtxt; /// - private void CreateSimpleIterator(QilNode ndCtxt, string iterName, Type iterType, MethodInfo methCreate, MethodInfo methNext) + private void CreateSimpleIterator(QilNode ndCtxt, string iterName, Type iterType, MethodInfo methCreate, MethodInfo methNext, MethodInfo methCurrent) { // Iterator iter; LocalBuilder locIter = _helper.DeclareLocal(iterName, iterType); @@ -3921,7 +3921,7 @@ private void CreateSimpleIterator(QilNode ndCtxt, string iterName, Type iterType NestedVisitEnsureStack(ndCtxt); _helper.Call(methCreate); - GenerateSimpleIterator(typeof(XPathNavigator), locIter, methNext); + GenerateSimpleIterator(typeof(XPathNavigator), locIter, methNext, methCurrent); } /// @@ -3934,7 +3934,7 @@ private void CreateSimpleIterator(QilNode ndCtxt, string iterName, Type iterType /// if (!iter.MoveNext()) /// goto LabelNextCtxt; /// - private void CreateFilteredIterator(QilNode ndCtxt, string iterName, Type iterType, MethodInfo methCreate, MethodInfo methNext, + private void CreateFilteredIterator(QilNode ndCtxt, string iterName, Type iterType, MethodInfo methCreate, MethodInfo methNext, MethodInfo methCurrent, XmlNodeKindFlags kinds, QilName? ndName, TriState orSelf, QilNode? ndEnd) { // Iterator iter; @@ -3950,7 +3950,7 @@ private void CreateFilteredIterator(QilNode ndCtxt, string iterName, Type iterTy NestedVisitEnsureStack(ndEnd); _helper.Call(methCreate); - GenerateSimpleIterator(typeof(XPathNavigator), locIter, methNext); + GenerateSimpleIterator(typeof(XPathNavigator), locIter, methNext, methCurrent); } /// @@ -3970,7 +3970,7 @@ private void CreateFilteredIterator(QilNode ndCtxt, string iterName, Type iterTy /// case IteratorState.NextInputNode: goto LabelNextNested; /// } /// - private void CreateContainerIterator(QilUnary ndDod, string iterName, Type iterType, MethodInfo methCreate, MethodInfo methNext, + private void CreateContainerIterator(QilUnary ndDod, string iterName, Type iterType, MethodInfo methCreate, MethodInfo methNext, MethodInfo methCurrent, XmlNodeKindFlags kinds, QilName? ndName, TriState orSelf) { // Iterator iter; @@ -3994,7 +3994,7 @@ private void CreateContainerIterator(QilUnary ndDod, string iterName, Type iterT EndNestedIterator(ndLoop.Variable); _iterCurr.Storage = _iterNested!.Storage; - GenerateContainerIterator(ndDod, locIter, lblOnEndNested, methNext, typeof(XPathNavigator)); + GenerateContainerIterator(ndDod, locIter, lblOnEndNested, methNext, methCurrent, typeof(XPathNavigator)); } /// @@ -4007,7 +4007,7 @@ private void CreateContainerIterator(QilUnary ndDod, string iterName, Type iterT /// if (!iter.MoveNext()) /// goto LabelNextCtxt; /// - private void GenerateSimpleIterator(Type itemStorageType, LocalBuilder locIter, MethodInfo methNext) + private void GenerateSimpleIterator(Type itemStorageType, LocalBuilder locIter, MethodInfo methNext, MethodInfo methCurrent) { Label lblNext; @@ -4020,7 +4020,7 @@ private void GenerateSimpleIterator(Type itemStorageType, LocalBuilder locIter, _helper.Call(methNext); _helper.Emit(OpCodes.Brfalse, _iterCurr.GetLabelNext()); - _iterCurr.SetIterator(lblNext, StorageDescriptor.Current(locIter, itemStorageType)); + _iterCurr.SetIterator(lblNext, StorageDescriptor.Current(locIter, methCurrent, itemStorageType)); } /// @@ -4039,7 +4039,7 @@ private void GenerateSimpleIterator(Type itemStorageType, LocalBuilder locIter, /// } /// private void GenerateContainerIterator(QilNode nd, LocalBuilder locIter, Label lblOnEndNested, - MethodInfo methNext, Type itemStorageType) + MethodInfo methNext, MethodInfo methCurrent, Type itemStorageType) { Label lblCall; @@ -4071,7 +4071,7 @@ private void GenerateContainerIterator(QilNode nd, LocalBuilder locIter, Label l _helper.LoadInteger((int)IteratorResult.NeedInputNode); _helper.Emit(OpCodes.Beq, _iterNested!.GetLabelNext()); - _iterCurr.Storage = StorageDescriptor.Current(locIter, itemStorageType); + _iterCurr.Storage = StorageDescriptor.Current(locIter, methCurrent, itemStorageType); } else { @@ -4081,7 +4081,7 @@ private void GenerateContainerIterator(QilNode nd, LocalBuilder locIter, Label l // } _helper.Emit(OpCodes.Switch, new Label[] { _iterCurr.GetLabelNext(), _iterNested!.GetLabelNext() }); - _iterCurr.SetIterator(lblOnEndNested, StorageDescriptor.Current(locIter, itemStorageType)); + _iterCurr.SetIterator(lblOnEndNested, StorageDescriptor.Current(locIter, methCurrent, itemStorageType)); } } diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Runtime/XsltLibrary.cs b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Runtime/XsltLibrary.cs index ccf04eb9d09b5..0c8018bbb1ba6 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Runtime/XsltLibrary.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Xsl/Runtime/XsltLibrary.cs @@ -17,71 +17,57 @@ namespace System.Xml.Xsl.Runtime internal static class XsltMethods { // Formatting error messages - public static readonly MethodInfo FormatMessage = GetMethod(typeof(XsltLibrary), "FormatMessage"); + public static readonly MethodInfo FormatMessage = typeof(XsltLibrary).GetMethod("FormatMessage"); // Runtime type checks and casts - public static readonly MethodInfo EnsureNodeSet = GetMethod(typeof(XsltConvert), "EnsureNodeSet", typeof(IList)); + public static readonly MethodInfo EnsureNodeSet = typeof(XsltConvert).GetMethod("EnsureNodeSet", new[] { typeof(IList) }); // Comparisons - public static readonly MethodInfo EqualityOperator = GetMethod(typeof(XsltLibrary), "EqualityOperator"); - public static readonly MethodInfo RelationalOperator = GetMethod(typeof(XsltLibrary), "RelationalOperator"); + public static readonly MethodInfo EqualityOperator = typeof(XsltLibrary).GetMethod("EqualityOperator"); + public static readonly MethodInfo RelationalOperator = typeof(XsltLibrary).GetMethod("RelationalOperator"); // XPath functions - public static readonly MethodInfo StartsWith = GetMethod(typeof(XsltFunctions), "StartsWith"); - public static readonly MethodInfo Contains = GetMethod(typeof(XsltFunctions), "Contains"); - public static readonly MethodInfo SubstringBefore = GetMethod(typeof(XsltFunctions), "SubstringBefore"); - public static readonly MethodInfo SubstringAfter = GetMethod(typeof(XsltFunctions), "SubstringAfter"); - public static readonly MethodInfo Substring2 = GetMethod(typeof(XsltFunctions), "Substring", typeof(string), typeof(double)); - public static readonly MethodInfo Substring3 = GetMethod(typeof(XsltFunctions), "Substring", typeof(string), typeof(double), typeof(double)); - public static readonly MethodInfo NormalizeSpace = GetMethod(typeof(XsltFunctions), "NormalizeSpace"); - public static readonly MethodInfo Translate = GetMethod(typeof(XsltFunctions), "Translate"); - public static readonly MethodInfo Lang = GetMethod(typeof(XsltFunctions), "Lang"); - public static readonly MethodInfo Floor = GetMethod(typeof(Math), "Floor", typeof(double)); - public static readonly MethodInfo Ceiling = GetMethod(typeof(Math), "Ceiling", typeof(double)); - public static readonly MethodInfo Round = GetMethod(typeof(XsltFunctions), "Round"); + public static readonly MethodInfo StartsWith = typeof(XsltFunctions).GetMethod("StartsWith"); + public static readonly MethodInfo Contains = typeof(XsltFunctions).GetMethod("Contains"); + public static readonly MethodInfo SubstringBefore = typeof(XsltFunctions).GetMethod("SubstringBefore"); + public static readonly MethodInfo SubstringAfter = typeof(XsltFunctions).GetMethod("SubstringAfter"); + public static readonly MethodInfo Substring2 = typeof(XsltFunctions).GetMethod("Substring", new[] { typeof(string), typeof(double) }); + public static readonly MethodInfo Substring3 = typeof(XsltFunctions).GetMethod("Substring", new[] { typeof(string), typeof(double), typeof(double) }); + public static readonly MethodInfo NormalizeSpace = typeof(XsltFunctions).GetMethod("NormalizeSpace"); + public static readonly MethodInfo Translate = typeof(XsltFunctions).GetMethod("Translate"); + public static readonly MethodInfo Lang = typeof(XsltFunctions).GetMethod("Lang"); + public static readonly MethodInfo Floor = typeof(Math).GetMethod("Floor", new[] { typeof(double) }); + public static readonly MethodInfo Ceiling = typeof(Math).GetMethod("Ceiling", new[] { typeof(double) }); + public static readonly MethodInfo Round = typeof(XsltFunctions).GetMethod("Round"); // XSLT functions and helper methods (static) - public static readonly MethodInfo SystemProperty = GetMethod(typeof(XsltFunctions), "SystemProperty"); - public static readonly MethodInfo BaseUri = GetMethod(typeof(XsltFunctions), "BaseUri"); - public static readonly MethodInfo OuterXml = GetMethod(typeof(XsltFunctions), "OuterXml"); - public static readonly MethodInfo OnCurrentNodeChanged = GetMethod(typeof(XmlQueryRuntime), "OnCurrentNodeChanged"); + public static readonly MethodInfo SystemProperty = typeof(XsltFunctions).GetMethod("SystemProperty"); + public static readonly MethodInfo BaseUri = typeof(XsltFunctions).GetMethod("BaseUri"); + public static readonly MethodInfo OuterXml = typeof(XsltFunctions).GetMethod("OuterXml"); + public static readonly MethodInfo OnCurrentNodeChanged = typeof(XmlQueryRuntime).GetMethod("OnCurrentNodeChanged"); // MSXML extension functions - public static readonly MethodInfo MSFormatDateTime = GetMethod(typeof(XsltFunctions), "MSFormatDateTime"); - public static readonly MethodInfo MSStringCompare = GetMethod(typeof(XsltFunctions), "MSStringCompare"); - public static readonly MethodInfo MSUtc = GetMethod(typeof(XsltFunctions), "MSUtc"); - public static readonly MethodInfo MSNumber = GetMethod(typeof(XsltFunctions), "MSNumber"); - public static readonly MethodInfo MSLocalName = GetMethod(typeof(XsltFunctions), "MSLocalName"); - public static readonly MethodInfo MSNamespaceUri = GetMethod(typeof(XsltFunctions), "MSNamespaceUri"); + public static readonly MethodInfo MSFormatDateTime = typeof(XsltFunctions).GetMethod("MSFormatDateTime"); + public static readonly MethodInfo MSStringCompare = typeof(XsltFunctions).GetMethod("MSStringCompare"); + public static readonly MethodInfo MSUtc = typeof(XsltFunctions).GetMethod("MSUtc"); + public static readonly MethodInfo MSNumber = typeof(XsltFunctions).GetMethod("MSNumber"); + public static readonly MethodInfo MSLocalName = typeof(XsltFunctions).GetMethod("MSLocalName"); + public static readonly MethodInfo MSNamespaceUri = typeof(XsltFunctions).GetMethod("MSNamespaceUri"); // EXSLT functions - public static readonly MethodInfo EXslObjectType = GetMethod(typeof(XsltFunctions), "EXslObjectType"); + public static readonly MethodInfo EXslObjectType = typeof(XsltFunctions).GetMethod("EXslObjectType"); // XSLT functions and helper methods (non-static) - public static readonly MethodInfo CheckScriptNamespace = GetMethod(typeof(XsltLibrary), "CheckScriptNamespace"); - public static readonly MethodInfo FunctionAvailable = GetMethod(typeof(XsltLibrary), "FunctionAvailable"); - public static readonly MethodInfo ElementAvailable = GetMethod(typeof(XsltLibrary), "ElementAvailable"); - public static readonly MethodInfo RegisterDecimalFormat = GetMethod(typeof(XsltLibrary), "RegisterDecimalFormat"); - public static readonly MethodInfo RegisterDecimalFormatter = GetMethod(typeof(XsltLibrary), "RegisterDecimalFormatter"); - public static readonly MethodInfo FormatNumberStatic = GetMethod(typeof(XsltLibrary), "FormatNumberStatic"); - public static readonly MethodInfo FormatNumberDynamic = GetMethod(typeof(XsltLibrary), "FormatNumberDynamic"); - public static readonly MethodInfo IsSameNodeSort = GetMethod(typeof(XsltLibrary), "IsSameNodeSort"); - public static readonly MethodInfo LangToLcid = GetMethod(typeof(XsltLibrary), "LangToLcid"); - public static readonly MethodInfo NumberFormat = GetMethod(typeof(XsltLibrary), "NumberFormat"); - - public static MethodInfo GetMethod(Type className, string methName) - { - MethodInfo methInfo = className.GetMethod(methName); - Debug.Assert(methInfo != null, "Method " + className.Name + "." + methName + " not found"); - return methInfo; - } - - public static MethodInfo GetMethod(Type className, string methName, params Type[] args) - { - MethodInfo methInfo = className.GetMethod(methName, args); - Debug.Assert(methInfo != null, "Method " + className.Name + "." + methName + " not found"); - return methInfo; - } + public static readonly MethodInfo CheckScriptNamespace = typeof(XsltLibrary).GetMethod("CheckScriptNamespace"); + public static readonly MethodInfo FunctionAvailable = typeof(XsltLibrary).GetMethod("FunctionAvailable"); + public static readonly MethodInfo ElementAvailable = typeof(XsltLibrary).GetMethod("ElementAvailable"); + public static readonly MethodInfo RegisterDecimalFormat = typeof(XsltLibrary).GetMethod("RegisterDecimalFormat"); + public static readonly MethodInfo RegisterDecimalFormatter = typeof(XsltLibrary).GetMethod("RegisterDecimalFormatter"); + public static readonly MethodInfo FormatNumberStatic = typeof(XsltLibrary).GetMethod("FormatNumberStatic"); + public static readonly MethodInfo FormatNumberDynamic = typeof(XsltLibrary).GetMethod("FormatNumberDynamic"); + public static readonly MethodInfo IsSameNodeSort = typeof(XsltLibrary).GetMethod("IsSameNodeSort"); + public static readonly MethodInfo LangToLcid = typeof(XsltLibrary).GetMethod("LangToLcid"); + public static readonly MethodInfo NumberFormat = typeof(XsltLibrary).GetMethod("NumberFormat"); } [EditorBrowsable(EditorBrowsableState.Never)] diff --git a/src/libraries/System.Private.Xml/tests/TrimmingTests/System.Private.Xml.TrimmingTests.proj b/src/libraries/System.Private.Xml/tests/TrimmingTests/System.Private.Xml.TrimmingTests.proj new file mode 100644 index 0000000000000..44cc404e03bb3 --- /dev/null +++ b/src/libraries/System.Private.Xml/tests/TrimmingTests/System.Private.Xml.TrimmingTests.proj @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/libraries/System.Private.Xml/tests/TrimmingTests/XslCompiledTransformTests.cs b/src/libraries/System.Private.Xml/tests/TrimmingTests/XslCompiledTransformTests.cs new file mode 100644 index 0000000000000..e69038b683c25 --- /dev/null +++ b/src/libraries/System.Private.Xml/tests/TrimmingTests/XslCompiledTransformTests.cs @@ -0,0 +1,74 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.IO; +using System.Xml.XPath; +using System.Xml.Xsl; + +class Program +{ + static int Main(string[] args) + { + using (StringReader text = new StringReader( + @" + + + Empire Burlesque + Bob Dylan + USA + Columbia + 10.90 + 1985 + +")) + { + + + XPathDocument myXPathDoc = new XPathDocument(text); + XslCompiledTransform myXslTrans = new XslCompiledTransform(); + string xmlStr = +@" + + + + +

My CD Collection

+ + + + + + + + + + + + +
Title Artist
+ + +
+
"; + + using (StringReader str = new StringReader(xmlStr)) + using (var reader = System.Xml.XmlReader.Create(str)) + { + myXslTrans.Load(reader); + + StringWriter myWriter = new StringWriter(); + myXslTrans.Transform(myXPathDoc, null, myWriter); + + string result = myWriter.ToString(); + if (result.Contains("Empire Burlesque") && + result.Contains("Bob Dylan")) + { + return 100; + } + } + } + + return -1; + } +} From 99f3f55697b09e4a03a17e0a62f18d174cd4c285 Mon Sep 17 00:00:00 2001 From: Vladimir Sadov Date: Tue, 8 Dec 2020 15:50:10 -0800 Subject: [PATCH 78/87] renaming `clrcompression` --> `System.IO.Compression.Native` (#45713) * renaming `clrcompression` --> `System.IO.Compression.Native` * rename `clrcompression.def` file * exclude `System.*.Native.dll` when creating managed shims * static library should be `System.IO.Compression.Native.lib` on Windows. Same as Globalization - without `lib` prefix * revert change to the resource string in tests * move consts to src/Interop, remove `lib` prefix on Windows * Delete what used to be System.IO.Compression.clrcompression package * Preserve old PlatformManifestFileEntry for clrcompression.dll * partially revert the src\Interop change * Adjust projects for removal of `Interop\Interop.Libraries.cs` revert 1 * Undo entire System.IO.Compression.csproj to get rid of an invisible edit. --- docs/coding-guidelines/interop-guidelines.md | 2 +- src/coreclr/scripts/superpmi-setup.py | 2 +- src/coreclr/vm/pinvokeoverride.cpp | 8 +++- .../cli/apphost/static/CMakeLists.txt | 2 +- .../cli/hostpolicy/hostpolicy_context.cpp | 2 +- .../Directory.Build.props | 1 + .../Common/src/Interop/Interop.Libraries.cs | 10 ----- .../src/Interop/Unix/Interop.Libraries.cs | 1 + .../src/Interop/Windows/Interop.Libraries.cs | 3 +- src/libraries/Native/AnyOS/zlib/pal_zlib.c | 2 +- src/libraries/Native/Windows/CMakeLists.txt | 2 +- .../CMakeLists.txt | 36 +++++++++--------- .../Native.rc | 0 .../System.IO.Compression.Native.def} | 4 +- .../zlib-intel/README.txt | 0 .../zlib-intel/adler32.c | 0 .../zlib-intel/compress.c | 0 .../zlib-intel/crc32.c | 0 .../zlib-intel/crc32.h | 0 .../zlib-intel/crc_folding.c | 0 .../zlib-intel/deflate.c | 0 .../zlib-intel/deflate.h | 0 .../zlib-intel/deflate_medium.c | 0 .../zlib-intel/deflate_quick.c | 0 .../zlib-intel/gzguts.h | 0 .../zlib-intel/inffast.c | 0 .../zlib-intel/inffast.h | 0 .../zlib-intel/inffixed.h | 0 .../zlib-intel/inflate.c | 0 .../zlib-intel/inflate.h | 0 .../zlib-intel/inftrees.c | 0 .../zlib-intel/inftrees.h | 0 .../zlib-intel/match.c | 0 .../zlib-intel/slide_sse.c | 0 .../zlib-intel/trees.c | 0 .../zlib-intel/trees.h | 0 .../zlib-intel/x86.c | 0 .../zlib-intel/x86.h | 0 .../zlib-intel/zconf.h | 0 .../zlib-intel/zlib.h | 0 .../zlib-intel/zutil.c | 0 .../zlib-intel/zutil.h | 0 .../zlib/CMakeLists.txt | 0 .../zlib/ChangeLog | 0 .../zlib/FAQ | 0 .../zlib/INDEX | 0 .../zlib/Makefile | 0 .../zlib/Makefile.in | 0 .../zlib/README | 0 .../zlib/adler32.c | 0 .../zlib/compress.c | 0 .../zlib/configure | 0 .../zlib/crc32.c | 0 .../zlib/crc32.h | 0 .../zlib/deflate.c | 0 .../zlib/deflate.h | 0 .../zlib/gzclose.c | 0 .../zlib/gzguts.h | 0 .../zlib/gzlib.c | 0 .../zlib/gzread.c | 0 .../zlib/gzwrite.c | 0 .../zlib/infback.c | 0 .../zlib/inffast.c | 0 .../zlib/inffast.h | 0 .../zlib/inffixed.h | 0 .../zlib/inflate.c | 0 .../zlib/inflate.h | 0 .../zlib/inftrees.c | 0 .../zlib/inftrees.h | 0 .../zlib/make_vms.com | 0 .../zlib/treebuild.xml | 0 .../zlib/trees.c | 0 .../zlib/trees.h | 0 .../zlib/uncompr.c | 0 .../zlib/zconf.h | 0 .../zlib/zconf.h.cmakein | 0 .../zlib/zconf.h.in | 0 .../zlib/zlib.3 | 0 .../zlib/zlib.3.pdf | Bin .../zlib/zlib.h | 0 .../zlib/zlib.map | 0 .../zlib/zlib.pc.cmakein | 0 .../zlib/zlib.pc.in | 0 .../zlib/zlib2ansi | 0 .../zlib/zutil.c | 0 .../zlib/zutil.h | 0 .../IO/Compression/DeflateZLib/ZLibNative.cs | 6 +-- .../System.Private.CoreLib.Shared.projitems | 3 -- .../src/System.Security.AccessControl.csproj | 2 +- .../System.Security.Principal.Windows.csproj | 2 +- src/libraries/pkg/descriptions.json | 5 --- .../shims/manual/Directory.Build.props | 4 +- src/mono/mono/metadata/native-library.c | 9 ++++- 93 files changed, 53 insertions(+), 53 deletions(-) delete mode 100644 src/libraries/Common/src/Interop/Interop.Libraries.cs rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/CMakeLists.txt (70%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/Native.rc (100%) rename src/libraries/Native/Windows/{clrcompression/clrcompression.def => System.IO.Compression.Native/System.IO.Compression.Native.def} (92%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/README.txt (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/adler32.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/compress.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/crc32.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/crc32.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/crc_folding.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/deflate.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/deflate.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/deflate_medium.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/deflate_quick.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/gzguts.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/inffast.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/inffast.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/inffixed.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/inflate.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/inflate.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/inftrees.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/inftrees.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/match.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/slide_sse.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/trees.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/trees.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/x86.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/x86.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/zconf.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/zlib.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/zutil.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib-intel/zutil.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/CMakeLists.txt (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/ChangeLog (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/FAQ (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/INDEX (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/Makefile (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/Makefile.in (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/README (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/adler32.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/compress.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/configure (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/crc32.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/crc32.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/deflate.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/deflate.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/gzclose.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/gzguts.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/gzlib.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/gzread.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/gzwrite.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/infback.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/inffast.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/inffast.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/inffixed.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/inflate.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/inflate.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/inftrees.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/inftrees.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/make_vms.com (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/treebuild.xml (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/trees.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/trees.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/uncompr.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/zconf.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/zconf.h.cmakein (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/zconf.h.in (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/zlib.3 (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/zlib.3.pdf (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/zlib.h (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/zlib.map (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/zlib.pc.cmakein (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/zlib.pc.in (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/zlib2ansi (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/zutil.c (100%) rename src/libraries/Native/Windows/{clrcompression => System.IO.Compression.Native}/zlib/zutil.h (100%) diff --git a/docs/coding-guidelines/interop-guidelines.md b/docs/coding-guidelines/interop-guidelines.md index 5ce81404073fb..24cb0755d727c 100644 --- a/docs/coding-guidelines/interop-guidelines.md +++ b/docs/coding-guidelines/interop-guidelines.md @@ -41,7 +41,7 @@ internal static partial class Interop ### File organization - The Interop partial class definitions should live in Interop.*.cs files. These Interop.*.cs files should all live under Common rather than within a given assembly's folder. - - The only exception to this should be when an assembly P/Invokes to its own native library that isn't available to or consumed by anyone else, e.g. System.IO.Compression P/Invoking to clrcompression.dll. In such cases, System.IO.Compression should have its own Interop folder which follows a similar scheme as outlined in this proposal, but just for these private P/Invokes. + - The only exception to this should be when an assembly P/Invokes to its own native library that isn't available to or consumed by anyone else, e.g. System.IO.Compression P/Invoking to System.IO.Compression.Native.dll. In such cases, System.IO.Compression should have its own Interop folder which follows a similar scheme as outlined in this proposal, but just for these private P/Invokes. - Under Common\src\Interop, we'll have a folder for each target platform, and within each platform, for each library from which functionality is being consumed. The Interop.*.cs files will live within those library folders, e.g. ``` diff --git a/src/coreclr/scripts/superpmi-setup.py b/src/coreclr/scripts/superpmi-setup.py index 10365804de8b2..ba32ebfdb2779 100644 --- a/src/coreclr/scripts/superpmi-setup.py +++ b/src/coreclr/scripts/superpmi-setup.py @@ -56,7 +56,7 @@ parser.add_argument("-max_size", help="Max size of each partition in MB") is_windows = platform.system() == "Windows" native_binaries_to_ignore = [ - "clrcompression.dll", + "System.IO.Compression.Native.dll", "clretwrc.dll", "clrgc.dll", "clrjit.dll", diff --git a/src/coreclr/vm/pinvokeoverride.cpp b/src/coreclr/vm/pinvokeoverride.cpp index 07af650e3aa92..2f4f0924142aa 100644 --- a/src/coreclr/vm/pinvokeoverride.cpp +++ b/src/coreclr/vm/pinvokeoverride.cpp @@ -14,10 +14,16 @@ extern "C" const void* GlobalizationResolveDllImport(const char* name); static PInvokeOverrideFn* s_overrideImpl = nullptr; +#if defined(_WIN32) +#define GLOBALIZATION_DLL_NAME "System.Globalization.Native" +#else +#define GLOBALIZATION_DLL_NAME "libSystem.Globalization.Native" +#endif + // here we handle PInvokes whose implementation is always statically linked (even in .so/.dll case) static const void* DefaultResolveDllImport(const char* libraryName, const char* entrypointName) { - if (strcmp(libraryName, "libSystem.Globalization.Native") == 0) + if (strcmp(libraryName, GLOBALIZATION_DLL_NAME) == 0) { return GlobalizationResolveDllImport(entrypointName); } diff --git a/src/installer/corehost/cli/apphost/static/CMakeLists.txt b/src/installer/corehost/cli/apphost/static/CMakeLists.txt index cf100a715d1a3..530806e4ae240 100644 --- a/src/installer/corehost/cli/apphost/static/CMakeLists.txt +++ b/src/installer/corehost/cli/apphost/static/CMakeLists.txt @@ -119,7 +119,7 @@ if(CLR_CMAKE_TARGET_WIN32) set(CORECLR_LIBRARIES ${CORECLR_STATIC_LIB_LOCATION}/coreclr_static.lib ${CORECLR_STATIC_LIB_LOCATION}/System.Globalization.Native.lib - ${CORECLR_STATIC_LIB_LOCATION}/libclrcompression.lib + ${CORECLR_STATIC_LIB_LOCATION}/System.IO.Compression.Native.lib kernel32.lib advapi32.lib ole32.lib diff --git a/src/installer/corehost/cli/hostpolicy/hostpolicy_context.cpp b/src/installer/corehost/cli/hostpolicy/hostpolicy_context.cpp index aba62722a0da5..6abafe19a841b 100644 --- a/src/installer/corehost/cli/hostpolicy/hostpolicy_context.cpp +++ b/src/installer/corehost/cli/hostpolicy/hostpolicy_context.cpp @@ -47,7 +47,7 @@ namespace extern "C" const void* CompressionResolveDllImport(const char* name); #if defined(_WIN32) -#define COMPRESSION_DLL_NAME "clrcompression" +#define COMPRESSION_DLL_NAME "System.IO.Compression.Native" #else #define COMPRESSION_DLL_NAME "libSystem.IO.Compression.Native" #endif diff --git a/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props b/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props index 036716cf0a7f9..bf739ab1e4cf4 100644 --- a/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props +++ b/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props @@ -177,6 +177,7 @@ + diff --git a/src/libraries/Common/src/Interop/Interop.Libraries.cs b/src/libraries/Common/src/Interop/Interop.Libraries.cs deleted file mode 100644 index e57d5918ba350..0000000000000 --- a/src/libraries/Common/src/Interop/Interop.Libraries.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -internal static partial class Interop -{ - internal static partial class Libraries - { - internal const string GlobalizationNative = "libSystem.Globalization.Native"; - } -} diff --git a/src/libraries/Common/src/Interop/Unix/Interop.Libraries.cs b/src/libraries/Common/src/Interop/Unix/Interop.Libraries.cs index 6a624e1ced4c6..bccd11e9a517c 100644 --- a/src/libraries/Common/src/Interop/Unix/Interop.Libraries.cs +++ b/src/libraries/Common/src/Interop/Unix/Interop.Libraries.cs @@ -10,6 +10,7 @@ internal static partial class Libraries internal const string NetSecurityNative = "libSystem.Net.Security.Native"; internal const string CryptoNative = "libSystem.Security.Cryptography.Native.OpenSsl"; internal const string CompressionNative = "libSystem.IO.Compression.Native"; + internal const string GlobalizationNative = "libSystem.Globalization.Native"; internal const string IOPortsNative = "libSystem.IO.Ports.Native"; internal const string Libdl = "libdl"; internal const string HostPolicy = "libhostpolicy"; diff --git a/src/libraries/Common/src/Interop/Windows/Interop.Libraries.cs b/src/libraries/Common/src/Interop/Windows/Interop.Libraries.cs index 4893a2894682d..fbddd07aaaf01 100644 --- a/src/libraries/Common/src/Interop/Windows/Interop.Libraries.cs +++ b/src/libraries/Common/src/Interop/Windows/Interop.Libraries.cs @@ -31,7 +31,8 @@ internal static partial class Libraries internal const string Wldap32 = "wldap32.dll"; internal const string Ws2_32 = "ws2_32.dll"; internal const string Wtsapi32 = "wtsapi32.dll"; - internal const string CompressionNative = "clrcompression"; + internal const string CompressionNative = "System.IO.Compression.Native"; + internal const string GlobalizationNative = "System.Globalization.Native"; internal const string MsQuic = "msquic.dll"; internal const string HostPolicy = "hostpolicy.dll"; } diff --git a/src/libraries/Native/AnyOS/zlib/pal_zlib.c b/src/libraries/Native/AnyOS/zlib/pal_zlib.c index da4566a278ffb..2c399639d0fa9 100644 --- a/src/libraries/Native/AnyOS/zlib/pal_zlib.c +++ b/src/libraries/Native/AnyOS/zlib/pal_zlib.c @@ -7,7 +7,7 @@ #ifdef _WIN32 #define c_static_assert(e) static_assert((e),"") - #include "../../Windows/clrcompression/zlib/zlib.h" + #include "../../Windows/System.IO.Compression.Native/zlib/zlib.h" #else #include "pal_utilities.h" #include diff --git a/src/libraries/Native/Windows/CMakeLists.txt b/src/libraries/Native/Windows/CMakeLists.txt index 1f3ac2bd8eccc..66bb91dcc603e 100644 --- a/src/libraries/Native/Windows/CMakeLists.txt +++ b/src/libraries/Native/Windows/CMakeLists.txt @@ -129,4 +129,4 @@ if(STATIC_LIBS_ONLY) add_subdirectory(../Unix/System.Globalization.Native System.Globalization.Native) endif() -add_subdirectory(clrcompression) +add_subdirectory(System.IO.Compression.Native) diff --git a/src/libraries/Native/Windows/clrcompression/CMakeLists.txt b/src/libraries/Native/Windows/System.IO.Compression.Native/CMakeLists.txt similarity index 70% rename from src/libraries/Native/Windows/clrcompression/CMakeLists.txt rename to src/libraries/Native/Windows/System.IO.Compression.Native/CMakeLists.txt index 9566e381d88ec..8b0633417c526 100644 --- a/src/libraries/Native/Windows/clrcompression/CMakeLists.txt +++ b/src/libraries/Native/Windows/System.IO.Compression.Native/CMakeLists.txt @@ -1,4 +1,4 @@ -project(clrcompression) +project(System.IO.Compression.Native) if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") message(FATAL_ERROR "Binary directory isn't being correctly set before calling Cmake. Tree must be built in separate directory from source.") @@ -81,46 +81,46 @@ set (NATIVECOMPRESSION_SOURCES include_directories("../../AnyOS/brotli/include") if (GEN_SHARED_LIB) - add_library(clrcompression + add_library(System.IO.Compression.Native SHARED ${NATIVECOMPRESSION_SOURCES} - clrcompression.def + System.IO.Compression.Native.def # This will add versioning to the library ${CMAKE_REPO_ROOT}/artifacts/obj/NativeVersion.rc ) endif() -add_library(clrcompression-static +add_library(System.IO.Compression.Native-static STATIC ${NATIVECOMPRESSION_SOURCES} ) -SET_TARGET_PROPERTIES(clrcompression-static PROPERTIES PREFIX "") -SET_TARGET_PROPERTIES(clrcompression-static PROPERTIES OUTPUT_NAME libclrcompression) +SET_TARGET_PROPERTIES(System.IO.Compression.Native-static PROPERTIES PREFIX "") +SET_TARGET_PROPERTIES(System.IO.Compression.Native-static PROPERTIES OUTPUT_NAME System.IO.Compression.Native) # Allow specification of arguments that should be passed to the linker if (GEN_SHARED_LIB) - SET_TARGET_PROPERTIES(clrcompression PROPERTIES LINK_OPTIONS "${__LinkArgs};${__SharedLinkArgs}") + SET_TARGET_PROPERTIES(System.IO.Compression.Native PROPERTIES LINK_OPTIONS "${__LinkArgs};${__SharedLinkArgs}") endif() -SET_TARGET_PROPERTIES(clrcompression-static PROPERTIES STATIC_LIBRARY_OPTIONS "${__LinkArgs}") +SET_TARGET_PROPERTIES(System.IO.Compression.Native-static PROPERTIES STATIC_LIBRARY_OPTIONS "${__LinkArgs}") # Allow specification of libraries that should be linked against if (GEN_SHARED_LIB) - target_link_libraries(clrcompression ${__LinkLibraries}) + target_link_libraries(System.IO.Compression.Native ${__LinkLibraries}) endif() -target_link_libraries(clrcompression-static ${__LinkLibraries}) +target_link_libraries(System.IO.Compression.Native-static ${__LinkLibraries}) if (GEN_SHARED_LIB) - GENERATE_EXPORT_HEADER( clrcompression - BASE_NAME clrcompression - EXPORT_MACRO_NAME clrcompression_EXPORT - EXPORT_FILE_NAME clrcompression_Export.h - STATIC_DEFINE clrcompression_BUILT_AS_STATIC + GENERATE_EXPORT_HEADER( System.IO.Compression.Native + BASE_NAME System.IO.Compression.Native + EXPORT_MACRO_NAME System.IO.Compression.Native_EXPORT + EXPORT_FILE_NAME System.IO.Compression.Native_Export.h + STATIC_DEFINE System.IO.Compression.Native_BUILT_AS_STATIC ) - install (TARGETS clrcompression DESTINATION .) - install (FILES $ DESTINATION .) + install (TARGETS System.IO.Compression.Native DESTINATION .) + install (FILES $ DESTINATION .) endif() -install (TARGETS clrcompression-static DESTINATION ${STATIC_LIB_DESTINATION}) +install (TARGETS System.IO.Compression.Native-static DESTINATION ${STATIC_LIB_DESTINATION}) diff --git a/src/libraries/Native/Windows/clrcompression/Native.rc b/src/libraries/Native/Windows/System.IO.Compression.Native/Native.rc similarity index 100% rename from src/libraries/Native/Windows/clrcompression/Native.rc rename to src/libraries/Native/Windows/System.IO.Compression.Native/Native.rc diff --git a/src/libraries/Native/Windows/clrcompression/clrcompression.def b/src/libraries/Native/Windows/System.IO.Compression.Native/System.IO.Compression.Native.def similarity index 92% rename from src/libraries/Native/Windows/clrcompression/clrcompression.def rename to src/libraries/Native/Windows/System.IO.Compression.Native/System.IO.Compression.Native.def index 95a413f199e92..a5d192ee42e83 100644 --- a/src/libraries/Native/Windows/clrcompression/clrcompression.def +++ b/src/libraries/Native/Windows/System.IO.Compression.Native/System.IO.Compression.Native.def @@ -1,4 +1,4 @@ -LIBRARY clrcompression.dll +LIBRARY System.IO.Compression.Native.dll EXPORTS CompressionNative_Crc32 @@ -31,4 +31,4 @@ EXPORTS BrotliDecoderTakeOutput BrotliDecoderVersion BrotliGetDictionary - BrotliSetDictionaryData \ No newline at end of file + BrotliSetDictionaryData diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/README.txt b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/README.txt similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/README.txt rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/README.txt diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/adler32.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/adler32.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/adler32.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/adler32.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/compress.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/compress.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/compress.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/compress.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/crc32.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/crc32.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/crc32.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/crc32.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/crc32.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/crc32.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/crc32.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/crc32.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/crc_folding.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/crc_folding.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/crc_folding.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/crc_folding.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/deflate.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/deflate.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/deflate.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/deflate.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/deflate.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/deflate.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/deflate.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/deflate.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/deflate_medium.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/deflate_medium.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/deflate_medium.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/deflate_medium.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/deflate_quick.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/deflate_quick.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/deflate_quick.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/deflate_quick.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/gzguts.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/gzguts.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/gzguts.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/gzguts.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/inffast.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/inffast.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/inffast.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/inffast.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/inffast.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/inffast.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/inffast.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/inffast.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/inffixed.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/inffixed.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/inffixed.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/inffixed.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/inflate.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/inflate.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/inflate.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/inflate.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/inflate.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/inflate.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/inflate.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/inflate.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/inftrees.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/inftrees.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/inftrees.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/inftrees.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/inftrees.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/inftrees.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/inftrees.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/inftrees.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/match.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/match.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/match.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/match.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/slide_sse.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/slide_sse.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/slide_sse.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/slide_sse.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/trees.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/trees.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/trees.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/trees.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/trees.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/trees.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/trees.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/trees.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/x86.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/x86.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/x86.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/x86.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/x86.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/x86.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/x86.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/x86.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/zconf.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/zconf.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/zconf.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/zconf.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/zlib.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/zlib.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/zlib.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/zlib.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/zutil.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/zutil.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/zutil.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/zutil.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib-intel/zutil.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/zutil.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib-intel/zutil.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib-intel/zutil.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib/CMakeLists.txt b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/CMakeLists.txt similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/CMakeLists.txt rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/CMakeLists.txt diff --git a/src/libraries/Native/Windows/clrcompression/zlib/ChangeLog b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/ChangeLog similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/ChangeLog rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/ChangeLog diff --git a/src/libraries/Native/Windows/clrcompression/zlib/FAQ b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/FAQ similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/FAQ rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/FAQ diff --git a/src/libraries/Native/Windows/clrcompression/zlib/INDEX b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/INDEX similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/INDEX rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/INDEX diff --git a/src/libraries/Native/Windows/clrcompression/zlib/Makefile b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/Makefile similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/Makefile rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/Makefile diff --git a/src/libraries/Native/Windows/clrcompression/zlib/Makefile.in b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/Makefile.in similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/Makefile.in rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/Makefile.in diff --git a/src/libraries/Native/Windows/clrcompression/zlib/README b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/README similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/README rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/README diff --git a/src/libraries/Native/Windows/clrcompression/zlib/adler32.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/adler32.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/adler32.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/adler32.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib/compress.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/compress.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/compress.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/compress.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib/configure b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/configure similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/configure rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/configure diff --git a/src/libraries/Native/Windows/clrcompression/zlib/crc32.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/crc32.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/crc32.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/crc32.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib/crc32.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/crc32.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/crc32.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/crc32.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib/deflate.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/deflate.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/deflate.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/deflate.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib/deflate.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/deflate.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/deflate.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/deflate.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib/gzclose.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/gzclose.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/gzclose.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/gzclose.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib/gzguts.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/gzguts.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/gzguts.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/gzguts.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib/gzlib.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/gzlib.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/gzlib.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/gzlib.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib/gzread.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/gzread.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/gzread.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/gzread.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib/gzwrite.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/gzwrite.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/gzwrite.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/gzwrite.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib/infback.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/infback.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/infback.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/infback.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib/inffast.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/inffast.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/inffast.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/inffast.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib/inffast.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/inffast.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/inffast.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/inffast.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib/inffixed.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/inffixed.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/inffixed.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/inffixed.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib/inflate.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/inflate.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/inflate.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/inflate.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib/inflate.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/inflate.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/inflate.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/inflate.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib/inftrees.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/inftrees.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/inftrees.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/inftrees.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib/inftrees.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/inftrees.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/inftrees.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/inftrees.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib/make_vms.com b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/make_vms.com similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/make_vms.com rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/make_vms.com diff --git a/src/libraries/Native/Windows/clrcompression/zlib/treebuild.xml b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/treebuild.xml similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/treebuild.xml rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/treebuild.xml diff --git a/src/libraries/Native/Windows/clrcompression/zlib/trees.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/trees.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/trees.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/trees.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib/trees.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/trees.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/trees.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/trees.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib/uncompr.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/uncompr.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/uncompr.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/uncompr.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib/zconf.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zconf.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/zconf.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zconf.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib/zconf.h.cmakein b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zconf.h.cmakein similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/zconf.h.cmakein rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zconf.h.cmakein diff --git a/src/libraries/Native/Windows/clrcompression/zlib/zconf.h.in b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zconf.h.in similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/zconf.h.in rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zconf.h.in diff --git a/src/libraries/Native/Windows/clrcompression/zlib/zlib.3 b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zlib.3 similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/zlib.3 rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zlib.3 diff --git a/src/libraries/Native/Windows/clrcompression/zlib/zlib.3.pdf b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zlib.3.pdf similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/zlib.3.pdf rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zlib.3.pdf diff --git a/src/libraries/Native/Windows/clrcompression/zlib/zlib.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zlib.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/zlib.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zlib.h diff --git a/src/libraries/Native/Windows/clrcompression/zlib/zlib.map b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zlib.map similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/zlib.map rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zlib.map diff --git a/src/libraries/Native/Windows/clrcompression/zlib/zlib.pc.cmakein b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zlib.pc.cmakein similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/zlib.pc.cmakein rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zlib.pc.cmakein diff --git a/src/libraries/Native/Windows/clrcompression/zlib/zlib.pc.in b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zlib.pc.in similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/zlib.pc.in rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zlib.pc.in diff --git a/src/libraries/Native/Windows/clrcompression/zlib/zlib2ansi b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zlib2ansi similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/zlib2ansi rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zlib2ansi diff --git a/src/libraries/Native/Windows/clrcompression/zlib/zutil.c b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zutil.c similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/zutil.c rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zutil.c diff --git a/src/libraries/Native/Windows/clrcompression/zlib/zutil.h b/src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zutil.h similarity index 100% rename from src/libraries/Native/Windows/clrcompression/zlib/zutil.h rename to src/libraries/Native/Windows/System.IO.Compression.Native/zlib/zutil.h diff --git a/src/libraries/System.IO.Compression/src/System/IO/Compression/DeflateZLib/ZLibNative.cs b/src/libraries/System.IO.Compression/src/System/IO/Compression/DeflateZLib/ZLibNative.cs index 8cffa5df290d6..8118aeba0ecb8 100644 --- a/src/libraries/System.IO.Compression/src/System/IO/Compression/DeflateZLib/ZLibNative.cs +++ b/src/libraries/System.IO.Compression/src/System/IO/Compression/DeflateZLib/ZLibNative.cs @@ -8,7 +8,7 @@ namespace System.IO.Compression { /// /// This class provides declaration for constants and PInvokes as well as some basic tools for exposing the - /// native CLRCompression.dll (effectively, ZLib) library to managed code. + /// native System.IO.Compression.Native.dll (effectively, ZLib) library to managed code. /// /// See also: How to choose a compression level (in comments to CompressionLevel. /// @@ -159,12 +159,12 @@ public enum CompressionMethod : int * This was done on purpose to: * * - Achieve the right encapsulation in a situation where ZLibNative may be compiled division-wide - * into different assemblies that wish to consume CLRCompression. Since internal + * into different assemblies that wish to consume System.IO.Compression.Native. Since internal * scope is effectively like public scope when compiling ZLibNative into a higher * level assembly, we need a combination of inner types and private-scope members to achieve * the right encapsulation. * - * - Achieve late dynamic loading of CLRCompression.dll at the right time. + * - Achieve late dynamic loading of System.IO.Compression.Native.dll at the right time. * The native assembly will not be loaded unless it is actually used since the loading is performed by a static * constructor of an inner type that is not directly referenced by user code. * diff --git a/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems b/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems index 5e67e04226071..dafa471e67f9c 100644 --- a/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems +++ b/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems @@ -1047,9 +1047,6 @@ - - Common\Interop\Interop.Libraries.cs - Common\Interop\Interop.Calendar.cs diff --git a/src/libraries/System.Security.AccessControl/src/System.Security.AccessControl.csproj b/src/libraries/System.Security.AccessControl/src/System.Security.AccessControl.csproj index 1273cc6c5d1c4..524801d2ed72c 100644 --- a/src/libraries/System.Security.AccessControl/src/System.Security.AccessControl.csproj +++ b/src/libraries/System.Security.AccessControl/src/System.Security.AccessControl.csproj @@ -30,7 +30,7 @@ + Link="Common\Interop\Windows\Interop.Libraries.cs" /> + Link="Common\Interop\Windows\Interop.Libraries.cs" /> + Exclude="$(NetCoreAppCurrentRuntimePath)$(MSBuildProjectName).dll; + $(NetCoreAppCurrentRuntimePath)System.*.Native.dll" + /> diff --git a/src/mono/mono/metadata/native-library.c b/src/mono/mono/metadata/native-library.c index 0003bcfdae620..25923730d7031 100644 --- a/src/mono/mono/metadata/native-library.c +++ b/src/mono/mono/metadata/native-library.c @@ -1261,10 +1261,17 @@ legacy_lookup_native_library (MonoImage *image, const char *scope) #endif // ENABLE_NETCORE #if defined(ENABLE_NETCORE) && !defined(NO_GLOBALIZATION_SHIM) + +#ifdef HOST_WIN32 +#define GLOBALIZATION_DLL_NAME "System.Globalization.Native" +#else +#define GLOBALIZATION_DLL_NAME "libSystem.Globalization.Native" +#endif + static gpointer default_resolve_dllimport (const char *dll, const char *func) { - if (strcmp (dll, "libSystem.Globalization.Native") == 0) { + if (strcmp (dll, GLOBALIZATION_DLL_NAME) == 0) { const void *method_impl = GlobalizationResolveDllImport (func); if (method_impl) return (gpointer)method_impl; From 8671a07fa324d092df0dffb75acd2b9cdf41f997 Mon Sep 17 00:00:00 2001 From: Dan Moseley Date: Tue, 8 Dec 2020 15:58:11 -0800 Subject: [PATCH 79/87] Update using-dotnet-cli.md (#45717) * Update using-dotnet-cli.md * Update using-dotnet-cli.md Change versions to 6.0 * Update using-dotnet-cli.md * Update using-dotnet-cli.md * Update using-dotnet-cli.md * Update using-dotnet-cli.md --- docs/workflow/using-dotnet-cli.md | 142 +++++++++++++----------------- 1 file changed, 62 insertions(+), 80 deletions(-) diff --git a/docs/workflow/using-dotnet-cli.md b/docs/workflow/using-dotnet-cli.md index ce410d7382919..f63df7aac8530 100644 --- a/docs/workflow/using-dotnet-cli.md +++ b/docs/workflow/using-dotnet-cli.md @@ -1,9 +1,11 @@ # Using your .NET Runtime build with .NET SDK -This walkthrough explains how to run your own app against your local build using only the .NET SDK. +This walkthrough explains how to run your own app against your local build using only the .NET SDK. -For other walkthroughs see: +Testing your local build this way is quite realistic - more like a real user. However it takes longer because you have to build the package. Each build can take 10 minutes altogether. + +If you want to use a faster method, you may want to use one of these walkthroughs instead: - [Using Your Build - Update from raw build output](./testing/using-your-build.md) - [Using CoreRun To Run .NET Application](./testing/using-corerun.md) @@ -11,12 +13,16 @@ For other walkthroughs see: ## Prerequisites -1. Successfully built this repository and thus have files of the form shown below. From now on we call this folder NuGet package folder. +All paths in examples below are Windows-style but the procedure is otherwise exactly the same on Unix. + +1. Successfully built this repository including the shared framework package and thus have files of the form shown below. From now on we call this folder your NuGet package folder. ``` - artifacts\packages\\Shipping\ + \artifacts\packages\\Shipping\ ``` +If you don't have this folder, you may have built binaries but not packages. Try building from the root with a command like `build.cmd clr+libs+host+packs -c release`. + 2. Acquired the latest nightly .NET SDK from [here](https://github.com/dotnet/installer) and added its root folder to your [path](requirements/windows-requirements.md#adding-to-the-default-path-variable) ## First Run @@ -31,18 +37,21 @@ From now on all instructions relate to this folder as "app folder". The build script creates NuGet packages and puts them to `artifacts\packages\\Shipping\`. .NET SDK has no idea about its existence and we need to tell it where to search for the packages. -Please run `dotnet new nugetconfig` in the app folder and update the created `NuGet.Config` file: - -* ** adjust path below to point to your in-repo NuGet folder** +Please run `dotnet new nugetconfig` in the app folder and replace the created `NuGet.Config` file content with: ```xml - + + + + - - + + + + ``` @@ -56,12 +65,12 @@ Please run `dotnet new console` in the app folder and update the created `.cspro Exe - net5.0 + net6.0 win-x64 - + @@ -70,10 +79,10 @@ Please run `dotnet new console` in the app folder and update the created `.cspro **You have to set the correct values for `RuntimeIdentifier` (RI) and `RuntimeFrameworkVersion`.** You can generally figure that out by looking at the packages you found in your output. -In our example you will see there is a package with the name `Microsoft.NETCore.App.Runtime.win-x64.5.0.0-dev.nupkg` +In our example you will see there is a package with the name `Microsoft.NETCore.App.Runtime.win-x64.6.0.0-dev.nupkg` ``` -Microsoft.NETCore.App.Runtime.win-x64.5.0.0-dev.nupkg +Microsoft.NETCore.App.Runtime.win-x64.6.0.0-dev.nupkg ^-RI--^ ^version^ ``` @@ -109,11 +118,13 @@ Copyright (C) Microsoft Corporation. All rights reserved. Determining projects to restore... Restored c:\runtime\helloworld\helloworld.csproj (in 114 ms). You are using a preview version of .NET. See: https://aka.ms/dotnet-core-preview - helloworld -> c:\runtime\helloworld\bin\Debug\net5.0\win-x64\helloworld.dll - helloworld -> c:\runtime\helloworld\bin\Debug\net5.0\win-x64\publish\ + helloworld -> c:\runtime\helloworld\bin\Debug\net6.0\win-x64\helloworld.dll + helloworld -> c:\runtime\helloworld\bin\Debug\net6.0\win-x64\publish\ ``` -If you see something like the message below it means that it has failed to restore your local runtime packages. In such case double check your `NuGet.config` file and paths used in it. +#### Troubleshooting Publish + +If you see something like the message below it means that it has failed to restore your local runtime packages. Check your `NuGet.config` file and paths used in it. ``` c:\runtime\helloworld>dotnet publish @@ -121,98 +132,69 @@ Microsoft (R) Build Engine version 16.7.0-preview-20360-03+188921e2f for .NET Copyright (C) Microsoft Corporation. All rights reserved. Determining projects to restore... -c:\runtime\helloworld\helloworld.csproj : error NU1102: Unable to find package Microsoft.NETCore.App.Runtime.win-x64 with version (= 5.0.0-does-not-exist) -c:\runtime\helloworld\helloworld.csproj : error NU1102: - Found 25 version(s) in nuget [ Nearest version: 5.0.0-preview.1.20120.5 ] -c:\runtime\helloworld\helloworld.csproj : error NU1102: - Found 1 version(s) in local runtime [ Nearest version: 5.0.0-dev ] -c:\runtime\helloworld\helloworld.csproj : error NU1102: Unable to find package Microsoft.NETCore.App.Host.win-x64 with version (= 5.0.0-does-not-exist) -c:\runtime\helloworld\helloworld.csproj : error NU1102: - Found 27 version(s) in nuget [ Nearest version: 5.0.0-preview.1.20120.5 ] -c:\runtime\helloworld\helloworld.csproj : error NU1102: - Found 1 version(s) in local runtime [ Nearest version: 5.0.0-dev ] +c:\runtime\helloworld\helloworld.csproj : error NU1102: Unable to find package Microsoft.NETCore.App.Runtime.win-x64 with version (= 6.0.0-does-not-exist) +c:\runtime\helloworld\helloworld.csproj : error NU1102: - Found 25 version(s) in nuget [ Nearest version: 6.0.0-preview.1.20120.5 ] +c:\runtime\helloworld\helloworld.csproj : error NU1102: - Found 1 version(s) in local runtime [ Nearest version: 6.0.0-dev ] +c:\runtime\helloworld\helloworld.csproj : error NU1102: Unable to find package Microsoft.NETCore.App.Host.win-x64 with version (= 6.0.0-does-not-exist) +c:\runtime\helloworld\helloworld.csproj : error NU1102: - Found 27 version(s) in nuget [ Nearest version: 6.0.0-preview.1.20120.5 ] +c:\runtime\helloworld\helloworld.csproj : error NU1102: - Found 1 version(s) in local runtime [ Nearest version: 6.0.0-dev ] Failed to restore c:\runtime\helloworld\helloworld.csproj (in 519 ms). ``` +If you see error messages like these below, it means it has failed to restore other packages you need that you didn't build. Check your `NuGet.config` file includes the other feed. +``` +c:\runtime\helloworld\helloworld.csproj : error NU1101: Unable to find package Microsoft.WindowsDesktop.App.Runtime.win-x64. No packages exist with this id in source(s): local runtime +c:\runtime\helloworld\helloworld.csproj : error NU1101: Unable to find package Microsoft.AspNetCore.App.Runtime.win-x64. No packages exist with this id in source(s): local runtime +``` + +If you see error messages like this, it means you do not have a new enough SDK. Please visit https://github.com/dotnet/installer#installers-and-binaries and install a newer SDK. + +``` +C:\Program Files\dotnet\sdk\5.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.TargetFrameworkInference.targets(141,5): error NETSDK1045: The current .NET SDK does not support targeting .NET Core 6.0. Either target .NET Core 5.0 or lower, or use a version of the .NET SDK that supports .NET Core 6.0. [c:\runtime\helloworld\helloworld.csproj] +``` + ### 6. Run the app -After you publish you will find all the binaries needed to run your application under `bin\Debug\net5.0\win-x64\publish\`. +After you publish you will find all the binaries needed to run your application under `bin\Debug\net6.0\win-x64\publish\`. To run the application simply run the EXE that is in this publish directory (it is the name of the app, or specified in the project file). ``` -.\bin\Debug\net5.0\win-x64\publish\HelloWorld.exe +.\bin\Debug\net6.0\win-x64\publish\HelloWorld.exe ``` Running the app should tell you the version and where the location of System.Private.CoreLib in the publish directory: ``` -Hello World from .NET 5.0.0-dev -The location is c:\runtime\helloworld\bin\Debug\net5.0\win-x64\publish\System.Private.CoreLib.dll +Hello World from .NET 6.0.0-dev +The location is c:\runtime\helloworld\bin\Debug\net6.0\win-x64\publish\System.Private.CoreLib.dll ``` **Congratulations! You have just run your first app against your local build of this repo** -## Update using runtime nuget package +## How to then consume updated packages -Updating the runtime from raw binary output is easier for quick one-off testing but using the nuget package is better -for referencing your build in your actual application because of it does not require manual copying of files -around each time the application is built and plugs into the rest of the tool chain. This set of instructions will cover -the further steps needed to consume the runtime nuget package. +Once you have successfully consumed a package, you probably want to make changes, update the package, and have your app consume it again. Normally NuGet would ignore your updated package, because its version number hasn't changed. The easiest way to avoid that is to simply delete your NuGet cache. To make this easy, in the `NuGet.config` file above, we used `globalPackagesFolder` to set a local package cache. Simply delete that folder and publish again and your app will pick up the new package. -#### 1. Update BuildNumberMinor Environment Variable +So the steps are: -One possible problem with this technique is that Nuget assumes that distinct builds have distinct version numbers. -Thus if you modify the source and create a new NuGet package you must give it a new version number and use that in your -application's project. Otherwise the dotnet.exe tool will assume that the existing version is fine and you -won't get the updated bits. This is what the Minor Build number is all about. By default it is 0, but you can -give it a value by setting the BuildNumberMinor environment variable. -```bat - set BuildNumberMinor=3 -``` -before packaging. You should see this number show up in the version number (e.g. 3.0.0-preview1-26210-03). +### 1. Build the package again -As an alternative you can delete the existing copy of the package from the Nuget cache. For example on -windows (on Linux substitute ~/ for %HOMEPATH%) you could delete ```bat - %HOMEPATH%\.nuget\packages\runtime.win-x64.Microsoft.NETCore.Runtime.CoreCLR\3.0.0-preview1-26210-0 -``` -which should make things work (but is fragile, confirm file timestamps that you are getting the version you expect) +build.cmd clr+libs+host+packs -c release +``` -#### 2. Get the Version number of the CoreCLR package you built. +If you only changed libraries, `build.cmd libs+host+packs -c release` is a little faster; if you only changed clr, then `build.cmd clr+host+packs -c release` -Get this by simply listing the name of the `runtime.win-x64.Microsoft.NETCore.Runtime.CoreCLR` you built. +### 2. Delete your local package cache ```bat - dir artifacts\bin\coreclr\Product\windows.x64.Release\.nuget\pkg -``` - -and you will get name of the which looks something like this - +rd /s /q c:\localcache ``` - runtime.win-x64.Microsoft.NETCore.Runtime.CoreCLR.3.0.0-preview1-26210-3.nupkg -``` - -This gets us the version number, in the above case it is 3.0.0-preview1-26210-3. We will -use this in the next step. -#### 3. Update the references to your runtime package +### 3. Publish again -Edit your `.csproj` file and change the versions: - -``` - - 3.0.0-preview1-26210-3 - - - - - - -``` - -#### 4. Restore and publish - -Once have made these modifications you will need to rerun the restore and publish as such. - -``` -dotnet restore +```bat dotnet publish ``` -Now your publication directory should contain your local built CoreCLR builds. +Now your app will use your updated package. From d5a9b9d06c66b624b36de28f77b7beff96bb5d77 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Tue, 8 Dec 2020 16:43:08 -0800 Subject: [PATCH 80/87] Add a blurb on the x86 calling convention to clr-abi.md (#45807) Co-authored-by: Sergey Andreenko --- docs/design/coreclr/botr/clr-abi.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/design/coreclr/botr/clr-abi.md b/docs/design/coreclr/botr/clr-abi.md index 6e46b547f7a0f..b867c58919061 100644 --- a/docs/design/coreclr/botr/clr-abi.md +++ b/docs/design/coreclr/botr/clr-abi.md @@ -1,6 +1,6 @@ # CLR ABI -This document describes the .NET Common Language Runtime (CLR) software conventions (or ABI, "Application Binary Interface"). It focusses on the ABI for the x64 (aka, AMD64), ARM (aka, ARM32 or Thumb-2), and ARM64 processor architectures. Documentation for the x86 ABI is somewhat scant. +This document describes the .NET Common Language Runtime (CLR) software conventions (or ABI, "Application Binary Interface"). It focusses on the ABI for the x64 (aka, AMD64), ARM (aka, ARM32 or Thumb-2), and ARM64 processor architectures. Documentation for the x86 ABI is somewhat scant, but information on the basics of the calling convention is included at the bottom of this document. It describes requirements that the Just-In-Time (JIT) compiler imposes on the VM and vice-versa. @@ -705,3 +705,20 @@ The general rules outlined in the [System V x86_64 ABI](https://software.intel.c | %xmm2-%xmm7 | used to pass floating point arguments | No | | %xmm8-%xmm15 | temporary registers | No | ``` + +# x86 Calling convention specifics + +Unlike the other architectures that RyuJIT supports, the managed x86 calling convention is different than the default native calling convention. This is true for both Windows and Unix x86. + +The standard managed calling convention is a variation on the Windows x86 fastcall convention. It differs primarily in the order in which arguments are pushed on the stack. +The only values that can be passed in registers are managed and unmanaged pointers, object references, and the built-in integer types int8, unsigned int8, int16, unsigned int16, int32, unsigned it32, native int, native unsigned int, and enums and value types with only one 4-byte integer primitive-type field. Enums are passed as their underlying type. All floating-point values and 8-byte integer values are passed on the stack. When the return type is a value type that cannot be passed in a register, the caller shall create a buffer to hold the result and pass the address of this buffer as a hidden parameter. +Arguments are passed in left-to-right order, starting with the this pointer (for instance and virtual methods), followed by the return buffer pointer if needed, followed by the user-specified argument values. The first of these that can be placed in a register is put into ECX, the next in EDX, and all subsequent ones are passed on the stack. This is in contrast with the x86 native calling conventions, which push arguments onto the stack in right-to-left order. + +The return value is handled as follows: + +1. Floating-point values are returned on the top of the hardware FP stack. +2. Integers up to 32 bits long are returned in EAX. +3. 64-bit integers are passed with EAX holding the least significant 32 bits and EDX holding the most significant 32 bits. +4. All other cases require the use of a return buffer, through which the value is returned. + +In addition, there is a guarantee that if a return buffer is used a value is stored there only upon ordinary exit from the method. The buffer is not allowed to be used for temporary storage within the method and its contents will be unaltered if an exception occurs while executing the method. From e516cf3800b7d4ca48c3caca25ad3f9068cbd10d Mon Sep 17 00:00:00 2001 From: Andy Ayers Date: Tue, 8 Dec 2020 17:11:46 -0800 Subject: [PATCH 81/87] JIT: remove early prop's type propagation (#45655) This doesn't do any actual propagation, so remove it and the associated tracking flags. --- src/coreclr/jit/block.h | 41 ++++++++++++++++---------------- src/coreclr/jit/compiler.h | 18 +++++++------- src/coreclr/jit/earlyprop.cpp | 44 ++++------------------------------- src/coreclr/jit/flowgraph.cpp | 3 +-- src/coreclr/jit/gentree.cpp | 2 -- src/coreclr/jit/optimizer.cpp | 3 +-- 6 files changed, 35 insertions(+), 76 deletions(-) diff --git a/src/coreclr/jit/block.h b/src/coreclr/jit/block.h index f996893beba1f..89a442e2f8bc7 100644 --- a/src/coreclr/jit/block.h +++ b/src/coreclr/jit/block.h @@ -412,14 +412,13 @@ struct BasicBlock : private LIR::Range // cases, because the BB occurs in a loop, and we've determined that all // paths in the loop body leading to BB include a call. -#define BBF_HAS_VTABREF MAKE_BBFLAG(20) // BB contains reference of vtable -#define BBF_HAS_IDX_LEN MAKE_BBFLAG(21) // BB contains simple index or length expressions on an array local var. -#define BBF_HAS_NEWARRAY MAKE_BBFLAG(22) // BB contains 'new' of an array -#define BBF_HAS_NEWOBJ MAKE_BBFLAG(23) // BB contains 'new' of an object type. +#define BBF_HAS_IDX_LEN MAKE_BBFLAG(20) // BB contains simple index or length expressions on an array local var. +#define BBF_HAS_NEWARRAY MAKE_BBFLAG(21) // BB contains 'new' of an array +#define BBF_HAS_NEWOBJ MAKE_BBFLAG(22) // BB contains 'new' of an object type. #if defined(FEATURE_EH_FUNCLETS) && defined(TARGET_ARM) -#define BBF_FINALLY_TARGET MAKE_BBFLAG(24) // BB is the target of a finally return: where a finally will return during +#define BBF_FINALLY_TARGET MAKE_BBFLAG(23) // BB is the target of a finally return: where a finally will return during // non-exceptional flow. Because the ARM calling sequence for calling a // finally explicitly sets the return address to the finally target and jumps // to the finally, instead of using a call instruction, ARM needs this to @@ -428,27 +427,27 @@ struct BasicBlock : private LIR::Range #endif // defined(FEATURE_EH_FUNCLETS) && defined(TARGET_ARM) -#define BBF_BACKWARD_JUMP MAKE_BBFLAG(25) // BB is surrounded by a backward jump/switch arc -#define BBF_RETLESS_CALL MAKE_BBFLAG(26) // BBJ_CALLFINALLY that will never return (and therefore, won't need a paired +#define BBF_BACKWARD_JUMP MAKE_BBFLAG(24) // BB is surrounded by a backward jump/switch arc +#define BBF_RETLESS_CALL MAKE_BBFLAG(25) // BBJ_CALLFINALLY that will never return (and therefore, won't need a paired // BBJ_ALWAYS); see isBBCallAlwaysPair(). -#define BBF_LOOP_PREHEADER MAKE_BBFLAG(27) // BB is a loop preheader block +#define BBF_LOOP_PREHEADER MAKE_BBFLAG(26) // BB is a loop preheader block +#define BBF_COLD MAKE_BBFLAG(27) // BB is cold -#define BBF_COLD MAKE_BBFLAG(28) // BB is cold -#define BBF_PROF_WEIGHT MAKE_BBFLAG(29) // BB weight is computed from profile data -#define BBF_IS_LIR MAKE_BBFLAG(30) // Set if the basic block contains LIR (as opposed to HIR) -#define BBF_KEEP_BBJ_ALWAYS MAKE_BBFLAG(31) // A special BBJ_ALWAYS block, used by EH code generation. Keep the jump kind +#define BBF_PROF_WEIGHT MAKE_BBFLAG(28) // BB weight is computed from profile data +#define BBF_IS_LIR MAKE_BBFLAG(29) // Set if the basic block contains LIR (as opposed to HIR) +#define BBF_KEEP_BBJ_ALWAYS MAKE_BBFLAG(30) // A special BBJ_ALWAYS block, used by EH code generation. Keep the jump kind // as BBJ_ALWAYS. Used for the paired BBJ_ALWAYS block following the // BBJ_CALLFINALLY block, as well as, on x86, the final step block out of a // finally. +#define BBF_CLONED_FINALLY_BEGIN MAKE_BBFLAG(31) // First block of a cloned finally region -#define BBF_CLONED_FINALLY_BEGIN MAKE_BBFLAG(32) // First block of a cloned finally region -#define BBF_CLONED_FINALLY_END MAKE_BBFLAG(33) // Last block of a cloned finally region -#define BBF_HAS_CALL MAKE_BBFLAG(34) // BB contains a call -#define BBF_DOMINATED_BY_EXCEPTIONAL_ENTRY MAKE_BBFLAG(35) // Block is dominated by exceptional entry. +#define BBF_CLONED_FINALLY_END MAKE_BBFLAG(32) // Last block of a cloned finally region +#define BBF_HAS_CALL MAKE_BBFLAG(33) // BB contains a call +#define BBF_DOMINATED_BY_EXCEPTIONAL_ENTRY MAKE_BBFLAG(34) // Block is dominated by exceptional entry. +#define BBF_BACKWARD_JUMP_TARGET MAKE_BBFLAG(35) // Block is a target of a backward jump -#define BBF_BACKWARD_JUMP_TARGET MAKE_BBFLAG(36) // Block is a target of a backward jump -#define BBF_PATCHPOINT MAKE_BBFLAG(37) // Block is a patchpoint -#define BBF_HAS_CLASS_PROFILE MAKE_BBFLAG(38) // BB contains a call needing a class profile +#define BBF_PATCHPOINT MAKE_BBFLAG(36) // Block is a patchpoint +#define BBF_HAS_CLASS_PROFILE MAKE_BBFLAG(37) // BB contains a call needing a class profile // clang-format on @@ -469,7 +468,7 @@ struct BasicBlock : private LIR::Range #define BBF_COMPACT_UPD \ (BBF_CHANGED | BBF_GC_SAFE_POINT | BBF_HAS_JMP | BBF_HAS_IDX_LEN | BBF_BACKWARD_JUMP | BBF_HAS_NEWARRAY | \ - BBF_HAS_NEWOBJ | BBF_HAS_NULLCHECK | BBF_HAS_VTABREF) + BBF_HAS_NEWOBJ | BBF_HAS_NULLCHECK) // Flags a block should not have had before it is split. @@ -493,7 +492,7 @@ struct BasicBlock : private LIR::Range #define BBF_SPLIT_GAINED \ (BBF_DONT_REMOVE | BBF_HAS_LABEL | BBF_HAS_JMP | BBF_BACKWARD_JUMP | BBF_HAS_IDX_LEN | BBF_HAS_NEWARRAY | \ BBF_PROF_WEIGHT | BBF_HAS_NEWOBJ | BBF_KEEP_BBJ_ALWAYS | BBF_CLONED_FINALLY_END | BBF_HAS_NULLCHECK | \ - BBF_HAS_VTABREF | BBF_HAS_CLASS_PROFILE) + BBF_HAS_CLASS_PROFILE) #ifndef __GNUC__ // GCC doesn't like C_ASSERT at global scope static_assert_no_msg((BBF_SPLIT_NONEXIST & BBF_SPLIT_LOST) == 0); diff --git a/src/coreclr/jit/compiler.h b/src/coreclr/jit/compiler.h index 9306d20631921..2ded5afbb4dd4 100644 --- a/src/coreclr/jit/compiler.h +++ b/src/coreclr/jit/compiler.h @@ -6705,15 +6705,14 @@ class Compiler #define OMF_HAS_NEWARRAY 0x00000001 // Method contains 'new' of an array #define OMF_HAS_NEWOBJ 0x00000002 // Method contains 'new' of an object type. #define OMF_HAS_ARRAYREF 0x00000004 // Method contains array element loads or stores. -#define OMF_HAS_VTABLEREF 0x00000008 // Method contains method table reference. -#define OMF_HAS_NULLCHECK 0x00000010 // Method contains null check. -#define OMF_HAS_FATPOINTER 0x00000020 // Method contains call, that needs fat pointer transformation. -#define OMF_HAS_OBJSTACKALLOC 0x00000040 // Method contains an object allocated on the stack. -#define OMF_HAS_GUARDEDDEVIRT 0x00000080 // Method contains guarded devirtualization candidate -#define OMF_HAS_EXPRUNTIMELOOKUP 0x00000100 // Method contains a runtime lookup to an expandable dictionary. -#define OMF_HAS_PATCHPOINT 0x00000200 // Method contains patchpoints -#define OMF_NEEDS_GCPOLLS 0x00000400 // Method needs GC polls -#define OMF_HAS_FROZEN_STRING 0x00000800 // Method has a frozen string (REF constant int), currently only on CoreRT. +#define OMF_HAS_NULLCHECK 0x00000008 // Method contains null check. +#define OMF_HAS_FATPOINTER 0x00000010 // Method contains call, that needs fat pointer transformation. +#define OMF_HAS_OBJSTACKALLOC 0x00000020 // Method contains an object allocated on the stack. +#define OMF_HAS_GUARDEDDEVIRT 0x00000040 // Method contains guarded devirtualization candidate +#define OMF_HAS_EXPRUNTIMELOOKUP 0x00000080 // Method contains a runtime lookup to an expandable dictionary. +#define OMF_HAS_PATCHPOINT 0x00000100 // Method contains patchpoints +#define OMF_NEEDS_GCPOLLS 0x00000200 // Method needs GC polls +#define OMF_HAS_FROZEN_STRING 0x00000400 // Method has a frozen string (REF constant int), currently only on CoreRT. bool doesMethodHaveFatPointer() { @@ -6813,7 +6812,6 @@ class Compiler { OPK_INVALID, OPK_ARRAYLEN, - OPK_OBJ_GETTYPE, OPK_NULLCHECK }; diff --git a/src/coreclr/jit/earlyprop.cpp b/src/coreclr/jit/earlyprop.cpp index 4a52059988274..1b63682e26113 100644 --- a/src/coreclr/jit/earlyprop.cpp +++ b/src/coreclr/jit/earlyprop.cpp @@ -4,7 +4,7 @@ // Early Value Propagation // // This phase performs an SSA-based value propagation optimization that currently only applies to array -// lengths, runtime type handles, and explicit null checks. An SSA-based backwards tracking of local variables +// lengths and explicit null checks. An SSA-based backwards tracking of local variables // is performed at each point of interest, e.g., an array length reference site, a method table reference site, or // an indirection. // The tracking continues until an interesting value is encountered. The value is then used to rewrite @@ -18,17 +18,15 @@ bool Compiler::optDoEarlyPropForFunc() { bool propArrayLen = (optMethodFlags & OMF_HAS_NEWARRAY) && (optMethodFlags & OMF_HAS_ARRAYREF); - bool propGetType = (optMethodFlags & (OMF_HAS_NEWOBJ | OMF_HAS_NEWARRAY)) && (optMethodFlags & OMF_HAS_VTABLEREF); bool propNullCheck = (optMethodFlags & OMF_HAS_NULLCHECK) != 0; - return propArrayLen || propGetType || propNullCheck; + return propArrayLen || propNullCheck; } bool Compiler::optDoEarlyPropForBlock(BasicBlock* block) { bool bbHasArrayRef = (block->bbFlags & BBF_HAS_IDX_LEN) != 0; - bool bbHasVtableRef = (block->bbFlags & BBF_HAS_VTABREF) != 0; bool bbHasNullCheck = (block->bbFlags & BBF_HAS_NULLCHECK) != 0; - return bbHasArrayRef || bbHasVtableRef || bbHasNullCheck; + return bbHasArrayRef || bbHasNullCheck; } //-------------------------------------------------------------------- @@ -321,26 +319,7 @@ GenTree* Compiler::optEarlyPropRewriteTree(GenTree* tree, LocalNumberToNullCheck } else { - assert(tree->OperIsIndir()); - if (gtIsVtableRef(tree)) - { - // Don't propagate type handles that are used as null checks, which are usually in - // form of - // * stmtExpr void (top level) - // \--* indir int - // \--* lclVar ref V02 loc0 - if (compCurStmt->GetRootNode() == tree) - { - return nullptr; - } - - objectRefPtr = tree->AsIndir()->Addr(); - propKind = optPropKind::OPK_OBJ_GETTYPE; - } - else - { - return nullptr; - } + return nullptr; } if (!objectRefPtr->OperIsScalarLocal() || !lvaInSsa(objectRefPtr->AsLclVarCommon()->GetLclNum())) @@ -355,11 +334,6 @@ GenTree* Compiler::optEarlyPropRewriteTree(GenTree* tree, LocalNumberToNullCheck optCheckFlagsAreSet(OMF_HAS_ARRAYREF, "OMF_HAS_ARRAYREF", BBF_HAS_IDX_LEN, "BBF_HAS_IDX_LEN", tree, compCurBB); } - else - { - optCheckFlagsAreSet(OMF_HAS_VTABLEREF, "OMF_HAS_VTABLEREF", BBF_HAS_VTABREF, "BBF_HAS_VTABREF", tree, - compCurBB); - } } #endif @@ -369,7 +343,7 @@ GenTree* Compiler::optEarlyPropRewriteTree(GenTree* tree, LocalNumberToNullCheck if (actualVal != nullptr) { - assert((propKind == optPropKind::OPK_ARRAYLEN) || (propKind == optPropKind::OPK_OBJ_GETTYPE)); + assert(propKind == optPropKind::OPK_ARRAYLEN); assert(actualVal->IsCnsIntOrI()); assert(actualVal->GetNodeSize() == TREE_NODE_SZ_SMALL); @@ -550,14 +524,6 @@ GenTree* Compiler::optPropGetValueRec(unsigned lclNum, unsigned ssaNum, optPropK } } } - else if (valueKind == optPropKind::OPK_OBJ_GETTYPE) - { - value = getObjectHandleNodeFromAllocation(treeRhs DEBUGARG(ssaVarDsc->GetBlock())); - if (value != nullptr) - { - assert(value->IsCnsIntOrI()); - } - } } } diff --git a/src/coreclr/jit/flowgraph.cpp b/src/coreclr/jit/flowgraph.cpp index 34ac6920f482e..ba182bbd98844 100644 --- a/src/coreclr/jit/flowgraph.cpp +++ b/src/coreclr/jit/flowgraph.cpp @@ -15442,8 +15442,7 @@ bool Compiler::fgOptimizeBranch(BasicBlock* bJump) gtReverseCond(condTree); // We need to update the following flags of the bJump block if they were set in the bDest block - bJump->bbFlags |= - (bDest->bbFlags & (BBF_HAS_NEWOBJ | BBF_HAS_NEWARRAY | BBF_HAS_NULLCHECK | BBF_HAS_IDX_LEN | BBF_HAS_VTABREF)); + bJump->bbFlags |= (bDest->bbFlags & (BBF_HAS_NEWOBJ | BBF_HAS_NEWARRAY | BBF_HAS_NULLCHECK | BBF_HAS_IDX_LEN)); bJump->bbJumpKind = BBJ_COND; bJump->bbJumpDest = bDest->bbNext; diff --git a/src/coreclr/jit/gentree.cpp b/src/coreclr/jit/gentree.cpp index d850e56af9a28..1d49ab575cf54 100644 --- a/src/coreclr/jit/gentree.cpp +++ b/src/coreclr/jit/gentree.cpp @@ -12995,8 +12995,6 @@ GenTree* Compiler::gtFoldTypeCompare(GenTree* tree) // Update various flags objMT->gtFlags |= GTF_EXCEPT; - compCurBB->bbFlags |= BBF_HAS_VTABREF; - optMethodFlags |= OMF_HAS_VTABLEREF; // Compare the two method tables GenTree* const compare = gtCreateHandleCompare(oper, objMT, knownMT, typeCheckInliningResult); diff --git a/src/coreclr/jit/optimizer.cpp b/src/coreclr/jit/optimizer.cpp index b7562f6e84065..e19d7f903bb3e 100644 --- a/src/coreclr/jit/optimizer.cpp +++ b/src/coreclr/jit/optimizer.cpp @@ -4281,8 +4281,7 @@ void Compiler::fgOptWhileLoop(BasicBlock* block) // Flag the block that received the copy as potentially having an array/vtable // reference, nullcheck, object/array allocation if the block copied from did; // this is a conservative guess. - if (auto copyFlags = bTest->bbFlags & - (BBF_HAS_VTABREF | BBF_HAS_IDX_LEN | BBF_HAS_NULLCHECK | BBF_HAS_NEWOBJ | BBF_HAS_NEWARRAY)) + if (auto copyFlags = bTest->bbFlags & (BBF_HAS_IDX_LEN | BBF_HAS_NULLCHECK | BBF_HAS_NEWOBJ | BBF_HAS_NEWARRAY)) { block->bbFlags |= copyFlags; } From 02ec1e92c871d92b1322a4ed2a1ad337164659ca Mon Sep 17 00:00:00 2001 From: Santiago Fernandez Madero Date: Tue, 8 Dec 2020 17:45:52 -0800 Subject: [PATCH 82/87] Add workarounds for brew on old OSX images (#45802) * Add workarounds for brew on old OSX images * Don't remove openssl directories --- eng/install-native-dependencies.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/eng/install-native-dependencies.sh b/eng/install-native-dependencies.sh index 927c4245cde44..19ea810bb1c45 100755 --- a/eng/install-native-dependencies.sh +++ b/eng/install-native-dependencies.sh @@ -30,6 +30,13 @@ if [ "$1" = "Linux" ]; then fi elif [ "$1" = "OSX" ] || [ "$1" = "tvOS" ] || [ "$1" = "iOS" ]; then engdir=$(dirname "${BASH_SOURCE[0]}") + + if [ "$3" = "azDO" ]; then + # workaround for old osx images on hosted agents + # piped in case we get an agent without these values installed + brew uninstall openssl@1.0.2t 2>&1 | true + fi + brew update --preinstall brew bundle --no-upgrade --no-lock --file "${engdir}/Brewfile" if [ "$?" != "0" ]; then From 358b0492d93b2e4bd7b376e0c13044962b721921 Mon Sep 17 00:00:00 2001 From: Santiago Fernandez Madero Date: Tue, 8 Dec 2020 20:46:44 -0800 Subject: [PATCH 83/87] Disable long running Socket test on Mono (#45811) --- .../tests/FunctionalTests/DualModeSocketTest.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs index f65ebe8c95575..e957790e8c590 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs @@ -777,6 +777,7 @@ public void BeginAcceptV4BoundToSpecificV4_Success() } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/45810", TestRuntimes.Mono)] public void BeginAcceptV4BoundToAnyV4_Success() { DualModeConnect_BeginAccept_Helper(IPAddress.Any, IPAddress.Loopback); From 76a443d3954f072c7e9778844115026e564ce5a1 Mon Sep 17 00:00:00 2001 From: Kenneth Pouncey Date: Wed, 9 Dec 2020 05:58:14 +0100 Subject: [PATCH 84/87] [browser][websocket] Throw OperationCanceledException on connect (#44722) * [browser][websocket] Throw OperationCanceledException on connect if cancel was requested before. * try to handle cancellation in connect stage * Add new test for inflight connect - Add new supported property for skipping particular tests when Browser is detected and DOM is detected. * first pass at throwing pnse when websocket is missing * Address review comment * Make the platform check explicit * Revert CreateDefaultOptions change * Address review comment Co-authored-by: Larry Ewing --- .../BrowserWebSockets/BrowserWebSocket.cs | 27 +++++++++++++++---- .../Net/WebSockets/WebSocketHandle.Browser.cs | 11 +++++--- .../tests/ConnectTest.cs | 13 ++++++++- .../tests/WebSocketHelper.cs | 5 ++++ 4 files changed, 46 insertions(+), 10 deletions(-) diff --git a/src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/BrowserWebSockets/BrowserWebSocket.cs b/src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/BrowserWebSockets/BrowserWebSocket.cs index b767c3149bee4..25cecaf3e3d9d 100644 --- a/src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/BrowserWebSockets/BrowserWebSocket.cs +++ b/src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/BrowserWebSockets/BrowserWebSocket.cs @@ -123,6 +123,7 @@ internal async Task ConnectAsyncJavaScript(Uri uri, CancellationToken cancellati throw new InvalidOperationException(SR.net_WebSockets_AlreadyStarted); } + CancellationTokenRegistration connectRegistration = cancellationToken.Register(cts => ((CancellationTokenSource)cts!).Cancel(), _cts); TaskCompletionSource tcsConnect = new TaskCompletionSource(); // For Abort/Dispose. Calling Abort on the request at any point will close the connection. @@ -164,7 +165,14 @@ internal async Task ConnectAsyncJavaScript(Uri uri, CancellationToken cancellati NativeCleanup(); if ((InternalState)_state == InternalState.Connecting) { - tcsConnect.TrySetException(new WebSocketException(WebSocketError.NativeError)); + if (cancellationToken.IsCancellationRequested) + { + tcsConnect.TrySetCanceled(cancellationToken); + } + else + { + tcsConnect.TrySetException(new WebSocketException(WebSocketError.NativeError)); + } } else { @@ -214,8 +222,17 @@ internal async Task ConnectAsyncJavaScript(Uri uri, CancellationToken cancellati catch (Exception wse) { Dispose(); - WebSocketException wex = new WebSocketException(SR.net_webstatus_ConnectFailure, wse); - throw wex; + switch (wse) + { + case OperationCanceledException: + throw; + default: + throw new WebSocketException(SR.net_webstatus_ConnectFailure, wse); + } + } + finally + { + connectRegistration.Unregister(); } } @@ -324,7 +341,7 @@ public override void Dispose() // and called by Dispose or Abort so that any open websocket connection can be closed. private async void AbortRequest() { - if (State == WebSocketState.Open) + if (State == WebSocketState.Open || State == WebSocketState.Connecting) { await CloseAsyncCore(WebSocketCloseStatus.NormalClosure, SR.net_WebSockets_Connection_Aborted, CancellationToken.None).ConfigureAwait(continueOnCapturedContext: true); } @@ -455,7 +472,7 @@ public override async Task CloseAsync(WebSocketCloseStatus closeStatus, string? private async Task CloseAsyncCore(WebSocketCloseStatus closeStatus, string? statusDescription, CancellationToken cancellationToken) { - ThrowOnInvalidState(State, WebSocketState.Open, WebSocketState.CloseReceived, WebSocketState.CloseSent); + ThrowOnInvalidState(State, WebSocketState.Connecting, WebSocketState.Open, WebSocketState.CloseReceived, WebSocketState.CloseSent); WebSocketValidate.ValidateCloseStatus(closeStatus, statusDescription); diff --git a/src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/WebSocketHandle.Browser.cs b/src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/WebSocketHandle.Browser.cs index 97bdfdf28d84a..cf91e6821db05 100644 --- a/src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/WebSocketHandle.Browser.cs +++ b/src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/WebSocketHandle.Browser.cs @@ -31,6 +31,7 @@ public async Task ConnectAsync(Uri uri, CancellationToken cancellationToken, Cli { try { + cancellationToken.ThrowIfCancellationRequested(); // avoid allocating a WebSocket object if cancellation was requested before connect CancellationTokenSource? linkedCancellation; CancellationTokenSource externalAndAbortCancellation; if (cancellationToken.CanBeCanceled) // avoid allocating linked source if external token is not cancelable @@ -61,11 +62,13 @@ public async Task ConnectAsync(Uri uri, CancellationToken cancellationToken, Cli Abort(); - if (exc is WebSocketException) - { - throw; + switch (exc) { + case WebSocketException: + case OperationCanceledException _ when cancellationToken.IsCancellationRequested: + throw; + default: + throw new WebSocketException(SR.net_webstatus_ConnectFailure, exc); } - throw new WebSocketException(SR.net_webstatus_ConnectFailure, exc); } } } diff --git a/src/libraries/System.Net.WebSockets.Client/tests/ConnectTest.cs b/src/libraries/System.Net.WebSockets.Client/tests/ConnectTest.cs index 45c94e4164428..24bfbc26c44aa 100644 --- a/src/libraries/System.Net.WebSockets.Client/tests/ConnectTest.cs +++ b/src/libraries/System.Net.WebSockets.Client/tests/ConnectTest.cs @@ -248,7 +248,6 @@ public async Task ConnectAndCloseAsync_UseProxyServer_ExpectedClosedState(Uri se } [ConditionalFact(nameof(WebSocketsSupported))] - [ActiveIssue("https://github.com/dotnet/runtime/issues/44720", TestPlatforms.Browser)] public async Task ConnectAsync_CancellationRequestedBeforeConnect_ThrowsOperationCanceledException() { using (var clientSocket = new ClientWebSocket()) @@ -260,6 +259,18 @@ public async Task ConnectAsync_CancellationRequestedBeforeConnect_ThrowsOperatio } } + [ConditionalFact(nameof(WebSocketsSupported))] + public async Task ConnectAsync_CancellationRequestedInflightConnect_ThrowsOperationCanceledException() + { + using (var clientSocket = new ClientWebSocket()) + { + var cts = new CancellationTokenSource(); + Task t = clientSocket.ConnectAsync(new Uri("ws://" + Guid.NewGuid().ToString("N")), cts.Token); + cts.Cancel(); + await Assert.ThrowsAnyAsync(() => t); + } + } + [ConditionalFact(nameof(WebSocketsSupported))] [ActiveIssue("https://github.com/dotnet/runtime/issues/34690", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)] [ActiveIssue("https://github.com/dotnet/runtime/issues/42852", TestPlatforms.Browser)] diff --git a/src/libraries/System.Net.WebSockets.Client/tests/WebSocketHelper.cs b/src/libraries/System.Net.WebSockets.Client/tests/WebSocketHelper.cs index 110f737ed6e85..1f0ccd5591321 100644 --- a/src/libraries/System.Net.WebSockets.Client/tests/WebSocketHelper.cs +++ b/src/libraries/System.Net.WebSockets.Client/tests/WebSocketHelper.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Net.Test.Common; using System.Threading; using System.Threading.Tasks; @@ -124,6 +125,10 @@ public static async Task Retry(ITestOutputHelper output, Func> fun private static bool InitWebSocketSupported() { ClientWebSocket cws = null; + if (PlatformDetection.IsBrowser && !PlatformDetection.IsBrowserDomSupported) + { + return false; + } try { From 53c16198a8417e87e62c9df7c5e2e2602f9aa01d Mon Sep 17 00:00:00 2001 From: Sung Yoon Whang Date: Wed, 9 Dec 2020 00:09:35 -0800 Subject: [PATCH 85/87] Fix EventPipeSession::WriteEventSuspend (#45672) * wait for session write to finish in EventPipeBufferManager * fix comment * fix typo * remove yieldwhile --- src/coreclr/vm/eventpipebuffermanager.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/coreclr/vm/eventpipebuffermanager.cpp b/src/coreclr/vm/eventpipebuffermanager.cpp index 10c8d0ca232b0..d55ec54a8fab9 100644 --- a/src/coreclr/vm/eventpipebuffermanager.cpp +++ b/src/coreclr/vm/eventpipebuffermanager.cpp @@ -983,10 +983,6 @@ void EventPipeBufferManager::SuspendWriteEvent(uint32_t sessionIndex) EventPipeThread *pThread = pElem->GetValue()->GetThread(); threadList.Push(pThread); pElem = m_pThreadSessionStateList->GetNext(pElem); - - // Once EventPipeSession::SuspendWriteEvent completes, we shouldn't have any - // in progress writes left. - _ASSERTE(pThread->GetSessionWriteInProgress() != sessionIndex); } } From d21fe17023e2a03f9b8eec4a5dcf086187b84ca2 Mon Sep 17 00:00:00 2001 From: FireCubeStudios <40955345+FireCubeStudios@users.noreply.github.com> Date: Wed, 9 Dec 2020 12:11:49 +0100 Subject: [PATCH 86/87] Added Rebecca Purple (#42785) * Added Rebecca Purple Added Rebecca Purple color to System.Drawing.Color Added RebeccaPurple (#663399) to KnownColorNames.cs, Color.cs, KnownColortable.cs and KnownColor.cs #38244 * Added RebeccaPurple to UnitTest and Ref Added RebeccaPurple color to the UnitTest and to the ref Added RebeccaPurple a,r,g,b value to unittest in System.Drawing.Primitive. Also updated the ref. #38244 * Added RebeccaPurple to the system.drawing.primitive ref Added RebeccaPurple color to the System.Drawing.Primitive ref file. "RebeccaPurple = 141" was added. I updated the other colors to their previous number by one. #38244 * Reverted breaking changes in drawing.primitive ref Reverted the breaking changes in system.drawing.primivite ref. the numbers of colors were restored back and i removed rebeccapurple. #38244 * Added RebeccaPurple to the ref I added rebeccapurple to the ref file with value 175. RebeccaPurple was added with value 175 to the bottom of the enum. #38244 * Added rebeccapurple to bottom of Knowncolors.cs I added rebeccapurple to theend of the file RebeccaPurple was added to the bottom of the enum. #38244 * Added Rebecca Purple Added Rebecca Purple color to System.Drawing.Color Added RebeccaPurple (#663399) to KnownColorNames.cs, Color.cs, KnownColortable.cs and KnownColor.cs #38244 * Added RebeccaPurple to UnitTest and Ref Added RebeccaPurple color to the UnitTest and to the ref Added RebeccaPurple a,r,g,b value to unittest in System.Drawing.Primitive. Also updated the ref. #38244 * Added RebeccaPurple to the system.drawing.primitive ref Added RebeccaPurple color to the System.Drawing.Primitive ref file. "RebeccaPurple = 141" was added. I updated the other colors to their previous number by one. #38244 * Reverted breaking changes in drawing.primitive ref Reverted the breaking changes in system.drawing.primivite ref. the numbers of colors were restored back and i removed rebeccapurple. #38244 * Added RebeccaPurple to the ref I added rebeccapurple to the ref file with value 175. RebeccaPurple was added with value 175 to the bottom of the enum. #38244 * Added rebeccapurple to bottom of Knowncolors.cs I added rebeccapurple to theend of the file RebeccaPurple was added to the bottom of the enum. #38244 * Fixed some of the requested changes with ordering of Enum Removed a comment in "knowncolor.cs" and moved rebeccapurple to match enum order. moved rebeccapurple in knowncolortable.cs, color.cs, and knowncolornames.cs #38244 * Removed duplicates and added a comment Added a comment in KnownColorNames.cs stating that the array follows order of knowncolor enum. Also removed duplicate rebeccapurple entries #38244 * Fixing up the handling of RebeccaPurple * Added a comment to explain changes Added a comment in KnownColortable.cs stating that the code accounts for the system colors and new rebeccapurple color #38244 Co-authored-by: Tanner Gooding --- .../Common/src/System/Drawing/KnownColor.cs | 12 ++++---- .../src/System/Drawing/KnownColorTable.cs | 28 +++++++++++++++---- .../ref/System.Drawing.Primitives.cs | 2 ++ .../src/System/Drawing/Color.cs | 7 +++-- .../src/System/Drawing/KnownColorNames.cs | 13 +++++++-- .../tests/ColorTests.cs | 12 ++++---- 6 files changed, 54 insertions(+), 20 deletions(-) diff --git a/src/libraries/Common/src/System/Drawing/KnownColor.cs b/src/libraries/Common/src/System/Drawing/KnownColor.cs index cf15dbe09405e..a96bc024c6a2a 100644 --- a/src/libraries/Common/src/System/Drawing/KnownColor.cs +++ b/src/libraries/Common/src/System/Drawing/KnownColor.cs @@ -21,7 +21,7 @@ enum KnownColor // 0 - reserved for "not a known color" - // "System" colors + // "System" colors, Part 1 ActiveBorder = 1, ActiveCaption, ActiveCaptionText, @@ -49,7 +49,7 @@ enum KnownColor WindowFrame, WindowText, - // "Web" Colors + // "Web" Colors, Part 1 Transparent, AliceBlue, AntiqueWhite, @@ -192,14 +192,16 @@ enum KnownColor Yellow, YellowGreen, - // New system color additions in Visual Studio 2005 (.NET Framework 2.0) - + // "System" colors, Part 2 ButtonFace, ButtonHighlight, ButtonShadow, GradientActiveCaption, GradientInactiveCaption, MenuBar, - MenuHighlight + MenuHighlight, + + // "Web" colors, Part 2 + RebeccaPurple, } } diff --git a/src/libraries/Common/src/System/Drawing/KnownColorTable.cs b/src/libraries/Common/src/System/Drawing/KnownColorTable.cs index ca342e5b75a7e..3dc018c968ea5 100644 --- a/src/libraries/Common/src/System/Drawing/KnownColorTable.cs +++ b/src/libraries/Common/src/System/Drawing/KnownColorTable.cs @@ -10,6 +10,8 @@ internal static class KnownColorTable // All non system colors (in order of definition in the KnownColor enum). private static readonly uint[] s_colorTable = new uint[] { + // First contiguous set. + 0x00FFFFFF, // Transparent 0xFFF0F8FF, // AliceBlue 0xFFFAEBD7, // AntiqueWhite @@ -151,6 +153,10 @@ internal static class KnownColorTable 0xFFF5F5F5, // WhiteSmoke 0xFFFFFF00, // Yellow 0xFF9ACD32, // YellowGreen + + // Second contiguous set. + + 0xFF663399, // RebeccaPurple }; internal static Color ArgbToKnownColor(uint argb) @@ -163,7 +169,14 @@ internal static Color ArgbToKnownColor(uint argb) { if (s_colorTable[index] == argb) { - return Color.FromKnownColor((KnownColor)(index + (int)KnownColor.Transparent)); + var knownColor = KnownColor.Transparent + index; + // Handles the mismatching of the RebeccaPurple color with ButtonFace color ("System" colors, Part 2) + if (knownColor > KnownColor.YellowGreen) + { + knownColor += (int)KnownColor.RebeccaPurple - (int)KnownColor.ButtonFace; + } + + return Color.FromKnownColor(knownColor); } } @@ -173,11 +186,16 @@ internal static Color ArgbToKnownColor(uint argb) public static uint KnownColorToArgb(KnownColor color) { - Debug.Assert(color > 0 && color <= KnownColor.MenuHighlight); + Debug.Assert(color > 0 && color <= KnownColor.RebeccaPurple); + + if (Color.IsKnownColorSystem(color)) + { + return GetSystemColorArgb(color); + } - return Color.IsKnownColorSystem(color) - ? GetSystemColorArgb(color) - : s_colorTable[(int)color - (int)KnownColor.Transparent]; + return color < KnownColor.ButtonFace + ? s_colorTable[(int)color - (int)KnownColor.Transparent] + : s_colorTable[(int)color - (int)KnownColor.RebeccaPurple + ((int)KnownColor.YellowGreen - (int)KnownColor.WindowText)]; } #if FEATURE_WINDOWS_SYSTEM_COLORS diff --git a/src/libraries/System.Drawing.Primitives/ref/System.Drawing.Primitives.cs b/src/libraries/System.Drawing.Primitives/ref/System.Drawing.Primitives.cs index 7f409066648d0..f5153c453ff66 100644 --- a/src/libraries/System.Drawing.Primitives/ref/System.Drawing.Primitives.cs +++ b/src/libraries/System.Drawing.Primitives/ref/System.Drawing.Primitives.cs @@ -135,6 +135,7 @@ namespace System.Drawing public static System.Drawing.Color PowderBlue { get { throw null; } } public static System.Drawing.Color Purple { get { throw null; } } public byte R { get { throw null; } } + public static System.Drawing.Color RebeccaPurple { get { throw null; } } public static System.Drawing.Color Red { get { throw null; } } public static System.Drawing.Color RosyBrown { get { throw null; } } public static System.Drawing.Color RoyalBlue { get { throw null; } } @@ -366,6 +367,7 @@ public enum KnownColor GradientInactiveCaption = 172, MenuBar = 173, MenuHighlight = 174, + RebeccaPurple = 175, } [System.ComponentModel.TypeConverterAttribute("System.Drawing.PointConverter, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] public partial struct Point : System.IEquatable diff --git a/src/libraries/System.Drawing.Primitives/src/System/Drawing/Color.cs b/src/libraries/System.Drawing.Primitives/src/System/Drawing/Color.cs index 0ea4b583bd73c..6b63d7932dc43 100644 --- a/src/libraries/System.Drawing.Primitives/src/System/Drawing/Color.cs +++ b/src/libraries/System.Drawing.Primitives/src/System/Drawing/Color.cs @@ -248,6 +248,8 @@ namespace System.Drawing public static Color Purple => new Color(KnownColor.Purple); + public static Color RebeccaPurple => new Color(KnownColor.RebeccaPurple); + public static Color Red => new Color(KnownColor.Red); public static Color RosyBrown => new Color(KnownColor.RosyBrown); @@ -301,7 +303,6 @@ namespace System.Drawing public static Color Yellow => new Color(KnownColor.Yellow); public static Color YellowGreen => new Color(KnownColor.YellowGreen); - // // end "web" colors // ------------------------------------------------------------------- @@ -372,7 +373,7 @@ private Color(long value, short state, string? name, KnownColor knownColor) public bool IsSystemColor => IsKnownColor && IsKnownColorSystem((KnownColor)knownColor); internal static bool IsKnownColorSystem(KnownColor knownColor) - => (knownColor <= KnownColor.WindowText) || (knownColor > KnownColor.YellowGreen); + => ((knownColor >= KnownColor.ActiveBorder) && (knownColor <= KnownColor.WindowText)) || ((knownColor >= KnownColor.ButtonFace) && (knownColor <= KnownColor.MenuHighlight)); // Used for the [DebuggerDisplay]. Inlining in the attribute is possible, but // against best practices as the current project language parses the string with @@ -464,7 +465,7 @@ public static Color FromArgb(int alpha, Color baseColor) public static Color FromArgb(int red, int green, int blue) => FromArgb(byte.MaxValue, red, green, blue); public static Color FromKnownColor(KnownColor color) => - color <= 0 || color > KnownColor.MenuHighlight ? FromName(color.ToString()) : new Color(color); + color <= 0 || color > KnownColor.RebeccaPurple ? FromName(color.ToString()) : new Color(color); public static Color FromName(string name) { diff --git a/src/libraries/System.Drawing.Primitives/src/System/Drawing/KnownColorNames.cs b/src/libraries/System.Drawing.Primitives/src/System/Drawing/KnownColorNames.cs index 19925378680de..cfb2afb256777 100644 --- a/src/libraries/System.Drawing.Primitives/src/System/Drawing/KnownColorNames.cs +++ b/src/libraries/System.Drawing.Primitives/src/System/Drawing/KnownColorNames.cs @@ -7,8 +7,10 @@ namespace System.Drawing { internal static class KnownColorNames { + // Names of all colors (in order of definition in the KnownColor enum). private static readonly string[] s_colorNameTable = new string[] { + // "System" colors, Part 1 "ActiveBorder", "ActiveCaption", "ActiveCaptionText", @@ -35,6 +37,8 @@ internal static class KnownColorNames "Window", "WindowFrame", "WindowText", + + // "Web" Colors, Part 1 "Transparent", "AliceBlue", "AntiqueWhite", @@ -176,18 +180,23 @@ internal static class KnownColorNames "WhiteSmoke", "Yellow", "YellowGreen", + + // "System" colors, Part 2 "ButtonFace", "ButtonHighlight", "ButtonShadow", "GradientActiveCaption", "GradientInactiveCaption", "MenuBar", - "MenuHighlight" + "MenuHighlight", + + // "Web" colors, Part 2 + "RebeccaPurple", }; public static string KnownColorToName(KnownColor color) { - Debug.Assert(color > 0 && color <= KnownColor.MenuHighlight); + Debug.Assert(color > 0 && color <= KnownColor.RebeccaPurple); return s_colorNameTable[unchecked((int)color) - 1]; } } diff --git a/src/libraries/System.Drawing.Primitives/tests/ColorTests.cs b/src/libraries/System.Drawing.Primitives/tests/ColorTests.cs index 979d1e4d3a4b5..e4e1df8366ce9 100644 --- a/src/libraries/System.Drawing.Primitives/tests/ColorTests.cs +++ b/src/libraries/System.Drawing.Primitives/tests/ColorTests.cs @@ -130,6 +130,7 @@ public class ColorTests new object[] {"Plum", 255, 221, 160, 221}, new object[] {"PowderBlue", 255, 176, 224, 230}, new object[] {"Purple", 255, 128, 0, 128}, + new object[] {"RebeccaPurple", 255, 102, 51, 153}, new object[] {"Red", 255, 255, 0, 0}, new object[] {"RosyBrown", 255, 188, 143, 143}, new object[] {"RoyalBlue", 255, 65, 105, 225}, @@ -532,7 +533,7 @@ public void FromKnownColor(string name, int alpha, int red, int green, int blue) [Theory] [InlineData((KnownColor)(-1))] [InlineData((KnownColor)0)] - [InlineData(KnownColor.MenuHighlight + 1)] + [InlineData(KnownColor.RebeccaPurple + 1)] public void FromOutOfRangeKnownColor(KnownColor known) { Color color = Color.FromKnownColor(known); @@ -556,7 +557,7 @@ public void ToKnownColorMatchesButIsNotKnown(KnownColor known) [Theory] [InlineData((KnownColor)(-1))] [InlineData((KnownColor)0)] - [InlineData(KnownColor.MenuHighlight + 1)] + [InlineData(KnownColor.RebeccaPurple + 1)] public void FromOutOfRangeKnownColorToKnownColor(KnownColor known) { Color color = Color.FromKnownColor(known); @@ -588,7 +589,7 @@ public void IsSystemColorFalseOnMatching(KnownColor known) [Theory] [InlineData((KnownColor)(-1))] [InlineData((KnownColor)0)] - [InlineData(KnownColor.MenuHighlight + 1)] + [InlineData(KnownColor.RebeccaPurple + 1)] public void IsSystemColorOutOfRangeKnown(KnownColor known) { Color color = Color.FromKnownColor(known); @@ -612,7 +613,7 @@ public void IsKnownColorMatchFalse(KnownColor known) [Theory] [InlineData((KnownColor)(-1))] [InlineData((KnownColor)0)] - [InlineData(KnownColor.MenuHighlight + 1)] + [InlineData(KnownColor.RebeccaPurple + 1)] public void IsKnownColorOutOfRangeKnown(KnownColor known) { Color color = Color.FromKnownColor(known); @@ -683,7 +684,8 @@ public void GetHashCodeForUnknownNamed() KnownColor.SeaShell, KnownColor.Sienna, KnownColor.Silver, KnownColor.SkyBlue, KnownColor.SlateBlue, KnownColor.SlateGray, KnownColor.Snow, KnownColor.SpringGreen, KnownColor.SteelBlue, KnownColor.Tan, KnownColor.Teal, KnownColor.Thistle, KnownColor.Tomato, KnownColor.Turquoise, KnownColor.Violet, - KnownColor.Wheat, KnownColor.White, KnownColor.WhiteSmoke, KnownColor.Yellow, KnownColor.YellowGreen + KnownColor.Wheat, KnownColor.White, KnownColor.WhiteSmoke, KnownColor.Yellow, KnownColor.YellowGreen, + KnownColor.RebeccaPurple }.Select(kc => new object[] { kc }).ToArray(); [DllImport("user32.dll", SetLastError = true)] From 50c2de9edba2a3bfb40e258abe0a0b4477c575ce Mon Sep 17 00:00:00 2001 From: Adam Sitnik Date: Wed, 9 Dec 2020 13:39:25 +0100 Subject: [PATCH 87/87] Remove some allocations related to storing CacheEntry scopes (#45563) * CacheEntryStack._previous is never used so it can be removed * remove CacheEntryStack and ScopeLease as it's enough to have just AsyncLocal * the first Entry created has no previous entry, so the field is set to null * Update src/libraries/Microsoft.Extensions.Caching.Memory/src/CacheEntryHelper.cs Co-authored-by: Eric Erhardt Co-authored-by: Eric Erhardt --- .../src/CacheEntry.cs | 16 +++--- .../src/CacheEntryHelper.cs | 57 ++++--------------- .../src/CacheEntryStack.cs | 40 ------------- .../tests/MemoryCacheSetAndRemoveTests.cs | 16 ++++-- 4 files changed, 30 insertions(+), 99 deletions(-) delete mode 100644 src/libraries/Microsoft.Extensions.Caching.Memory/src/CacheEntryStack.cs diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/src/CacheEntry.cs b/src/libraries/Microsoft.Extensions.Caching.Memory/src/CacheEntry.cs index 47e3c5c8fd417..6f91cb21f038c 100644 --- a/src/libraries/Microsoft.Extensions.Caching.Memory/src/CacheEntry.cs +++ b/src/libraries/Microsoft.Extensions.Caching.Memory/src/CacheEntry.cs @@ -24,7 +24,7 @@ internal class CacheEntry : ICacheEntry private TimeSpan? _absoluteExpirationRelativeToNow; private TimeSpan? _slidingExpiration; private long? _size; - private IDisposable _scope; + private CacheEntry _previous; // this field is not null only before the entry is added to the cache private object _value; private int _state; // actually a [Flag] enum called "State" @@ -32,7 +32,7 @@ internal CacheEntry(object key, MemoryCache memoryCache) { Key = key ?? throw new ArgumentNullException(nameof(key)); _cache = memoryCache ?? throw new ArgumentNullException(nameof(memoryCache)); - _scope = CacheEntryHelper.EnterScope(this); + _previous = CacheEntryHelper.EnterScope(this); } /// @@ -145,11 +145,6 @@ public void Dispose() { IsDisposed = true; - // Ensure the _scope reference is cleared because it can reference other CacheEntry instances. - // This CacheEntry is going to be put into a MemoryCache, and we don't want to root unnecessary objects. - _scope.Dispose(); - _scope = null; - // Don't commit or propagate options if the CacheEntry Value was never set. // We assume an exception occurred causing the caller to not set the Value successfully, // so don't use this entry. @@ -157,11 +152,14 @@ public void Dispose() { _cache.SetEntry(this); - if (CanPropagateOptions()) + if (_previous != null && CanPropagateOptions()) { - PropagateOptions(CacheEntryHelper.Current); + PropagateOptions(_previous); } } + + CacheEntryHelper.ExitScope(this, _previous); + _previous = null; // we don't want to root unnecessary objects } } diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/src/CacheEntryHelper.cs b/src/libraries/Microsoft.Extensions.Caching.Memory/src/CacheEntryHelper.cs index f7cc3a8d735e8..e06ee0fb0100e 100644 --- a/src/libraries/Microsoft.Extensions.Caching.Memory/src/CacheEntryHelper.cs +++ b/src/libraries/Microsoft.Extensions.Caching.Memory/src/CacheEntryHelper.cs @@ -1,65 +1,32 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; +using System.Diagnostics; using System.Threading; namespace Microsoft.Extensions.Caching.Memory { - internal class CacheEntryHelper + internal static class CacheEntryHelper { - private static readonly AsyncLocal _scopes = new AsyncLocal(); - - internal static CacheEntryStack Scopes - { - get { return _scopes.Value; } - set { _scopes.Value = value; } - } + private static readonly AsyncLocal _current = new AsyncLocal(); internal static CacheEntry Current { - get - { - CacheEntryStack scopes = GetOrCreateScopes(); - return scopes.Peek(); - } + get => _current.Value; + private set => _current.Value = value; } - internal static IDisposable EnterScope(CacheEntry entry) + internal static CacheEntry EnterScope(CacheEntry current) { - CacheEntryStack scopes = GetOrCreateScopes(); - - var scopeLease = new ScopeLease(scopes); - Scopes = scopes.Push(entry); - - return scopeLease; + CacheEntry previous = Current; + Current = current; + return previous; } - private static CacheEntryStack GetOrCreateScopes() + internal static void ExitScope(CacheEntry current, CacheEntry previous) { - CacheEntryStack scopes = Scopes; - if (scopes == null) - { - scopes = CacheEntryStack.Empty; - Scopes = scopes; - } - - return scopes; - } - - private sealed class ScopeLease : IDisposable - { - private readonly CacheEntryStack _cacheEntryStack; - - public ScopeLease(CacheEntryStack cacheEntryStack) - { - _cacheEntryStack = cacheEntryStack; - } - - public void Dispose() - { - Scopes = _cacheEntryStack; - } + Debug.Assert(Current == current, "Entries disposed in invalid order"); + Current = previous; } } } diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/src/CacheEntryStack.cs b/src/libraries/Microsoft.Extensions.Caching.Memory/src/CacheEntryStack.cs deleted file mode 100644 index 9b6a9b71abf41..0000000000000 --- a/src/libraries/Microsoft.Extensions.Caching.Memory/src/CacheEntryStack.cs +++ /dev/null @@ -1,40 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; - -namespace Microsoft.Extensions.Caching.Memory -{ - internal class CacheEntryStack - { - private readonly CacheEntryStack _previous; - private readonly CacheEntry _entry; - - private CacheEntryStack() - { - } - - private CacheEntryStack(CacheEntryStack previous, CacheEntry entry) - { - if (previous == null) - { - throw new ArgumentNullException(nameof(previous)); - } - - _previous = previous; - _entry = entry; - } - - public static CacheEntryStack Empty { get; } = new CacheEntryStack(); - - public CacheEntryStack Push(CacheEntry c) - { - return new CacheEntryStack(this, c); - } - - public CacheEntry Peek() - { - return _entry; - } - } -} diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/tests/MemoryCacheSetAndRemoveTests.cs b/src/libraries/Microsoft.Extensions.Caching.Memory/tests/MemoryCacheSetAndRemoveTests.cs index e9ab2c5c26f50..e9e7fb4ebfc55 100644 --- a/src/libraries/Microsoft.Extensions.Caching.Memory/tests/MemoryCacheSetAndRemoveTests.cs +++ b/src/libraries/Microsoft.Extensions.Caching.Memory/tests/MemoryCacheSetAndRemoveTests.cs @@ -214,17 +214,23 @@ public void DisposingCacheEntryReleasesScope() object GetScope(ICacheEntry entry) { return entry.GetType() - .GetField("_scope", BindingFlags.NonPublic | BindingFlags.Instance) + .GetField("_previous", BindingFlags.NonPublic | BindingFlags.Instance) .GetValue(entry); } var cache = CreateCache(); - ICacheEntry entry = cache.CreateEntry("myKey"); - Assert.NotNull(GetScope(entry)); + ICacheEntry first = cache.CreateEntry("myKey1"); + Assert.Null(GetScope(first)); // it's the first entry, so it has no previous cache entry set - entry.Dispose(); - Assert.Null(GetScope(entry)); + ICacheEntry second = cache.CreateEntry("myKey2"); + Assert.NotNull(GetScope(second)); // it's not first, so it has previous set + Assert.Same(first, GetScope(second)); // second.previous is set to first + + second.Dispose(); + Assert.Null(GetScope(second)); + first.Dispose(); + Assert.Null(GetScope(first)); } [Fact]