OSDN Git Service

Subzero: Speed up VariablesMetadata initialization.
authorJim Stichnoth <stichnot@chromium.org>
Wed, 15 Oct 2014 22:13:06 +0000 (15:13 -0700)
committerJim Stichnoth <stichnot@chromium.org>
Wed, 15 Oct 2014 22:13:06 +0000 (15:13 -0700)
commit877b04e409637216712d3c36fc155b47f8bd8d38
treee2d4b771552980b2928fb18a7b13f627981dac63
parent7b451a928d91d1c38805c7a53e18519000fe7c42
Subzero: Speed up VariablesMetadata initialization.

Currently, O2 calls VariablesMetadata::init() 4 times:

- Twice for liveness analysis, where only multi-block use information is needed for dealing with sparse bit vectors.

- Once for address mode inference, where single-definition information is needed.

- Once for register allocation, where all information is needed, including the set of all definitions which is needed for determining AllowOverlap.

So we limit the amount of data we gather based on the actual need.

BUG= none
R=jvoung@chromium.org

Review URL: https://codereview.chromium.org/650613003
src/IceCfg.cpp
src/IceOperand.cpp
src/IceOperand.h
src/IceRegAlloc.cpp
src/IceTargetLoweringX8632.cpp