Remove TypeConverter and Module from minimal subzero build.
Removes the need to model LLVM types from the minimal subzero build.
It isn't removed from the nonminimal build because IceConverter still needs
to be able to convert LLVM types to corresponding Ice types.
Note that this CL reduces the size of Release+Min/llvm2ice (after
strip) to about 638K bytes.
BUG=None
R=jvoung@chromium.org, stichnot@chromium.org
Review URL: https://codereview.chromium.org/805943002
diff --git a/src/IceTypeConverter.cpp b/src/IceTypeConverter.cpp
index 75e79b8..ddb6cc7 100644
--- a/src/IceTypeConverter.cpp
+++ b/src/IceTypeConverter.cpp
@@ -20,26 +20,29 @@
TypeConverter::TypeConverter(llvm::LLVMContext &Context) {
addLLVMType(IceType_void, llvm::Type::getVoidTy(Context));
- addLLVMType(IceType_i1, llvm::IntegerType::get(Context, 1));
- addLLVMType(IceType_i8, llvm::IntegerType::get(Context, 8));
- addLLVMType(IceType_i16, llvm::IntegerType::get(Context, 16));
- addLLVMType(IceType_i32, llvm::IntegerType::get(Context, 32));
+ llvm::Type *Type_i1 = llvm::IntegerType::get(Context, 1);
+ llvm::Type *Type_i8 = llvm::IntegerType::get(Context, 8);
+ llvm::Type *Type_i16 = llvm::IntegerType::get(Context, 16);
+ llvm::Type *Type_i32 = llvm::IntegerType::get(Context, 32);
+ llvm::Type *Type_f32 = llvm::Type::getFloatTy(Context);
+ addLLVMType(IceType_i1, Type_i1);
+ addLLVMType(IceType_i8, Type_i8);
+ addLLVMType(IceType_i16, Type_i16);
+ addLLVMType(IceType_i32, Type_i32);
addLLVMType(IceType_i64, llvm::IntegerType::get(Context, 64));
- addLLVMType(IceType_f32, llvm::Type::getFloatTy(Context));
+ addLLVMType(IceType_f32, Type_f32);
addLLVMType(IceType_f64, llvm::Type::getDoubleTy(Context));
- addLLVMType(IceType_v4i1, llvm::VectorType::get(LLVMTypes[IceType_i1], 4));
- addLLVMType(IceType_v8i1, llvm::VectorType::get(LLVMTypes[IceType_i1], 8));
- addLLVMType(IceType_v16i1, llvm::VectorType::get(LLVMTypes[IceType_i1], 16));
- addLLVMType(IceType_v16i8, llvm::VectorType::get(LLVMTypes[IceType_i8], 16));
- addLLVMType(IceType_v8i16, llvm::VectorType::get(LLVMTypes[IceType_i16], 8));
- addLLVMType(IceType_v4i32, llvm::VectorType::get(LLVMTypes[IceType_i32], 4));
- addLLVMType(IceType_v4f32, llvm::VectorType::get(LLVMTypes[IceType_f32], 4));
- assert(LLVMTypes.size() == static_cast<size_t>(IceType_NUM));
+ addLLVMType(IceType_v4i1, llvm::VectorType::get(Type_i1, 4));
+ addLLVMType(IceType_v8i1, llvm::VectorType::get(Type_i1, 8));
+ addLLVMType(IceType_v16i1, llvm::VectorType::get(Type_i1, 16));
+ addLLVMType(IceType_v16i8, llvm::VectorType::get(Type_i8, 16));
+ addLLVMType(IceType_v8i16, llvm::VectorType::get(Type_i16, 8));
+ addLLVMType(IceType_v4i32, llvm::VectorType::get(Type_i32, 4));
+ addLLVMType(IceType_v4f32, llvm::VectorType::get(Type_f32, 4));
+ assert(LLVM2IceMap.size() == static_cast<size_t>(IceType_NUM));
}
void TypeConverter::addLLVMType(Type Ty, llvm::Type *LLVMTy) {
- assert(static_cast<size_t>(Ty) == LLVMTypes.size());
- LLVMTypes.push_back(LLVMTy);
LLVM2IceMap[LLVMTy] = Ty;
}
@@ -47,7 +50,7 @@
switch (LLVMTy->getTypeID()) {
case llvm::Type::PointerTyID:
case llvm::Type::FunctionTyID:
- return getIcePointerType();
+ return getPointerType();
default:
return Ice::IceType_NUM;
}