1. 09 6月, 2021 22 次提交
    • J
      Add non-cryptographic hash algorithms library · 3e6f2ffc
      Jeremy Barton 提交于
      * Adds a new package, System.IO.Hashing (netstandard2.0, net461 to reduce netfx restore graph sizes, and net6.0)
      * Provides implementations for four hash algorithms
        * CRC-32 (the variation used by IEEE 802.3 (Ethernet))
        * CRC-64 (the variation used by ECMA-182)
        * XxHash32, with optional seed
        * XxHash64, with optional seed
      * The tests are structured so that algorithm tests just need to provide their test vectors and do some boilerplate overrides to get variation testing across the instance methods and static methods.
      3e6f2ffc
    • A
      JIT: fix OSR reporting for special stack slots (#53897) · 3d132046
      Andy Ayers 提交于
      Revise the reporting of the special stack slots for OSR to be more uniform.
      * Always record the original method FP-relative offset.
      * Always apply the same adjustment for original method slosts i the OSR frame
      * Handle caller-SP relative adjustment in `lvaToCallerSPRelativeOffset`
      
      In particular, this fixes #43534 where we were reporting the wrong caller SP
      for the profiler exit hook.
      3d132046
    • A
      1fb1c8f4
    • K
      Display LSRA stats in method summary (#53901) · 878dc203
      Kunal Pathak 提交于
      * Lsrstats
      
      * jit format
      
      * use blocks iterator
      878dc203
    • T
      Do byref liveness updates for same register GPR moves (#53684) · 7df92fd4
      Tanner Gooding 提交于
      * Do byref liveness updates for same register GPR moves on x86/x64
      
      * Change where emitLastEmittedIns is tracked
      
      * Ensure emitLastEmittedIns isn't tracked across instruction groups
      7df92fd4
    • M
      Add unsigned variants for BitConverter float bit APIs (#53784) · 36a7e76f
      MichalPetryka 提交于
      * Add unsigned variants for BitConverter bit APIs
      
      Adds DoubleToUInt64Bits, UInt64BitsToDouble, SingleToUInt32Bits,
      UInt32BitsToSingle, HalfToUInt16Bits and UInt16BitsToHalf.
      
      Implementations were based on existing signed integer variants.
      
      Convert usages of existing APIs to unsigned variants when appropriate.
      
      Fix #36469
      
      * Revert comment change
      
      Reverted a comment change made in the existing code by mistake.
      
      * Use existing code for implementations
      
      Use the existing signed methods with a cast, less code with the same codegen.
      
      * Cast correction
      
      Corrected the type used in a cast.
      36a7e76f
    • E
      Fix InvariantGlobalization=false in a trimmed app (#53453) · 3ead4ac1
      Eric Erhardt 提交于
      * Fix InvariantGlobalization=false in a trimmed app.
      
      Move the LoadICU logic into a static ctor, so it runs early in the process, but not as part of querying the GlobalizationMode.Invariant property. This allows for LoadICU to still be invoked, even when the app is trimmed and GlobalizationMode.Invariant is hard-coded by the linker.
      
      While I was changing this code, I also removed the workaround in Browser builds for swallowing errors being returned from LoadICU.
      
      Fix #49073
      Fix #49391
      
      * Add trimming tests for InvariantGlobalization
      
      * Update the LoadICU message for mobile workloads.
      
      * Respond to PR feedback.
      
      - Split the substitutions of GlobalizationMode.Invariant between true and false
      - Add a trimming test that ensures Invariant=true trims everything it is supposed to
      
      * Add checks for all mobile platforms
      3ead4ac1
    • V
      Include NetCoreAppCurrent configs in packages (#53439) · 0377558d
      Viktor Hofer 提交于
      * Include NetCoreAppCurrent configs in packages
      
      The NetCoreAppCurrent configurations were omitted from packages to avoid
      ever growing packages. Now that we adhere to the support policy for
      packages we don't need to exclude them anymore as the policy defines a
      baseline for .NETCoreApp configurations.
      
      This will remove an artificial difference when source building the
      repository and also make it so that partner repositories which don't
      depend on a transport package like windowsdesktop (winforms) receive
      the very latest assets that are included in the shared framework as
      well.
      
      * Fix package validation for non exposed inbox libs
      0377558d
    • A
      Remove an erroneous check (#53889) · d35882ae
      Andrew Au 提交于
      d35882ae
    • A
      Improve GC stress log instrumentation (#53547) · e42c8965
      Andrew Au 提交于
      e42c8965
    • U
      Build support for s390x: clr.iltools and clr.paltests (#53289) · 54f78b8a
      Ulrich Weigand 提交于
      * Add dummy support for s390x in vm, jit, debug, and unwinder
      
      * This suffices to make clr.iltools and clr.paltests buildable
      54f78b8a
    • U
      Build support for s390x: libunwind (#53286) · e4eefcba
      Ulrich Weigand 提交于
      * Merge https://github.com/libunwind/libunwind/pull/245
      
      * Add s390x support to local CMake files
      e4eefcba
    • U
      Build support for s390x: PAL layer (#53287) · 5d6278a6
      Ulrich Weigand 提交于
      * Add PAL implementation for Linux on s390x
      
      * Define BIGENDIAN on s390x when compiling coreclr
      
      * Provide a default HAVE_FUNCTIONAL_PTHREAD_ROBUST_MUTEXES_EXITCODE
        value in eng/native/tryrun.cmake
      5d6278a6
    • M
      Modernize DiagnosticsHandler tests (#53870) · 6058cb7f
      Miha Zupan 提交于
      * Modernize DiagnosticsHandler tests
      
      * Address PR feedback
      
      SemaphoreSlim => TCS, Guid => nosuchhost.invalid, Http20 => Http2
      6058cb7f
    • S
      Apple Silicon reenable 49365 (#52197) · 4a6c13a1
      Steve MacLean 提交于
      4a6c13a1
    • K
      Update instruction table to capture the correct state of EFlags (#53806) · 54fdd260
      Kunal Pathak 提交于
      * Update instruction table with accurate EFlags information
      
      * Revert "Add issues.targets entry for the GitHub_13822 test to make CI green (#53789)"
      
      This reverts commit bd9ba598.
      
      * minor fixup
      
      * Fix some more instructions
      
      * review comments
      54fdd260
    • S
      Fix Apple Silicon shuffle thunks (#53250) · d7375214
      Steve MacLean 提交于
      * Fix Apple Silicon shuffle thunks
      
      Fixes 47294
      
      * Set and use m_hfaFieldSize for stack arguments
      
      m_hfaFieldSize is needed to calculate correct shuffle size.
      d7375214
    • J
      Strip libmonosgen linked library (#53240) · 84c11e41
      Jo Shields 提交于
      It seems in the .symbols.nupkg package, instead of a stripped .dylib/so and companion .dwarf/.dbg, we've just been shipping unstripped libs. This commit largely duplicates the functions from eng/native/functions.cmake into an MSbuild proj, as our entire logic is already in MSbuild not CMake.
      84c11e41
    • A
      Fix compilation errors if host does not support AVX2 (#50316) · bdc5d79e
      Andrii Kurdiumov 提交于
      * Fix compilation errors if host does not support AVX2
      
      * Add comments to empty preprocessor branches
      
      * Explicitly ask for architecture support
      
      * Apply -march-native only on GCC
      
      * Make sure if clang on x64 would be used
      it actually pass -march=native, otherwise AVX2 would not be enabled.
      
      * Ask test use AVX2 when run on Windows.
      bdc5d79e
    • A
      Check if the marshalling of a field is possible across all platforms. (#53194) · aa558fa4
      Aaron Robinson 提交于
      * Check if the marshalling of a field is possible across all platforms.
      
      * Add test for the generic field generation for IClassX.
      aa558fa4
    • Z
      [mono][llvm] Access mono_polling_required directly instead of loading its... · 77fb985f
      Zoltan Varga 提交于
      [mono][llvm] Access mono_polling_required directly instead of loading its value from a GOT slot in static mode. (#53776)
      
      This will potentially avoid one load in the GC safe point code.
      77fb985f
    • B
      Distinguish Debug and Checked builds in version resource (#53847) · f70723d3
      Bruce Forstall 提交于
      In the Win32 version resource, this changes the "Comment" field
      from:
      ```
        Flavor=Checked
      ```
      to:
      ```
        Flavor=Debug
      ```
      
      It also properly sets `BUILDENV_DEBUG=1` for debug builds (only used in
      exactly one place: gc.cpp).
      f70723d3
  2. 08 6月, 2021 18 次提交
    • D
      Fire diagnostic source events from IHostBuilder.Build (#53757) · 543a9836
      David Fowler 提交于
      * Fire diagnostic source events from IHostBuilder.Build
      - We want to enable getting access to the IHostBuilder and IHost during the call to IHostBuilder.Build so that we can access the application's IServiceProvider from various tools. Usually, this is enabled by exposing a different entry point from the application but this technique allows us to let the application execute normally and hook important events via a diagnostic source.
      - Add support for the new pattern in HostFactoryResolver
      - Added support for resolving an IServiceProvider using the new diagnostics source pattern (which doesn't require a different entrypoint)
      - Detect the version of Microsoft.Extensions.Hosting before waiting for events to fire
      - We want to fail fast if we know this version of hosting will never fire events of if the hosting assembly fails to load. Added a version check.
      - Allow the caller to specify a wait timeout.
      -  Added a flag to allow running the application to completion
      543a9836
    • S
      Multi-target RuntimeConfigParser Task (#53827) · 9af4b97f
      Steve Pfister 提交于
      Fixes https://github.com/dotnet/runtime/issues/53811
      
      The props were not taking into account the right paths.
      9af4b97f
    • T
      Sockets.tests: TcpReceiveSendGetsCanceledByDispose: remove Timeout. (#52599) · 06cf0b02
      Tom Deseyn 提交于
      * Sockets.tests: TcpReceiveSendGetsCanceledByDispose: remove Timeout.
      
      This timeout is not needed and masks a more useful exception thrown
      by the test.
      
      * Add WaitAsync to timeout on all async operations
      
      * Add missing timeout
      06cf0b02
    • D
      86719086
    • M
      [libraries] Fix metadata name following arcade change to stop supporting... · d52f9250
      Mitchell Hwang 提交于
      [libraries] Fix metadata name following arcade change to stop supporting multiple targets in helix sdk (#53828)
      Co-authored-by: NMitchell Hwang <mitchell.hwang@microsoft.com>
      d52f9250
    • D
      [main] Update dependencies from dotnet/runtime dotnet/hotreload-utils dotnet/xharness (#53787) · fbf5e794
      dotnet-maestro[bot] 提交于
      [main] Update dependencies from dotnet/runtime dotnet/hotreload-utils dotnet/xharness
      fbf5e794
    • B
      Add more iterators to JIT (#52515) · 5788ea0d
      Bruce Forstall 提交于
      Add more iterators compatible with range-based `for` syntax for various data structures. These iterators all assume (and some check) that the underlying data structures determining the iteration are not changed during the iteration. For example, don't use these to iterate over the predecessor edges if you are changing the order or contents of the predecessor edge list.
      
      - BasicBlock: iterate over all blocks in the function, a subset starting not at the first block, or a specified range of blocks. Removed uses of the `foreach_block` macro. E.g.:
      ```
      for (BasicBlock* const block : Blocks()) // all blocks in function
      for (BasicBlock* const block : BasicBlockSimpleList(fgFirstBB->bbNext)) // all blocks starting at fgFirstBB->bbNext
      for (BasicBlock* const testBlock : BasicBlockRangeList(firstNonLoopBlock, lastNonLoopBlock)) // all blocks in range (inclusive)
      ```
      
      - block predecessors: iterate over all predecessor edges, or all predecessor blocks, e.g.:
      ```
      for (flowList* const edge : block->PredEdges())
      for (BasicBlock* const predBlock : block->PredBlocks())
      ```
      
      - block successors: iterate over all block successors using the `NumSucc()/GetSucc()`, or `NumSucc(Compiler*)/GetSucc(Compiler*)` pairs, e.g.:
      ```
      for (BasicBlock* const succ : Succs())
      for (BasicBlock* const succ : Succs(compiler))
      ```
      Note that there already exists the "AllSuccessorsIter" which iterates over block successors including possible EH successors, e.g.:
      ```
      for (BasicBlock* succ : block->GetAllSuccs(m_pCompiler))
      ```
      
      - switch targets, (namely, the successors of `BBJ_SWITCH` blocks), e.g.:
      ```
      for (BasicBlock* const bTarget : block->SwitchTargets())
      ```
      
      - loops blocks: iterate over all the blocks in a loop, e.g.:
      ```
      for (BasicBlock* const blk : optLoopTable[loopInd].LoopBlocks())
      ```
      
      - Statements: added an iterator shortcut for the non-phi statements, e.g.:
      ```
      for (Statement* const stmt : block->NonPhiStatements())
      ```
      Note that there already exists an iterator over all statements, e.g.:
      ```
      for (Statement* const stmt : block->Statements())
      ```
      
      - EH clauses, e.g.:
      ```
      for (EHblkDsc* const HBtab : EHClauses(this))
      ```
      
      - GenTree in linear order (but not LIR, which already has an iterator), namely, using the `gtNext` links, e.g.:
      ```
      for (GenTree* const call : stmt->TreeList())
      ```
      
      This is a no-diff change.
      5788ea0d
    • Z
    • J
      Resolving ILLink warnings on Microsoft.Extensions.Options.ConfigurationManager (#53552) · 866bf990
      Jose Perez Rodriguez 提交于
      * Resolving ILLink warnings on Microsoft.Extensions.Options.ConfigurationManager
      
      * Fix message
      
      * Addressing messages feedback
      
      * Update src/libraries/Microsoft.Extensions.Logging.Configuration/ref/Microsoft.Extensions.Logging.Configuration.cs
      Co-authored-by: NEric Erhardt <eric.erhardt@microsoft.com>
      
      * Update remaining messages with suggestion.
      Co-authored-by: NEric Erhardt <eric.erhardt@microsoft.com>
      866bf990
    • B
      Fix superpmi.py/jitrollingbuild.py to handle large REST results (#53750) · 2dd402dc
      Bruce Forstall 提交于
      The Azure Storage REST API returns a maximum of 5000 results in
      a single query. We have more results in the JIT rolling build set,
      so we weren't finding queried git_hash values.
      
      Generalize the query to loop using the "marker" continuation functionality.
      
      We currently have about 800 superpmi collections results, but update
      the superpmi.py script similarly for future proofing.
      
      I also changed the query used by jitrollingbuild.py to specify a prefix,
      to avoid requiring so many results. Probably should do the same thing for
      SuperPMI collections. The downside is the REST api doesn't have a facility
      for the prefix to be case-insensitive. I think it's ok to be case-sensitive,
      but we'd need to verify that.
      2dd402dc
    • M
      Throw ArgumentNull instead of NullReference for null requests (#53742) · d1b5a34d
      Miha Zupan 提交于
      * Throw ArgumentNull instead of NullReference for null requests
      
      * Don't use Send on browser
      d1b5a34d
    • B
    • D
      [main] Update dependencies from dnceng/internal/dotnet-optimization (#53672) · 15eca914
      dotnet-maestro[bot] 提交于
      [main] Update dependencies from dnceng/internal/dotnet-optimization
      15eca914
    • J
      Create Sdk.props in AOT compilers with a template (#53685) · ccec8483
      Jo Shields 提交于
      * Create Sdk.props in AOT compilers with a template
      
      Fixes https://github.com/dotnet/runtime/issues/53653
      
      Example:
      
      ```
      sudo cat Sdk/Sdk.props
      <Project>
        <ItemGroup>
          <MonoAotCrossCompilerPath Include="$(MSBuildThisFileDirectory)..\tools\mono-aot-cross" RuntimeIdentifier="iossimulator-arm64" />
        </ItemGroup>
      </Project>
      ```
      ccec8483
    • A
      1ec8a0a5
    • L
    • V
      Remove HarvestVersionValidation from pkg testing (#53818) · 8f18c5da
      Viktor Hofer 提交于
      * Remove HarvestVersionValidation from pkg testing
      
      As packages assets aren't redistributed anymore, harvesting doesn't need to rely on exact versions and thus the task isn't necessary anymore.
      8f18c5da
    • E
      Change package testing to use RuntimeTargets rather than RID-specific restore (#53575) · fcad78b2
      Eric StJohn 提交于
      * Change package testing to use RuntimeTargets rather than RID-specific restore
      
      * Upload binlogs for package testing
      
      * Address feedback
      
      Simplify outer build of package tests to just use InnerTargets extension point.
      
      Use Helix's work-item isolated packages folder
      
      Give a better name to binlogs
      
      * Cleanup old suppressions
      
      * Use ReferenceCopyLocalPaths for runtime testing
      
      This item will be conflict-resolved whereas RuntimeCopyLocalItems was not.
      
      Also fix the case where a package intentionally provides no assets (yet installs)
      
      * Don't include runtime dependencies when reference was excluded by conflict resolution
      
      * Fix import conventions in outer build
      
      * Workaround conflict resolution on .NETStandard runtime
      
      .NETStandard doesn't conflict resolve runtime assets.
      Workaround by feeding .NETStandard references as runtime for purposes of conflict resolution.
      fcad78b2