1
0
Fork 0
mirror of https://github.com/VSadov/Satori.git synced 2025-06-09 09:34:49 +09:00
Commit graph

134952 commits

Author SHA1 Message Date
Thorsten Reichert
7e273c6df6
Fix method numbering in Memory-model.md example code (#105168)
Comments are numbering ThreadFuncs as 1,2,3 while method names are ThreadFunc1, ThreadFunc1, ThreadFunc2.
2024-07-21 08:41:21 -07:00
SingleAccretion
a55a21f39f
Disable ExposedLocalsNumbering (#105194) 2024-07-21 15:40:36 +02:00
Jakob Botsch Nielsen
fcb9b1825c
JIT: Add an emitter peephole for post-indexed addressing (#105181)
This transforms sequences like
```asm
ldr x0, [x1]
add x1, x1, #8
```

into the equivalent
```asm
ldr x0, [x1], #8
```
2024-07-21 09:56:06 +02:00
Jan Kotas
894f22d768
Delete dead code related to intercept stubs (#105127) 2024-07-20 19:03:22 -07:00
Katelyn Gadd
06b011affb
[mono] Issue #103365 follow-up PR (#105006)
* Slightly reduce memory usage for classes without a variance search table (many of them)
* Make the variance search table for a given class larger, but remove the need to recursively search every table in the hierarchy
* Optimize out the additional interfaces list scan to compute the interface offset once we find a match in the variance table
2024-07-20 17:43:13 -07:00
Aleksey Kliger (λgeek)
27086b7125
[cdac] Begin adding MethodDesc APIs to the RuntimeTypeSystem contract (#104811)
This is largely a placeholder just to get the MethodDesc/MethodDescChunk infrastructure in place. To further fill out ValidateMethodDesc and to implement the GetMethodDescData DAC API, I also need to add an executable code manager contract for mapping between native code pointer values and methods. I'd like to do that as a separate PR.

Debugged WinDbg enough to verify that GetMethodDescData is implemented enough to extract the correct MethodTable pointer value from a MethodDesc.

* start GetMethodDescDataImpl

* add MethodDesc and MethodDescChunk

* checkpoint: MethodDesc validation

* update contract

* fix RuntimeTypeSystem unit tests

   mock the additional data and globals

* fix GetMethodDescChunkPointerMayThrow

* add data descriptor description to the contract

* Apply suggestions from code review

Co-authored-by: Elinor Fung <elfung@microsoft.com>

* MayThrow -> Throwing

* Slot is ushort not byte

* remove unused property

* add TargetPointer 32-/64-bit max constants

* use NewArrayHolder

* spelling

* add globals to RTS contract

* remove unused usings

* constexpr cdac_offsets, not const

* Apply suggestions from code review

Co-authored-by: Elinor Fung <elfung@microsoft.com>

* make GetNumVtableSlots private

---------

Co-authored-by: Elinor Fung <elfung@microsoft.com>
2024-07-20 19:02:39 -04:00
Linus Hamlin
b92fbf67be
Dedup methods in GregorianCalendarHelper (#105188) 2024-07-20 14:53:25 -07:00
xtqqczze
851779a236
Fix typo AgressiveInlining -> AggressiveInlining (#105184) 2024-07-20 17:30:38 -04:00
Sergio Pedri
7f6318495c
Enable building .dll if both 'CustomNativeMain' and 'NativeLib' are set (#103504)
* Build a .dll if 'CustomNativeMain' is set

* Switch on 'NativeLib' instead for .exe args

* Actually output a .dll if 'NativeLib' is set

---------

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
2024-07-20 14:02:24 -07:00
Adeel Mujahid
043ae8c50d
Fix clang19 build (#105141) 2024-07-20 09:53:40 -07:00
Stephen Toub
ef5664875a
Replace a few stackallocs with collection expressions (#105143)
* Replace a few stackallocs with collection expressions

* Update src/libraries/System.Text.Encodings.Web/src/System/Text/Encodings/Web/OptimizedInboxTextEncoder.Ascii.cs
2024-07-20 09:59:49 -04:00
Krzysztof Wicher
f26dbf0e4d
OpenSSL providers support (#104961)
* OpenSSL providers support

* Address self feedback (Lazy+leak)

* Attempt to fix EVP_PKEY_CTX_new_from_pkey errors

* update osslcompat_30.h with EVP_PKEY types

* properly ifdef extraHandle code

* fix: unused parameter extraHandle when OSSL 3 not available

* bugfixes, feedback

* ifndef some defines in compat layer, remove CryptoNative_EvpPkeyExtraHandleDestroy

* change style to match old RsaSignHash

* XML doc + extra test case

* remote OSSL_STORE_open usage and revert comment on the DuplicateKeyHandle

* Address feedback

* Add back HasNoPrivateKey check on OSSL ver LT 3

* move check to SignHash

* address feedback (ThrowIfNull + switch expression)

* update XML doc

* attempt to fix ossl 1.0.2 build by moving ifndef to opensslshim.h
2024-07-20 12:16:53 +02:00
Jakob Botsch Nielsen
af6315197a
JIT: Switch StaysWithinManagedObject to peel offsets from VNs (#105169)
The SCEV analysis does not care about the value of something once it is
seen to be invariant inside the loop we are currently analyzing. This
was problematic for this logic that tries to peel additions away from
offsets; for arm64, we may have hoisted `array + 0x10` outside the loop,
which would cause us to fail to get back to the base array.

Switch the reasoning to use VNs and peel the offsets from the VNs
instead.

No x64 diffs are expected as we do not hoist the `array + 0x10` out of
the loop there. Improvements expected on arm64 where we can now prove
that a "full" strength reduction is allowable more often.
2024-07-20 12:11:58 +02:00
Kunal Pathak
922c2d8b9e
NativeAOT/win/arm64: Fix the reloc type typo (#104516)
* Fix the reloc type typo

* do not track tls_index reference

* Update guid so the new collection contains correct reloc data

* fix the code for Add

* remove old code and add comment

* jit format

* Add Arm64 target in reproNative.vcxproj

* jit format

* review feedback

* jit format
2024-07-19 18:17:44 -07:00
Jeremy Koritzinsky
2f0920ce69
For transition profiler callbacks, always load the thread (#105104) 2024-07-19 16:37:25 -07:00
Kunal Pathak
67bb10fc3c
Disable AVX for Sve leg (#105113)
* Disable AVX for Sve leg

* REVERT: Dummy change

* wrap in quotes

* Revert "REVERT: Dummy change"

This reverts commit 3d3df5a3744ab71df8d4983ccfc1da469590e056.
2024-07-19 14:31:22 -07:00
Šimon Rozsíval
110b5f24dc
[Android] Resolve Android-specific active issues in System.Net.Security and System.Security.Cryptography (#104352)
* Enable ServerAsyncAuthenticate_MismatchProtocols_Fails

* Enable subset of CertificateSelectionCallback_DelayedCertificate_OK

* Enable SslStream_StreamToStream_Alpn_NonMatchingProtocols_Fail and do not assume android backend supports ALPN

* Enable ConnectWithRevocation_WithCallback and pass full chain to ServerCertificateContext

* Enable or permanently disable tests in SslStreamNetworkStreamTest

* Adjust host name data for Android in SslStreamSniTest

* Fix expected outcome of TransportContext_ConnectToServerWithSsl_GetExpectedChannelBindings for Android

* Fix ChainTests active issue on Android

* Fix failing test

* TMP: Print full exception stacktrace

* Adjust expected exception for server authentication protocol mismatch

* Revert "TMP: Print full exception stacktrace"

This reverts commit 1be0a16c75b53f6873163b1efa5b12021cfb5350.

* Adjust the expected exceptions for arm and x86/x64

* Fix assert

* Address review comments
2024-07-19 22:41:51 +02:00
Sergio Pedri
5ee8f4ad77
Intrinsify typeof(T).GetGenericTypeDefinition() (#103528)
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
2024-07-19 22:40:01 +02:00
Jakob Botsch Nielsen
767e416564
JIT: Transform multi-reg args to FIELD_LIST in physical promotion (#104370)
This allows promoted fields to stay in registers when they are passed as
multi-reg arguments.

Example linux-x64 diff with `DOTNET_JitStressModeNames=STRESS_NO_OLD_PROMOTION`:

```csharp
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void Test(int[] arr)
{
    Foo(arr);
}
```

Base:
```asm
; Assembly listing for method Program:Test(int[]) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; invoked as altjit
; Final local variable assignments
;
;  V00 arg0         [V00,T01] (  5,  4   )     ref  ->  rdi         class-hnd single-def <int[]>
;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1         [V02    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] "spilled call-like call argument" <System.Span`1[int]>
;  V03 tmp2         [V03,T00] (  4,  8   )  struct (16) [rbp-0x20]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
;  V04 tmp3         [V04,T02] (  3,  1.50)   byref  ->  rbx         "V03.[000..008)"
;  V05 tmp4         [V05,T03] (  3,  1.50)     int  ->  r15         "V03.[008..012)"
;
; Lcl frame size = 16

G_M55702_IG01:  ;; offset=0x0000
       push     rbp
       push     r15
       push     rbx
       sub      rsp, 16
       lea      rbp, [rsp+0x20]
       xor      eax, eax
       mov      qword ptr [rbp-0x20], rax
						;; size=19 bbWeight=1 PerfScore 5.00
G_M55702_IG02:  ;; offset=0x0013
       test     rdi, rdi
       je       SHORT G_M55702_IG06
						;; size=5 bbWeight=1 PerfScore 1.25
G_M55702_IG03:  ;; offset=0x0018
       lea      rbx, bword ptr [rdi+0x10]
       mov      r15d, dword ptr [rdi+0x08]
						;; size=8 bbWeight=0.50 PerfScore 1.25
G_M55702_IG04:  ;; offset=0x0020
       mov      bword ptr [rbp-0x20], rbx
       mov      dword ptr [rbp-0x18], r15d
       mov      rdi, bword ptr [rbp-0x20]
       mov      rsi, qword ptr [rbp-0x18]
       mov      rax, 0x7FF97F8FC648      ; code for Program:Foo(System.Span`1[int])
       call     [rax]Program:Foo(System.Span`1[int])
       nop      
						;; size=29 bbWeight=1 PerfScore 7.50
G_M55702_IG05:  ;; offset=0x003D
       add      rsp, 16
       pop      rbx
       pop      r15
       pop      rbp
       ret      
						;; size=9 bbWeight=1 PerfScore 2.75
G_M55702_IG06:  ;; offset=0x0046
       xor      rbx, rbx
       xor      r15d, r15d
       jmp      SHORT G_M55702_IG04
						;; size=7 bbWeight=0 PerfScore 0.00

; Total bytes of code 77, prolog size 19, PerfScore 17.75, instruction count 26, allocated bytes for code 77 (MethodHash=340b2669) for method Program:Test(int[]) (FullOpts)
; ============================================================
```

Diff:
```asm
; Assembly listing for method Program:Test(int[]) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 1 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; invoked as altjit
; Final local variable assignments
;
;  V00 arg0         [V00,T00] (  5,  4   )     ref  ->  rdi         class-hnd single-def <int[]>
;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1         [V02    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] "spilled call-like call argument" <System.Span`1[int]>
;* V03 tmp2         [V03    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
;  V04 tmp3         [V04,T01] (  3,  1.50)   byref  ->  rax         "V03.[000..008)"
;  V05 tmp4         [V05,T02] (  3,  1.50)     int  ->  rsi         "V03.[008..012)"
;
; Lcl frame size = 0

G_M55702_IG01:  ;; offset=0x0000
       push     rbp
       mov      rbp, rsp
						;; size=4 bbWeight=1 PerfScore 1.25
G_M55702_IG02:  ;; offset=0x0004
       test     rdi, rdi
       je       SHORT G_M55702_IG06
						;; size=5 bbWeight=1 PerfScore 1.25
G_M55702_IG03:  ;; offset=0x0009
       lea      rax, bword ptr [rdi+0x10]
       mov      esi, dword ptr [rdi+0x08]
						;; size=7 bbWeight=0.50 PerfScore 1.25
G_M55702_IG04:  ;; offset=0x0010
       mov      rdi, rax
       mov      rax, 0x7FF97F91C648      ; code for Program:Foo(System.Span`1[int])
       call     [rax]Program:Foo(System.Span`1[int])
       nop      
						;; size=16 bbWeight=1 PerfScore 3.75
G_M55702_IG05:  ;; offset=0x0020
       pop      rbp
       ret      
						;; size=2 bbWeight=1 PerfScore 1.50
G_M55702_IG06:  ;; offset=0x0022
       xor      rax, rax
       xor      esi, esi
       jmp      SHORT G_M55702_IG04
						;; size=6 bbWeight=0 PerfScore 0.00

; Total bytes of code 40, prolog size 4, PerfScore 9.00, instruction count 15, allocated bytes for code 40 (MethodHash=340b2669) for method Program:Test(int[]) (FullOpts)
; ============================================================
```

Diffs aren't super large with old promotion enabled because most structs that
are candidates to be multi-register arguments are handled just fine by old
promotion. However, this moves us closer to being able to remove old promotion.
2024-07-19 22:04:37 +02:00
Tanner Gooding
e0ecd1f9f9
Improve the handling of SIMD comparisons (#104944)
* Ensure that we can constant fold op_Equality and op_Inequality for SIMD

* Optimize comparisons against AllBitsSet on pre-AVX512 hardware
2024-07-19 11:55:27 -07:00
Jakob Botsch Nielsen
39968e7c6b
JIT: Enable strength reduction by default (#105131) 2024-07-19 20:43:19 +02:00
Elinor Fung
37253e00c3
[cdac] Implement ISOSDacInterface::GetUsefulGlobals (#105106)
Add the Exception, Object, Array of Object, and String method tables to the data descriptor and use them to implement ISOSDacInterface::GetUsefulGlobals in the cDAC.

Contracts are unaffected - this is just exposing those globals via the DAC API.
2024-07-19 11:07:12 -07:00
Aaron Robinson
d461cdb401
Convert GetMethodFromStackTrace to QCall (#105103)
* Convert GetMethodFromStackTrace to QCall
2024-07-19 11:02:57 -07:00
SingleAccretion
31bc167803
Fix the ExposedLocalsNumbering test (#105037)
* Fix the ExposedLocalsNumbering test

The test had a stack corrupting race condition:

1) Main thread returns from "Main".
2) Main thread calls some runtime code on the stack of former "Main".
3) Mutator thread writes to the "safeIndex" variable, which is now
   part of that runtime's code stack.
4) Things crash.

Fix by 'parking' the mutated index in some dynamic memory instead.

* issues.targets de-exclusion
2024-07-19 10:26:05 -07:00
Ahmet Ibrahim Aksoy
8cc102f34f
Enable QUIC & HTTP/3 tests for ARM (#105109)
* Enable QUIC & HTTP/3 tests for ARM

* Change msquic schannel version
2024-07-19 19:02:12 +02:00
Michael Sharp
d74d22f3b2
Fixes from API review approvals (#104990)
* fixes from API review approvals

* API review 2 merged
2024-07-19 10:49:08 -06:00
Stephen Toub
41e02e5549
Remove class constraint from Interlocked.{Compare}Exchange (#104558)
* Remove class constraint from Interlocked.{Compare}Exchange

Today `Interlocked.CompareExchange<T>` and `Interlocked.Exchange<T>` support only reference type `T`s. Now that we have corresponding {Compare}Exchange methods that support types of size 1, 2, 4, and 8, we can remove the constraint and support any `T` that's either a reference type, a primitive type, or an enum type, making the generic overload more useful and avoiding consumers needing to choose less-than-ideal types just because of the need for atomicity with Interlocked.{Compare}Exchange.

---------

Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
2024-07-19 12:44:27 -04:00
Sven Boemer
6aa28625e3
Address feedback on DiagnosticId changes (#105096)
See feedback in https://github.com/dotnet/runtime/pull/105049
2024-07-19 09:33:34 -07:00
Stephen Toub
6068519289
Apply IDE0300 to corelib (use collection expressions instead of new[]) (#105122) 2024-07-19 11:42:59 -04:00
Tanner Gooding
72f9ee0d26
Expose the Sin, Cos, and SinCos methods on the Vector types (#104848)
* Allow using a more efficient algorithm if twice the vector size is accelerated

* Remove an unnecessary generic parameter from ExpDouble

* Expose the Sin, Cos, and SinCos methods on the Vector types

* Use the vector Sin, Cos, and SinCos methods where possible

* Adding tests covering the vector Sin, Cos, and SinCos APIs

* Fix some small bugs in the Sin, Cos, and SinCos impls

* Ensure that very large inputs are handled

* Ensure region is correctly adjusted when determining the sign of sin

* Ensure that TernaryLogic lowering accounts for AND_NOT since it is not commutative

* Don't vectorize too large SinPi or CosPi inputs for TensorPrimitives

* Don't accelerate SinCosPi for the time being

* Don't accelerate TensorPrimitives.SinCos for the time being

* Don't include JIT changes, they were extracted to their own PR
2024-07-19 07:45:11 -07:00
Elinor Fung
5fd965d7bf
[cdac] Implement GetObjectStringData (#105061)
- Include `String` and `Object` in data descriptor
- Start an `Object` contract for getting information about known managed objects
- Make cDAC implement `ISOSDacInterface::GetObjectStringData`
2024-07-19 06:25:47 -07:00
Egor Bogatov
f8bcd05a73
Expand unboxing for Nullable<> in JIT (#105073) 2024-07-19 14:20:40 +02:00
Meri Khamoyan
b9e842a656
[iOS][non-icu] Clean up ICU related files from runtime pack (#104443)
Clean up ICU related files
2024-07-19 14:12:57 +02:00
Roman Konecny
9c220c4c3d
Move telemetry out of lock scope (#105140) 2024-07-19 13:29:50 +02:00
Milos Kotlar
3648b5639a
Add support for SwiftSelf<T> in Mono JIT and Interpreter (#104171)
This PR adds Mono support for SwiftSelf<T> in the Swift calling convention. This type enables the correct passing of frozen value types in instance methods in Swift.
2024-07-19 11:07:01 +02:00
Šimon Rozsíval
a3fd095723
[Android] Improve SslStream PAL buffer resizing (#104726)
* Update PAL sslstream on Android to adjust buffer sizes based on Wrap results

* Add test

* Remove extra test

* Use direct buffers
2024-07-19 10:32:54 +02:00
Jakob Botsch Nielsen
823cd67a11
JIT: Improve and fix StaysWithinManagedObject (#105108)
- For string accesses we also produce `ARR_ADDR`, so we must take care
  to use `GenTreeArrAddr::GetFirstElemOffset` instead of hardcoding
  `OFFSETOF__CORINFO_Array__data`
- There are cases where VN is fully able to prove that bound <
  ARR_LENGTH(vn), specifically when the array is stored in a static
  readonly field. In those cases everything reduces to constants, so
  allow VN to try to prove it but fall back to our manual logic
  otherwise.
- Rephrase the fallback as a VN test as well. In a standard `for (;i <
  arr.Length;)` loop we have a bound on the backedge of the shape
  `ARR_LENGTH(array) - 1`. The previous strategy was to syntactically
  check if the LHS was such an array length on the same array as the
  base of the add recurrence.

  Instead of doing that, we can ask more generally for any shape `x - c`
  whether we know that `x <= ARR_LENGTH(array)`. In the usual case of `x
  == ARR_LENGTH(array)` this is trivially true and VN knows that.
  However, there are other cases where this is provable by RBO due to a
  dominating compare; particularly loop cloning introduces these
  dominating compares when cloning loops of the shape `for (; i < n;)`.
  This fixes #105087.
2024-07-19 09:51:25 +02:00
Jakob Botsch Nielsen
ae4bffa85f
JIT: Add a phase to remove unused primary IVs (#105107)
This adds a new optimization in the IV opts phase that removes unused
primary IVs from loops. Liveness is unable to remove IVs since they are
self-referential, and strength reduction can sometimes leave old IVs
unused (normally they would get removed by the downwards loop
optimization, but only if the old primary IV was used in a loop test).

Removes code in the downwards loop optimization to remove statements;
this will be handled by this new phase.

Also factors IV widening into its own function.
2024-07-19 09:51:05 +02:00
Jan Kotas
57a2712a4d
Revert "Replace a few stackallocs with collection expressions (#105121)" (#105128)
This reverts commit 87cd8935bc.
2024-07-18 22:41:00 -07:00
Stephen Toub
87cd8935bc
Replace a few stackallocs with collection expressions (#105121) 2024-07-18 20:06:36 -06:00
Natalia Kondratyeva
9dbd1511cd
HttpClientFactory Keyed DI APIs (#104943)
* HttpClientFactory Keyed DI APIs (WIP)

* add tests

* Optimize opt-out tracking

* Rename APIs, add tests, fix Handler lifetime

* Add workaround for empty name HttpClient fallback
2024-07-19 00:59:52 +02:00
Mikel Blanchard
d9268eed3e
[System.Diagnostics.DiagnosticSource] Tracing out of proc sampling (#104134)
* WIP to implement out-of-proc sampling spec for tracing.

* Clean up.

* Adjust sampling precedence rules.

* Code review and refactor.

* Drop support for specifying wild card activity source with specific activity name. Improve internal logging.

* Remove unsupported scenario from code comments.

* Discard additional rules once a match has been established.

* Refactor away DiagnosticSourceEventSourceListener class.

* Code review.

* Revert partial addition.

* Skip lookup using activity name if no rules were defined.

* Remove static coupling.

* Cleanup.

* Fix up trim warnings.
2024-07-18 15:47:03 -07:00
Elinor Fung
d123560a23
Enable embedding install location options in apphost (#104749)
- Add placeholder value in `apphost` for .NET install search options. Format:
  - `<search_location_flags> /0 <app_relative_dotnet_path>`
- Make `apphost` conditionally look at app-local, app-relative, environment variables, and global locations based on configured behaviour
  - Default (placeholder not changed) is to look at app-local, environment variables, and global locations.
- Update error and tracing messages to include information about any configured search options
- Allow specifying search options in `HostWriter.CreateAppHost`
- Add unit/integration tests

Part of https://github.com/dotnet/designs/blob/main/proposed/apphost-embed-install-location.md.
There still needs to be a corresponding change on the SDK side to allow configuration via `AppHostDotNetSearch` and `AppHostRelativeDotNet` properties.
2024-07-18 15:17:35 -07:00
Tanner Gooding
f1d8613008
Resolve some issues impacting the jitstress-isas-x86 runs (#104935)
* Ensure that TernaryLogic lowering accounts for AND_NOT since it is not commutative

* Ensure we create a valid node when DOTNET_EnableSSE2=0 is set

* Apply formatting patch
2024-07-18 15:05:20 -07:00
Aman Khalid
c70791346c
JIT: Skip moving BBJ_COND jump target if fallthrough target is equally likely (#105084) 2024-07-18 17:51:04 -04:00
Eric StJohn
7cdd2e90db
Don't throw when deserializing SettingsPropertyValue that's not byte[] (#105057) 2024-07-18 13:06:10 -07:00
Andy Ayers
2d171053aa
JIT: Fix LowerHWIntrinsicGetElement for xarch (#104987)
Ensure we don't reorder evaluation and change exceptional behavior.

Closes #89565.

Co-authored-by: Jakob Botsch Nielsen <Jakob.botsch.nielsen@gmail.com>
2024-07-18 11:56:53 -07:00
Jakob Botsch Nielsen
c95095e5e2
JIT: Skip strength reductions that are just widenings (#105075)
The previous equality check does not catch the case where the SCEV is
just a widened version of the previous primary IV. We want to leave that
handling up to IV widening.
2024-07-18 20:39:09 +02:00
Kevin Jones
c7f5b711ed
Fix incremental builds by modifying timestamps of unchanged outputs in AsnXml. 2024-07-18 14:29:32 -04:00
Matous Kozak
833fbb8dba
[mono][swift-interop] Support for Swift struct lowering in callback returns (#104949)
* Enable full SwiftCallbackAbiStress tests
* [arm64] Swift struct lowering in callback returns
* [amd64] Swift struct lowering in callback returns
* [x64] refactor return buffer save condition
2024-07-18 20:27:37 +02:00