ldc-developers/ldc — Issue #11: Code Update to LLVM 3.0 set for branch tagging 2011/10/04
Author: hansuhlig
Created: 2011-10-14 18:07:13+00:00
State: open

LLVM 3.0 is slated for branch tagging on 2011/10/04 and breaks the current build of ldc.

Taken from http://llvm.org/docs/ReleaseNotes.html

The way the type system works has been rewritten: PATypeHolder and OpaqueType? are gone, and all APIs deal with Type* instead of const Type*. If you need to create recursive structures, then create a named structure, and use setBody() when all its elements are built. Type merging and refining is gone too: named structures are not merged with other structures, even if their layout is identical. (of course anonymous structures are still uniqued by layout).

Currently Used here:
* dmd/module.c:156: moduleInfoType = new llvm::PATypeHolder(llvm::OpaqueType::get(llvm::getGlobalContext()));
* dmd/module.c:294: delete moduleInfoType;
* dmd/module.h:205: llvm::PATypeHolder* moduleInfoType;
* dmd2/module.c:217: moduleInfoType = new llvm::PATypeHolder(llvm::OpaqueType::get(llvm::getGlobalContext()));
* dmd2/module.c:417: delete moduleInfoType;
* dmd2/module.h:211: llvm::PATypeHolder* moduleInfoType;
* gen/toobj.cpp:578: moduleInfoVar = new llvm::GlobalVariable(*gIR->module, moduleInfoType->get(), false, llvm::GlobalValue::ExternalLinkage, NULL, MIname);
* gen/toobj.cpp:791: llvm::cast(moduleInfoType->get())->refineAbstractTypeTo(constMI->getType());
* gen/arrays.cpp:1455: const LLType *moduleInfoType = DtoType(Module::moduleinfo->type);
* gen/arrays.cpp:1456: args.push_back(DtoBitCast(moduleInfoSymbol, getPtrToType(moduleInfoType)));
* gen/aa.cpp:112: const LLType *moduleInfoType = DtoType(Module::moduleinfo->type);
* gen/aa.cpp:113: args.push_back(DtoBitCast(moduleInfoSymbol, getPtrToType(moduleInfoType)));
* gen/statements.cpp:1630: const LLType *moduleInfoType = DtoType(Module::moduleinfo->type);
* gen/statements.cpp:1631: args.push_back(DtoBitCast(moduleInfoSymbol, getPtrToType(moduleInfoType)));