Allocating and freeing slots can be contended, getting and setting a slot value is fast but has an additional indirection compared with OS TLS. Used only for windows editor for now, because it's a bit slower than OS TLS implementation.
#rb dmytro.vovk, francis.hurteau
[CL 27827939 by andriy tylychko in ue5-main branch]
-OpenVR has been essentially replaced by OpenXR at this point and this third party source is no longer in use.
#review-27792355
#rb Jules.Blok
[CL 27794345 by Jeff Fisher in ue5-main branch]
- Catch2 built for LinuxArm64
- new option to run apps in containerized mode
- builds docker image, setup and cleanup
- StringOp BuildGraph element for string operations (replace, to lower etc)
#jira UE-193565
#rb ue-qa-sdets
[CL 27758925 by chris constantinescu in ue5-main branch]
- Messages saying "XXX failed to compile" from RunUAT.bat/RunUBT.bat are now grouped with regular compile erorrs, and hidden if more contextual messages are available.
- Summary saying "N warning(s)" and "N error(s)" are hidden by default.
[CL 27642876 by Ben Marsh in ue5-main branch]
VerseCLR can now compile verse code with maps, and iterations over maps, to the new VM.
Fix unrelated bug triggered by nested for-iterations over arrays, returning an array of arrays.
#rb Saam.Barati
#rnx
[CL 27582449 by niklas rojemo in ue5-main branch]
This creates separate arenas for different types of content, improving read performance due to header data being discarded, and also allows cache instances to be globally configured and injected via DI.
[CL 27528676 by Ben Marsh in ue5-main branch]
#rb markus.breyer
This patch makes it so calls with multiple arguments don't require a tuple allocation. We just allow functions to have multiple arguments and be called normally. However, when such functions are invoked with a tuple, we'll unbox the tuple into the argument slots.
We also allow functions with single-param-as-tuple to be invoked with multiple arguments. And such functions will box the arguments into a tuple when being called.
A function with N arguments now take up the first N register slots in the frame.
This patch also fills out some more of the bytecode generator to make some tests I wrote work.
[CL 27510491 by saam barati in ue5-main branch]
- Expected to bring more icache-friendly code placement, especially for large binaries (https://reviews.llvm.org/D113424)
- Reportedly not default in lld because some synthetic benchmarks were regressed.
- Suggested by Neil.Henning
#rb NeilH (suggested)
[CL 27450033 by arciel rekman in ue5-main branch]
This switch makes the compiler extend lifetimes of local variables, function parameters and 'this' till the end of their scopes increasing the chance for the debugger being able to display their values when debugging.
It may slightly reduce performance so it's an opt-in feature controlled with bOptimizeForDebugging variable in xPlatform sections on supported platforms in BuildConfiguration.xml scripts. Even when set to true, it won't affect Test or Shipping builds.
#rb brian.white
#jira UE-121644
[RN] minor Added support for -fextend-lifetimes compilation switch on selected Clang-based platforms which improves debugging experience of optimized builds by increasing the number of local variables for which the debugger can show values. The feature may slightly reduce performance and is intended to be used in development only. It has to be explicitly activated by setting bOptimizeForDebugging variable in <platform>Platform section of BuildConfiguration.xml. It won't affect Test or Shipping configurations.
[CL 27428905 by wojciech krywult in ue5-main branch]