mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-16 16:37:42 +00:00
reduce indentation and add a fast-path to EmitGlobalConstant for 8-byte
integers on 64-bit systems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93291 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fe0e7ed6b0
commit
3cc3a00570
@ -1305,22 +1305,39 @@ void AsmPrinter::EmitGlobalConstant(const Constant *CV, unsigned AddrSpace) {
|
||||
if (CV->isNullValue() || isa<UndefValue>(CV)) {
|
||||
EmitZeros(Size, AddrSpace);
|
||||
return;
|
||||
} else if (const ConstantArray *CVA = dyn_cast<ConstantArray>(CV)) {
|
||||
}
|
||||
|
||||
if (const ConstantArray *CVA = dyn_cast<ConstantArray>(CV)) {
|
||||
EmitGlobalConstantArray(CVA , AddrSpace);
|
||||
return;
|
||||
} else if (const ConstantStruct *CVS = dyn_cast<ConstantStruct>(CV)) {
|
||||
}
|
||||
|
||||
if (const ConstantStruct *CVS = dyn_cast<ConstantStruct>(CV)) {
|
||||
EmitGlobalConstantStruct(CVS, AddrSpace);
|
||||
return;
|
||||
} else if (const ConstantFP *CFP = dyn_cast<ConstantFP>(CV)) {
|
||||
}
|
||||
|
||||
if (const ConstantFP *CFP = dyn_cast<ConstantFP>(CV)) {
|
||||
EmitGlobalConstantFP(CFP, AddrSpace);
|
||||
return;
|
||||
} else if (const ConstantInt *CI = dyn_cast<ConstantInt>(CV)) {
|
||||
}
|
||||
|
||||
if (const ConstantInt *CI = dyn_cast<ConstantInt>(CV)) {
|
||||
// If we can directly emit an 8-byte constant, do it.
|
||||
if (Size == 8)
|
||||
if (const char *Data64Dir = MAI->getData64bitsDirective(AddrSpace)) {
|
||||
O << Data64Dir << CI->getZExtValue() << '\n';
|
||||
return;
|
||||
}
|
||||
|
||||
// Small integers are handled below; large integers are handled here.
|
||||
if (Size > 4) {
|
||||
EmitGlobalConstantLargeInt(CI, AddrSpace);
|
||||
return;
|
||||
}
|
||||
} else if (const ConstantVector *CP = dyn_cast<ConstantVector>(CV)) {
|
||||
}
|
||||
|
||||
if (const ConstantVector *CP = dyn_cast<ConstantVector>(CV)) {
|
||||
EmitGlobalConstantVector(CP);
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user