DescriptionFix bug when atomic load is fused with an arith op (and not in the entry BB)
Normally, the FakeUse for preserving the atomic load ends
up on the load's Dest. However, for fused load+add, the load
is deleted, and its Dest is no longer defined. This trips
up the liveness analysis when it happens on a non-entry
block. So the FakeUse should be for the add's dest instead,
in that case.
We have no access to the add, so introduce a
getLastInserted() helper. A couple of ways to do that:
- modify insert() to track explicitly
- rewind from Next one step
Either that, or we disable the fusing for atomic loads.
BUG= https://code.google.com/p/nativeclient/issues/detail?id=3882
R=stichnot@chromium.org
Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=e6e497d
Patch Set 1 #Patch Set 2 : or do getLast by rewinding from Next #
Total comments: 6
Patch Set 3 : rebase #Patch Set 4 : review #
Messages
Total messages: 4 (0 generated)
|