luau/CodeGen/src
vegorov-rbx 4b267aa5c5
Sync to upstream/release/574 (#910)
* Added a limit on how many instructions the Compiler can safely produce
(reported by @TheGreatSageEqualToHeaven)

C++ API Changes:
* With work started on read-only and write-only properties,
`Property::type` member variable has been replaced with `TypeId type()`
and `setType(TypeId)` functions.
* New `LazyType` unwrap callback now has a `void` return type, all
that's required from the callback is to write into `unwrapped` field.

In our work on the new type solver, the following issues were fixed:

* Work has started to support https://github.com/Roblox/luau/pull/77 and
https://github.com/Roblox/luau/pull/79
* Refinements are no longer applied on l-values, removing some
false-positive errors
* Improved overload resolution against expected result type
* `Frontend::prepareModuleScope` now works in the new solver
* Cofinite strings are now comparable

And these are the changes in native code generation (JIT):

* Fixed MIN_NUM and MAX_NUM constant fold when one of the arguments is
NaN
* Added constant folding for number conversions and bit operations
* Value spilling and rematerialization is now supported on arm64
* Improved FASTCALL2K IR generation to support second argument constant
* Added value numbering and load/store propagation optimizations
* Added STORE_VECTOR on arm64, completing the IR lowering on this target
2023-04-28 12:55:13 -07:00
..
AssemblyBuilderA64.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
AssemblyBuilderX64.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
BitUtils.h Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
ByteUtils.h Sync to upstream/release/550 (#723) 2022-10-21 10:54:01 -07:00
CodeAllocator.cpp Sync to upstream/release/568 (#865) 2023-03-17 12:20:37 -07:00
CodeBlockUnwind.cpp Sync to upstream/release/572 (#899) 2023-04-14 11:06:22 -07:00
CodeGen.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
CodeGenA64.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
CodeGenA64.h Sync to upstream/release/572 (#899) 2023-04-14 11:06:22 -07:00
CodeGenUtils.cpp Sync to upstream/release/573 (#903) 2023-04-21 15:14:26 -07:00
CodeGenUtils.h Sync to upstream/release/573 (#903) 2023-04-21 15:14:26 -07:00
CodeGenX64.cpp Sync to upstream/release/572 (#899) 2023-04-14 11:06:22 -07:00
CodeGenX64.h Sync to upstream/release/572 (#899) 2023-04-14 11:06:22 -07:00
CustomExecUtils.h Sync to upstream/release/550 (#723) 2022-10-21 10:54:01 -07:00
EmitBuiltinsX64.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
EmitBuiltinsX64.h Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
EmitCommon.h Sync to upstream/release/572 (#899) 2023-04-14 11:06:22 -07:00
EmitCommonA64.h Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
EmitCommonX64.cpp Sync to upstream/release/572 (#899) 2023-04-14 11:06:22 -07:00
EmitCommonX64.h Sync to upstream/release/572 (#899) 2023-04-14 11:06:22 -07:00
EmitInstructionX64.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
EmitInstructionX64.h Sync to upstream/release/572 (#899) 2023-04-14 11:06:22 -07:00
Fallbacks.cpp Sync to upstream/release/572 (#899) 2023-04-14 11:06:22 -07:00
Fallbacks.h Sync to upstream/release/572 (#899) 2023-04-14 11:06:22 -07:00
FallbacksProlog.h Sync to upstream/release/546 (#681) 2022-09-23 12:17:25 -07:00
IrAnalysis.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
IrBuilder.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
IrCallWrapperX64.cpp Sync to upstream/release/572 (#899) 2023-04-14 11:06:22 -07:00
IrDump.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
IrLoweringA64.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
IrLoweringA64.h Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
IrLoweringX64.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
IrLoweringX64.h Sync to upstream/release/573 (#903) 2023-04-21 15:14:26 -07:00
IrRegAllocA64.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
IrRegAllocA64.h Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
IrRegAllocX64.cpp Sync to upstream/release/573 (#903) 2023-04-21 15:14:26 -07:00
IrTranslateBuiltins.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
IrTranslateBuiltins.h Sync to upstream/release/565 (#845) 2023-02-24 13:49:38 -08:00
IrTranslation.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
IrTranslation.h Sync to upstream/release/571 (#895) 2023-04-07 14:01:29 -07:00
IrUtils.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
IrValueLocationTracking.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
IrValueLocationTracking.h Sync to upstream/release/573 (#903) 2023-04-21 15:14:26 -07:00
NativeState.cpp Sync to upstream/release/572 (#899) 2023-04-14 11:06:22 -07:00
NativeState.h Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
OptimizeConstProp.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
OptimizeFinalX64.cpp Sync to upstream/release/574 (#910) 2023-04-28 12:55:13 -07:00
UnwindBuilderDwarf2.cpp Sync to upstream/release/573 (#903) 2023-04-21 15:14:26 -07:00
UnwindBuilderWin.cpp Sync to upstream/release/572 (#899) 2023-04-14 11:06:22 -07:00