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

	* d-objfile.cc(get_decl_tree): Check and generate correct code for when
	a non-local 'this' is accessed through a closure pointer.
	(FuncDeclaration::toObjFile): Remove check for _arguments.
	* d-codegen.cc(build_local_var): Likewise.

2015-04-11  Johannes Pfau  <johannespfau@gmail.com>

	* d-objfile.cc(setup_symbol_storage): Mark functions without
	body as DECL_EXTERNAL.

2015-04-08  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc(get_decl_tree): Get correct non-local 'this' decl by
	constructing component reference through parent link of nested classes.
	* d-builtins.cc(DEF_FUNCTION_TYPE_VAR_8): Remove.
	(DEF_FUNCTION_TYPE_VAR_12): Likewise.
	(DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.

2015-04-07  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-objfile.cc(output_declaration_p): Remove check for semanticRun.
	(FuncDeclaration::toObjFile): Name bool parameter force_p, allow it to
	override the initial output_declaration_p check.  Force run all
	semantic passes for symbols that it routine is generating code for.
	(d_finish_function): Don't mark TREE_STATIC on functions that are
	really DECL_EXTERN.
	(finish_thunk): Force thunks referencing external methods to be
	expanded to gimple.
	* d-decls.cc(FuncDeclaration::toThunkSymbol): Call toObjFile on all
	thunk target functions.

2015-04-05  Johannes Pfau  <johannespfau@gmail.com>

	* d-lang.cc(d_handle_section_attribute): New function.
	* d-builtins.cc(handle_alias_attribute): Move to d-lang.cc to
	support attribute(alias) in user code.
	* d-lang.cc(d_handle_alias_attribute): Ditto.
	* d-lang.cc(d_handle_weak_attribute): New function.
	* d-decls.cc(FuncDeclaration::toSymbol): Do not set
	DECL_DECLARED_INLINE_P prematurely.

2015-03-21  Johannes Pfau  <johannespfau@gmail.com>

	* d-lang.cc(d_init): Add GNU_EMUTLS version.
	* d-objfile.cc(build_emutls_function): New function.
	* d-objfile.cc(VarDeclaration::toObjFile): Collect all TLS variables
	in a module into tlsVars array.
	* d-objfile.cc(genmoduleinfo): Add reference to __modtlsscan
	function generated by build_emutls_function to moduleinfo.

2015-02-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	* config-lang.in: Remove lang_requires_boot_languages.
	* d-incpath.cc(iprefix): Remove global variable.
	(multilib_dir): Ditto.
	(prefixed_path): Add iprefix parameter.
	(add_import_paths): Add iprefix and imultilib parameter.
	Use cpp_include_defaults to get list of import paths.
	* d-lang.cc(iprefix_dir): New static variable to cache -iprefix switch.
	(imultilib_dir): New static variable to cache -imultilib switch.
	(d_init): Pass iprefix_dir and imultilib_dir to add_import_paths.
	(d_handle_option): Use new static variables.

2015-02-01  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc: Remove d-confdef.h header.
	* d-incpath.cc: Ditto.
	* d-spec.cc: Ditto.

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

	* d-incpath.cc(add_phobos_versyms): Remove function.
	* d-lang.cc(d_init): Remove call to add_phobos_versyms.

2015-01-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc(DEF_FUNCTION_TYPE_VAR_8)
	(DEF_FUNCTION_TYPE_VAR_12): New macros.

2015-01-24  Johannes Pfau  <johannespfau@gmail.com>

	* d-builtins.cc(d_build_builtins_module): Mark builtin functions
	as @nogc.

2015-01-18  Iain Buclaw  <ibuclaw@gdcproject.org>

	* Make-lang.in: Update for D frontend changes.
	* d-asmstmt.cc: Remove file.
	* d-builtins.cc(build_dtype): No longer set struct handle.
	(d_gcc_paint_type): Move to Target::paintAsType.
	* d-codegen.cc(convert_expr): No longer call getImpl on associative
	array conversions.  Add case for converting void pointers to delegates.
	(unhandled_arrayop_p): Remove.
	(build_two_field_type): Use layout_type instead of building
	TYPE_STUB_DECL and calling rest_of_decl_compilation.
	(build_binop_assignment): New function.
	(libcall_ids): Remove static variable.
	(get_libcall): New function.
	(maybe_set_intrinsic): Remove druntime library call handling.
	(expand_intrinsic_vaarg): Dereference ref va_list parameters.
	(build_closure): New function.
	(WrappedExp::WrappedExp): Move to frontend sources.
	(WrappedExp::toCBuffer): Ditto.
	* d-codegen.h(LibCallFlag): New enum.
	(LibCall): Use runtime.def macro to define members.
	* d-ctype.cc(Type::toCParamtype): Remove function.
	(TypeTypedef::toCParamtype): Ditto.
	(TypeClass::toSymbol): Ditto.
	(TypeFunction::retStyle): Move to retStyle.
	(TypeSArray::toCParamtype): Ditto.
	(Type::toSymbol): Ditto.
	(Type::totym): Ditto.
	(TypeFunction::totym): Ditto.
	* d-decls.cc(Dsymbol::toSymbolX): Update for frontend changes.
	(Dsymbol::toImport): Ditto.
	(VarDeclaration::toSymbol): Ditto.
	(FuncDeclaration::toSymbol): Ditto.
	(InterfaceDeclaration::toSymbol): Use TREE_READONLY instead of
	(EnumDeclaration::toDebug): Only call rest_of_type_compilation on
	ENUMERAL_TYPE types.
	TREE_CONSTANT to declare that the symbol cannot be modified.
	(ClassDeclaration::toVtblSymbol): Ditto.
	(AggregateDeclaration::toInitializer): Ditto.
	(EnumDeclaration::toInitializer): Ditto.
	(TypedefDeclaration::toInitializer): Remove function.
	(TypedefDeclaration::toDebug): Ditto.
	(Dsymbol::cvMember): Remove stub function.
	(EnumDeclaration::cvMember): Ditto.
	(FuncDeclaration::cvMember): Ditto.
	(VarDeclaration::cvMember): Ditto.
	(TypedefDeclaration::cvMember): Ditto.
	* d-elem.cc(XorExp::toElem): Remove call to unhandled_arrayop_p.
	(OrExp::toElem): Ditto.
	(AndExp::toElem): Ditto.
	(UshrExp::toElem): Ditto.
	(ShrExp::toElem): Ditto.
	(ShlExp::toElem): Ditto.
	(ModExp::toElem): Ditto.
	(DivExp::toElem): Ditto.
	(MulExp::toElem): Ditto.
	(MinExp::toElem): Ditto.
	(AddExp::toElem): Ditto.
	(XorAssignExp::toElem): Ditto.
	(OrAssignExp::toElem): Ditto.
	(AndAssignExp::toElem): Ditto.
	(UshrAssignExp::toElem): Ditto.
	(ShrAssignExp::toElem): Ditto.
	(ShlAssignExp::toElem): Ditto.
	(ModAssignExp::toElem): Ditto.
	(DivAssignExp::toElem): Ditto.
	(MulAssignExp::toElem): Ditto.
	(PowAssignExp::toElem): Ditto.
	(MinAssignExp::toElem): Ditto.
	(AddAssignExp::toElem): Ditto.
	(BinExp::toElemBin): Move to build_binop_assignment.
	(AssignExp::toElem): Update for frontend changes.
	(DelegatePtrExp::toElem): New function.
	(DelegateFuncptrExp::toElem): New function.
	(DelegateExp::toElem): Update for frontend changes.
	(FuncExp::toElem): Ditto.
	(NewExp::toElem): Ditto.
	(StringExp::toElem): Don't set TREE_READONLY on string literals.
	(AssocArrayLiteralExp::toElem): Remove codegen rewrite for new
	associative array implementation.
	* d-glue.cc(Global::isSpeculativeGagging): Remove function.
	(Dsymbol::ungagSpeculative): Ditto.
	(Ungag::~Ungag): Ditto.
	(Loc::toChars): Update for new column diagnostic support.
	(Loc::Loc): Ditto.
	(Loc::equals): Ditto.
	(error): Ditto.
	(binary): Remove function.
	(asmSemantic): New function.
	(retStyle): New function.
	(FuncDeclaration::isBuiltin): Rename to isBuiltin.
	* d-intrinsics.def: Rename to intrinsics.def.
	* d-irstate.cc(IRState::addExp): Remove old warning to catch statements
	with no side effects.  Now handled in frontend.
	* d-lang.cc(d_init_options): Update for frontend changes.
	(d_initialize_diagnostics): Remove function.
	(d_add_builtin_version): Update for frontend changes.
	(d_init): Ditto.
	(d_handle_option): Ditto.
	(d_post_options): Ditto.
	(d_parse_file): Ditto.
	* d-objfile.cc(Nspace::toObjFile): New function.
	(StructDeclaration::toObjFile): Update for frontend changes.
	(TypedefDeclaration::toObjFile): Remove function.
	(TemplateInstance::toObjFile): Update for frontend changes.
	(TemplateMixin::toObjFile): Ditto.
	(unnest_function): New function.
	(output_declaration_p): Update for frontend changes.
	(FuncDeclaration::toObjFile): Ditto.
	(FuncDeclaration::buildClosure): Move to buildClosure.
	(get_linemap): Update for frontend changes.
	(build_simple_function): Ditto.
	(build_call_function): Ditto.
	* d-target.cc(Target::va_listType): New function.
	(Target::paintAsType): Ditto.
	* d-todt.cc(dt_container2): Do not set TREE_READONLY on initialisers.
	(dt_container): Ditto.
	(ClassReferenceExp::toDt2): Update for C++ class support.
	(ClassReferenceExp::toInstanceDt): Ditto.
	(TypeTypedef::toDt): Remove function.
	(TypeInfoTypedefDeclaration::toDt): Ditto.
	(TypeInfoAssociativeArrayDeclaration::toDt): Update typeinfo size.
	(TypeInfoAssociativeArrayDeclaration::toDt): Remove reference to impl
	field in TypeInfo struct.
	(TypeInfoStructDeclaration::toDt): Update for frontend changes.
	* d-typinf.cc(Type::getTypeInfo): Update for frontend changes.
	(TypeTypedef::getTypeInfoDeclaration): Remove function.
	(createTypeInfoArray): Remove function.
	* runtime.def: New file.
	* toir.cc(IRVisitor::visit::DtorExpStatement): Remove function.
	(IRVisitor::visit::ExtAsmStatement): Update for frontend changes.

2015-01-17  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-elem.cc(UshrAssignExp::toElem): Remove integer promotion on left
	hand side of unsigned right shift expression.

2015-01-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-system.h: Include hash-set.h, machmode.h, vec.h, double-int.h,
	input.h, alias.h, symtab.h and inchash.h due to flattening of tree.h.
	* d-gt.cc: Ditto.

2015-01-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.h(build_boolop): Don't eagerly fold comparison expressions.

