You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Right now the Variable spilling kind of works but breaks down for more complicated Situations and sometimes fails to properly spill Variables leading to the Problem that it just tries to spill Variables over and over again without making any real Progress.
The Way Variables are spilled should therefore be revisited and improved to hopefully mitigate these Problems and provide a more advanced and solid solution
Conditional-Problem
Right now Conditionals and Phi Nodes are causing a lot of Problems with spilling as their interference is not really handled correctly.
Right now the Compiler basically treats them very dumb like this
if (..) {
x_1 = 5;
} else {
x_2 = 13;
}
// For the Compiler x_3 only starts existing after this point
x_3 = phi(x_1, x_2);
when in reality the semantics/logic of this is more like this
if (..) {
x_1 = 5;
// X_3 exists at this point
// Implicit: x_3 = x_1
} else {
x_2 = 13;
// X_3 exists at this point as well
// Implicit: x_3 = x_2
}
// This only exists because we need a single Definition but in the final non SSA form this is moved up like shown
x_3 = phi(x_1, x_2);
This mainly causes Problems when the compiler attempts to insert a spill before the Phi Node, because it needs a Register for the x_3 Variable but handles it incorrectly as it has wrong assumptions about the interference
The text was updated successfully, but these errors were encountered:
Proposal
Right now the Variable spilling kind of works but breaks down for more complicated Situations and sometimes fails to properly spill Variables leading to the Problem that it just tries to spill Variables over and over again without making any real Progress.
The Way Variables are spilled should therefore be revisited and improved to hopefully mitigate these Problems and provide a more advanced and solid solution
Conditional-Problem
Right now Conditionals and Phi Nodes are causing a lot of Problems with spilling as their interference is not really handled correctly.
Right now the Compiler basically treats them very dumb like this
when in reality the semantics/logic of this is more like this
This mainly causes Problems when the compiler attempts to insert a spill before the Phi Node, because it needs a Register for the
x_3
Variable but handles it incorrectly as it has wrong assumptions about the interferenceThe text was updated successfully, but these errors were encountered: