aboutsummaryrefslogtreecommitdiff
path: root/ARMeilleure
diff options
context:
space:
mode:
authorFICTURE7 <FICTURE7@gmail.com>2020-11-05 06:09:45 +0400
committerGitHub <noreply@github.com>2020-11-04 23:09:45 -0300
commit64088f04e369d5c5553bf2e21a1803068fc84960 (patch)
tree564ca5a6fc149faeacc91f09a5a4346cbb9762f8 /ARMeilleure
parent4c6feb652f7dfa0cf54ea0866d076469816a3bbe (diff)
Fix LiveInterval.Split (#1660)
Before when splitting intervals, the end of the range would be included in the split check, this can produce empty ranges in the child split. This in turn can affect spilling decisions since the child split will have a different start position and this empty range will get a register and move to the active set for a brief moment. For example: A = [153, 172[; [1899, 1916[; [1991, 2010[; [2397, 2414[; ... Split(A, 1916) A0 = [153, 172[; [1899, 1916[ A1 = [1916, 1916[; [1991, 2010[; [2397, 2414[; ...
Diffstat (limited to 'ARMeilleure')
-rw-r--r--ARMeilleure/CodeGen/RegisterAllocators/LiveInterval.cs2
1 files changed, 1 insertions, 1 deletions
diff --git a/ARMeilleure/CodeGen/RegisterAllocators/LiveInterval.cs b/ARMeilleure/CodeGen/RegisterAllocators/LiveInterval.cs
index 6e786061..309c5ba3 100644
--- a/ARMeilleure/CodeGen/RegisterAllocators/LiveInterval.cs
+++ b/ARMeilleure/CodeGen/RegisterAllocators/LiveInterval.cs
@@ -287,7 +287,7 @@ namespace ARMeilleure.CodeGen.RegisterAllocators
{
LiveRange range = _ranges[splitIndex];
- if (position > range.Start && position <= range.End)
+ if (position > range.Start && position < range.End)
{
right._ranges.Add(new LiveRange(position, range.End));