1. 17 4月, 2021 8 次提交
  2. 16 4月, 2021 30 次提交
    • D
      Fix build fail by NEED_OPENSSL_3_0 is not defined · dd63ea2e
      Dong-Heon Jung 提交于
      dd63ea2e
    • S
    • V
      [interp] Add more super instructions and other small optimizations (#51273) · 797b106b
      Vlad Brezae 提交于
      * [interp] Replace ldloca + initobj pair with initlocal
      
      We do it in the cprop pass because ldloca removal can enable additional copy propagations.
      
      * [interp] Replace ldloca + ldobj.vt with mov.vt
      
      * [interp] Add superinstructions for multiplication with constant
      
      * [interp] Remove redundant opcode
      
      * [interp] Update indirects count if removing bblock with ldloca
      
      If the var no longer has indirects, we might be able to do cprop through it
      
      * [interp] Refactor ldind/stind opcodes
      
      Remove some unnecessary opcodes. Always do a null check when dereferencing pointers with ldind. Having an unsafe version of this is really useless performance wise and can only be used in very few cases.
      
      * [interp] Add super instructions for ldind/stind with offset
      
      * [interp] Remove opcode for conversion from i8 to i4
      
      It is redundant, we replace it with a MOV_8 which will end up being removed by the cprop pass.
      797b106b
    • D
      Add the ability to stop the `Host` when one of its `BackgroundService` instances errors (#50569) · bbe669c1
      David Pine 提交于
      * Added background service exception behavior enum. Update HostOptions and Host accordingly.
      
      * Added corresponding unit tests for host when ignoring or stopping.
      
      * Call StopAsync rather than FailFast
      
      * Call `IApplicationLifetime.StopApplication()` instead of `StopAsync()`.
      
      * Moved enum out of abstractions. Encapsulate logging logic in extensions. Define new EventId. Simplify check, avoid null eval. Update triple dash comments per peer review.
      
      * Set the default as `StopHost`
      
      * Move ref bits from hosting.abstractions to hosting proper.
      
      * Address feedback from peer review
      
      * Added unit test to verify background service 1 gets started, and runs a bit - and other service can cause stop
      
      * Use explicitly controlled timing for unit test and remove args: ex
      
      * Convert from Fact, to Theory. Test both enum values.
      
      * Separate StartAsync and ExecuteTask, let StartAsync bubble. Adjust unit tests...
      
      * Update the background service async exceptions get logged unit test
      bbe669c1
    • T
      [wasm][debugger] Implement support to modify values. (#49557) · fc53ee79
      Thays Grazia 提交于
      * [wasm][debugger] Implement support to modify values.
      
      * Apply suggestions from code review
      Co-authored-by: NLarry Ewing <lewing@microsoft.com>
      
      * Adding first test.
      
      * Adding more tests, fixing boolean behavior, ignore value change when the new value type is incompatible.
      
      * Implement set value on object -> property and attribute.
      
      * Fix compilation
      
      * Changing what @radical suggested.
      
      * Adding tests.
      
      * Adding test.
      
      * Fix what @radical suggested.
      
      * Fix compilation.
      
      * Fix what @radical suggested.
      Co-authored-by: NLarry Ewing <lewing@microsoft.com>
      fc53ee79
    • K
      Improve Lsra stats (#51281) · d25620b3
      Kunal Pathak 提交于
      * Improve LsraStat
      
      - Improve LsraStat by including various register selection heuristics count
      - Generalize updateLsraStat and dumpLsraStat to operate on array of stats
      
      * jit format
      
      * Display LSRA stats in csv format
      
      * review comments
      
      * Include PerfScore in LsraStatsCsv
      
      * review comments'
      d25620b3
    • A
    • B
      Flow graph "dot" graph output improvements (#51357) · bec17474
      Bruce Forstall 提交于
      * Flow graph "dot" graph output improvements
      
      Added optional support for adding EH regions and loops in the loop table
      to the ".dot" format flow graph display. To enable one or both of
      these, use:
      
      ```
      set COMPlus_JitDumpFgEH=1
      set COMPlus_JitDumpFgLoops=1
      ```
      
      Also, I added a config variable to allow disabling the use of "invisible"
      edges that forces the graph to be in mostly lexical linear order in the layout.
      To use this, use:
      
      ```
      set COMPlus_JitDumpFgConstrained=0
      ```
      
      (COMPlus_JitDumpFgConstrained=1 is the default.)
      
      * Remove trailing newlines from block label
      bec17474
    • A
      JIT: fix BasicBlock::isEmpty() (#51340) · 70a78f99
      Andy Ayers 提交于
      The detection of blocks with only PHI assignments was broken by #50806.
      Fix by using existing helper to find the first non-PHI assignment.
      
      Closes #51326.
      70a78f99
    • E
      Remove unnecessary GetTypeInfo() calls. (#51339) · 31c28fc3
      Eric Erhardt 提交于
      * Remove unnecessary GetTypeInfo() calls.
      
      Calls to GetTypeInfo() are unnecessary, and are a hold-over from when System.Reflection was refactored in legacy versions of .NET.
      31c28fc3
    • D
      Removed scope pooling and added diagnostics (#51163) · e4c3536b
      David Fowler 提交于
      - Remove scope pooling 
      - Added an event that we can ask customers to turn on to see if scope in real applications are mostly homogeneous
      - Add the hash code of the container so that we can detect scope sizes per container instance.
      - The ConcurrentQueue showed a 48% regression on AMD scenarios and a 4% regression on citrine
      linux.
      e4c3536b
    • E
      52d8c3f0
    • M
      Remove unnecessary realpath calls from host probing logic (#50671) · fa49dbc3
      Mateo Torres-Ruiz 提交于
      * Skip test on windows
      
      * Delay file existence check
      
      * Check file existence if there are additional probbing paths
      
      * PR feedback
      
      * Add needs_file_existence_checks
      
      * Clean symlinks causing CI problems with stat
      
      * Switch back to libc
      
      * Ignore symlink deletion in osx
      fa49dbc3
    • B
      a551a99e
    • J
      e837eda6
    • C
      FileStream rewrite: Use IValueTaskSource instead of TaskCompletionSource (#50802) · a38d0c27
      Carlos Sanchez 提交于
      * Remove IFileStreamCompletionStrategy. This makes FileStreamCompletionSource only needed by Net5CompatFileStreamStrategy.
      
      * Use AwaitableProvider for AsyncWindowsFileStreamStrategy.
      
      * No need for ManualResetValueTaskSource class. Remove it to get rid of one allocation and get the actual profiling improvement.
      Rename FileStreamAwaitableProvider.
      
      * Bring back ReadAsync/WriteAsync code to the strategy for simpler code review. Shorter filename for awaitable provider.
      
      * FileStreamCompletionSource can now be nested in Net5CompatFileStreamStrategy, and its _fileHandle can now be private.
      
      * Remove duplicate error definitions, use centralized Interop.Errors.
      
      * Move shared mask values to FileStreamHelpers to avoid duplication.
      
      * Use Interop.Errors also in SyncWindowsFileStreamStrategy.
      
      * Move misplaced comment, move method location.
      
      * Slightly better comment.
      
      * Rename FileStreamAwaitableProvider to FileStreamValueTaskSource to keep in sync with the name of FileStreamCompletionSource.
      
      * Bring back the raw pointer intOverlapped.
      
      * Rename MemoryAwaitableProvider to MemoryFileStreamValueTaskSource.
      
      * Remove numBufferedBytes and avoid unnecessary allocation in Read(byte[],int,int).
      
      * Rename files of nested types.
      
      * Nested async result codes in static class.
      
      * Address feedback.
      
      * Address suggestions
      
      * Bring back RunContinuationAsynchronously=true
      Co-authored-by: Ncarlossanlop <carlossanlop@users.noreply.github.com>
      a38d0c27
    • M
      Add MachO dump writer to createdump (#51150) · 79ad10cf
      Mike McLaughlin 提交于
      * Add MachO dump writer to createdump
      
      Instead of the hacky ELF core dumps on MacOS now createdump generates true MachO dumps.
      
      Setting the COMPlus_DbgEnableElfDumpOnMacOS environment variable is no longer needed.
      
      Add special thread info memory region containing the OS thread ids missing from macho core dumps. This allows SOS to map the thread indexes to thread ids. The address (0x7fffffff00000000) of this special memory region is above the highest user address (0x0007FFFFFFFFF000) and below a kernel reserved address (0xffffff8000xxxxxx) which is kind of moot because dumps don't include any kernel regions. lldb seems just fine with this memory region.
      
      The changes include ARM64 support also, but since I don't have a M1 device I can't build/test them. I'm hoping Steve can at least review them.
      
      Add --verbose/TRACE_VERBOSE support to tone down all the macho dump generation spew.
      
      Issue: #48664
      
      * Fix build problem
      
      * Update docs
      
      * Code review feedback
      Co-authored-by: NJuan Sebastian Hoyos Ayala <juhoyosa@microsoft.com>
      79ad10cf
    • K
      Include condition inside assert for forward jump loops (#51164) · 56e36a04
      Kunal Pathak 提交于
      * Include condition for forward jump loops
      
      * Remove IGF_FINALLY_TARGET and surrounding code
      
      Pass DEBUG_ARG(bbnum) to `emitAddLabel()` to print the BB->IG mapping.
      
      * Revert "Remove IGF_FINALLY_TARGET and surrounding code"
      
      This reverts commit 284c0abc202cca2de22787bf18081076200e5272.
      
      * Pass bbNum to emitAddLabel
      
      * fix Release build break
      56e36a04
    • S
      Apple Silicon bundle distribution template (#51262) · c3348eb7
      Steve MacLean 提交于
      Apple Silicon requires a different distribution template
      
      Set options.hostArchitectures to stop requiring Rosetta
      
      Adjust minimum required version to 11.0
      c3348eb7
    • T
    • J
      Update Alpine ARM docker image (#51099) · cb9897b0
      Jan Vorlicek 提交于
      * Update Alpine ARM docker image
      
      The Alpine ARM docker image is used for cross compilation. There was a
      breaking change in Alpine 3.13 - it uses a new MUSL that has 64 bit
      time_t even on 32 bit platforms. Since the official support for Alpine
      ARM was not announced yet, it was decided that we will support it only
      on Alpine >= 3.13 instead of having to build and distribute two different
      versions of runtime.
      
      This change updates the docker image used to build Alpine ARM runtime to
      a new version that uses Alpine 3.13 rootfs. It is also using Ubuntu
      16.04 instead of 18.04 as a host to unify it with the one we use to
      build for Alpine ARM64.
      
      * Update helix queue for Alpine ARM to use Alpine 3.13
      cb9897b0
    • S
      Handle casts done via helpers and fold overflow operations in value numbering (#50450) · 730abc90
      SingleAccretion 提交于
      * Added a missing license header
      
      * Added a test verifying that checked arithmetic is correct
      
      * Added a test verifying that checked casts are correct
      
      * Refactored VNEvalShouldFold
      
      * Refactored gtFoldExprConst to use helpers and follow the common code style
      
      * Fixed the comment stating TYP_BYREF has no zero value
      
      * Moved checking of overflow for arithmetic operations from gtFoldExprConst into a separate namespace
      
      * Implemented folding of overflow arithmetic in value numbering
      
      * Fixed some typos in valuenum.cpp/h
      
      * Added identity-based evaluation for overflow arithmetic
      
      * Refactored gtFoldExpr some more, moved the overflow checking logic to CheckedOps, implemented overflow checking for floating point -> integer casts
      
      * Implemented folding of checked casts in value numbering, started value numbering casts via helpers like normal casts
      
      * Fixed the formatting
      
      * Made the definition of var_types a standalone header so that it can be safely #included'ed in utils.h
      
      * Replaced uses of GTF_CALL_M_SPECIAL_INTRINSIC with the equivalent helpers
      
      * Fold cast via helpers in morph
      
      * Disable the test for checked casts on Mono
      730abc90
    • A
      Improve backport command (#51306) · 2e127301
      Alexander Köplinger 提交于
      GitHub Actions started doing shallow checkouts so we often ran into the case where applying the patch would fail with an error due to the commit blobs not being available:
      
      ```
      error: sha1 information is lacking or useless (eng/pipelines/common/xplat-setup.yml).
      error: could not build fake ancestor
      ```
      
      Fix this by always checking out the whole history. Since this makes checkout quite slow (~2mins), refactor the action so we post the "Started backporting" comment before doing the checkout so the user isn't confused why nothing happens.
      2e127301
    • D
      Fix issue with Win32 resource placement (#51291) · 6b64618b
      David Wrighton 提交于
      * Fix issue with Win32 resource placement
      
      Windows has a bug in its resource processing logic that occurs when
      1. A PE file is loaded as a data file
      2. The resource data found in the resources has an RVA which has a magnitude greater than the size of the section which holds the resources
      3. The offset of the start of the resource data from the start of the section is not zero.
      
      As it is impossible to effect condition 1 in the compiler, and changing condition 2 would require bloating the virtual size of the sections, instead require that the resource data is located at offset 0 within its section, by sorting the Win32ResourceNode to be the first node.
      
      * Update src/coreclr/tools/aot/ILCompiler.ReadyToRun/ObjectWriter/SectionBuilder.cs
      Co-authored-by: NMichal Strehovský <MichalStrehovsky@users.noreply.github.com>
      Co-authored-by: NMichal Strehovský <MichalStrehovsky@users.noreply.github.com>
      6b64618b
    • T
    • W
      Modify test OOMException01 and enable test OOMException01 (#51280) · e77435ba
      ws77.cho 提交于
      * Modify TC to compare strings before ':'
      
      In order to avoid failure due to modification of #44013,
      the TC has been modified so that the content after':' is not compared.
      
      * Enable OOMException01
      
      Failed TC is fixed at #51280
      e77435ba
    • R
      [wasm] Pass configuration to samples build (#51304) · 243fd16d
      Radek Doulik 提交于
      243fd16d
    • B
      Simplify JIT label handling (#51208) · a2e36a76
      Bruce Forstall 提交于
      * Simplify JIT label handling
      
      Remove the BBF_JMP_TARGET flag that was set early and attempted
      to be maintained all through compilation. Instead, use
      BBF_USE_LABEL to indicate to the emitter where we need labels.
      
      Also, stop setting and maintaining BBF_USE_LABEL early.
      
      Add a pass over the blocks when preparing for codegen that sets
      most of the necessary BBF_USE_LABEL flags. This flag will never
      be set before codegen. A few places set the flag after codegen starts,
      namely `genCreateTempLabel` and BBJ_COND handling for alignment.
      Note that this flag must be set before the block is processed for
      codegen (and an insGroup is created).
      
      Together, these changes make it easier to work with the flow graph
      without worrying about maintaining these bits of information through
      various optimizations.
      
      Add a few more details about alignment processing to the dump.
      
      There are a few code asm diffs due to alignment processing not previously
      creating a label to help compute how large a loop is.
      
      There are a lot of textual asm diffs due to there being (mostly)
      fewer labels, plus some additional insGroup output. This can happen if
      a block was labeled with `BBF_JMP_TARGET` or `BBF_USE_LABEL` before,
      but didn't need to be, perhaps after some optimizations. Now, the flag is
      never added in the first place.
      
      There are a large number of GC info diffs. Labels are where GC info state
      changes are recorded between codegen and the emitter. If we eliminate an
      unnecessary emitter label, then we also eliminate a capture of the current
      codegen GC state. Since the emitter is lazy at marking GC deaths, this
      means that we see a lot of lengthened GC lifetimes -- until the next
      label, or some other cause of GC kill. Often, you see a register kill
      followed by register birth just disappear, and the register is maintained
      alive across the interim.
      
      * Remove loop align flag if we decide a loop is no longer a loop
      a2e36a76
    • T
      Fix for RoslynPad crash found in targeted preview testing (#51173) · 8f491fc4
      Tomáš Rylek 提交于
      I found out that the crash was caused by an incompletely handled
      corner case in generic lookup - incomplete comparison of
      GenericLookupKey matched two generic lookups which in reality
      involved two different constrained types.
      
      While fixing this I added a new variant to
      RuntimeDeterminedTypeHelpers for comparing MethodWithToken and
      I fixed null handling that was inconsistent among the individual
      type variants of the Equals and GetHashCode methods.
      
      Thanks
      
      Tomas
      8f491fc4
    • J
      Add stub definitions of inject debug resources targets to fix runtimeinfo... · 39be34f8
      Jeremy Koritzinsky 提交于
      Add stub definitions of inject debug resources targets to fix runtimeinfo build dependency issues. (#51254)
      
      39be34f8
  3. 15 4月, 2021 2 次提交