1. 22 12月, 2021 1 次提交
  2. 21 12月, 2021 9 次提交
  3. 20 12月, 2021 7 次提交
  4. 19 12月, 2021 2 次提交
    • M
      Have NativeAOT test execution project include SDK (#62927) · 7213976b
      Michal Strehovský 提交于
      * Have NativeAOT test execution project include SDK
      
      The SDK contains logic to configure trimming - we were skipping all of that. We couldn't previously include the SDK because it would reflection-root the entrypoint assembly. No longer the case after #62890.
      7213976b
    • A
      Add 'w' and 's' bit to xarch instruction flags. (#61198) · 34249231
      anthonycanino 提交于
      Change encodes 'w' and 's' in the insFlags struct and INS_FLAG
      entry for xarch instruction table. In addition, add methods to check
      check if this flag is set for an instruction, which allows to start
      simplifying some of the various ad-hoc checks for these bits that were
      previously done per-instruction throughout emitxarch.cpp.
      34249231
  5. 18 12月, 2021 11 次提交
    • P
      [wasm] Testing with NodeJs on CI (#62779) · a73d44f1
      Pavel Savara 提交于
      * enable testing with NodeJS on CI
      * Fix task marshal tests.
      Co-authored-by: NMarek Fišera <mara@neptuo.com>
      a73d44f1
    • A
      Suppress OSR for crossgen2 execution (#62968) · 2abbe5b4
      Andy Ayers 提交于
      * Suppress OSR for crossgen2 execution
      
      In CI testing, crossgen2 currently is run via a .NET 6 runtime, and
      that runtime has some bugs in OSR.
      
      Work around by suppressing OSR for the duration of the run. We should
      be able to revert this once we update the crossgen2 runtime
      to a .NET 7 version.
      
      * add COMPlus exclusions for readytorun/multifolder
      2abbe5b4
    • M
      Allow building libs against NativeAOT CoreLib (#62945) · 3b2a700a
      Michal Strehovský 提交于
      To make sure ApiCompat tooling for NativeAOT's CoreLib runs at least in some legs, compile libs against NativeAOT CoreLib if we're building CLR, but not building the JIT flavor of the runtime.
      
      The baselining is necessary because the reflection stack of NativeAOT doesn't live in CoreLib.
      
      The CannotRemoveBaseTypeOrInteface baselining will go away once https://github.com/dotnet/runtime/issues/62944 gets fixed. It's one of the "overall goodness" things we can take out of NativeAOT and put it into all runtimes.
      3b2a700a
    • M
      Handle RunClassConstructor with nonreflectable cctor (#62947) · 118349fa
      Michal Strehovský 提交于
      This is now getting hit in #62927, so it's somewhat more urgent. (The feature switches from the SDK put us into the situation that triggers this bug around `RunClassConstructor` on an otherwise unused type.)
      
      Fixes dotnet/runtimelab#987.
      
      Remember what class constructor contexts we saw during scanning phase and if the owning type is also generated, assume `RunClassConstructor` could be used and ensure the cctor context is also generated in the compilation phase.
      
      This is somewhat less precise, but introducing a new node type for "a type used with `RunClassConstructor`" that dataflow analysis could report doesn't seem worth it.
      118349fa
    • M
    • J
      Unify implementation of string constructors accross runtimes (#62936) · bcd35278
      Jan Kotas 提交于
      String constructors implementation methods had a dummy this argument on CoreCLR, but not on other runtimes.  It required ifdefs in the implementation. This change removes the ifdefs and makes the string constructors implementation methods uniform accross all runtimes. It is possible to do this cleanup now since we have just bumped R2R version band.
      bcd35278
    • T
      Deduplicate JIT/Methodical/explicit/coverage tests (#62867) · e1f2bf14
      Tomáš Rylek 提交于
      This test set contains several project groups exercising various
      primitive types using explicit and sequential layout. Each group
      comprises a variant source file implementing a sequential or
      explicit struct / class 'AA' with a field of the given type
      (e.g. expl_byte_1.cs / seq_byte_1.cs) and a common source file
      (body_byte.cs in this case) implementing a number of tests
      manipulating the type 'AA' that is shared by the explicit and
      the sequential variant of the project (e.q. expl_byte_1[_d/_r].csproj,
      seq_byte_1[_d/_r].csproj).
      
      The problem was that the Main method resided in the common source
      file so that it was always present twice - once for the sequential
      and once for the explicit variant of the test (ignoring the _d / _r
      flavors). After experimenting with several ways to refactor the tests
      I have come to the conclusion that the most straightforward way
      of deduplicating them is just moving the Main method out of the shared
      source code into the variant (explicit / sequential) sources that
      aren't shared.
      
      Thanks
      
      Tomas
      e1f2bf14
    • E
      JIT: handle more cases for MOD/DIV -> UMOD/UDIV transformation (#62394) · a6de6324
      Egor Bogatov 提交于
      * Introduce IsNeverNegative
      
      * Address feedback
      
      * Apply suggestions from code review
      Co-authored-by: NSingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
      
      * Address feedback
      
      * fix build on x86
      Co-authored-by: NSingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
      a6de6324
    • E
      5a5d3799
    • D
    • A
      OSR support for Arm64 (#62831) · 0206926c
      Andy Ayers 提交于
      * OSR support for Arm64
      
      Enable OSR for Arm64:
      * rename `FpToSpDelta` in `PatchpointInfo` to `TotalFrameSize` so it makes
      sense for both x64 and Arm64.
      * make it clear that the local offsets in `PatchpointInfo` are virtual
      (relative to the top of the frame). Adjust recorded Arm64 offsets to match.
      * add new jit config setting `JitEnableOSRRange` to allow selectively enabling
      OSR for only a subset of jitted methods.
      * Arm64 OSR method is passed Tier0 SP but not Tier0 FP, as Tier0 FP can point
      either at top or bottom of Tier0 frame depending on frame type. For Arm64 the
      OSR method establishes its own FP that chains to caller FP. (I will likely
      revise x64 to work this way too, as it makes simple FP chain stackwalks work
      out better).
      * The Arm64 OSR epilog gets an extra SP adjustment to remove the Tier0 frame.
      * The Arm64 OSR prolog gets a phantom SP adjustment in unwind to account for
      being passed the Tier0 SP.
      * pad OSR funclet frames with tier0 frame size so `PSPSym` ends up at the same
      caller-SP relative offset as the OSR frame
      * handle the large `fiSpDelta1` offsets from the funclet frame padding 
      * local/arg init for the OSR frame from the Tier0 frame was moved into a new
      method `genEnregisterOSRArgsAndLocals`; implemented the ARM64 version.
      * sequencing of this initialization in the prolog reordered slightly to prevent
      inadvertent clobbering.
      * comments/code that referred to `original` or `old` method were revised to
      instead try and consistently use `tier0`.
      * support the mixed-altjit case for OSR by allocating a local copy of the
      patchpoint info with similar and plausible information.
      * add symbol table note for locals in OSR methods that live on the Tier0 frame.
      * fix `fgIsThrowHlpBlk` when called on an empty block
      * broaden the jit-experimental testing matrix to include Arm64.
      0206926c
  6. 17 12月, 2021 10 次提交