Add support for undef values in ICE IR. Undef values represent an
arbitrary bit pattern and are lowered to a zero constant.

IceOperand.h: Introduce a new ConstantUndef subclass of
Constant. Add a getConstantZero() method.

IceGlobalContext.h / IceGlobalContext.cpp: Implement pooling for
ConstantUndefs.

IceTargetLoweringX8632.cpp: Legalize ConstantUndefs to constant
zeros.

llvm2ice.cpp: Translate LLVM Undefs into ConstantUndefs.

undef.ll: Test that undef values are recognized and legalized to
zero.

BUG=none
R=jvoung@chromium.org, stichnot@chromium.org

Review URL: https://codereview.chromium.org/339783002
6 files changed