mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-12 13:38:21 +00:00
Revamp the "ConstantStruct::get" methods. Previously, these were scattered
all over the place in different styles and variants. Standardize on two preferred entrypoints: one that takes a StructType and ArrayRef, and one that takes StructType and varargs. In cases where there isn't a struct type convenient, we now add a ConstantStruct::getAnon method (whose name will make more sense after a few more patches land). It would be "really really nice" if the ConstantStruct::get and ConstantVector::get methods didn't make temporary std::vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133412 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -175,13 +175,16 @@ void llvm::DeleteFunctionBody(Function *F) {
|
||||
static Constant *GetTorInit(std::vector<std::pair<Function*, int> > &TorList) {
|
||||
assert(!TorList.empty() && "Don't create empty tor list!");
|
||||
std::vector<Constant*> ArrayElts;
|
||||
const Type *Int32Ty = Type::getInt32Ty(TorList[0].first->getContext());
|
||||
|
||||
const StructType *STy =
|
||||
StructType::get(Int32Ty, TorList[0].first->getType(), NULL);
|
||||
for (unsigned i = 0, e = TorList.size(); i != e; ++i) {
|
||||
std::vector<Constant*> Elts;
|
||||
Elts.push_back(ConstantInt::get(
|
||||
Type::getInt32Ty(TorList[i].first->getContext()), TorList[i].second));
|
||||
Elts.push_back(TorList[i].first);
|
||||
ArrayElts.push_back(ConstantStruct::get(TorList[i].first->getContext(),
|
||||
Elts, false));
|
||||
Constant *Elts[] = {
|
||||
ConstantInt::get(Int32Ty, TorList[i].second),
|
||||
TorList[i].first
|
||||
};
|
||||
ArrayElts.push_back(ConstantStruct::get(STy, Elts));
|
||||
}
|
||||
return ConstantArray::get(ArrayType::get(ArrayElts[0]->getType(),
|
||||
ArrayElts.size()),
|
||||
|
Reference in New Issue
Block a user