OSDN Git Service

Subzero: Fix incorrect address mode inference involving Phi temporaries.
authorJim Stichnoth <stichnot@chromium.org>
Mon, 15 Sep 2014 17:42:14 +0000 (10:42 -0700)
committerJim Stichnoth <stichnot@chromium.org>
Mon, 15 Sep 2014 17:42:14 +0000 (10:42 -0700)
commite5ac7db42bcec85cf23450e5144724fdd7f1edbe
tree2e46c813bcd066121ed77b8d0ce98dcec101053b
parenta522972b9249eedd733a1c34b7c0117811d111d7
Subzero: Fix incorrect address mode inference involving Phi temporaries.

Also, refactor the key part of the address mode inference into separate functions, since it's getting unwieldy.

The main thing is that we mark phi temporaries as multi-definition, and disallow address mode inference transformations that involve such temporaries, because this is incorrect particular when there are backward branches involved.

BUG= none
R=jvoung@chromium.org

Review URL: https://codereview.chromium.org/557953007
src/IceInst.cpp
src/IceOperand.h
src/IceTargetLoweringX8632.cpp
tests_lit/llvm2ice_tests/phi.ll