1. 01 6月, 2022 16 次提交
    • A
      Remove more wprintf usages (#69912) · c3e0c8a3
      Aaron Robinson 提交于
      * Remove wprintf from eventpipe.
      
      * Remove messagebox logic from utils and place its single usage
        under debug/.
      
      * Convert Profiler GUID logging to use UTF-8
      c3e0c8a3
    • B
      64e05d83
    • T
      Adding support for vector constants via GenTreeVecCon (#68874) · 187bb1f2
      Tanner Gooding 提交于
      * Adding support for vector constants via GenTreeVecCon
      
      * Responding to PR feedback
      
      * Support tracking the underlying simdBaseJitType for GenTreeVecCon
      
      * Applying formatting patch
      
      * Handle the scenario where TYP_SIMD8 is retyped to TYP_LONG or TYP_DOUBLE
      
      * Ensure GenTreeVecCon tracks the simdSize so that TYP_SIMD8 ABI retyping still works
      
      * Ensure the create call and not the cloned local is lowered
      
      * Resolving PR feedback
      
      * Ensure morph and rationalize check `OBJ(ADDR(CNS_VEC))`
      
      * Update src/coreclr/jit/gentree.cpp
      Co-authored-by: NSingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
      Co-authored-by: NSingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
      187bb1f2
    • V
    • H
      Change some delegate FCalls to managed (#70000) · b6c30d12
      Huo Yaoyuan 提交于
      * Convert CompareUnmanagedFunctionPtrs to managed
      
      * Move simple type match to managed
      
      * Add more check in managed portion
      
      * Rename method for FCall
      
      * Change FCall to directly call IsEquivalentTo
      
      * Add helper method frame
      
      * Fix uninitialized result variable
      
      * Change to QCall for type equivalence
      b6c30d12
    • S
      Optimize Array.GetFlattenedIndex (all runtimes) and InternalGetValue (CoreCLR) (#69940) · 338690d2
      Sergio Pedri 提交于
      * Add managed fast path for SZ Array.GetValue(int)
      
      This is only used when the element type is a reference type
      
      * Move faster GetValue(int) to CoreCLR-specific file
      
      * Add Array.GetFlattenedIndex(int) overload
      
      * Add managed stub for InternalGetValue in CoreCLR
      
      This is used whenever the element type is a class
      
      * Initial (partial) port of ArrayNative::GetValue to C#
      
      * Simplify TypeDesc checks in managed Array.GetValue
      
      * Remove Array.InternalGetValue CoreCLR FCall
      
      * Add RuntimeHelpers.Box FCall on CoreCLR
      
      * Implement value type support for managed Array.InternalGetValue
      
      * Remove leftover MethodTable.IsElementTypeClass property
      
      * Minor API tweaks, add XML docs
      
      * Fix some typos and oversights
      
      * Remove managed TypeDesc type (not needed anymore)
      
      * Revert name change for MethodTable.ElementType field
      
      * Simplify Array.GetFlattenedIndex (CoreCLR/NativeAOT)
      
      * Apply suggestions from code review
      
      * Move FCIMPL to comutilnative.cpp
      * Remove ExplicitLayout from TypeHandle
      * Tweak comment on unsupported path for Array.GetValue
      * Use MemoryMarshal.GetArrayDataReference instead of manual addressing
      * Add HELPER_METHOD_FRAME to FCall implementation
      
      * Move MethodTable FCall decl to comutilnative.h
      
      * Simplify legacy behavior check in ArrayNative::SetValue
      
      * Change RuntimeHelpers.Box to just call JIT_Box
      
      * Simplify GetArrayElementTypeHandle(), add an assert
      338690d2
    • J
      Split out and generalize tailcall IR validation/tailcall profile adjustments (#69941) · 7890ef1a
      Jakob Botsch Nielsen 提交于
      * Split the IR validation after tailcalls into a separate function.
        Previously it was intertwined with updating of profile weights for
        follow-up blocks.
      * Generalize the validation to use a tree walk and handle more cases.
        This fixes an assertion failure seen in some PGO runs.
      * Generalize the updating of profile weights for follow-up blocks.
        Previously this was only updating profile weights for one follow up
        blocks, but there can be an arbitrary number of successor blocks due
        to inlining.
      
      Fix #69939
      7890ef1a
    • B
      Clean up emitOutputNOP (#69989) · bc07cf2a
      Bruce Forstall 提交于
      Change it to take a dst, not a writeable dst, pointer.
      bc07cf2a
    • D
      Improve regex tests for offset start cases (#69959) · 262347c4
      Dan Moseley 提交于
      * Improve tests for offset start
      
      * improve
      
      * comment
      262347c4
    • C
    • T
    • M
      c8afd979
    • F
      [Mono] Pass Vector128 in SIMD registers, when LLVM is enabled (#68991) · 6ad69486
      Fan Yang 提交于
      * Add a new LLVMArgStorage type
      
      * Fix llvm signature
      
      * Fix emit_call
      
      * Enable passing SIMD register on arm64 and clean up debugging stuff
      
      * Clean up unnecessary format change
      
      * Update code after rebase
      
      * Only use SIMD register when element type is primitive type
      
      * Disable SIMD intrinsics for generic sharing, since it doesn't work at all.
      
      * Check if element type is primitive on arm64
      
      * Not using SIMD register when it is full aot
      
      * Address review feedbacks
      6ad69486
    • R
      e8b95926
    • V
      [mono] Fix diamond pattern encountered with static virtual interface methods (#69738) · 834618ea
      Vlad Brezae 提交于
      * [mono][mini] Throw exception if we have conflicts with static virtual interface call
      
      Small refactoring to avoid duplicated code
      
      * [mono][interp] Throw exception if we have conflicts with static virtual interface call
      
      * [mono][mini] Fix method access check during ldftn
      
      From IL, it is possible to change the access modifier when overriding a method. In such case we need to check the accessibility of the IL method and not the one that we resolve from the constrained class.
      834618ea
    • J
      [Mono] Fix 4244 warnings. (#69236) · 5adac4ac
      Johan Lorensson 提交于
      * Fixes all 4244 warnings on Mono runtime x86/x64 Windows build,
      aligning with SDL requirements (#66154).
      
      There will be additional warnings in the cross compilers that needs
      to be fixed separately, but this should fix the major bulk of
      4244 warnings.
      
      All changes done in this PR are mitigating compiler issued data type
      truncation 4244 warnings:
      
      'conversion' conversion from 'type1' to 'type2', possible loss of data
      
      and PR will align to the same type as the compiler issued in the warning.
      
      PR introduce a new set of macros to cast between types following patter
      of existing GPOINTER_TO_INT, GPOINTER_TO_UINT, GTYPE1_TO_TYPE2.
      
      The idea of use these macros is that it will be clear where casts are done,
      and we will have ability to intercept and add validation logic in
      specialized builds to catch truncation errors. The PR also introduce
      the needed inline functions under ENABLE_CHECKED_CASTS that could be
      used for extended validation when using the macros. Failure actions
      in these inline functions are not currently fully implemented,
      since that will be different from case to case,
      but can be added when needed since all infrastructure is prepared.
      
      If it is possible to change types used in code to mitigate the warnings,
      that will be the initial strategy used by this PR, if that however would
      cause ripple effects through the source code (unfortunately quite common),
      we will fallback using the GTYPE1_TO_TYPE2 macros to clearly show the
      intent, keep trackability of the change as well as adding ability to do
      additional validation of casts in the future.
      5adac4ac
  2. 31 5月, 2022 18 次提交
  3. 30 5月, 2022 6 次提交