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
Our stackmap changes mean that a bunch of upstream LLVM tests have to be updated in order to pass.
The problem is, updating the tests is really hard: you have to insert NextLive markers in the correct positions in the operands of the STACKMAP node in the test inputs (not the outputs). The positions to insert the markers depend on contextual information in the surrounding arguments, and some stackmap nodes have hundreds of operands.
This was caused by our fixes to make stackmaps track live variables than can span more than a single location.
When I was implementing this, I eventually gave up and started skipping tests because it was too hard. Recently Lukas has had a taste of this misery when syncing ykllvm with upstream. They had added new stackmaps tests, which then needed to be updated.
What we should do is:
Add a flag like --yk-extended-stackmaps and only emit our "fixed" stackmaps only if this flag is passed.
Revert all of our changes to upstream's stackmap tests, as they will now all pass as-is.
Add some of our own tests for our stackmap changes.
The text was updated successfully, but these errors were encountered:
What we could do is create our own copy of the Stackmaps pass with our changes and then at compile time we just switch out the original pass with our pass guarded by a command line arg. This way we don't need to add loads of guards into Stackmaps.cpp. The downside is though that we need to manually copy over any changes to Stackmaps.cpp to our YkStackmaps.cpp on each upstream merge, which we might easily forget.
Our stackmap changes mean that a bunch of upstream LLVM tests have to be updated in order to pass.
The problem is, updating the tests is really hard: you have to insert
NextLive
markers in the correct positions in the operands of theSTACKMAP
node in the test inputs (not the outputs). The positions to insert the markers depend on contextual information in the surrounding arguments, and some stackmap nodes have hundreds of operands.This was caused by our fixes to make stackmaps track live variables than can span more than a single location.
When I was implementing this, I eventually gave up and started skipping tests because it was too hard. Recently Lukas has had a taste of this misery when syncing ykllvm with upstream. They had added new stackmaps tests, which then needed to be updated.
What we should do is:
--yk-extended-stackmaps
and only emit our "fixed" stackmaps only if this flag is passed.The text was updated successfully, but these errors were encountered: