JinxRyu/ARMeilleure
FICTURE7 312be74861
Optimize HybridAllocator (#2637)
* 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
..
CodeGen Optimize HybridAllocator (#2637) 2021-09-29 01:38:37 +02:00
Common Reduce JIT GC allocations (#2515) 2021-08-17 15:08:34 -03:00
Decoders Implement MSR instruction for A32 (#2585) 2021-08-27 00:07:44 +02:00
Diagnostics Reduce JIT GC allocations (#2515) 2021-08-17 15:08:34 -03:00
Instructions Use normal memory store path for DC ZVA (#2693) 2021-09-29 01:21:30 +02:00
IntermediateRepresentation Optimize HybridAllocator (#2637) 2021-09-29 01:38:37 +02:00
Memory POWER - Performance Optimizations With Extensive Ramifications (#2286) 2021-05-24 22:52:44 +02:00
Signal Refactor PtcInfo (#2625) 2021-09-14 01:23:37 +02:00
State Implement a "Pause Emulation" option & hotkey (#2428) 2021-09-11 22:08:25 +02:00
Translation Use normal memory store path for DC ZVA (#2693) 2021-09-29 01:21:30 +02:00
Allocators.cs Reduce JIT GC allocations (#2515) 2021-08-17 15:08:34 -03:00
ARMeilleure.csproj infra: Migrate to .NET 5 (#1694) 2020-11-15 19:27:15 +01:00
Optimizations.cs Add multi-level function table (#2228) 2021-05-29 18:06:28 -03:00
Statistics.cs Suppress warnings from fields never used or never assigned (CS0169 and CS0649) (#919) 2020-04-21 07:59:59 +10:00