|
|
|
|
@ -482,7 +482,7 @@ bool LiveRegMatrix::CheckInterference(const LiveInterval &li, int phys_reg) cons
|
|
|
|
|
bool gpr32_64_alias =
|
|
|
|
|
(li.reg_class == RegClass::GPR32 && other->reg_class == RegClass::GPR64) ||
|
|
|
|
|
(li.reg_class == RegClass::GPR64 && other->reg_class == RegClass::GPR32);
|
|
|
|
|
if (gpr32_64_alias && !li.segments.empty() && !other->segments.empty())
|
|
|
|
|
if (gpr32_64_alias)
|
|
|
|
|
return true;
|
|
|
|
|
for (auto &sa : li.segments)
|
|
|
|
|
for (auto &sb : other->segments)
|
|
|
|
|
@ -501,7 +501,7 @@ LiveInterval *LiveRegMatrix::GetConflict(const LiveInterval &li,
|
|
|
|
|
bool gpr32_64_alias =
|
|
|
|
|
(li.reg_class == RegClass::GPR32 && other->reg_class == RegClass::GPR64) ||
|
|
|
|
|
(li.reg_class == RegClass::GPR64 && other->reg_class == RegClass::GPR32);
|
|
|
|
|
if (gpr32_64_alias && !li.segments.empty() && !other->segments.empty())
|
|
|
|
|
if (gpr32_64_alias)
|
|
|
|
|
return other;
|
|
|
|
|
for (auto &sa : li.segments)
|
|
|
|
|
for (auto &sb : other->segments)
|
|
|
|
|
|