forked from OSchip/llvm-project
Check for type legality before materializing integer constants in fast isel. With this change,
all of MultiSource/Applications passes on Darwin/X86 under FastISel. llvm-svn: 55982
This commit is contained in:
parent
7aedcf151c
commit
8529085f4f
|
@ -39,6 +39,8 @@ unsigned FastISel::getRegForValue(Value *V) {
|
||||||
MBB->getParent()->getConstantPool());
|
MBB->getParent()->getConstantPool());
|
||||||
// Don't cache constant materializations. To do so would require
|
// Don't cache constant materializations. To do so would require
|
||||||
// tracking what uses they dominate.
|
// tracking what uses they dominate.
|
||||||
|
if (!TLI.isTypeLegal(VT))
|
||||||
|
return false;
|
||||||
Reg = FastEmit_i(VT, VT, ISD::Constant, CI->getZExtValue());
|
Reg = FastEmit_i(VT, VT, ISD::Constant, CI->getZExtValue());
|
||||||
} else if (isa<GlobalValue>(V)) {
|
} else if (isa<GlobalValue>(V)) {
|
||||||
return TargetMaterializeConstant(dyn_cast<Constant>(V),
|
return TargetMaterializeConstant(dyn_cast<Constant>(V),
|
||||||
|
|
Loading…
Reference in New Issue