Permalink
Browse files

Resolving conflicts

  • Loading branch information...
robot9706 committed Sep 12, 2017
1 parent 848ed5e commit 1d9ff2e517d7b850d80750529c9c3cb20f1d109e
Showing 448 changed files with 7,503 additions and 6,571 deletions.
View
@@ -37,6 +37,7 @@ build.force
/tmp
/tags
/.vs/
.vs/
/Tests/BootImage/
# NuGet Packages
@@ -32,7 +32,7 @@ shape = "record"
];
"TypeDefinition" [
label = "<f0>Type Definition|<f1>Pointer to Type Name|<f2>~Pointer to Custom Attributes|<f3>Type Code & Attributes|<f4>Type Size|<f5>Pointer to Assembly|<f6>~Pointer to Parent Type|<f7>~Pointer to Declaring Type|<f8>~Pointer to Element Type|<f9>~Pointer to Default Constructor Method|<f10>~Pointer to Properties Table|<f11>~Pointer to Fields Table|<f12>~Pointer to Interface Slot Table|<f13>~Pointer to Interface Bitmap|<f14>~Number of Methods|<f15>~Pointer to Method Definition 1|...|Pointer to Method Definition N"
label = "<f0>Type Definition|<f1>Pointer to Type Name|<f2>~Pointer to Custom Attributes|<f3>Type Code & Attributes|<f4>Type Size|<f5>Pointer to Assembly|<f6>~Pointer to Parent Type|<f7>~Pointer to Declaring Type|<f8>~Pointer to Element Type|<f9>~Pointer to Default Constructor Method|<f10>~Pointer to Properties Table|<f11>~Pointer to Fields Table|<f12>~Pointer to Interface Slot Table|<f13>~Pointer to Interface Bitmap|<f14>~Number of Methods|<f15>Pointer to Method 1|...|Pointer to Method N|<f16>~Pointer to Method Definition 1|...|Pointer to Method Definition N"
shape = "record"
color = "blue"
];
@@ -194,7 +194,7 @@ id = 0
id = 0
];
"TypeDefinition":f15 -> "MethodDefinition":f0 [
"TypeDefinition":f16 -> "MethodDefinition":f0 [
id = 0
color = "green"
];
View
Binary file not shown.

Large diffs are not rendered by default.

Oops, something went wrong.
View
@@ -113,5 +113,6 @@
<Rule Id="RCS1184" Action="Warning" />
<Rule Id="RCS1185" Action="Warning" />
<Rule Id="RCS1198" Action="Warning" />
<Rule Id="RCS1202" Action="None" />
</Rules>
</RuleSet>
@@ -16,6 +16,6 @@
<tags>MOSA Compiler corlib</tags>
</metadata>
<files>
<file src="..\..\bin\mscorlib.dll" target="lib" />
<file src="..\..\bin\mscorlib.dll" target="lib\net45" />
</files>
</package>
@@ -16,6 +16,6 @@
<tags>MOSA Compiler</tags>
</metadata>
<files>
<file src="..\..\bin\Mosa.ClassLib.dll" target="lib" />
<file src="..\..\bin\Mosa.ClassLib.dll" target="lib\net45" />
</files>
</package>
@@ -19,14 +19,22 @@ public static string ToString2(this BitArray bitArray)
return sb.ToString();
}
/// <summary>
/// Ares the same.
/// </summary>
/// <param name="array1">The array1.</param>
/// <param name="array2">The array2.</param>
/// <returns></returns>
public static bool AreSame(this BitArray array1, BitArray array2)
{
if (array1.Length != array2.Length)
return false;
for (int i = 0; i < array1.Length; i++)
{
if (array1[i] != array2[i])
return false;
}
return true;
}
@@ -4,6 +4,10 @@
namespace Mosa.Compiler.Common
{
/// <summary>
/// Invalid Compiler Exception
/// </summary>
/// <seealso cref="Mosa.Compiler.Common.CompilerException" />
[Serializable]
public class InvalidCompilerException : CompilerException
{
@@ -7,54 +7,54 @@ namespace Mosa.Compiler.Framework.Analysis
/// <summary>
/// A dominance provider allows other compilation stages to retrieve dominance relationships.
/// </summary>
public interface IDominanceAnalysis
public abstract class BaseDominanceAnalysis
{
/// <summary>
/// Calculates dominance for the specified basic blocks.
/// </summary>
/// <param name="basicBlocks">The basic blocks.</param>
/// <param name="entryBlock">The entry block.</param>
void PerformAnalysis(BasicBlocks basicBlocks, BasicBlock entryBlock);
public abstract void PerformAnalysis(BasicBlocks basicBlocks, BasicBlock entryBlock);
/// <summary>
/// Retrieves the immediate dominator of a block.
/// </summary>
/// <param name="block">The block to retrieve the immediate dominator for.</param>
/// <returns>The immediate dominator of the block.</returns>
BasicBlock GetImmediateDominator(BasicBlock block);
public abstract BasicBlock GetImmediateDominator(BasicBlock block);
/// <summary>
/// Retrieves the dominators of the given block.
/// </summary>
/// <param name="block">The block to retrieve dominators for.</param>
/// <returns>An array of dominators of a block. The first element (at index zero) is the block itself.</returns>
List<BasicBlock> GetDominators(BasicBlock block);
public abstract List<BasicBlock> GetDominators(BasicBlock block);
/// <summary>
/// Retrieves the blocks which are in the dominance frontier of any other block.
/// </summary>
/// <returns>All blocks which are in a dominance frontier of another block.</returns>
List<BasicBlock> GetDominanceFrontier();
public abstract List<BasicBlock> GetDominanceFrontier();
/// <summary>
/// Retrieves the dominance frontier of the given block.
/// </summary>
/// <param name="block">The block to return the dominance frontier of.</param>
/// <returns>An array of Blocks, which represent the dominance frontier.</returns>
List<BasicBlock> GetDominanceFrontier(BasicBlock block);
public abstract List<BasicBlock> GetDominanceFrontier(BasicBlock block);
/// <summary>
/// Gets the children.
/// </summary>
/// <param name="block">The block.</param>
/// <returns></returns>
List<BasicBlock> GetChildren(BasicBlock block);
public abstract List<BasicBlock> GetChildren(BasicBlock block);
/// <summary>
/// Retrieves blocks of the iterated dominance frontier.
/// </summary>
/// <param name="blocks">The blocks.</param>
/// <returns></returns>
List<BasicBlock> IteratedDominanceFrontier(List<BasicBlock> blocks);
public abstract List<BasicBlock> IteratedDominanceFrontier(List<BasicBlock> blocks);
}
}

This file was deleted.

Oops, something went wrong.
@@ -0,0 +1,22 @@
// Copyright (c) MOSA Project. Licensed under the New BSD License.
using System.Collections.Generic;
namespace Mosa.Compiler.Framework.Analysis.LiveVariableAnalysis
{
/// <summary>
/// BaseLiveAnalysisEnvironment
/// </summary>
public abstract class BaseLivenessAnalysisEnvironment
{
public BasicBlocks BasicBlocks { get; protected set; }
public abstract IEnumerable<int> GetInputs(InstructionNode node);
public abstract IEnumerable<int> GetOutputs(InstructionNode node);
public abstract IEnumerable<int> GetKills(InstructionNode node);
public int IndexCount { get; protected set; }
}
}
@@ -0,0 +1,52 @@
// Copyright (c) MOSA Project. Licensed under the New BSD License.
using System.Collections;
namespace Mosa.Compiler.Framework.Analysis.LiveVariableAnalysis
{
public sealed class ExtendedBlock2
{
public BasicBlock BasicBlock { get; }
public int Sequence { get { return BasicBlock.Sequence; } }
public int LoopDepth { get; }
public Range Range { get; set; }
public int Start { get { return Range.Start; } }
public int End { get { return Range.End; } }
public BitArray LiveGen { get; set; }
public BitArray LiveKill { get; set; }
public BitArray LiveOut { get; set; }
public BitArray LiveIn { get; set; }
public BitArray LiveKillNot { get; set; }
public ExtendedBlock2(BasicBlock basicBlock, int registerCount, int loopDepth)
{
BasicBlock = basicBlock;
LiveGen = new BitArray(registerCount);
LiveKill = new BitArray(registerCount);
LiveOut = new BitArray(registerCount);
LiveIn = new BitArray(registerCount);
LiveKillNot = new BitArray(registerCount);
LoopDepth = loopDepth;
}
public bool Contains(int index)
{
return Range.Contains(index) || index == Range.End;
}
public override string ToString()
{
return BasicBlock.ToString();
}
}
}
Oops, something went wrong.

0 comments on commit 1d9ff2e

Please sign in to comment.