Skip to content

Conversation

@satheeshravi
Copy link
Contributor

Premise:
foo.arguments should get a new copy of the arguments object everytime it is accessed (this change was in effect from my recent Stack Args change).
We were doing this right only when the instruction is profiled - by adding a ImplicitAccessor flag in the fldInfoFlags.
But this doesn't cover the cases where the instruction is not profiled (as in cases equivalent to forcenative or forcejitloopbody).
The property sym for arguments fld can be copy proped to the subsequent uses of it, which is wrong.

Fix:
Added a direct check in the OptSrc to detect this case and to disable copy prop for this field.

Test:
Will do a quick perf test and will start other tests.

}
originalPropertySym = sym->AsPropertySym();

//Don't copy-prop for cases like foo.arguments
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you check if you can use argumentsEquivBv on Globopt to solve your issue? That bit vector is there for these kind of issues only- maybe we need to expand the usage of it. Basically, right now we use the bv to disable copy-prop or arguments across inlinees

@dilijev
Copy link
Contributor

dilijev commented Aug 24, 2016

@satheeshravi Any update on this?

@satheeshravi
Copy link
Contributor Author

I have been working on some other high pri work. I will get back to this soon.

@satheeshravi
Copy link
Contributor Author

Will close this PR. There is a new fix for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants