forked from OSchip/llvm-project
X86: Simplify X86WindowsTargetObjectFile::getSectionForConstant
There exists a helper function to abstract away the various differences between ConstantVector, ConstantDataVector, ConstantAggregateZero, etc. Use it to simplify X86WindowsTargetObjectFile::getSectionForConstant. llvm-svn: 213104
This commit is contained in:
parent
a2f658d69d
commit
3821ff03cd
|
@ -151,15 +151,9 @@ X86WindowsTargetObjectFile::getSectionForConstant(SectionKind Kind,
|
||||||
uint64_t NumBits = VTy->getBitWidth();
|
uint64_t NumBits = VTy->getBitWidth();
|
||||||
if (NumBits == 128 || NumBits == 256) {
|
if (NumBits == 128 || NumBits == 256) {
|
||||||
COMDATSymName = NumBits == 128 ? "__xmm@" : "__ymm@";
|
COMDATSymName = NumBits == 128 ? "__xmm@" : "__ymm@";
|
||||||
if (const auto *CDV = dyn_cast<ConstantDataVector>(C)) {
|
for (int I = VTy->getNumElements() - 1, E = -1; I != E; --I)
|
||||||
for (int I = CDV->getNumElements() - 1, E = -1; I != E; --I)
|
COMDATSymName +=
|
||||||
COMDATSymName +=
|
scalarConstantToHexString(C->getAggregateElement(I));
|
||||||
scalarConstantToHexString(CDV->getElementAsConstant(I));
|
|
||||||
} else {
|
|
||||||
const auto *CV = cast<ConstantVector>(C);
|
|
||||||
for (int I = CV->getNumOperands() - 1, E = -1; I != E; --I)
|
|
||||||
COMDATSymName += scalarConstantToHexString(CV->getOperand(I));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!COMDATSymName.empty()) {
|
if (!COMDATSymName.empty()) {
|
||||||
|
|
Loading…
Reference in New Issue