# HG changeset patch # User Benjamin Kramer # Date 1247530745 -7200 # Node ID 6364e09628fd71e291cdbc3f47d1fcd793c5e76e # Parent e4ff2e15cf5fe306b355686a2d3eee7ea9f6e9cf Build fix for LLVM r75546 and r75559 diff -r e4ff2e15cf5f -r 6364e09628fd gen/passes/GarbageCollect2Stack.cpp --- a/gen/passes/GarbageCollect2Stack.cpp Tue Jul 14 18:24:40 2009 +0200 +++ b/gen/passes/GarbageCollect2Stack.cpp Tue Jul 14 02:19:05 2009 +0200 @@ -85,6 +85,7 @@ namespace { class FunctionInfo { protected: + LLVMContext* Context; const Type* Ty; public: @@ -108,8 +109,8 @@ return new AllocaInst(Ty, ".nongc_mem", Begin); // FIXME: align? } - FunctionInfo(unsigned typeInfoArgNr, bool safeToDelete) - : TypeInfoArgNr(typeInfoArgNr), SafeToDelete(safeToDelete) {} + FunctionInfo(LLVMContext* context, unsigned typeInfoArgNr, bool safeToDelete) + : Context(context), TypeInfoArgNr(typeInfoArgNr), SafeToDelete(safeToDelete) {} }; class ArrayFI : public FunctionInfo { @@ -118,9 +119,9 @@ bool Initialized; public: - ArrayFI(unsigned tiArgNr, bool safeToDelete, bool initialized, - unsigned arrSizeArgNr) - : FunctionInfo(tiArgNr, safeToDelete), + ArrayFI(LLVMContext* context, unsigned tiArgNr, bool safeToDelete, + bool initialized, unsigned arrSizeArgNr) + : FunctionInfo(context, tiArgNr, safeToDelete), ArrSizeArgNr(arrSizeArgNr), Initialized(initialized) {} @@ -222,7 +223,7 @@ if (hasDestructor == NULL || hasCustomDelete == NULL) return false; - if (ConstantExpr::getOr(hasDestructor, hasCustomDelete) + if (Context->getConstantExprOr(hasDestructor, hasCustomDelete) != ConstantInt::getFalse()) return false; @@ -232,7 +233,7 @@ // The default promote() should be fine. - AllocClassFI() : FunctionInfo(~0u, true) {} + AllocClassFI(LLVMContext* context) : FunctionInfo(context, ~0u, true) {} }; } @@ -285,9 +286,10 @@ GarbageCollect2Stack::GarbageCollect2Stack() : FunctionPass(&ID), - AllocMemoryT(0, true), - NewArrayVT(0, true, false, 1), - NewArrayT(0, true, true, 1) + AllocMemoryT(Context, 0, true), + NewArrayVT(Context, 0, true, false, 1), + NewArrayT(Context, 0, true, true, 1), + AllocClass(Context) { KnownFunctions["_d_allocmemoryT"] = &AllocMemoryT; KnownFunctions["_d_newarrayvT"] = &NewArrayVT; diff -r e4ff2e15cf5f -r 6364e09628fd gen/todebug.cpp --- a/gen/todebug.cpp Tue Jul 14 18:24:40 2009 +0200 +++ b/gen/todebug.cpp Tue Jul 14 02:19:05 2009 +0200 @@ -23,7 +23,7 @@ #define DBG_TYPE ( getPtrToType(llvm::StructType::get(NULL,NULL)) ) #define DBG_CAST(X) ( llvm::ConstantExpr::getBitCast(X, DBG_TYPE) ) -#define DBG_TAG(X) ( llvm::ConstantExpr::getAdd( DtoConstUint( X ), DtoConstUint( llvm::LLVMDebugVersion ) ) ) +#define DBG_TAG(X) ( gIR->context().getConstantExprAdd( DtoConstUint( X ), DtoConstUint( llvm::LLVMDebugVersion ) ) ) ////////////////////////////////////////////////////////////////////////////////////////////////// diff -r e4ff2e15cf5f -r 6364e09628fd gen/tollvm.cpp --- a/gen/tollvm.cpp Tue Jul 14 18:24:40 2009 +0200 +++ b/gen/tollvm.cpp Tue Jul 14 02:19:05 2009 +0200 @@ -557,7 +557,7 @@ assert(llty->isFloatingPoint()); if(llty == LLType::FloatTy || llty == LLType::DoubleTy) - return LLConstantFP::get(llty, value); + return gIR->context().getConstantFP(llty, value); else if(llty == LLType::X86_FP80Ty) { uint64_t bits[] = {0, 0}; bits[0] = *(uint64_t*)&value;