diff gcc/d/ChangeLog-2013 @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/d/ChangeLog-2013	Thu Feb 13 11:34:05 2020 +0900
@@ -0,0 +1,1221 @@
+2013-12-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_two_field_type): Declare builtin types as
+	toplevel declarations.
+	* d-ctype.cc (EnumDeclaration::toDebug): Build type decl in debug code.
+	* d-lang.cc (nametype): Rename to d_nametype.
+
+2013-12-23  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (EnumDeclaration::toDebug): Don't send array types to
+	rest_of_type_compilation.
+
+2013-12-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-spec.cc (lang_specific_driver): Require linking in library for all
+	files except D interface files.
+	* d-lang.cc (d_write_global_declarations): Call d_finish_compilation.
+	* d-objfile.cc (mark_needed): Mark static.
+	(d_finish_symbol): Don't call mark_needed.
+	(d_finish_function): Likewise.
+	(d_finish_compilation): New function to wrapup all global
+	declarations, mark templates/comdats as needed if required, and start
+	the final compilation.
+
+2013-12-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-ctype.cc (TypeVector::toCtype): Treat void vectors as ubyte.
+	* d-objfile.cc (VarDeclaration::toObjFile): Gag all errors compiling
+	manifest constants.
+	* d-todt.cc (TypeVector::toDt): New function to generate correct static
+	data for vector initialisers.
+
+2013-12-05  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_init_options_struct): Don't define strict aliasing.
+	(d_get_alias_set): New function to return language-specific alias set.
+	* d-convert.cc (d_convert_basic): Always zero extend pointer to integer
+	conversions.
+
+2013-12-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (maybe_set_builtin_frontend): Assert that all runtime
+	library functions have been set-up correctly.
+	(libcall_ids): Remove unhandled library functions.
+	(get_libcall): Likewise.
+	* d-codegen.h (LibCall): Likewise.
+	* d-objfile.cc (output_symbol_p): Remove.
+
+2013-12-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_init_options): Update for frontend changes.
+	(d_handle_option): Set frontend allInst option if -femit-templates.
+	* d-objfile.cc (output_template_p): Want to emit all instantiated
+	templates if -femit-templates or -fdebug was passed to the compiler.
+	* d-objfile.h (TemplateEmission): Define TEallinst.
+	* d-todt.cc (StructDeclaration::toDt): Update for frontend changes.
+	* d-spec.cc (THREAD_LIBRARY): Define default thread library to link if
+	one is not already specified in the configuration process.
+	(TIME_LIBRARY): Define default real time library to link if one is not
+	already specified in the configuration process.
+	(LIBSTDCXX): Define C++ library to link if compiling C++ and D sources.
+	(lang_specific_driver): Update implementation to use new macros.
+
+2013-12-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (CatAssignExp::toElem): Don't call postblit after element
+	append to array.
+	(NewExp::toElem): Handle calling 'new' on opaque types.
+	(ArrayLiteralExp::toElem): Ensure array literal elements have no side
+	effects by making temporaries as necessary.
+	* d-todt.cc (StructLiteralExp::toDt): Update for frontend changes.
+	* d-codegen.cc (build_frame_type): Check for scoped variables if
+	building a closure.
+	* d-objfile.cc (d_finish_symbol): Relax toDt checking rule.
+
+2013-12-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-asmstmt.cc (ExtAsmStatement::ExtAsmStatement): Remove labels
+	member from class.
+	* d-codegen.cc (d_gcc_force_templates): Remove.
+	(convert_expr): Update for frontend changes.
+	(convert_for_assignment): Likewise.
+	(maybe_set_builtin_frontend): Update for changes to libdruntime
+	core.bitops signatures.
+	* d-ctype.cc (TypeFunction::toCtype): Update for frontend changes.
+	* d-decls.cc (Dsymbol::toSymbolX): Likewise.
+	(VarDeclaration::toSymbol): Likewise.
+	(FuncDeclaration::toSymbol): Don't defer nested functions here.
+	* d-elem.cc (PowAssignExp::toElem): Update for frontend changes.
+	(DeleteExp::toElem): Likewise.
+	(AssertExp::toElem): Don't call invariant on an extern C++ class.
+	* d-glue.cc (Global::init): Initialise new stdmsg member.
+	* d-lang.cc (d_handle_option): Handle -fdeps switch.  Remove TEprivate
+	for -femit-templates switch.
+	(genCmain): Update for frontend changes.
+	(d_parse_file): Likewise.
+	* d-longdouble.cc (longdouble::dump): Likewise.
+	* d-objfile.cc (ClassDeclaration::toObjFile): Update for frontend
+	changes.
+	(InterfaceDeclaration::toObjFile): Likewise.
+	(EnumDeclaration::toObjFile): Likewise.
+	(Symbol::Symbol): Remove outputSymbol member.
+	(output_symbol_p): Mark static.
+	(output_declaration_p): Determine symbol codegen status from
+	semanticRun.
+	(output_template_p): New function to determine whether an instantiated
+	template is to be written to object file.
+	(FuncDeclaration::toObjFile): Use semanticRun to update codegen status
+	of function.
+	(FuncDeclaration::buildClosure): Error if putting a scoped variable in
+	a closure.
+	(Module::genobjfile): Update for frontend changes.
+	(d_comdat_linkage): Don't determine linkage from TE setting.  Mark all
+	comdat symbols as DECL_COMDAT.
+	(setup_symbol_storage): Use output_template_p to determine whether the
+	symbol is being written to object file.
+	(mark_needed): New function to mark decls that must be emitted.
+	(d_finish_symbol): Mark finished symbols as needed.
+	(d_finish_function): Mark finished functions as needed.
+	(build_simple_function): Set semanticRun for glue changes.
+	* d-objfile.h (OutputStage): Remove enum.
+	* d-todt.cc (build_vptr_monitor): Update for frontend changes.
+	(StructInitializer::toDt): Likewise.
+	(StructDeclaration::toDt): Likewise.
+	(TypeInfoEnumDeclaration::toDt): Likewise.
+	(TypeInfoStructDeclaration::toDt): Likewise.
+	(Type::getTypeInfo): Likewise.
+
+2013-11-30  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (genCmain): Implement code generation of __entrypoint
+	module to provide the target C main function.
+	(deps_write): Ignore the module __entrypoint when writing make deps.
+	(d_parse_file): Handle writing __entrypoint module to object file.
+	* d-objfile.cc (d_finish_symbol): Remove special handling of _tlsstart
+	symbol, but ensure _tlsend gets written to the thread common section.
+	(d_finish_function): Remove call to build_tlssections.
+	(build_tlssections): Remove.
+
+2013-11-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (ClassDeclaration::toVtblSymbol): Use TypeSArray::makeType
+	to generate frontend static array type.
+	* d-glue.cc (Dsymbol::ungagSpeculative): Define.
+	* d-lang.cc (genCmain): Define as empty.
+	(d_parse_file): Update for frontend changes.
+	* d-objfile.cc (StructDeclaration::toObjFile): Likewise.
+	* d-typinf.cc (TypeBasic::builtinTypeInfo): Likewise.
+	* d-longdouble.cc (longdouble::isIdenticalTo): Remove.
+	* d-port.cc (Port::fequal): Define.
+
+2013-11-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.cc (gcc_type_to_d_type): Use TypeSArray::makeType to
+	generate frontend static array types.
+	* d-codegen.cc (build_attributes): Use optimize as don't want the
+	ctfeInterpret of TypeExp expressions.
+	(get_object_method): Update for frontend changes.
+	(get_libcall): Update to use Type::dtypeinfo.
+	* d-elem.cc (IndexExp::toElem): Don't generate bounds checking codegen
+	if frontend explictly requests it.
+	(ArrayLiteralExp::toElem): Use TypeSArray::makeType to generate
+	frontend static array type.
+	(StructLiteralExp::toElem): Update for frontend changes.
+	* d-glue.cc (Global::increaseErrorCount): Define.
+	* d-objfile.cc (Module::genmoduleinfo): Remove moduleinfo 'New'
+	implementation for libdruntime changes.
+	* d-todt.cc (StructLiteralExp::toDt): Literal initialisers override
+	default initialisers.
+	(TypeInfoDeclaration::toDt): Update to use Type::dtypeinfo.
+	(TypeInfoStructDeclaration::toDt): Update for frontend changes.
+	* d-typinf.c (Type::getInternalTypeInfo): Update to use
+	Type::dtypeinfo.
+
+2013-11-25  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-asmstmt.cc (ExtAsmStatement::comeFromImpl): Define for frontend
+	implementation changes.
+	* d-codegen.cc (get_libcall): Update to use Type::typeinfoclass.
+	* d-codegen.cc (WrappedExp): Define as class.
+	* d-convert.cc (d_convert_basic): Fix format warnings.
+	* d-decls.cc (ModuleInfoDeclaration::toSymbol): Remove.
+	(FuncDeclaration::toSymbol): Use mangleExact to get decl mangle.
+	* d-elem.cc (ClassReferenceExp::toElem): Return reference to class.
+	* d-glue.cc (verror): Fix format warnings.
+	(verrorSupplemental): Likewise.
+	(vwarning): Likewise.
+	(vdeprecation): Likewise.
+	(escapePath): Define for frontend implementation changes.
+	* d-irstate.cc (IRState::getLoopForLabel): Implement breaking on named
+	scope labels in for/while loops.
+	* d-lang.cc (d_handle_option): Add handler for new -fdeps and
+	-fmake-deps options.
+	(d_parse_file): Handle new -fdeps and fmake-deps options.
+	* d-objfile.cc (Dsymbol::toObjFile): Update to use RootObject.
+	(Type::typeinfoclass): Update to use Type::typeinfoclass.
+	(InterfaceDeclaration::toObjFile): Likewise.
+	* d-objfile.h (Symbol): Remove inheritance from Object.
+	* d-todt.cc (TypeInfoStructDeclaration::toDt): Update to use
+	Type::immutableOf.
+
+2013-11-24  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.c (gcc_type_to_d_type): Use TREE_INT_CST_LOW macro instead
+	of tree_low_cst.
+	(eval_builtin): Likewise.
+	(gcc_cst_to_d_expr): Use tree_cst_hwi.
+	* d-codegen.cc (tree_to_hwi): Remove call to deleted host_integerp.
+	(maybe_expand_builtin): Use TREE_INT_CST_LOW macro.
+	* d-lang.cc (d_parse_file): Update debug_hooks call for middle-end
+	changes.
+	* d-system.h: Update includes for middle-end changes.
+
+2013-11-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (finish_thunk): Update for conversion of symtab types to
+	a true class hierarchy.
+
+	* d-ctype.cc (TypeClass::toCtype): Fix ABI to emit correct vtable and
+	monitor field names.
+
+	* d-ctype.cc (TypeClass:toCtype): Set TYPE_LANG_SPECIFIC on record as
+	well as reference type.
+	* d-lang.cc (d_classify_record): New langhook to return appropriate
+	class/interface/struct type to the debugger.
+
+2013-10-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (ArrayLiteralExp::toElem): Build empty constructor for zero
+	sized arrays.
+
+2013-10-23  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (AssignExp::toElem): Optimise assigning array literal to a
+	static array.
+	(ArrayLiteralExp::toElem): Do not allocate static or const array
+	literals on the heap using the GC.
+
+2013-10-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.c (DEF_FUNCTION_TYPE_8): Define.
+
+2013-10-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.c (gcc_cst_to_d_expr): Add support for VECTOR_CST to
+	Expression conversion.
+	(d_gcc_paint_type): Add support for painting to/from array literals.
+
+2013-10-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (cvtLocToloc_t): Rename to get_linemap.
+	* d-glue.cc: New source to provide interface for defined globals and
+	error handling called from the front-end.
+
+2013-09-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::call): Rename to d_build_call.
+	(IRState::emitLocalVar): Rename to build_local_var.
+	(IRState::buildAssignOp): Move to BinExp::toElemBin.
+	(IRState::IRState): Remove IRState class.
+	* d-irstate.cc (IRBase::IRBase): Rename to IRState, remove inheritance
+	from Object class.
+	* d-decls.cc (VarDeclaration::toSymbol): Remove redundant CONST_DECL
+	code as VarDeclaration::toObjFile does not emit manifest constants.
+	* d-ctype.cc (TypeEnum::toCtype): Generate CONST_DECLs for enumeration
+	members for correct debugging.
+	* d-objfile.cc (build_type_decl): Use fully qualified type name in
+	debugging code.
+	(VarDeclaration::toObjFile): Emit manifest constant values in debug
+	code generation.
+
+2013-09-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (SliceExp::toElem): Don't build D array for slices that
+	return a static array.
+
+2013-09-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::buildOp): Rename to build_binary_op.
+
+2013-09-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (binfo_for): Rename to build_class_binfo.
+	(intfc_binfo_for): Rename to build_interface_binfo.
+	(ClassDeclaration::toDebug): Move binfo generation into toCtype.
+	* d-lang.cc (pushlevel): Rename to push_binding_level.
+	(poplevel): Rename to pop_binding_level.
+	(global_bindings_p): Rename to d_global_bindings_p, add langhook.
+	(pushdecl): Rename to d_pushdecl, add langhook.
+	(getdecls): Rename to d_getdecls, add langhook.
+	(set_block): Remove function.
+	(insert_block): Remove function.
+	* d-irstate.cc (IRBase::startBindings): Inline set_block here.
+	(IRBase::endBindings): Inline insert_block here.
+
+2013-08-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-spec.c (lang_specific_spec_functions): Remove.
+
+2013-08-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::doArraySet): Rename to IRBase::doArraySet.
+	(IRState::arraySetExpr): Remove function.
+	(IRState::expandDecl): Rename to expand_decl.
+	(IRState::typeinfoReference): Rename to build_typeinfo.
+	(IRState::buildChain): Merge into FuncDeclaration::buildClosure.
+	(IRState::getVThis): Rename to build_vthis.
+	(IRState::maybeExpandSpecialCall): Rename to maybe_expand_builtin.
+	(IRState::toDArray): Rename to d_array_convert.
+
+2013-08-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (convert_expr): Check that the class type the codegen is
+	casting from is a base class of the class type the codegen is casting
+	to, not the other way round.
+
+2013-08-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (ArrayLiteralExp::toElem): Return null for zero length
+	array literals.
+
+2013-08-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (finish_thunk): Don't emit thunks to external symbols as
+	weakref declarations.
+	* d-codegen.cc (IRState::maybeExpandSpecialCall): Remove intrinsic yl2x
+	and yl2xp1 builtins.
+	(maybe_set_builtin_frontend): Likewise.
+
+2013-07-09  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.c (d_gcc_magic_builtins_module): Set builtins solely
+	provided by the compiler as @safe, pure and nothrow.
+	* d-codegen.cc (IRState::getVThis): Don't set outer 'this' of structs
+	to be parent function chain if no frame has been created.
+
+2013-07-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (Expression::toElemDtor): Wrap temp variables destructor
+	calls in a try/finally expression.
+
+2013-07-05  Johannes Pfau  <johannespfau@gmail.com>
+
+	* patch-versym-os-4.8.x: Set versions on powerpc and alpha.
+	Remove SysV4 support and therefore fix macro redefinition warnings.
+	* patch-versym-os-4.9.x: Likewise.
+
+2013-07-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-longdouble.cc (longdouble::set): Intepret set values at higher
+	precision for min/max properties.
+	* d-codegen.cc (maybe_set_builtin_frontend): Add yl2x and yl2xp1
+	math intrinsics.
+	(IRState::maybeExpandSpecialCall): Likewise.
+
+2013-07-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (Module::genobjfile): Don't free current_module_info.
+	* d-codegen.cc (IRState::buildAssignOp): Don't create a SAVE_EXPR
+	around comma expressions used as lvalues.
+	* d-todt.cc (TypeSArray::toDtElem): Get underlying vector basetype when
+	layouting out data in a static array.
+
+2013-06-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* complex_t.h: Move into dfrontend.
+	* d-builtins.c (gcc_cst_to_d_expr): Explicitly create longdouble.
+	* d-longdouble.cc (longdouble::parse): Remove function.
+	(longdouble::longdouble): Remove constructors from longdouble.
+	Replaced with operator= template and longdouble::set.
+	(longdouble::rv): Update for new class layout.
+	(longdouble::from_shwi): New function to create a longdouble value
+	from a HOST_WIDE_INT.
+	(longdouble::from_uhwi): Likewise, but from an unsigned HOST_WIDE_INT.
+	(longdouble::to_shwi): New function to return a HOST_WIDE_INT value
+	from a longdouble.
+	(longdouble::to_uhwi): Likewise, but from an unsigedn HOST_WIDE_INT.
+	(longdouble::set): New function to explicitly set longdouble value.
+	(longdouble::toInt): Remove function.
+	(longdouble::isZero): Remove function.
+	(longdouble::isNegative): Remove function.
+	* d-port.cc (Port::nan): Rename to Port::ldbl_nan.
+	(Port::infinity): Rename to Port::ldbl_infinity.
+	(Port::ldbl_max): New static field.
+	(Port::init): Set ldbl_max to be maximimum value for long double type.
+	(Port::strtof): New function to convert string to longdouble.
+	(Port::strtod): Likewise.
+	(Port::strtold): Likewise.
+
+2013-06-24  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (make_alias_for_thunk): Do not set
+	TREE_SYMBOL_REFERENCED.
+
+2013-06-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (build_struct_memcmp): New function.
+	* d-elem.cc (IdentityExp::toElem): Use build_struct_memcmp for field
+	comparisons of small structs.
+
+2013-06-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (make_temp): New function.
+	* d-decls.cc (StructLiteralExp::toSymbol): Implement correctly to
+	generate an anonymous symbol to reference to in the codegen.
+	(ClassReferenceExp::toSymbol): Likewise, but also use an anonymous
+	type as size is not determined until the data has been layed out.
+	* d-elem.cc (EqualExp::toElem): Optimise comparisons of arrays of basic
+	types, also ensure left-to-right evaluation.
+	(SliceExp::toElem): Handle returing slice as a static array type.
+	(AddrExp::toElem): Handle taking the address of StructLiteralExp and
+	ClassReferenceExp symbols.
+	(FuncExp::toElem): Relax type checking to allow returning function
+	addresses as generic pointer types.
+	(ArrayLiteralExp::toElem): Implicitly convert static arrays of void to
+	static arrays of ubyte.
+	(StructLiteralExp::toElem): Remove code generation of postblit calls,
+	now taken care of in the front end.
+	* d-objfile.cc (Module::genmoduleinfo): Emit module name as a null
+	terminated static array.
+	* d-ctype.cc (TypeAArray::toCtype): Pass AA types around like pointers.
+
+2013-06-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* dfrontend: Update to D front-end version 2.063.
+
+	* d-builtins.c (gcc_type_to_d_type): Use Loc for unknown locations.
+	(d_gcc_magic_builtins_module): Likewise.
+	(gcc_cst_to_d_expr): Likewise.
+	* d-codegen.cc (get_libcall): Use FuncDeclaration::genCfunc to build
+	D runtime library functions.
+	* d-decl.cc (SymbolDeclaration::SymbolDeclaration): Remove function.
+	(StructLiteralExp::toSymbol): New function.
+	(ClassReferenceExp::toSymbol): New function.
+	* d-elem.cc (AssertExp::toElem): Call struct/class invariants only if
+	compiler is generating invariant code.
+	(TupleExp::toElem): Update for new front-end.
+	(ClassReferenceExp::toElem): New function.
+	* d-lang.cc (d_init_options): Set compiler.vendor front-end parameter.
+	(d_init): Call Expression::init.
+	* d-objfile.cc (InterfaceDeclaration::toObjFile): Correctly set the
+	xgetRTInfo field in the record layout.
+	* d-todt.cc (CastExp::toDt): New function.
+	(AddrExp::toDt): New function.
+	(ClassReferenceExp::toDt): New function.
+	(ClassReferenceExp::toDtI): New function.
+	(ClassReferenceExp::toInstanceDt): New function.
+	(ClassReferenceExp::toDt2): New function.
+
+2013-06-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-objfile.cc (FuncDeclaration::toObjFile): Set 'this' parameter as
+	implicitly read-only.
+	* d-codegen.cc (declaration_type): Set 'this' declaration type as
+	implicitly const.
+	(build_frame_type): Set frame or closure type as implicitly const.
+
+2013-06-09  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.c (d_init_builtins): Make d_unknown_type_node a
+	RECORD_TYPE.
+	* d-lang.cc (d_build_eh_type_type): Cast the returned typeinfo decl to
+	void pointer type.
+
+2013-06-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::var): Rename to get_decl_tree.
+	(IRState::convertForArgument): Rename to convert_for_argument.
+	(IRState::floatMod): Rename to build_float_modulus.
+	(IRState::findThis): Rename to find_this_tree.
+	(IRState::emitLocalVar): Update signature.
+	(IRState::arrayElemRef): Remove function.
+	* d-elem.cc (IndexExp::toElem): Move implementation of
+	IRState::arrayElemRef here.
+
+2013-06-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (cmodule): Rename to current_module_decl.
+	(object_file): Remove variable.
+	* d-objfile.cc (ObjectFile::moduleInfo): Rename to current_module_info.
+	(ObjectFile::modules): Rename to output_modules.
+	(ObjectFile::staticCtorList): Rename to static_ctor_list.
+	(ObjectFile::staticDtorList): Rename to static_dtor_list.
+	(ObjectFile::emitTemplates): Rename to flag_emit_templates.
+	(ObjectFile::beginModule): Remove function.
+	(ObjectFile::endModule): Remove function.
+	(ObjectFile::finish): Rename to d_finish_module.
+	(ObjectFile::doLineNote): Remove function.
+	(ObjectFile::setLoc): Rename to set_input_location.
+	(ObjectFile::setDeclLoc): Rename to set_decl_location.
+	(ObjectFile::setCfunEndLoc): Rename to set_function_end_locus.
+	(ObjectFile::giveDeclUniqueName): Rename to get_unique_name.
+	(ObjectFile::setupSymbolStorage): Rename to setup_symbol_storage.
+	(ObjectFile::setupStaticStorage): Remove function.
+	(ObjectFile::makeDeclOneOnly): Rename to d_comdat_linkage.
+	(ObjectFile::outputStaticSymbol): Rename to d_finish_symbol.
+	(ObjectFile::outputFunction): Rename to d_finish_function.
+	(ObjectFile::addAggMethod): Remove function.
+	(ObjectFile::initTypeDecl): Rename to build_type_decl.
+	(ObjectFile::declareType): Remove function.
+	(ObjectFile::shouldEmit): Rename to output_declaration_p.
+	(ObjectFile::shouldEmit): Rename variant to output_symbol_p.
+	(ObjectFile::doThunk): Rename to use_thunk.
+	(ObjectFile::stripVarDecl): Remove function.
+	(ObjectFile::doSimpleFunction): Rename to build_simple_function.
+	(ObjectFile::doFunctionToCallFunctions): Rename to
+	build_call_function.
+	(ObjectFile::doCtorFunction): Rename to build_ctor_function.
+	(ObjectFile::doDtorFunction): Rename to build_dtor_function.
+	(ObjectFile::doUnittestFunction): Rename to build_unittest_function.
+	(ObjectFile::hasModule): Rename to output_module_p.
+	(ObjectFile::outputThunk): Rename to finish_thunk.
+	(write_deferred_thunks): New function to emit deferred thunks.
+
+2013-06-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (VarDeclaration::toSymbol): Don't set default tls model.
+	* d-objfile.cc (ObjectFile::setupSymbolStorage): Set default tls
+	model for var decls before determining whether symbol is public.
+	(build_tlssections): Likewise for TLS symbols.
+
+2013-06-01  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-codegen.cc (maybe_set_builtin_frontend): Check parameter and
+	return types of intrinsics.
+
+2013-06-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::var): Handle variables used for NRVO.
+	* d-ir.cc (ReturnStatement::toIR): Return result decl directly if NRVO.
+	* d-objfile.cc (Symbol::SnamedResult): New member to hold the named
+	RESULT_DECL of the function.
+	(FuncDeclaration::toObjFile): Set-up function for NRVO.
+	(build_tlssections): Align _tlsstart and _tlsend symbols to target
+	address size.
+	* d-ctype.cc (TypeFunction::toSymbol): Mark functions returning non-POD
+	structs as TREE_ADDRESSABLE to force return in memory.
+	* d-decls.cc (FuncDeclaration::toSymbol): Propagate TREE_ADDRESSABLE
+	from the original function type.
+
+2013-05-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-target.cc: New source file to handle Target structure.
+
+	* d-builtins.c (d_bi_init): Remove function.
+	(d_gcc_type_align): Move to Target::alignsize.
+	(d_gcc_field_align): Move to Target::fieldalign.
+	(d_init_builtins): Build va_list type for D frontend.
+	* d-lang.cc (d_init): Use isLP64 to determine LP64 targets.
+	(d_add_builtin_version): Set is64bit if target is X86_64.
+	* d-codegen.cc (convert_for_assignment): Use memset to implement front
+	end code (struct = 0) here, rather than build an empty constructor.
+	* d-elem.cc (AssignExp::toElem): Remove handling of (struct = 0) and
+	call convert_for_assignment.
+
+2013-05-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-gcc-complex_t.h: Rename to complex_t.h.
+	* d-gcc-real.cc: Rename to d-longdouble.cc.
+	* d-gcc-real.h: Rename to longdouble.h
+	* d-port.cc: New source file to handle Port structure.
+	* gdc_alloca.h: Remove source.
+
+	* d-longdouble.cc (real_t): Rename to longdouble.
+	(longdouble::getnan): Move to Port::nan.
+	(longdouble::getsnan): Move to Port::snan.
+	(longdouble::getinfinity): Move to Port::infinity.
+	(longdouble::isInf): Move to Port::isInfinite.
+	(longdouble::isNan): Move to Port::isNan.
+	(longdouble::isSignallingNan): Move to Port::isSignallingNan.
+	* d-builtins.c (gcc_d_backend_init): Rename to d_backend_init.
+	(gcc_d_backend_term): Rename to d_backend_term.
+	(gcc_type_to_d_type): Don't map 128bit integers to D front end.
+
+	* d-elem.cc (AssignExp::toElem): Remove handling of fillHoles, use
+	memset to implement (struct = 0).
+	(StructLiteralExp::toElem): Handle fillHoles here, creating a
+	temporary var that is zero init'd with memset and returned.
+
+2013-05-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::localVar): Rename to build_local_var.
+	(IRState::exprVar): Rename to create_temporary_var.
+	(IRState::maybeExprvar): Rename to maybe_temporary_var.
+	(IRState::pointerIntSum): Rename to build_array_index.
+	* d-lang.cc (d_handle_target_attribute): New function to handle D
+	target attributes.
+
+2013-05-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-incpath.cc (prefixed_path): Add cpp_GCC_INCLUDE_DIR back in as
+	second method for relocation.
+	* d-elem.cc (IndexExp::toElem): Fix call to _aaGetX as from
+	IRState::toElemLvalue.
+	* d-codegen.cc (IRState::toElemLvalue): Remove function.
+	(IRState::convertForAssignment): Rename to convert_for_assignment.
+	(IRState::convertForCondition): Rename to convert_for_condition.
+	(IRState::checkedIndex): Rename to d_checked_index.
+	(IRState::boundsCond): Rename to d_bounds_condition.
+	(IRState::arrayBoundsCheck): Rename to array_bounds_check.
+	(IRState::assertCall): Rename to d_assert_call.
+	(IRState::doLineNote): Move to irstate.h.
+	* d-irstate.cc (IRBase::getLocalContext): Remove function.
+	* d-decls.cc (VarDeclaration::toSymbol): Build decl lang specific for
+	decl to point back to D front end type.
+	(FuncDeclaration::toSymbol): Likewise.
+
+2013-05-23  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (AggLayout::finish): Unset TYPE_SIZE before
+	re-calculating.
+	* d-ctype.cc (TypeStruct::toCtype): Don't call decl_attribute on the
+	type twice.
+
+2013-05-21  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_gcc_dump_source): Remove function.
+	(d_post_options): Set flag_excess_precision_cmd as standard.
+	* d-gcc-real.cc (real_t::convert): Remove function.
+	(real_t::floatCompare): Remove function.
+	(real_t::operator): Always perform floating point compilation at the
+	precision of the target real mode.
+	* d-todt.cc (dt_last): Remove function.
+	(dtlist_to_tree): Rename to dtvector_to_tree.
+	(dt_cons): Replace TREE_CHAIN implementation for use of CONSTRUCTOR.
+	(dt_chainon): Likewise.
+	(dt_container): Likewise.
+	(dt_container2): Likewise.
+	(StructInitializer::toDt): Likewise.
+	(StructLiteralExp::toDt): Likewise.
+
+2013-05-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::convertTo): Replace with d_convert and
+	convert_expr.
+	(IRState::declContext): Replace with d_decl_context.
+	(IRState::functionNeedsChain): Replace with needs_static_chain.
+	(IRState::label): Replace with d_build_label.
+	(IRState::emitTemplates): Move to ObjectFile.
+	(functionDegenerateClosure): Replace with is_degenerate_closure.
+	(get_object_method): Assert that function is a method.
+	(IRState::startCond): Move to IRBase.
+	(IRState::startElse): Likewise.
+	(IRState::endCond): Likewise.
+	(IRState::startLoop): Likewise.
+	(IRState::continueHere): Likewise.
+	(IRState::setContinueLabel): Likewise.
+	(IRState::exitIfFalse): Likewise.
+	(IRState::endLoop): Likewise.
+	(IRState::startCase): Likewise.
+	(IRState::doCase): Likewise.
+	(IRState::endCase): Likewise.
+	(IRState::continueLoop): Likewise.
+	(IRState::exitLoop): Likewise.
+	(IRState::startTry): Likewise.
+	(IRState::startCatches): Likewise.
+	(IRState::startCatch): Likewise.
+	(IRState::endCatch): Likewise.
+	(IRState::endCatches): Likewise.
+	(IRState::startFinally): Likewise.
+	(IRState::endFinally): Likewise.
+	(IRState::doReturn): Likewise.
+	(IRState::doJump): Likewise.
+	(IRState::pushLabel): Likewise.
+	(IRState::checkSwitchCase): Likewise.
+	(IRState::checkGoto): Likewise.
+	(IRState::checkPreviousGoto): Likewise.
+
+	* d-elem.cc (CatAssignExp::toElem): Call postblit on appending array of
+	structs if required.
+
+2013-05-16  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-incpath.cc (prefixed_path): use cpp_PREFIX instead of
+	cpp_GCC_INCLUDE_DIR for relocation.
+
+2013-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::convertForAssignment): Remove use of
+	CtorEltMaker wrapper for vec<constructor_elt, va_gc>.
+	(d_array_value): Likewise.
+	(build_delegate_cst): Likewise.
+	(extract_from_method_call): Likewise.
+	* d-elem.cc (NewExp::toElem): Likewise.
+	(ArrayLiteralExp::toElem): Likewise.
+	(AssocArrayLiteralExp::toElem): Likewise.
+	(StructLiteralExp::toElem): Likewise.
+	(NullExp::toElem): Likewise.
+	(VectorExp::toElem): Likewise.
+	* d-objfile.cc (build_moduleinfo): Likewise.
+	* d-todt.cc (dt_container): Likewise.
+	(dt_container2): Likewise.
+
+	* d-asmstmt.cc (ExtAsmStatement::toIR): Remove use of ListMaker
+	wrapper for tree chaining.
+	* d-builtins.c (d_bi_builtin_func): Likewise.
+	(d_bi_builtin_type): Likewise.
+	(d_gcc_magic_builtins_module): Likewise.
+	(d_gcc_magic_libbuiltins_module): Likewise.
+	* d-codegen.cc (build_attributes): Likewise.
+	(IRState::call): Likewise.
+	(IRState::buildFrameForFunction): Likewise.
+	(AggLayout::doFields): Likewise.
+	(AggLayout::addField): Likewise.
+	* d-ctype.cc (TypeEnum::toCtype): Likewise.
+	(TypeFunction::toCtype): Likewise.
+	* d-todt.cc (dt_container2): Likewise.
+
+	* d-codegen.cc (IRState::getFrameInfo): Replace with get_frameinfo.
+	(IRState::buildFrameForFunction): Replace with build_frame_type.
+	(IRState::isClassNestedInFunction): Replace with d_nested_class.
+	(IRState::isStructNestedInFunction): Replace with d_nested_struct.
+	(IRState::getFrameForFunction): Fold into IRState::getFrameForSymbol.
+	(IRState::getFrameForNestedClass): Likewise.
+	(IRState::getFrameForNestedStruct): Likewise.
+
+2013-05-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::buildFrameForFunction): Also copy the
+	parameters of functions with 'in' contracts to a local frame decl.
+	* d-lang.cc (d_handle_flatten_attribute): New function to handle D
+	flatten attributes.
+
+2013-05-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::chainLink): Remove function.
+	(IRState::chainFunc): Remove function.
+	(IRState::sthis): New member which holds the chain of function.
+	(IRState::buildChain): Update to use new static chain decl.
+	(IRState::getFrameInfo): Likewise.
+	* d-objfile.cc (FuncDeclaration::buildClosure): Likewise.
+	(FuncDeclaration::toObjFile): Default the function static chain decl
+	to null unless vthis is given for the function.
+
+2013-05-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_handle_noinline_attribute): New function to handle D
+	noinline attributes.
+	(d_handle_forceinline_attribute): New function to handle D forceinline
+	attributes.
+	* d-elem.cc (StructLiteralExp::toElem): Return the struct initialiser
+	symbol directly if the tree has already been built.
+	* d-decls.cc (Dsymbol::toSymbolX): Constify the mangling name to use.
+
+2013-05-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-typinf.cc: New file containing type info routines originally in
+	the D Front End.
+
+	* d-todt.cc (dt_last): New helper function to retrieve last node in a
+	dt_t tree list.
+	(dt_cons): New helper function to append nodes to the end of a list.
+	(dt_chainon): New helper function to concatenate two lists together.
+	(dt_container): New helper function to build a ctor from a list.
+	(build_vptr_monitor): New helper function to generate the class
+	vtable, and put out __vptr and __monitor.
+	symbol default values in a class declaration.
+	(dtlist_to_tree): New helper function to convert a dt_t list into a
+	constructor tree.
+	(Type::toDt): Implement routines for new dt_t format.
+	(TypeInfoDeclaration::toDt): Likewise.
+	(Initializer::toDt): Likewise.
+	(Expression::toDt): Likewise.
+	(Declaration::toDt): Likewise.
+
+	* d-objfile.cc (Dsymbol::toObjFile): Update for new dt_t format.
+	(Module::genmoduleinfo): Likewise.
+	(Symbol::Symbol): Moved from symbol.cc
+	(Obj::objmod): Remove abstraction layer.
+	(Obj::moduleinfo): Renamed to build_moduleinfo.
+	(obj_tlssections): Renamed to build_tlssections.
+	(outdata): Renamed to d_finish_symbol.
+	(check_static_sym): Moved into d_finish_symbol.
+
+	* d-codegen.cc (d_gcc_emit_local_variable): Remove.
+
+	* d-decls.cc (Dsymbol::toSymbolX): Update to not call symbol_calloc.
+	(FuncDeclaration::toThunkSymbol): Likewise.
+	(ClassDeclaration::toSymbol): Build type as d_unknown_type_node.
+	(InterfaceDeclaration::toSymbol): Likewise.
+	(Module::toSymbol): Likewise.
+	(ClassDeclaration::toVtblSymbol): Update call to toSymbolX.
+	(AggregateDeclaration::toInitializer): Likewise.
+	(TypedefDeclaration::toInitializer): Likewise.
+	(EnumDeclaration::toInitializer): Likewise.
+
+	* d-ir.cc (CaseStatement::toIR): Don't call static_sym.
+
+	* d-lang.cc (rtlsym): Remove symbol.
+	(D_DECL_READONLY_STATIC): Remove macro.
+	(d_unknown_type_node): New LANG_TYPE node for marking TypeInfo_Class,
+	Interface, and ModuleInfo types that are of a variable size determined
+	at compile time.
+
+	* d-elem.cc (StringExp::toElem): Clean up for new dt_t format.
+
+	* symbol.cc: Remove file.
+
+2013-05-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::getFrameInfo): Don't create a frame/closure
+	for member functions, only required for nested.
+	* d-elem.cc (Expression::toElemDtor): Call dtors in the correct order.
+	(DeclarationExp::toElem): Don't call dtor on static, manifest, or
+	extern symbols upon declaration.
+	(AssignExp::toElem): Only call postblit on lvalues in assignment.
+	(ArrayLiteralExp::toElem): Always generate literals on heap.
+
+2013-05-06  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (StructLiteralExp::toElem): Return the default initialiser
+	symbol if one exists.
+	* d-builtins.c (d_gcc_magic_libbuiltins_check): Override the function
+	type with the correct built-in function type as defined in backend.
+
+2013-04-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (IdentityExp::toElem): Remove special handling of class,
+	reference and array types.
+
+2013-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (maybe_make_temp): Save call expressions so aren't
+	evaluated more than once.
+	(d_has_side_effects): Remove check for exceptional class types.
+
+2013-04-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (FuncDeclaration::toSymbol): Harden logic for marking
+	functions pure as in 'has no side effects'.
+
+2013-04-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (FuncDeclaration::toSymbol): Push deferred functions to
+	FuncDeclaration::deferred.
+	* d-elem.cc (DelegateExp::toElem): Likewise.
+	(FuncExp::toElem): Likewise.
+	* d-objfile.cc (ObjectFile::shouldEmit): Likewise.
+	(FuncDeclaration::toObjFile): Process all deferred functions in
+	FuncDeclaration::deferred.
+	* symbol.cc (Symbol::deferredNestedFuncs): Remove.
+
+2013-04-05  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-elem.cc (FuncExp::toElem): Defer function literals and lambdas
+	until parent function has finished processing.
+
+2013-04-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::buildChain): Use __frame decl directly when
+	setting up the function frame.
+	(maybe_set_builtin_frontend): Exit early if symbol has no parent.
+	* d-decls.cc (FuncDeclaration::toSymbol): Defer all nested functions,
+	not just templated instances.
+	* d-objfile.cc (FuncDeclaration::toObjFile): Delay processed deferred
+	nested functions until function has finished being generated.
+	(ObjectFile::shouldEmit): Don't emit nested functions if the parent
+	function hasn't finished processing.
+
+2013-04-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (maybe_set_builtin_frontend): Merged from
+	maybe_set_builtin and maybe_set_libcall.
+	* d-decls.cc (FuncDeclaration::toSymbol): Use
+	maybe_set_builtin_frontend.
+
+2013-03-31  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_init_options): Default module info emission to on.
+	(d_handle_option): New femit-moduleinfo switch.
+	* d-objfile.cc (Module::genobjfile): Don't emit module if disabled
+	explicitly.
+	* d-builtins.cc (is_intrinsic_module_p): New function to test whether
+	module is core.bitops.
+	(is_math_module_p): New function to test whether module is std.math or
+	core.stdc.math.
+	(is_builtin_va_arg_p): New function to test whether symbol is
+	specially handled va_arg template.
+	(is_builtin_va_start_p): New function to test whether symbol is
+	specially handled va_start template.
+	* d-codegen.cc (IRState::binding): Replace with bind_expr.
+	(IRState::mathModule): Replace with std_math_module.
+	(IRState::mathCoreModule): Replace with core_math_module.
+	(IRState::intrinsicModule): Replace with std_intrinsic_module.
+	(IRState::cstdargTemplateDecl): Replace with va_arg_template.
+	(IRState::stdargTemplateDecl): Replace with va_arg2_template.
+	(IRState::cstdargStartTemplateDecl): Replace with va_start_template.
+	(IRState::getLibCallDecl): Replace with get_libcall.
+	(IRState::maybeSetLibCallDecl): Replace with maybe_set_libcall.
+	(IRState::libCall): Replace with build_libcall.
+	(IRState::maybeSetUpBuiltin): Replace with maybe_set_builtin.
+	(IRState::Intrinsic): Move enum out of IRState.
+
+2013-03-30  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::darrayPtrRef): Replace with d_array_ptr.
+	(IRState::darrayLenRef): Replace with d_array_length.
+	(IRState::darrayVal): Replace with d_array_value.
+	(IRState::darrayString): Replace with d_array_string.
+	(IRState::arrayLength): Replace with get_array_length.
+	(get_object_method): Remove dependancy on irs parameter.
+	* d-lang.cc (d_init): Use static bool std_inc to determine whether to
+	include standard module paths.
+	(d_post_options): Canonicalize the input filename.
+	(d_parse_file): Correctly catch cases where input file is stdin.
+
+2013-03-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::getFrameInfo) Create a custom static chain for
+	all nested functions.
+	* d-gcc-includes.h: Rename to d-system.h
+
+2013-03-23  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.c (d_bi_init): Set REALPAD to be TYPE_PRECISION of
+	long_double_type_node.
+	* d-codegen.cc (IRState::twoFieldType): Replace with
+	build_two_field_type.
+	(IRState::arrayOpNotImplemented): Replace with unhandled_arrayop_p.
+	(IRState::delegateMethodRef): Replace with delegate_method.
+	(IRState::delegateObjectRef): Replace with delegate_object.
+	(IRState::delegateVal): Replace with build_delegate_cst.
+	(IRState::methodCallExpr): Replace with build_method_call.
+	(IRState::extractMethodCallExpr): Replace with
+	extract_from_method_call.
+	(IRState::objectInstanceMethod): Replace with get_object_method.
+	(IRState::twoFieldCtor): Remove.
+	(IRState::call): Assert that if calling a normal FUNCTION_TYPE,
+	'object' is not set.
+	* d-ctype.cc (TypeDelegate::toCtype): Build a METHOD_TYPE for the .func
+	field type in delegates.
+	* d-lang.h (D_IS_METHOD_CALL_EXPR): Rename to D_METHOD_CALL_EXPR.
+	* d-objfile.cc (FuncDeclaration::toObjFile): Remove assert for chain
+	function.
+
+2013-03-20  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-codegen.cc (IRState::objectInstanceMethod): Recursively check
+	for TOKsuper / TOKdottype. Do not ignore CastExp.
+	* d-elem.cc (IdentityExp::toElem): Ignore padding in bitwise floating
+	point comparisons.
+	* testsuite: Cleanup. Remove invalid tests, adjust tests, etc. 
+
+2013-03-20  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::objectInstanceMethod): Get function pointer
+	off function TREE_TYPE.
+	(build_deref): Handle cases where expression to dereference is an
+	address expression.
+	(modify_expr): New function overload to set return type directly.
+	* d-elem.cc (CatAssignExp::toElem): Use new modify_expr.
+	(AssignExp::toElem): Likewise.
+	* d-decls.cc (FuncDeclaration::toSymbol): Don't build a method type for
+	nested functions / delegates.  Just add on the hidden 'this' pointer
+	containing the custom static chain/closure object.
+
+	* d-codegen.cc (GlobalValues): Replace with current_module,
+	current_irs, object_file.
+	(IRState::getFuncType): Replace with get_function_type.
+	(IRState::isCallByAlias): Replace with call_by_alias_p.
+	(IRState::isFuncType): Replace with function_type_p.
+	(IRState::doExp): Remove.
+
+	* d-asmstmt.cc (ExtAsmStatement::syntaxCopy): Use arraySyntaxCopy to
+	copy front end expressions.
+
+	* d-codegen.cc (AssignExp::toElem): Call _d_arrayassign / _d_arrayctor
+	when assigning arrays of structs.
+
+2013-03-18  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::realPart): Replace with real_part.
+	(IRState::imagPart): Replace with imaginary_part.
+	(IRState::integerConstant): Replace with build_integer_cst.
+	(IRState::floatConstant): Replace with build_float_cst.
+	(IRState::hwi2toli): Replace with cst_to_hwi.
+	(IRState::addressOf): Replace with build_address.
+	(IRState::markAddressable): Replace with d_mark_addressable.
+	(IRState::markUsed): Replace with d_mark_used.
+	(IRState::markRead): Replace with d_mark_read.
+	(IRState::indirect): Replace with indirect_ref.
+	(IRState::pvoidOkay): Replace with void_okay_p.
+	(IRState::maybeCompound): Replace with maybe_compound_expr.
+	(IRState::maybeVoidCompound): Replace with maybe_vcompound_expr.
+	(IRState::isErrorMark): Replace with error_mark_p.
+	(IRState::getTargetSizeConst): Replace with tree_to_hwi.
+	(IRState::modify): Replace with modify_expr.
+	(IRState::vmodify): Replace with vmodify_expr.
+	(IRState::vinit): Replace with build_vinit.
+	(IRState::nop): Replace with build_nop.
+	(IRState::vconvert): Replace with build_vconvert.
+	(IRState::boolOp): Replace with build_boolop.
+	(IRState::compound): Replace with compound_expr.
+	(IRState::voidCompound): Replace with vcompound_expr.
+	(IRState::component): Replace with component_ref.
+	(IRState::errorMark): Replace with error_mark.
+	(IRState::typesSame): Replace with d_types_same.
+	(IRState::typesCompatible): Replace with d_types_compatible.
+	(IRState::getDType): Replace with build_dtype.
+	(IRState::getObjectType): Replace with build_object_type.
+	(IRState::isDeclarationReferenceType): Replace with decl_reference_p.
+	(IRState::trueDeclarationType): Replace with declaration_type.
+	(IRState::isArgumentReferenceType): Replace with arg_reference_p.
+	(IRState::trueArgumentType): Replace with type_passed_as.
+	(IRState::arrayType): Replace with d_array_type.
+	(IRState::addTypeAttribute): Replace with insert_type_attributes.
+	(IRState::addDeclAttribute): Replace with insert_decl_attributes.
+	(IRState::attributes): Replace with build_attributes.
+	(IRState::addTypeModifiers): Replace with insert_type_modifiers.
+	(IRState::maybeMakeTemp): Replace with maybe_make_temp.
+	(IRState::isFreeOfSideEffects): Replace with d_has_side_effects.
+	(IRState::pointerOffsetOp): Replace with build_offset_op.
+	(IRState::pointerOffset): Replace with build_offset.
+	(IRState::buildCall): Replace with d_build_call.
+	(IRState::exceptionObject): Replace with build_exception_object.
+
+2013-03-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-asmstmt.cc (d_build_asm_stmt): Remove.
+	(ExtAsmStatement::ExtAsmStatement): Update to match renamed members.
+	(ExtAsmStatement::syntaxCopy): Likewise.
+	(ExtAsmStatement::semantic): Likewise.
+	(ExtAsmStatement::toCBuffer): Likewise.
+	(ExtAsmStatement::comeFrom): New.
+	(ExtAsmStatement::blockExit): Don't error if must not throw.
+	(naturalString): Remove.
+	(ExtAsmStatement::toIR): Inline IRState::doAsm implementation.
+	* d-codegen.cc (IRState::doAsm): Remove.
+	* d-decls.cc (FuncDeclaration::toSymbol): Don't generate 'naked'
+	attribute.
+	(binfo_for): Move into d-decls.cc.
+	(intfc_binfo_for): Likewise.
+	(ClassDeclaration::toDebug): Likewise.
+	(EnumDeclaration::toDebug): Likewise.
+	(TypedefDeclaration::toDebug): Likewise.
+	(StructDeclaration::toDebug): Likewise.
+	* d-objfile.cc (FuncDeclaration::toObjFile): Move into d-objfile.cc.
+	(FuncDeclaration::buildClosure): Likewise.
+	(Module::genobjfile): Likewise.
+	* d-glue.cc: Remove file.
+
+2013-03-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-ir.cc (SynchronizedStatement::toIR): Remove implementation as is
+	now handled by the frontend.
+
+2013-03-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (IRState::maybeExpandSpecialCall): Handle ref argptr
+	arguments.
+
+2013-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-builtins.c (handle_alias_attribute): New function to handle
+	internal 'alias' attribute.
+	(handle_weakref_attribute): New function to handle internal 'weakref'
+	attribute.
+	* d-objfile.cc (ObjectFile::outputThunk): Define thunks to external
+	symbols as weakref, alias
+
+2013-03-12  Johannes Pfau  <johannespfau@gmail.com>
+
+	* patch-versym-os-4.8.x (mingw32.h): Fix typo
+	* patch-versym-cpu-4.8.x (mips.h): Fix typo
+	Update version symbols to latest dlang specification.
+
+2013-03-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (FuncDeclaration::toSymbol): Delay setting TREE_TYPE as
+	function type could be hidden in a nested function not yet built.
+	* d-codegen.cc (IRState::findThis): Don't get 'this' from outer
+	function if it's a closure type.  This has already been handled by
+	IRState::getFrameForSymbol.
+	(IRState::buildChain): Give frame decl debug name '__frame'.
+	Always set '__chain' link field.
+	(IRState::getFrameInfo): Don't build a frame for all nested functions.
+	Search through nested aggregates for static chain in outer functions.
+	* d-codegen.h (IRState::useParentChain): Remove.
+	* d-glue.cc (FuncDeclaration::toObjFile): Don't call useParentChain.
+	Don't create a local var for the chain link for a function.
+	(FuncDeclaration::buildClosure): Always set '__chain' link field.
+
+2013-03-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (d_gcc_force_templates): Only check for emitting
+	templates as private.
+	* d-lang.cc (d_handle_option): Remove -femit-templates= option.
+	* d-objfile.cc (ObjectFile::makeDeclOneOnly): Fix code logic so
+	fallback method could be reached.
+	* d-objfile.h (TEall, TEauto): Remove.
+
+2013-03-07  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-ir.cc (ReturnStatement::toIR): Don't call postblit on return.
+	* d-codegen.cc (IRState::trueDeclarationType): Don't set
+	D_TYPE_ADDRESSABLE.
+	(IRState::makeTemp): Remove.
+	(IRState::maybeMakeTemp): Copy makeTemp into function.
+	* d-glue.cc (d_genericize): Remove D_TYPE_ADDRESSABLE handling.
+	* d-lang.h (D_TYPE_ADDRESSABLE): Remove macro.
+
+2013-03-04  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-ctype.cc (Type::toCtype): Always call gen.addTypeModifiers to
+	make sure TYPE_MAIN_VARIANT is set. Reuse tree from unqualified
+	variant for that. Also cache the resulting qualified tree.
+	(TypeTypedef::toCtype): Likewise.
+	(TypeEnum::toCtype): Likewise.
+	(TypeStruct::toCtype): Likewise.
+	(TypeFunction::toCtype): Likewise.
+	(TypeVector::toCtype): Likewise.
+	(TypeSArray::toCtype): Likewise.
+	(TypeDArray::toCtype): Likewise.
+	(TypeAArray::toCtype): Likewise.
+	(TypeDelegate::toCtype): Likewise.
+	(TypeClass::toCtype): Likewise.
+	* d-objfile.cc (ObjectFile::giveDeclUniqueName): Make sure DECL_NAME is set
+
+2013-03-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-decls.cc (VarDeclaration::toSymbol): Remove use of c_ident.
+	(FuncDeclaration::toSymbol): Likewise.
+	* d-builtins.c (handle_noreturn_attribute): Assert that this is only
+	used for internal purposes.
+	(handle_const_attribute): Likewise.
+	(handle_malloc_attribute): Likewise.
+	(handle_pure_attribute): Likewise.
+	(handle_nonnull_attribute): Likewise.
+	(handle_nothrow_attribute): Likewise.
+	(handle_sentinel_attribute): Likewise.
+	(handle_transaction_pure_attribute): Likewise.
+	(handle_returns_twice_attribute): Likewise.
+	* d-glue.cc (FuncDeclaration::toObjFile): Result variables have no
+	default initialiser.
+	* d-codegen.cc (IRState::emitLocalVar): Add in assert that the local
+	variable has no initialiser if called with no_init = true.
+	(IRState::getLibCallDecl): Mark exceptional library functions as
+	noreturn.
+	(IRState::attributes): Gracefully handle @attribute, and
+	@attribute(null).
+
+2013-02-28  Jernej Krempus  <jkrempus@gmail.com>
+
+	* d-builtins.c (d_attribute_table): Renamed it to
+	d_builtins_attribute_table.
+	* d-lang.cc (d_attribute_table): Added an empty table
+	* d-lang.cc (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Defined it as
+	d_builtins_attribute_table.
+	* d-lang.h (d_builtins_attribute_table): Added a declaration.
+	* d-codegen.cc (IRState::attributes): Changed it so it goes through
+	in_attrs and looks for any @gcc.attribute.attribute("attr_name").
+	* d-objfile.cc (ObjectFile::setupSymbolStorage): Pass userAttributes
+	instead of attributes in all calls to IRState::attributes.
+	* d-ctype.cc (TypeTypedef::toCtype): Likewise.
+	(TypeEnum::toCtype): Likewise.
+	(TypeStruct::toCtype): Likewise.
+	(TypeClass::toCtype): Likewise.
+	* libphobos/libdruntime/gcc/attribute.d: New file.
+
+2013-02-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_handle_option): Remove OPT_fdeprecated and
+	OPT_Wsign_compare, add handling for OPT_Wdeprecated.
+	(d_post_options): Handle Wdeprecated and Werror switch combination.
+
+2013-02-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-codegen.cc (ArrayScope::ArrayScope): Don't setup length var if its
+	value is known at compile time.
+	(ArrayScope::setArrayExp): Likewise.
+	* d-decls.cc (uniqueName): Remove function.
+	(VarDeclaration::toSymbol): Set decl assembler name directly.
+	(FuncDeclaration::toSymbol): Likewise.
+
+2013-02-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* Make-lang.in (GDC_EXTENDED_ASM_SYNTAX): Remove macro.
+
+2013-02-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.h (D_DECL_IS_CONTRACT): Remove macro.
+	* d-decls.cc (FuncDeclaration::toSymbol): Likewise.
+
+2013-02-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-lang.cc (d_gcc_is_target_win32): Remove.
+	(d_add_builtin_version): New function to handle define_builtin
+	callback from backend.
+	* d-codegen.cc (IRState::maybeExpandSpecialCall): Remove intrinsic bt.
+
+	* d-builtins.c: Merge with d-builtins2.cc.
+	* d-builtins2.cc: Remove.
+
+2013-02-07  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-lang.cc (d_init): Use gcc's config system for predefined OS versions.
+	* setup-gcc.sh: Likewise.
+	* target-ver-syms.sh: Likewise.
+
+2013-02-05  Iain Buclaw  <ibuclaw@ubuntu.com>
+
+	* d-builtins2.cc (gcc_type_to_d_type): Remove STRUCTTHISREF condition.
+	* d-decls.cc (FuncDeclaration::toSymbol): Likewise.
+	* d-elem.cc (ThisExp::toElem): Likewise.
+	* d-ctype.cc (TypeSArray::toCtype): Remove SARRAYVALUE condition.
+	* d-codegen.cc (IRState::isDeclarationReferenceType): Likewise.
+	(IRState::isArgumentReferenceType): Likewise.
+
+2013-02-01  Johannes Pfau  <johannespfau@gmail.com>
+
+	* d-lang.cc (d_init): Use gcc's config system for predefined CPU versions.
+	(d_init): Fix definition of D_LP64 version.
+	* setup-gcc.sh: Likewise.
+	* target-ver-syms.sh: Likewise.
+
+
+Copyright (C) 2013 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.