-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Factored out value instruction interface * Hammering call instructions * Added operands sequence to instructions * Create Stackifier.cs * Update CilCodegen.cs * Update Stackifier.cs * Almost working stackifier * Update CilCodegen.cs * Update CilCodegen.cs * Eliminated most of symbol ref * YEET * Update CilCodegen.cs * YES * MUHAHAHA * YES, YES! * One less faulty file * Update CilCodegen.cs * WE COMPILE * Update CilCodegen.cs * Lots of fixes * Fix * Update CilCodegen.cs * Update MetadataCodegen.cs * Update FunctionBodyCodegen.cs * No less errors, but no crash * Update CilCodegen.cs * Split out static fields * Killed static field logic * Added AddressOf * Addresses work * Update CilCodegen.cs * Update CilCodegen.cs * Update CilCodegen.cs * Update MetadataStaticFieldSymbol.cs * Merge pull request #330 from Draco-lang/rip-and-tear Cleanup before stackification * Added tree instruction * Update TreeInstruction.cs * Update TreeInstruction.cs * Fixes in tree instr * Update Stackifier.cs * Really basic stackification * Nicer print * Update CilCodegen.cs * Update CilCodegen.cs * Stackification works * Removed unused regs * Update CilCodegen.cs * Update CilCodegen.cs * Cleanup * Update FunctionBodyCodegen.cs * Lowered unary and binary nodes * Fix * Cleanup * Update FunctionBodyCodegen.cs * Simplification * Update FunctionBodyCodegen.cs
- Loading branch information
1 parent
2e0da4a
commit faf4445
Showing
69 changed files
with
1,002 additions
and
679 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,10 @@ | ||
using Draco.Compiler.Internal.OptimizingIr.Model; | ||
using Draco.Compiler.Internal.Symbols; | ||
|
||
namespace Draco.Compiler.Internal.Codegen; | ||
|
||
/// <summary> | ||
/// Some method-local variable allocation. | ||
/// </summary> | ||
/// <param name="Operand">The corresponding IR operand.</param> | ||
/// <param name="Symbol">The corresponding local symbol.</param> | ||
/// <param name="Index">The index of the local within the method.</param> | ||
internal readonly record struct AllocatedLocal( | ||
IOperand Operand, | ||
int Index) | ||
{ | ||
/// <summary> | ||
/// The symbol associated with this local, if any. | ||
/// </summary> | ||
public LocalSymbol? Symbol => this.Operand is Local local ? local.Symbol : null; | ||
} | ||
internal readonly record struct AllocatedLocal(LocalSymbol Symbol, int Index); |
Oops, something went wrong.