2016-12-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* expr.cc (ExprVisitor::visit(VarExp)): Remove type forced conversion.

2016-12-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (d_handle_option): Handle -ftransition=safe.
	* lang.opt (ftransition=safe): Add compiler option.

2016-12-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (d_init_options): Initialize hdrStripPlainFunctions.
	(d_post_options): Add post option handling of flag.

2016-12-27  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (layout_aggregate_type): Adjust layout of D interfaces.
	Only add a __vptr field if no base interfaces, don't add __monitor.

2016-12-27  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (d_parse_file): Run runDeferredSemantic2 after semantic2.

2016-12-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	* expr.cc (ExprVisitor::visit(ArrayLiteralExp)): Use getElement to
	index elements array.
	(ExprVisitor::visit(VectorExp)): Likewise.

2016-12-25  Iain Buclaw  <ibuclaw@gdcproject.org>

	* Make-lang.in (D_DMD_OBJS): Add d/objc.o
	* types.cc (TypeVisitor::visit(TypeFunction)): Handle ObjC linkage.

2016-12-25  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (mangle_decl): New function.
	(make_internal_name): Update.
	(get_symbol_decl): Update.

2016-12-24  Iain Buclaw  <ibuclaw@gdcproject.org>

	* expr.cc (ExprVisitor::needs_dtor): New function.
	(ExprVisitor::lvalue_p): New function.
	(ExprVisitor::visit(AssignExp)): Check both for postblit and dtors
	when generating array assignments.

2016-12-24  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (convert_expr): Allow upcasting C++ classes.
	(build_class_instance): Generate initial values of vtable interfaces
	before class fields.
	(layout_aggregate_type): Layout vtable interfaces before class fields.
	* d-decls.cc (get_symbol_decl): Build DECL_ARGUMENTS for functions
	that have no body.

2016-12-22  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-target.cc (Target::cppExceptions): New variable.
	(Target::init): Initialize it.
	(Target::prefixName): New function.

2016-12-19  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (ClassDeclaration::toObjFile): Use layout_classinfo to
	generate TypeInfo for classes.
	(InterfaceDeclaration::toObjFile): Likewise.
	* d-todt.cc (build_vptr_monitor): Remove function.
	* typeinfo.cc (TypeInfoVisitor::set_field): New function.
	(TypeInfoVisitor::layout_interfaces): New function.
	(TypeInfoVisitor::layout_interface_vtables): New function.
	(TypeInfoVisitor::visit(TypeInfoClassDeclaration)): Implement.
	(layout_classinfo): New function.

2016-12-18  Iain Buclaw  <ibuclaw@gdcproject.org>

	* typeinfo.cc (TypeInfoVisitor): Use build_typeinfo instead of
	get_typeinfo_decl.
	* d-objfile.cc (ClassDeclaration::toObjFile): Use build_constructor to
	build the vtable, instead of using dt_cons.

2016-12-18  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (layout_moduleinfo_fields): Use finish_aggregate_type
	instead of layout_type.
	(layout_classinfo_interfaces): Likewise.

2016-12-17  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (build_dtype): Use static create method for allocating
	frontend types.
	* d-codegen.cc (declaration_type): Likewise.
	(type_passed_as): Likewise.
	(get_libcall): Likewise.
	* d-lang.cc (d_parse_file): Likewise.
	* d-objfile.cc (build_simple_function_decl): Likewise.
	(build_emutls_function): Likewise.
	* d-todt.cc (StructDeclaration::toDt): Likewise.
	* typeinfo.cc (TypeInfoVisitor::visit(TypeInfoInterfaceDeclaration)):
	Likewise.

2016-12-17  Johannes Pfau  <johannespfau@gmail.com>

	* d-decls.cc (copy_struct): Also copy and update TYPE_METHODS.
	* d-spec.c (lang_specific_driver): Do not link in math, thread and
	time libraries. Use a spec file instead to do this.
	(lang_specific_pre_link): Load libgphobos.spec to set up the link
	dependencies for libgphobos.

2016-12-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (build_dtype): Cache all allocated frontend types.
	(builtin_sym): Update constructor.
	(builtin_converted_decls): Rename to builtin_converted_syms.
	(d_build_builtins_module): Check if decl set before assigning parent.

2016-12-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (build_dtype): Set type modifiers on frontend type.

2016-12-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (build_dtype): Don't set default parameter storage
	class as const.

2016-12-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (add_moduleinfo_field): New function.
	(layout_moduleinfo_fields): New function.
	(get_moduleinfo_decl): Use record type for moduleinfo decl.
	* d-objfile.cc (build_moduleinfo_symbol): Delay calling
	get_moduleinfo_decl until after ModuleInfo type is validated.
	(d_finish_symbol): Remove check for unknown_type_node.

2016-12-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (copy_struct): New function.
	(layout_classinfo_interfaces): New function.
	(get_classinfo_decl): Use record type for classinfo decl.
	* d-codegen.cc (create_field_decl): New function.
	Use it instead of build_decl when creating a new FIELD_DECL.

2016-12-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (build_dtype): Don't build generic function types.
	(d_build_builtins_module): Remove check.

2016-12-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_vindex_ref): Move saving of object to callers.
	* expr.cc (ExprVisitor::visit(CallExp)): Save object reference before
	passing to build_vindex_ref.
	(ExprVisitor::visit(DelegateExp)): Likewise.

2016-12-07  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-spec.c (lang_specific_driver): Remove error handling.
	* d-lang.cc (d_parse_file): Don't error twice.

2016-12-06  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-spec.c (lang_specific_driver): Remove 'added' variable.

2016-12-04  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (get_symbol_decl): Use needsCodegen to determine whether
	template instance is extern or not.

2016-12-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-glue.cc (escapePath): Move to dfrontend.
	(readFile): Likewise.
	(writeFile): Likewise.
	(ensurePathToNameExists): Likewise.

2016-12-01  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-target.cc: Include memmodel.h.
	* d-attrib.c (d_handle_section_attribute): No longer set
	user_defined_section_attribute.

2016-11-25  Iain Buclaw  <ibuclaw@gdcproject.org>

	* types.cc (TypeVisitor::visit(Type)): Update.

2016-11-24  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_struct_literal): Stop after first field
	assignment in union constructor.
	(build_class_instance): Skip void initialized fields.
	* expr.cc (ExprVisitor::visit(StructLiteralExp)): Likewise.

2016-11-22  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (get_symbol_decl): Don't set alignment if
	STRUCTALIGN_DEFAULT.

2016-11-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-todt.cc (ClassDeclaration::toDt): Update.
	(ClassDeclaration::toDt2): Remove function.
	(TypeSArray::toDtElem): Remove function.
	(dt_chainon): Remove function.
	(dt_zeropad): Remove function.
	(dt_container): Remove function.
	(dt_container2): Rename to dt_container.  All callers updated.
	* d-objfile.cc (VarDeclaration::toObjFile): Update.

2016-11-20  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (copy_lang_decl): Rename to d_dup_lang_specific_decl.
	(LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
	* d-decls.cc (make_alias_for_thunk): Call dup_lang_specific_decl.
	(make_thunk): Likewise.

2016-11-19  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.h (FuncFrameInfo): Remove type.  All users updated to
	interface with new frame macro accessors.
	(build_frame_type): Mark as static.
	(get_frameinfo): Update to return a tree type.
	* d-lang.cc (LANG_HOOKS_TREE_SIZE): Redefine.
	(LANG_HOOKS_PRINT_XNODE): Redefine.
	(d_tree_size): New function.
	(d_print_xnode): New function.
	(d_tree_node_structure): New function.
	* d-tree.def (FUNCFRAME_INFO): New tree_code.
	* d-tree.h (tree_frame_info): New type.
	(FRAMEINFO_CREATES_FRAME): New macro accessor.
	(FRAMEINFO_STATIC_CHAIN): New macro accessor.
	(FRAMEINFO_IS_CLOSURE): New macro accessor.
	(FRAMEINFO_TYPE): New macro accessor.
	(lang_decl): Replace frame_info field with a tree type.
	(d_tree_node_structure_enum): New type.
	(lang_tree_node): Update GTY tags.

2016-11-19  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (setup_symbol_storage): Remove function.
	(Dsymbol::toSymbol): Remove function and all overrides.  All callers
	updated to call ...
	(get_symbol_decl): ... New function.

2016-11-06  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (output_modules): Remove variable.
	(output_module): Remove variable.
	(d_gcc_get_output_module): Remove function.  All callers updated to
	use Module::rootModule.
	* d-objfile.cc (FuncDeclaration::toObjFile): Mark all functions being
	constructed here as TREE_STATIC.
	(output_module_p): Remove function.  All callers updated to call
	Module::isRoot.

2016-11-05  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (get_template_storage_info): Remove function.
	(setup_symbol_storage): Use Dsymbol::isInstantiated instead.

2016-11-05  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_struct_literal): Handle anonymous fields.
	(build_class_instance): New functions.
	(find_aggregate_field): Update signature.  All callers updated.
	* d-todt.cc (dt_chainon): Mark as static.
	(dt_zeropad): Likewise.
	(dt_container): Likewise.
	(ClassReferenceExp::toInstanceDt): Remove function.
	(ClassReferenceExp::toDt2): Remove function.

2016-11-01  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-tree.h (lang_decl): Remove readonly field.
	(DECL_LANG_READONLY): Remove macro.  All callers updated.

2016-10-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (ClassReferenceExp::toSymbol): Use class record type for
	static symbol.
	* d-lang.cc (global_context): New static variable.
	(global_declarations): New static variable.
	(d_nametype): Pass built-in types to debug_hooks::type_decl.
	(d_add_global_declaration): Remove function, update all callers.
	(get_global_context): New function.
	(d_pushdecl): Push decls to global, or bindings list here.
	(StructDeclaration::toObjFile): Send type decl to d_pushdecl.
	(ClassDeclaration::toObjFile): Likewise.
	(InterfaceDeclaration::toObjFile): Likewise.
	(EnumDeclaration::toObjFile): Likewise.
	(FuncDeclaration::toObjFile): Send finished decl to d_pushdecl.
	(d_finish_symbol): Likewise.
	(emit_modref_hooks): Likewise.
	(d_comdat_linkage): Don't set DECL_COMDAT on non-public decls.
	(setup_symbol_storage): Don't set DECL_ABSTRACT_P on templates.
	(d_finish_compilation): Remove check for type decls.
	(build_type_decl): Don't add to global decl list, just call
	rest_of_decl_compilation.
	* expr.cc (ExprVisitor::visit(ArrayLiteralExp)): Send finished decl to
	d_pushdecl.
	* toir.cc (IRVisitor::visit(SwitchStatement)): Likewise.
	(IRVisitor::end_scope): Mark bind expr as having side effects.
	* typeinfo.cc (TypeInfoVisitor::visit(TypeInfoTupleDeclaration)): Send
	finished decl to d_pushdecl.

2016-10-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (layout_aggregate_type): Continue searching based on
	aggregate members, not just fields.
	* types.cc (TypeVisitor::visit(TypeEnum)): Use void for opaque enums.
	(TypeVisitor::visit(TypeStruct)): Don't give opaque structs a size.

2016-10-27  Iain Buclaw  <ibuclaw@gdcproject.org>

	* expr.cc (ExprVisitor::visit(AssignExp)): Don't set TREE_ADDRESSABLE.
	* d-codegen.cc (build_assign): Handle setting up INIT_EXPR from a
	value returning via NRVO here instead.

2016-10-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (d_build_call): Only convert CALL_EXPRs into a
	TARGET_EXPR if return type is TREE_ADDRESSABLE.
	(build_assign): Use TARGET_EXPR accessors.
	(compound_expr): Likewise.

2016-10-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.h (d_types_same): Return early if types are identical.

2016-10-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (FuncDeclaration::toThunkSymbol): Rename to make_thunk.
	All callers updated.
	(finish_thunk): Update signature.

2016-10-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.h (Thunk): Remove type, move offset field to ...
	* d-tree.h (lang_decl): ... here.  Replace Thunk field with a tree.
	(THUNK_LANG_OFFSET): New macro accessor.
	* d-lang.cc (copy_lang_decl): New function.
	* d-decls.cc (FuncDeclaration::toThunkSymbol): Use new thunk macros.

2016-10-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (finish_thunk): Add assert that current_function_decl is
	never set when function is called.
	(DeferredThunk): Remove type.
	(deferred_thunks): Remove variable.
	(write_deferred_thunks): Remove function.  All callers updated.
	(use_thunk): Remove function.
	(FuncDeclaration::toThunkSymbol): Call finish_thunk when done.

2016-10-08  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (deferred_thunks): Move to d-decls.cc.
	(write_deferred_thunks): Likewise.
	(use_thunk): Likewise.  Mark as static.
	(thunk_labelno): Likewise.
	(make_alias_for_thunk): Likewise.
	(finish_thunk): Likewise.

2016-10-08  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (setup_symbol_storage): Remove unused parameters.

2016-10-07  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (ClassReferenceExp::toSymbol): Rename to
	build_new_class_expr.  All callers updated.
	(StructLiteralExp::toSymbol): Remove function.  Inline into caller ...
	* expr.cc (ExprVisitor::visit(AddrExpr)): ... here.

2016-10-07  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (TypeInfoDeclaration::toSymbol): Rename to
	get_typeinfo_decl.  All callers updated.
	(TypeInfoDeclVisitor): New visitor helper for get_typeinfo_decl.
	* d-codegen.cc (get_decl_tree): Add check for building typeinfo decls.

2016-10-05  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (AggregateDeclaration::toInitializer): Rename to
	aggregate_initializer.  All callers updated.
	(EnumDeclaration::toInitializer): Rename to enum_initializer.
	(Module::toSymbol): Rename to get_moduleinfo_decl.
	(ClassDeclaration::toSymbol): Rename to get_classinfo_decl.
	(InterfaceDeclaration::toSymbol): Merge into get_classinfo_decl.

2016-10-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (FuncDeclaration::toSymbol): Remove saving of current
	module decl before calling semantic.
	(StructLiteralExp::toSymbol): Don't handle sinit.
	(ClassReferenceExp::toSymbol): Likewise.
	(AggregateDeclaration::toInitializer): Likewise.
	(EnumDeclaration::toInitializer): Likewise.
	* d-glue.cc (toInitializer): Remove function.
	* d-objfile.cc (FuncDeclaration::toObjFile): Remove saving of current
	module decl before calling semantic.
	* expr.cc (ExprVisitor::visit(CallExpr)): Replace accesses of sinit
	field with useStaticInit.
	(ExprVisitor::visit(StructLiteralExp)): Likewise.

2016-10-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (ClassDeclaration::toVtblSymbol): Rename to
	get_vtable_decl.  All callers updated.

2016-10-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (setup_symbol_storage): Move function to ...
	* d-decls.cc (setup_symbol_storage): ... here.  Mark as static.
	(get_template_storage_info): Likewise.

2016-10-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (call_by_alias_p): Check whether caller and callee are
	nested in the same parent function.
	* expr.cc (ExprVisitor::visit(CallExp)): Set TREE_PUBLIC directly
	instead of calling setup_symbol_storage.

2016-10-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (VarDeclaration::toObjFile): Always generate
	DECL_INITIAL for all kinds of var decls.
	* d-codegen.cc (build_address): Use the DECL_INITIAL directly if
	taking the address of a CONST_DECL.

2016-10-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-tree.h (DECL_LANG_TREE): Remove macro.  All callers updated.

2016-10-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.h (Symbol): Remove struct.  Update all functions to return
	a tree instead.  Remove all new allocations of Symbol.
	* d-tree.h (DECL_LANG_READONLY): Update accessor.
	(DECL_LANG_INITIAL): Likewise.
	(DECL_LANG_TREE): Likewise.
	(SET_DECL_LANG_FRAME_FIELD): Likewise.
	(DECL_LANG_FRAME_FIELD): Likewise.
	(SET_DECL_LANG_NRVO): Likewise.
	(DECL_LANG_NRVO): Likewise.
	(DECL_LANG_THUNKS): Likewise.
	(DECL_LANG_FRAMEINFO): Likewise.

2016-10-01  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.h (Symbol): Remove symbol identifier field.
	* d-tree.h (DECL_LANG_IDENTIFIER): Remove macro.  Update callers to
	instead use DECL_ASSEMBLER_NAME.
	(DECL_LANG_PRETTY_NAME): Remove macro.

2016-09-26  Johannes Pfau  <johannespfau@gmail.com>

	* d-objfile.cc (d_finish_function): Handle template mixins (issue 231).

2016-09-25  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (Dsymbol::toSymbolX): Remove function, update all callers
	to use ...
	(make_internal_name): ... New function.
	* d-objfile.h (Symbol): Replace char* fields with tree.
	* d-tree.h (lang_identifier): Add pretty_ident field.
	(IDENTIFIER_PRETTY_NAME): New macro accessor.
	(DECL_LANG_PRETTY_NAME): Update to use IDENTIFIER_PRETTY_NAME.

2016-09-19  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.h (Symbol): Move declaration-specific fields to ...
	* d-tree.h (lang_decl): ... here.
	(DECL_LANG_READONLY): Update to reference lang_decl field.
	(DECL_LANG_INITIAL): Likewise.
	(DECL_LANG_FRAME_FIELD): Likewise.
	(DECL_LANG_NRVO): Likewise.
	(DECL_LANG_THUNKS): Likewise.
	(DECL_LANG_FRAMEINFO): Likewise.
	(SET_DECL_LANG_FRAME_FIELD): New setter macro, update all callers.
	(SET_DECL_LANG_NRVO): Likewise.

2016-09-19  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (d_build_builtins_module): Set DECL_LANG_SPECIFIC
	before using any DECL_LANG accessor macros.
	(maybe_set_builtin_1): Likewise.
	* d-codegen.cc (maybe_set_intrinsic): Likewise.
	(layout_aggregate_members): Likewise.
	d-decls.cc (VarDeclaration::toSymbol): Likewise.
	(FuncDeclaration::toThunkSymbol): Likewise.
	(ClassDeclaration::toSymbol): Likewise.
	(InterfaceDeclaration::toSymbol): Likewise.
	(Module::toSymbol): Likewise.
	(StructLiteralExp::toSymbol): Likewise.
	(ClassReferenceExp::toSymbol): Likewise.
	(ClassDeclaration::toVtblSymbol): Likewise.
	(AggregateDeclaration::toInitializer): Likewise.
	(EnumDeclaration::toInitializer): Likewise.

2016-09-19  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-tree.h (DECL_LANG_IDENTIFIER): New macro accessor, use instead of
	direct field accesses.
	(DECL_LANG_PRETTY_NAME): Likewise.
	(DECL_LANG_READONLY): Likewise.
	(DECL_LANG_INITIAL): Likewise.
	(DECL_LANG_TREE): Likewise.
	(DECL_LANG_FRAME_FIELD): Likewise.
	(DECL_LANG_NRVO): Likewise.
	(DECL_LANG_THUNKS): Likewise.
	(DECL_LANG_FRAMEINFO): Likewise.

2016-09-18  Iain Buclaw  <ibuclaw@gdcproject.org>

	* imports.cc (ImportVisitor::visit(ScopeDsymbol)): New visit method.

2016-09-17  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-todt.cc (ArrayInitializer::toDt): Update to use build_expr.
	* d-codegen.cc (d_array_value): Don't override default const and
	static bits for array constructors.

2016-09-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (lower_struct_comparison): Don't compare vectors in the
	same way as integers.

2016-09-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-todt.cc (Type::toDt): Remove function, inline into callers.
	(TypeVector::toDt): Likewise.
	(TypeSArray::toDt): Likewise.
	(TypeStruct::toDt): Likewise.

2016-09-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-decls.cc (FuncDeclaration::toSymbol): Save current module decl
	before calling function semantic.
	* d-objfile.cc (FuncDeclaration::toObjFile): Likewise.

2016-09-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	* types.cc: Document and reformat file.

2016-09-10  Johannes Pfau  <johannespfau@gmail.com>

	* d-objfile.cc (setup_symbol_storage): Setup TREE_PUBLIC before
	calling decl_default_tls_model.
	* d-typeinfo.cc (TypeInfoVisitor::find_field): Move method...
	* d-codegen.cc (find_aggregate_field): here.
	* d-objfile.cc (build_simple_function): Extract some code into new
	function.
	(build_simple_function_decl): Extracted from build_simple_function.
	* d-objfile.cc (build_moduleinfo): Split into emit_moduleinfo_hooks
	and emit_modref_hooks.
	(build_dso_registry_var): New function.
	(emit_dso_registry_cdtor): Likewise.
	(emit_dso_registry_helpers): Likewise.
	(emit_dso_registry_hooks): Likewise.
	(emit_moduleinfo_hooks): Only emit hooks if required druntime functions
	are available.
	* d-objfile.cc (Module::genmoduleinfo): Rename to
	build_moduleinfo_symbol.
	(emit_moduleinfo_hooks): rename to Module::genmoduleinfo.
	(Module::genmoduleinfo): only call build_moduleinfo_symbol when
	emitting module info registry code.
	* d-spec.c (lang_specific_driver): Add -shared-libphobos option,
	default to static libphobos.
	* d-lang.opt: Likewise.
	* d-spec.c: Rename libgphobos2 to libgphobos.

2016-07-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (get_frameinfo): Use hasNestedFrameRefs to determine
	whether a frame should be created.

2016-07-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (FuncDeclaration::toObjFile): Always convert the
	DECL_RESULT of NRVO-capable functions into reference decls.

2016-06-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-attribs.c (handle_nonnull_attribute): Accept the nonnull
	attribute in type-generic builtins.
	* d-codegen.cc (d_build_call): Check AGGREGATE_TYPE_P before testing
	for aggregate_value_p.

2016-06-20  Johannes Pfau  <johannespfau@gmail.com>

	* d-lang.cc (d_handle_option): Add new -ftransition=dip25 and
	-fmax-error-messages switches.
	* lang.opt: Likewise.

2016-06-19  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (get_decl_tree): Remove assert for RESULT_DECL.
	(convert_for_argument): Handle lazy arguments early.
	(argument_reference_p): Handle types marked TREE_ADDRESSABLE.
	(lvalue_p): Add case for TARGET_EXPR.
	(d_mark_addressable): Likewise.
	(build_assign): Likewise.
	(compound_expr): Likewise.
	(build_target_expr): New function.
	(d_build_call): Always set CALL_EXPR_RETURN_SLOT_OPT for all calls
	that return an aggregate in memory.
	* d-decls.cc (VarDeclaration::toSymbol): Handle reference parameters.
	* d-lang.cc (d_gimplify_expr): Handle taking address of constructor.
	* d-objfile.cc (FuncDeclaration::toObjFile): Handle reference return.
	* expr.cc (ExprVisitor::visit(AssignExp)): Mark LHS as addressable if
	RHS assignment is a returned aggregate.
	* types.cc (TypeVisitor::visit(TypeStruct)): Mark the RECORD_TYPE of
	non-trivial structs as TREE_ADDRESSABLE.
	(TypeVisitor::visit(TypeClass)): Mark all classes as TREE_ADDRESSABLE.
	(TypeVisitor::visit(TypeFunction)): Don't set TREE_ADDRESSABLE.
	(TypeVisitor::visit(TypeDelegate)): Likewise.

2016-06-19  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (lvalue_p): Add more cases to look for.
	(build_address): Mark expression as addressable after stabilizing.
	(d_mark_addressable): Remove special cases.
	(d_mark_used): Add cases for other kinds of DECLs.
	(build_struct_comparison): Stabilize before saving.
	(modify_expr): Remove overload.  Updated all callers.
	(build_vinit): Remove function.  Updated all callers to use ...
	(build_assign): ... New function.
	(lvalue_p): Remove tests in default case.
	* expr.cc (build_expr_dtor): Rewrite assignments to elide a temporary.

2016-06-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (make_temp): Rename to d_save_expr.
	(maybe_make_temp): Remove function.
	Updated all callers to use d_save_expr().
	(vcompound_expr): Remove function.
	Updated all callers to use compound_expr().
	(maybe_compound_expr): Likewise.
	(maybe_vcompound_expr): Likewise.
	(vmodify_expr): Remove function.
	Updated all callers to use modify_expr().
	(lvalue_p): New function.

2016-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (add_stmt): Don't add statements without side effects.
	Push each COMPOUND_EXPR as a separate statement.
	(build_local_temp): Use input_location.
	(create_temporary_var): Likewise.
	(d_has_side_effects): Remove function.
	Updated all callers to use TREE_SIDE_EFFECTS.
	(stabilize_expr): New function.
	Updated all routines that check for COMPOUND_EXPR to use it.
	* expr.cc (ExprVisitor::visit(EqualExp)): Use maybe_make_temp to save
	expressions.  Use build_boolop for constructed conditions.
	(ExprVisitor::visit(CatAssignExp)): Stabilize RHS before assignment.
	(ExprVisitor::visit(NewExp)): Don't always create SAVE_EXPR.
	(ExprVisitor::visit(AssocArrayLiteralExp)): Likewise.
	(ExprVisitor::visit(ArrayLiteralExp)): Evaluate elements before
	appending to constructor fields.
	(ExprVisitor::visit(StructLiteralExp)): Likewise.

2016-06-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-convert.cc (d_build_truthvalue_op): Fold truthvalue operation.
	(d_truthvalue_conversion): Use zero constant of expression type.

2016-06-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_address): Handle ERROR_MARK and COMPOUND_EXPR.
	(build_nop): Likewise.
	(indirect_ref): Likewise.
	(build_deref): Likewise.
	(d_build_call): Only create temporaries if more than one argument has
	side effects.
	* expr.cc (get_compound_value): Remove function.
	(build_expr_dtor): Wrap cleanups in a TRY_FINALLY_EXPR only if the
	expression has side effects.

2016-06-08  Iain Buclaw  <ibuclaw@gdcproject.org>

	* Make-lang.in (D_GLUE_OBJS): Remove d-typinf.o, add typeinfo.o.
	* d-codegen.cc (build_typeinfo): Move to ...
	* typeinfo.cc: ... here.  New file.
	* d-objfile.cc (TypeInfoDeclaration::toObjFile): Use layout_typeinfo.
	* d-todt.cc (verify_structsize): Remove function.
	(TypeInfoDeclaration::toDt): Remove function and overrides.
	* d-typinf.cc: Remove file.  Contents moved to typeinfo.cc.
	* expr.cc (ExprVisitor::visit(DeleteExp)): Use build_typeinfo.
	(ExprVisitor::visit(NewExp)): Likewise.

2016-06-08  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dfrontend: Update to D front-end version 2.068.
	* d-codegen.cc (insert_type_modifiers): Don't build TYPE_QUAL_VOLATILE
	types.  Set TYPE_SHARED instead.
	(insert_aggregate_field): Propagate TYPE_SHARED to TREE_ADDRESSABLE.
	(array_bounds_check): Use BOUNDSCHECK interface.
	* d-lang.cc (d_init_options): Likewise.
	(d_init): Likewise.
	(d_handle_option): Likewise.
	(d_post_options): Likewise.
	* d-decls.cc (VarDeclaration::toSymbol): Propagate TYPE_SHARED_to
	TREE_ADDRESSABLE.
	* d-objfile.cc (ClassDeclaration::toObjFile): Make overload shadowing
	an error.  Remove call to _d_hidden_func.
	(TypeInfoDeclaration::toObjFile): Updated template emission rules.
	(FuncDeclaration::toObjFile): Likewise.
	* d-port.cc (Port::readwordLE): New function.
	(Port::readwordBE): New function.
	(Port::readlongLE): New function.
	(Port::readlongBE): New function.
	* d-todt.cc (dt_container2): Handle error_mark_node.
	(dt_container): Likewise.
	(TypeInfoStructDeclaration::toDt): Updated template emission rules.
	* d-typinf.cc (genTypeInfo): Likewise.
	(getTypeInfo): Remove function.
	(getTypeInfoType): New function.
	(isSpeculativeType): New function.
	* d-tree.h (TYPE_SHARED): New macro.
	* expr.cc (ExprVisitor::visit(CondExp)): Don't generate dtors in
	condition expression.
	(ExprVisitor::visit(AssignExp)): Update for frontend changes.
	(ExprVisitor::visit(DeleteExp)): Likewise.
	(ExprVisitor::visit(CallExp)): Likewise.
	(ExprVisitor::visit(DelegateExp)): Likewise.
	(ExprVisitor::visit(TypeidExp)): New function.
	* lang.opt (bounds_check_set_manually): Remove variable.
	(ftransition=complex): New option.
	* runtime.def (HIDDEN_FUNC): Remove runtime function.

2016-06-07  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_alignment_field): New function.
	(build_struct_literal): Update signature, updated all callers.
	Add anonymous fields to fill alignment holes in constructor.
	(fill_alignment_field): Remove function.
	(fill_alignment_holes): Remove function.
	(finish_aggregate_type): Don't add anonymous fields.

2016-06-05  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (d_build_call): Separate parameter to pass from it's
	construction expression.
	* expr.cc (build_dtor_list): New function.
	(get_compound_value): New function.
	(build_expr_dtor): Update to use helper functions.
	(build_return_dtor): New function.
	* toir.cc (IRVisitor::visit(ReturnStatement)): Use it.

2016-06-04  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_deref): Handle ERROR_MARK nodes early.
	(build_array_index): Likewise.

2016-05-29  Johannes Pfau  <johannespfau@gmail.com>

	* toir.cc (IRVisitor::visit(SwitchStatement)): Set correct type for the
	string table for switch(string) statements.

2016-05-24  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (convert_expr): Return empty constructor for null to
	associative array conversions.
	* expr.cc (ExprVisitor::visit(NullExp)): Likewise.

2016-05-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_struct_literal): Don't set TREE_STATIC.
	(build_boolop): Remove side effects from aggregate types only.
	* expr.cc (ExprVisitor::visit(ArrayLiteralExp)): Don't check
	initializer_constant_valid_p until after constructor is built.
	(ExprVisitor::visit(StructLiteralExp)): Likewise.

2016-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	* expr.cc (ExprVisitor::visit(AssignExp)): Build the rhs constructor
	before the lhs declaration.
	(ExprVisitor::visit(DeclarationExp)): Compile the declaration and
	initializer before pushing it to vars_in_scope.
	(build_expr_dtor): Compound all dtors in reverse.

2016-05-16  Johannes Pfau  <johannespfau@gmail.com>

	* expr.cc (ExprVisitor::visit(IdentityExp*)): Remove side-effects
	before comparing two floating point types.
	* d-codegen.cc (build_struct_comparison): Remove side-effects
	before comparing two values.
	(build_boolop): Likewise.

2016-05-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-todt.cc (Expression::toDt): Remove function and all overrides.
	Update all callers to use build_expr.
	* expr.cc (ExprVisitor::visit(SymOffExp)): Move check for non-constant
	expressions in static initializer data to ...
	(build_expr): ... here.
	* toir.cc (IRVisitor::visit(SwitchStatement)): Build array of indexes
	directly using build_artificial_decl.

2016-05-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* expr.cc (ExprVisitor::visit(IdentityExp*)): Remove side-effects
	before comparing two dynamic arrays.

2016-05-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (get_decl_tree): First check if cfun is set.
	* d-todt.cc (StructLiteralExp::toDt): Update call to build_expr.
	(SymOffExp::toDt): Likewise.
	(VarExp::toDt): Likewise.
	(FuncExp::toDt): Likewise.
	(VectorExp::toDt): Likewise.
	* expr.cc (ExprVisitor::visit(SymbolExp)): Remove function.
	(ExprVisitor::visit(SymOffExp)): New function.
	(ExprVisitor::visit(VarExp)): New function.
	(ExprVisitor::visit(StructLiteralExp)): Don't return static
	initializer symbol if constant literal requested.

2016-05-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_struct_literal): Maybe set TREE_CONSTANT or
	TREE_STATIC on the returned constructor.
	Allow building struct literals with initializer list out of order.
	Add check and error when initializer overlaps previous field.
	Don't explicitly set empty initializers for anonymous aggregates or
	artificial fields.

2016-05-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_array_from_val): New function.
	* expr.cc (ExprVisitor::visit(StructLiteralExp)): Use it.

2016-05-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (convert_expr): Use build_nop to cast between two
	static arrays of the same size.
	* d-todt.cc (IntegerExp::toDt): Update call to build_expr.
	(RealExp::toDt): Likewise.
	(ComplexExp::toDt): Likewise.
	(StringExp::toDt): Likewise.
	(NullExp::toDt): Use build_expr to generate initializer.
	(ArrayLiteralExp::toDt): Likewise.
	(CastExp::toDt): Likewise.
	(ClassReferenceExp::toDt): Likewise.
	(ClassReferenceExp::toDtI): Remove function.
	* expr.cc (ExprVisitor::visit(CastExp)): Forward constp to the next
	leaf expression in the tree.
	(ExprVisitor::visit(AddrExp)): Likewise.
	(ExprVisitor::visit(FuncExp)): Likewise.
	(ExprVisitor::visit(ArrayLiteralExp)): Likewise.
	(ExprVisitor::visit(StructLiteralExp)): Likewise.
	(ExprVisitor::visit(VectorExp)): Likewise.
	(ExprVisitor::visit(ClassReferenceExp)): Adjust reference for constp.

2016-05-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (get_unique_name): Remove function.
	(build_artificial_decl): New function.
	(d_finish_symbol): Use build_artificial_decl.
	(build_moduleinfo): Likewise.
	* d-decls.cc (StructLiteralExp::toSymbol): Likewise.
	(ClassReferenceExp::toSymbol): Likewise.

2016-05-07  Iain Buclaw  <ibuclaw@gdcproject.org>

	* expr.cc (ExprVisitor::visit(BinExp)): New function.
	(ExprVisitor::visit(XorExp)): Remove function.
	(ExprVisitor::visit(OrExp)): Likewise.
	(ExprVisitor::visit(AndExp)): Likewise.
	(ExprVisitor::visit(UshrExp)): Likewise.
	(ExprVisitor::visit(ShrExp)): Likewise.
	(ExprVisitor::visit(ShlExp)): Likewise.
	(ExprVisitor::visit(ModExp)): Likewise.
	(ExprVisitor::visit(DivExp)): Likewise.
	(ExprVisitor::visit(MulExp)): Likewise.
	(ExprVisitor::visit(MinExp)): Likewise.
	(ExprVisitor::visit(AddExp)): Likewise.
	(ExprVisitor::visit(BinAssignExp)): New function.
	(ExprVisitor::visit(XorAssignExp)): Remove function.
	(ExprVisitor::visit(OrAssignExp)): Likewise.
	(ExprVisitor::visit(AndAssignExp)): Likewise.
	(ExprVisitor::visit(ShrAssignExp)): Likewise.
	(ExprVisitor::visit(ShlAssignExp)): Likewise.
	(ExprVisitor::visit(ModAssignExp)): Likewise.
	(ExprVisitor::visit(DivAssignExp)): Likewise.
	(ExprVisitor::visit(MulAssignExp)): Likewise.
	(ExprVisitor::visit(PowAssignExp)): Likewise.
	(ExprVisitor::visit(MinAssignExp)): Likewise.
	(ExprVisitor::visit(AddAssignExp)): Likewise.

2016-05-06  Iain Buclaw  <ibuclaw@gdcproject.org>

	* expr.cc (ExprVisitor::ExprVisitor): Update signature.
	(ExprVisitor::visit(AddrExp)): Handle constant expressions.
	(ExprVisitor::visit(FuncExp)): Likewise.
	(ExprVisitor::visit(ComplexExp)): Likewise.
	(ExprVisitor::visit(StringExp)): Likewise.
	(ExprVisitor::visit(ArrayLiteralExp)): Likewise.
	(ExprVisitor::visit(StructLiteralExp)): Likewise.
	(ExprVisitor::visit(NullExp)): Likewise.
	(ExprVisitor::visit(ClassReferenceExp)): Likewise.
	(build_expr): Update signature.

2016-05-05  Iain Buclaw  <ibuclaw@gdcproject.org>

	* Make-lang.in (D_GLUE_OBJS): Add d/expr.o.
	Remove d/d-elem.o
	* d-codegen.cc (size_mult_expr): New function.
	* d-tree.h (build_expr): New function, update all callers to toElem.
	(build_expr_dtor): New function, update all callers to toElemDtor.
	* expr.cc: New file.
	* d-elem.cc: Remove file.

2016-05-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-target.cc (Target::init): Target::realpad value should be size
	minus precision.

2016-04-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (finish_aggregate_type): Use SET_TYPE_ALIGN.
	* types.cc (TypeVisitor::visit(TypeStruct)): Likewise.
	* d-decls.cc (ClassDeclaration::toVtblSymbol): Use SET_DECL_ALIGN.
	* d-objfile.cc (d_finish_symbol): Likewise.
	* d-target.cc (Target::fieldalign): Likewise.

2016-04-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-todt.cc (TypeSArray::toDtElem): Remove special handling for
	arrays of vectors.

2016-04-23  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (build_dtype): Make function static.
	* d-lang.cc (d_init_exceptions): Remove function.
	* d-codegen.h: Move visitor declarations to ...
	* d-tree.h: ... here.
	(lang_decl): Remove `d_` prefix from fields.
	(lang_type): Likewise.
	* d-lang.cc (build_d_type_lang_specific): Rename to build_lang_type.
	(build_d_decl_lang_specific): Rename to build_lang_decl.
	* imports.cc: Update includes.

2016-03-29  Johannes Pfau  <johannespfau@gmail.com>

	* d-objfile.cc (d_comdat_linkage): Rewrite template duplicate
	handling to generate only one backend tree for all duplicates.
	(FuncDeclaration::toObjFile): Likewise.
	(VarDeclaration::toObjFile): Likewise.
	* d-decls.cc (FuncDeclaration::toSymbol): Likewise.
	(VarDeclaration::toSymbol): Likewise.
	* d-objfile.cc (get_template_storage_info): Extract function from
	setup_symbol_storage.
	(setup_symbol_storage): Likewise.
	* d-tree.h (lang_identifier): Add field for Dsymbol.
	(IDENTIFIER_LANG_SPECIFIC): New macro.
	(IDENTIFIER_DSYMBOL): Likewise.

2016-03-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (fill_alignment_field): Call layout_decl on field.
	(finish_aggregate_type): Add assertion that TYPE_MODE is equal.

2016-03-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (convert_expr): Replace call build_integer_cst with
	size_int.
	(convert_for_assignment): Likewise.
	(build_struct_comparison): Likewise.
	(d_assert_call): Likewise.
	* d-elem.cc (IdentityExp::toElem): Likewise.
	(AssignExp::toElem): Likewise.
	(IndexExp::toElem): Likewise.
	(SymbolExp::toElem): Likewise.
	(NewExp::toElem): Likewise.
	(ArrayLiteralExp::toElem): Likewise.
	(AssocArrayLiteralExp::toElem): Likewise.

2016-03-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-tree.h (CLASS_TYPE_P): New macro.
	* d-codegen.cc (build_struct_literal): Check RECORD_OR_UNION_TYPE_P
	before testing ANON_AGGR_TYPE_P.
	(fill_alignment_field): New function.
	(fill_alignment_holes): New function.
	(finish_aggregate_type): Call fill_alignment_holes before computing
	backend type mode.

2016-03-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-tree.h (D_METHOD_CALL_EXPR): Removed `D_' prefix from macro,
	updated all callers.
	(D_TYPE_IMAGINARY_FLOAT): Likewise.
	(D_LABEL_VARIABLE_CASE): Likewise.
	* d-codegen.cc (build_delegate_cst): Always return valid constructor.
	(get_object_method): Remove function.
	(build_vindex_ref): New function.
	* d-elem.cc (FuncExp::toElem): Use the real function pointer type when
	converting to delegate.
	(CallExp::toElem): Handle setting up virtual functions directly.
	(DelegateExp::toElem): Likewise.
	(DotVarExp::toElem): Remove handling of virtual functions.

2016-03-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.h (lang_dtype): Remove function.
	(lang_ddecl): Remove function.
	* d-tree.h (TYPE_LANG_FRONTEND): New macro, replace all uses of
	lang_dtype function.
	(DECL_LANG_FRONTEND): New macro.
	* d-attribs.c: Update includes.
	* d-builtins.cc: Likewise.
	* d-codegen.cc: Likewise.
	* d-incpath.cc: Likewise.
	* d-lang.cc: Likewise.
	* d-objfile.cc: Likewise.

2016-03-27  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.h (function_type_p): Remove function.
	* d-codegen.cc (d_build_call): Use FUNC_OR_METHOD_P macro.
	(build_bounds_condition): Update signature.
	(d_assert_call): Likewise.
	(insert_aggregate_field): Likewise.
	* d-objfile.cc (get_linemap): Likewise.
	* d-lang.h: Remove file, updated all includes.  Moved forward
	declarations of types and functions to ...
	* d-tree.h: ... here.

2016-03-20  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (d_checked_index): Remove function.
	(d_bounds_condition): Remove function.
	(build_bounds_condition): New function.
	* d-elem.cc (IndexExp::toElem): Use build_bounds_condition.
	(SliceExp::toElem): Likewise.
	(EqualExp::toElem): Convert expressions to dynamic arrays when
	inlining comparison.  Don't pass zero length arrays to memcmp.

2016-03-19  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (d_array_convert): New function overload.
	* d-elem.cc (CatExp::toElem): Call new runtime function _d_arraycatnTX
	when flattening multiple concatenations.
	(NewExp::toElem): Update call construction for new signatures of
	runtime functions _d_newarraymTX and _d_newarraymiTX.
	* runtime.def (NEWARRAYMTX): Update signature.
	(NEWARRAYMITX): Likewise,
	(ARRAYCATNT): Remove runtime function.
	(ARRAYCATNTX): New runtime function.

2016-03-07  Iain Buclaw  <ibuclaw@gdcproject.org>

	* imports.cc (ImportVisitor::visit(Declaration)): Don't assume toSymbol
	method will cache it's result.

2016-03-06  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dfrontend: Update root library to 2.068.
	* Make-lang.in (D_DMD_OBJS): Add newdelete.o
	* d-target.cc (Target::classinfosize): New variable, replaces all uses
	of global CLASSINFO_SIZE.
	(Target::init): Initialize it.
	* d-decls.cc (ClassInfoDeclaration::toSymbol): Remove function.

2016-03-05  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dfrontend: Update to D front-end version 2.067.
	* Make-lang.in (D_DMD_OBJS): Add new frontend sources.
	* d-builtins.cc (d_build_builtins_module): Update signature.
	(maybe_set_builtin): Rename to d_maybe_set_builtin, update signature.
	(d_gcc_magic_module): Remove function.
	* d-codegen.cc (expand_volatile_load): New function.
	(expand_volatile_store): New function.
	(expand_intrinsic): Handle volatileLoad and volatileStore intrinsics.
	* d-decls.cc (Module::toModuleAssert): Remove function.
	(Module::toModuleUnittest): Remove function.
	(Module::toModuleArray): Remove function.
	(TypeAArray::aaGetSymbol): Remove function.
	* d-elem.cc (AssignExp::toElem): Call _d_arrayassign_{l,r} when
	generating dynamic array assignment.
	(IndexExp::toElem): Call _aaGetY when indexing an associative array.
	(SliceExp::toElem): Use known CTFE result to check whether bounds
	checks are necessary.
	(DeleteExp::toElem): Call _d_delstruct when deleting a struct pointer.
	(Expression::toElemDtor): Don't run cleanup of temporary if it's
	constructor thrown an exception.
	(NewExp::toElem): Handle special construction of new() arguments.
	* d-glue.cc (Loc::Loc): Update signature.
	(error): Likewise.
	(toInitializer): New function.
	* d-lang.cc (d_handle_option): Replace deprecated handlers.
	(d_post_options): Set flag_max_errors.
	(d_parse_file): Process any modules marked as builtin.
	* d-objfile.cc (ClassDeclaration::toObjFile): Don't write out ctors
	in the vtable marked @disable.
	* d-target.cc (Target::loadModule): New function.
	(Target::checkVectorType): New function.
	* d-specs.c (lang_specific_driver): Handle -v option.
	* lang-specs.h: Pass -v option to to frontend.

2016-03-04  Iain Buclaw  <ibuclaw@gdcproject.org>

	* imports.cc: New file.
	* d-decls.cc (Dsymbol::toImport): Remove function, update all callers
	to use build_import_decl.

2016-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc (gcc_attribute_p): New function.
	(output_declaration_p): Inline into FuncDeclaration::ObjFile.
	(unnest_function): Likewise.
	(FuncDeclaration::toObjFile): Remove named parameter, update all
	callers to ignore it.
	(d_comdat_group): Use DECL_ASSEMBLER_NAME for the comdat group.
	(d_comdat_linkage): Catch duplicate instantiations of templates, put
	them in the same comdat group.
	(setup_symbol_storage): Mark templates not to be written as abstract.
	(d_finish_function): Don't send DECL_ABSTRACT_P functions to backend.
	(d_finish_compilation): Mark all symbols as needed.

	* d-objfile.cc: Remove redundant bool parameter from all lowering
	routines for symbols, update all callers.

2016-02-22  Eugene Wissner <belka@caraus.de>

	* d-lang.cc (d_init): Remove short_double parameter from
	build_common_tree_nodes.

2016-02-20  Iain Buclaw  <ibuclaw@gdcproject.org>

	* intrinsics.def: Split signature macros into three groups.
	Attributes, types, and helper generators.
	* d-elem.cc (needsPostblit): Change signature to return boolean,
	updated all callers.
	(AssignExp::toElem): Don't assign destination to a temporary in
	arraycopy call.
	* toir.cc (IRVisior::visit(ThrowStatement)): Use NOP_EXPR cast to
	convert thrown exception to Object.
	(IRVisitor::visit(TryCatchStatement)): Use NOP_EXPR cast to convert
	caught Object to thrown exception.
	* d-codegen.cc (void_okay_p): Lazily build the convert to type.
	* d-lang.cc (parse_int): Remove function.
	(d_handle_option): Use integral_argument to parse numbers.

	* d-codegen.cc (lower_struct_comparison): Built custom type if
	lang_hooks.types.type_for_mode returns nothing.
	* d-lang.cc (d_type_for_mode): Always support cent/ucent modes.
	(d_type_for_size): Add support for cent/ucent precision types.
	(d_signed_or_unsigned_type): Always support cent/ucent precisions.

	* d-codegen.cc (d_build_call): Remove type promotion handling for
	variadic arguments.
	(expand_intrinsic_vaarg): Likewise.
	* d-lang.cc (d_type_promotes_to): Likewise.

	* d-elem.cc (AddrExp::toElem): Take address of the static const symbol
	for the struct literal,  not the const constructor.
	(CallExp::toElem): Don't pass generated static struct literal symbol
	as the object parameter for DotVar call expressions.

	* d-codegen.cc (type_va_array): New function.
	(declaration_type_kind): Remove function.
	(declaration_reference_p): New function, update all callers of
	declaration_type_kind.
	(argument_type_kind): Remove function.
	(argument_reference_p): New function, update all callers of
	argument_type_kind.
	(build_address): Remove special handling of static array va_list.
	* d-codegen.h (type_kind): Remove enum.

2016-02-18  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_condition): New function.  Update all callers
	that generate a COND_EXPR that returns a value to use it.
	(build_vcondition): New function.  Update all callers that generate a
	void COND_EXPR to use it.
	* toir.cc (IRVisitor::visit(DoStatement)): Build a COND_EXPR instead
	of an EXIT_EXPR to break from the loop.
	(IRVisitor::visit(ForStatement)): Likewise.

2016-02-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-elem.cc: Remove redundant IRState parameter from all lowering
	routines for expressions, update all callers.

2016-02-07  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_array_set): Use POSTINCREMENT_EXPR to adjust
	array pointer.
	(identity_compare_p): New function.
	(build_struct_memcmp): Refactor into ...
	(lower_struct_comparison): ... New function.
	(build_struct_comparison): New function.
	(build_array_struct_comparison): New function.
	* d-elem.cc (IdentityExp::toElem): Use build_struct_comparison for
	RECORD_TYPE values.
	(EqualExp::toElem): Likewise.
	Use memcmp for array of structs that pass test for identity_compare_p,
	or fallback to build_array_struct_comparison.
	(NewExp::toElem): Remove setting of StructLiteralExp::fillHoles.
	(StructLiteralExp::toElem): Ignore StructLiteralExp::fillHoles, unless
	building a union literal.

2016-02-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-elem.cc (AssignExp::toElem): Pass parameters for arraycopy and
	arrayassign in the correct order.

2016-01-31  Iain Buclaw  <ibuclaw@gdcproject.org>

	* longdouble.h (longdouble): Use one contiguous array for the
	real_value data payload.

2016-01-23  Iain Buclaw  <ibuclaw@gdcproject.org>

	* toir.cc (IRVisitor::visit (ExtAsmStatement): Do validation of input
	and output constraints, marking operands as addressable if requested.

2016-01-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (empty_aggregate_p): New function.
	(d_build_call): Don't pass empty aggregates by value.
	(build_struct_memcmp): Don't compare empty aggregates by value.
	* d-elem.cc (IdentityExp::toElem): Likewise.
	(EqualExp::toElem): Likewise.
	* (StructLiteralExp::toElem): Don't create temporaries or initialize
	holes for empty	aggregates.
	* d-lang.cc (empty_modify_p): New function.
	(d_gimplify_expr): Remove assignments that involve empty aggregates.

2016-01-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (d_builtin_type): Define DEF_FUNCTION_TYPE_9,
	DEF_FUNCTION_TYPE_10, and DEF_FUNCTION_TYPE_11.
	(d_init_builtins): Likewise.
	* d-longdouble.cc (machineMode): Remove function.
	(longdouble::init): Don't use initialize real format by reference.
	(longdouble::operator+): Use real_arithmetic instead of
	REAL_ARITHMETIC.
	(longdouble::operator-): Likewise.
	(longdouble::operator*): Likewise.
	(longdouble::operator/): Likewise.
	(longdouble::operator%): Likewise.
	* d-port.cc (Port::isSignallingNan): Use REAL_VALUE_ISSIGNALING_NAN.
	(Port::fequal): Use real_identical instead of REAL_VALUES_IDENTICAL.
	* d-target.cc: Include stor-layout.h header.
	* lang.opt: Remove documentation for switches defined elsewhere.

2016-01-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (get_libcall): Use set_call_expr_flags to apply runtime
	function attributes.
	* d-codegen.h (LibCallFlag): Remove type.
	* runtime.def: Replace LibCallFlag with ECF everywhere.


Copyright (C) 2016 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.
