OSDN Git Service

[UnreachableBlockElim] Check return value of constrainRegClass().
authorMikael Holmen <mikael.holmen@ericsson.com>
Wed, 10 May 2017 06:33:43 +0000 (06:33 +0000)
committerMikael Holmen <mikael.holmen@ericsson.com>
Wed, 10 May 2017 06:33:43 +0000 (06:33 +0000)
commit1df940a102a8bf84dd51df273fa21f438ec83005
tree80516cb0493a75b71dc4ea757934004c373f607a
parentbf31cb7a60d340bc12e4cf5a60ea4c9e3e8646f1
[UnreachableBlockElim] Check return value of constrainRegClass().

Summary:
MachineRegisterInfo::constrainRegClass() can fail if two register classes
don't have a common subclass or if the register class doesn't contain
enough registers. Check the return value before trying to remove Phi nodes,
and if we can't constrain, we output a COPY instead of simply replacing
registers.

Reviewers: kparzysz, david2050, wmi

Reviewed By: kparzysz

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D32999

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302622 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/UnreachableBlockElim.cpp