3
5
Fork 13
mirror of https://github.com/Ryujinx/Ryujinx.git synced 2025-03-03 04:52:25 +00:00
Ryujinx/ARMeilleure/CodeGen
FICTURE7 312be74861
Optimize HybridAllocator ()
* Store constant `Operand`s in the `LocalInfo`

Since the spill slot and register assigned is fixed, we can just store
the `Operand` reference in the `LocalInfo` struct. This allows skipping
hitting the intern-table for a look up.

* Skip `Uses`/`Assignments` management

Since the `HybridAllocator` is the last pass and we do not care about
uses/assignments we can skip managing that when setting destinations or
sources.

* Make `GetLocalInfo` inlineable

Also fix a possible issue where with numbered locals. See or-assignment
operator in `SetVisited(local)` before patch.

* Do not run `BlockPlacement` in LCQ

With the host mapped memory manager, there is a lot less cold code to
split from hot code. So disabling this in LCQ gives some extra
throughput - where we need it.

* Address Mou-Ikkai's feedback

* Apply suggestions from code review

Co-authored-by: VocalFan <45863583+Mou-Ikkai@users.noreply.github.com>

* Move check to an assert

Co-authored-by: VocalFan <45863583+Mou-Ikkai@users.noreply.github.com>
2021-09-29 01:38:37 +02:00
..
Linking Refactor PtcInfo () 2021-09-14 01:23:37 +02:00
Optimizations Fix type mismatch in BitwiseAnd simplification () 2021-08-20 14:42:00 -03:00
RegisterAllocators Optimize HybridAllocator () 2021-09-29 01:38:37 +02:00
Unwinding PPTC Follow-up. () 2020-12-17 20:32:09 +01:00
X86 Optimize HybridAllocator () 2021-09-29 01:38:37 +02:00
CompiledFunction.cs Refactor PtcInfo () 2021-09-14 01:23:37 +02:00