Clear *_ASG_LHS flags in ResetOptAnnotations
authorJoseph Tremoulet <jotrem@microsoft.com>
Wed, 26 Oct 2016 21:01:57 +0000 (17:01 -0400)
committerJoseph Tremoulet <jotrem@microsoft.com>
Fri, 4 Nov 2016 18:57:20 +0000 (14:57 -0400)
commit86d4d5999267b687be6c404a3a998a9499f7a57f
treee02f1e1ec215ee25e6ee2e88cf6029bcc8541085
parent7f6a791f35c2b03fe71853dc4c4b4633e82a8492
Clear *_ASG_LHS flags in ResetOptAnnotations

This works around an apparent bug in SSA construction (GitHub issue #7846),
specifically `fgPerNodeLocalVarLiveness`, where heap uses are not
considered upwards-exposed if they follow a heap def in their block (which
is incorrect because the store and load are not necessarily must-alias).
In the non-repeat configuration, these flags are always cleared coming
into SSA construction, because `TreeRenameVariables` is the only thing
that sets them.
src/jit/compiler.cpp