Replace LinkedList by IntrusiveList to avoid allocations on JIT (#931)

* Replace LinkedList by IntrusiveList to avoid allocations on JIT

* Fix wrong replacements
This commit is contained in:
gdkchan
2020-02-17 18:30:54 -03:00
committed by GitHub
parent e9a37ca6a8
commit e5f78fb1d4
18 changed files with 365 additions and 198 deletions

View File

@ -9,13 +9,13 @@ namespace ARMeilleure.Translation
{
public static void Deconstruct(ControlFlowGraph cfg)
{
foreach (BasicBlock block in cfg.Blocks)
for (BasicBlock block = cfg.Blocks.First; block != null; block = block.ListNext)
{
LinkedListNode<Node> node = block.Operations.First;
Node node = block.Operations.First;
while (node?.Value is PhiNode phi)
while (node is PhiNode phi)
{
LinkedListNode<Node> nextNode = node.Next;
Node nextNode = node.ListNext;
Operand local = Local(phi.Destination.Type);