ChangeLog: * Makefile.def (target_modules): Add libphobos. (flags_to_pass): Add GDC, GDCFLAGS, GDC_FOR_TARGET and GDCFLAGS_FOR_TARGET. (dependencies): Make libphobos depend on libatomic, libbacktrace configure, and zlib configure. (language): Add language d. * Makefile.in: Rebuild. * Makefile.tpl (BUILD_EXPORTS): Add GDC and GDCFLAGS. (HOST_EXPORTS): Add GDC. (POSTSTAGE1_HOST_EXPORTS): Add GDC and GDC_FOR_BUILD. (BASE_TARGET_EXPORTS): Add GDC. (GDC_FOR_BUILD, GDC, GDCFLAGS): New variables. (GDC_FOR_TARGET, GDC_FLAGS_FOR_TARGET): New variables. (EXTRA_HOST_FLAGS): Add GDC. (STAGE1_FLAGS_TO_PASS): Add GDC. (EXTRA_TARGET_FLAGS): Add GDC and GDCFLAGS. * config-ml.in: Treat GDC and GDCFLAGS like other compiler/flag environment variables. * configure: Rebuild. * configure.ac: Add target-libphobos to target_libraries. Set and substitute GDC_FOR_BUILD and GDC_FOR_TARGET. config/ChangeLog: * multi.m4: Set GDC. gcc/ChangeLog: * Makefile.in (tm_d_file_list, tm_d_include_list): New variables. (TM_D_H, D_TARGET_DEF, D_TARGET_H, D_TARGET_OBJS): New variables. (tm_d.h, cs-tm_d.h, default-d.o): New rules. (d/d-target-hooks-def.h, s-d-target-hooks-def-h): New rules. (s-tm-texi): Also check timestamp on d-target.def. (generated_files): Add TM_D_H and d-target-hooks-def.h. (build/genhooks.o): Also depend on D_TARGET_DEF. * config.gcc (tm_d_file, d_target_objs, target_has_targetdm): New variables. * config/aarch64/aarch64-d.c: New file. * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_D_CRITSEC_SIZE): Define. * config/aarch64/aarch64-protos.h (aarch64_d_target_versions): New prototype. * config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Define. * config/aarch64/t-aarch64 (aarch64-d.o): New rule. * config/arm/arm-d.c: New file. * config/arm/arm-protos.h (arm_d_target_versions): New prototype. * config/arm/arm.h (TARGET_D_CPU_VERSIONS): Define. * config/arm/linux-eabi.h (EXTRA_TARGET_D_OS_VERSIONS): Define. * config/arm/t-arm (arm-d.o): New rule. * config/default-d.c: New file. * config/glibc-d.c: New file. * config/gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. * config/i386/i386-d.c: New file. * config/i386/i386-protos.h (ix86_d_target_versions): New prototype. * config/i386/i386.h (TARGET_D_CPU_VERSIONS): Define. * config/i386/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Define. (GNU_USER_TARGET_D_CRITSEC_SIZE): Define. * config/i386/t-i386 (i386-d.o): New rule. * config/kfreebsd-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. * config/kopensolaris-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. * config/linux-android.h (ANDROID_TARGET_D_OS_VERSIONS): Define. * config/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. * config/mips/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Define. * config/mips/mips-d.c: New file. * config/mips/mips-protos.h (mips_d_target_versions): New prototype. * config/mips/mips.h (TARGET_D_CPU_VERSIONS): Define. * config/mips/t-mips (mips-d.o): New rule. * config/powerpcspe/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. * config/powerpcspe/linux64.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. * config/powerpcspe/powerpcspe-d.c: New file. * config/powerpcspe/powerpcspe-protos.h (rs6000_d_target_versions): New prototype. * config/powerpcspe/powerpcspe.c (rs6000_output_function_epilogue): Support GNU D by using 0 as the language type. * config/powerpcspe/powerpcspe.h (TARGET_D_CPU_VERSIONS): Define. * config/powerpcspe/t-powerpcspe (powerpcspe-d.o): New rule. * config/riscv/riscv-d.c: New file. * config/riscv/riscv-protos.h (riscv_d_target_versions): New prototype. * config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Define. * config/riscv/t-riscv (riscv-d.o): New rule. * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. * config/rs6000/linux64.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. * config/rs6000/rs6000-d.c: New file. * config/rs6000/rs6000-protos.h (rs6000_d_target_versions): New prototype. * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support GNU D by using 0 as the language type. * config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS): Define. * config/rs6000/t-rs6000 (rs6000-d.o): New rule. * config/s390/s390-d.c: New file. * config/s390/s390-protos.h (s390_d_target_versions): New prototype. * config/s390/s390.h (TARGET_D_CPU_VERSIONS): Define. * config/s390/t-s390 (s390-d.o): New rule. * config/sparc/sparc-d.c: New file. * config/sparc/sparc-protos.h (sparc_d_target_versions): New prototype. * config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Define. * config/sparc/t-sparc (sparc-d.o): New rule. * config/t-glibc (glibc-d.o): New rule. * configure: Regenerated. * configure.ac (tm_d_file): New variable. (tm_d_file_list, tm_d_include_list, d_target_objs): Add substitutes. * doc/contrib.texi (Contributors): Add self for the D frontend. * doc/frontends.texi (G++ and GCC): Mention D as a supported language. * doc/install.texi (Configuration): Mention libphobos as an option for --enable-shared. Mention d as an option for --enable-languages. (Testing): Mention check-d as a target. * doc/invoke.texi (Overall Options): Mention .d, .dd, and .di as file name suffixes. Mention d as a -x option. * doc/sourcebuild.texi (Top Level): Mention libphobos. * doc/standards.texi (Standards): Add section on D language. * doc/tm.texi: Regenerated. * doc/tm.texi.in: Add @node for D language and ABI, and @hook for TARGET_CPU_VERSIONS, TARGET_D_OS_VERSIONS, and TARGET_D_CRITSEC_SIZE. * dwarf2out.c (is_dlang): New function. (gen_compile_unit_die): Use DW_LANG_D for D. (declare_in_namespace): Return module die for D, instead of adding extra declarations into the namespace. (gen_namespace_die): Generate DW_TAG_module for D. (gen_decl_die): Handle CONST_DECLSs for D. (dwarf2out_decl): Likewise. (prune_unused_types_walk_local_classes): Handle DW_tag_interface_type. (prune_unused_types_walk): Handle DW_tag_interface_type same as other kinds of aggregates. * gcc.c (default_compilers): Add entries for .d, .dd and .di. * genhooks.c: Include d/d-target.def. gcc/po/ChangeLog: * EXCLUDES: Add sources from d/dmd. gcc/testsuite/ChangeLog: * gcc.misc-tests/help.exp: Add D to option descriptions check. * gdc.dg/asan/asan.exp: New file. * gdc.dg/asan/gdc272.d: New test. * gdc.dg/compilable.d: New test. * gdc.dg/dg.exp: New file. * gdc.dg/gdc254.d: New test. * gdc.dg/gdc260.d: New test. * gdc.dg/gdc270a.d: New test. * gdc.dg/gdc270b.d: New test. * gdc.dg/gdc282.d: New test. * gdc.dg/gdc283.d: New test. * gdc.dg/imports/gdc170.d: New test. * gdc.dg/imports/gdc231.d: New test. * gdc.dg/imports/gdc239.d: New test. * gdc.dg/imports/gdc241a.d: New test. * gdc.dg/imports/gdc241b.d: New test. * gdc.dg/imports/gdc251a.d: New test. * gdc.dg/imports/gdc251b.d: New test. * gdc.dg/imports/gdc253.d: New test. * gdc.dg/imports/gdc254a.d: New test. * gdc.dg/imports/gdc256.d: New test. * gdc.dg/imports/gdc27.d: New test. * gdc.dg/imports/gdcpkg256/package.d: New test. * gdc.dg/imports/runnable.d: New test. * gdc.dg/link.d: New test. * gdc.dg/lto/lto.exp: New file. * gdc.dg/lto/ltotests_0.d: New test. * gdc.dg/lto/ltotests_1.d: New test. * gdc.dg/runnable.d: New test. * gdc.dg/simd.d: New test. * gdc.test/gdc-test.exp: New file. * lib/gdc-dg.exp: New file. * lib/gdc.exp: New file. libphobos/ChangeLog: * Makefile.am: New file. * Makefile.in: New file. * acinclude.m4: New file. * aclocal.m4: New file. * config.h.in: New file. * configure: New file. * configure.ac: New file. * d_rules.am: New file. * libdruntime/Makefile.am: New file. * libdruntime/Makefile.in: New file. * libdruntime/__entrypoint.di: New file. * libdruntime/__main.di: New file. * libdruntime/gcc/attribute.d: New file. * libdruntime/gcc/backtrace.d: New file. * libdruntime/gcc/builtins.d: New file. * libdruntime/gcc/config.d.in: New file. * libdruntime/gcc/deh.d: New file. * libdruntime/gcc/libbacktrace.d.in: New file. * libdruntime/gcc/unwind/arm.d: New file. * libdruntime/gcc/unwind/arm_common.d: New file. * libdruntime/gcc/unwind/c6x.d: New file. * libdruntime/gcc/unwind/generic.d: New file. * libdruntime/gcc/unwind/package.d: New file. * libdruntime/gcc/unwind/pe.d: New file. * m4/autoconf.m4: New file. * m4/druntime.m4: New file. * m4/druntime/cpu.m4: New file. * m4/druntime/libraries.m4: New file. * m4/druntime/os.m4: New file. * m4/gcc_support.m4: New file. * m4/gdc.m4: New file. * m4/libtool.m4: New file. * src/Makefile.am: New file. * src/Makefile.in: New file. * src/libgphobos.spec.in: New file. * testsuite/Makefile.am: New file. * testsuite/Makefile.in: New file. * testsuite/config/default.exp: New file. * testsuite/lib/libphobos-dg.exp: New file. * testsuite/lib/libphobos.exp: New file. * testsuite/testsuite_flags.in: New file. From-SVN: r265573
661 lines
26 KiB
Plaintext
661 lines
26 KiB
Plaintext
2014-12-14 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* Make-lang.in (check_gdc_parallelize): Update for testsuite changes.
|
||
* d-convert.cc (d_convert_basic): Avoid stack overflow when converting
|
||
from pointer to integer.
|
||
* d-objfile.cc (FuncDeclaration::toObjFile): Emit correct frame
|
||
information for closures rather than generic void pointers.
|
||
|
||
2014-11-10 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-elem.cc (CatExp::toElem): Split dynamic arrays when passing as
|
||
varargs to arraycatT and arraycatnT.
|
||
|
||
2014-11-09 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-codegen.cc (build_vthis): Handle getting static chain for nested
|
||
templated structs.
|
||
|
||
2014-09-07 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-elem.cc (ArrayLiteralExp::toElem): Remove special handling for
|
||
immutable arrays.
|
||
|
||
2014-08-03 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-longdouble.cc (longdouble::formatHex): Convert buffer to uppercase
|
||
for use in mangling templates.
|
||
|
||
2014-07-29 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-elem.cc (NewExp::toElem): Check for opaque structs before
|
||
continuing to generate the new expression.
|
||
|
||
* d-lang.h.cc (d_vtbl_ptr_type_node): Renamed to vtbl_ptr_type_node.
|
||
(d_boolean_type_node): Renamed to bool_type_node.
|
||
(d_char_type_node): Renamed to char8_type_node.
|
||
(d_wchar_type_node): Renamed to char16_type_node.
|
||
(d_dchar_type_node): Renamed to char32_type_node.
|
||
(d_ifloat_type_node): Renamed to ifloat_type_node.
|
||
(d_idouble_type_node): Renamed to idouble_type_node.
|
||
(d_ireal_type_node): Renamed to ireal_type_node.
|
||
(byte_type_node, ubyte_type_node): New macros for fixed integral
|
||
types in D.
|
||
(short_type_node, ushort_type_node): Likewise.
|
||
(int_type_node, uint_type_node): Likewise.
|
||
(long_type_node, ulong_type_node): Likewise.
|
||
(cent_type_node, ucent_type_node): Likewise.
|
||
* d-builtins.c (d_init_builtins): Initialise all D specific type nodes.
|
||
* d-codegen.cc (d_bounds_condition): Use D-specific type macros instead
|
||
of backend C types.
|
||
(layout_aggregate_type): Likewise.
|
||
(build_integer_cst): Likewise.
|
||
(build_boolop): Likewise.
|
||
* d-convert.cc (d_build_truthvalue_op): Likewise.
|
||
(d_truthvalue_conversion): Likewise.
|
||
* d-ctype.cc (Type::toCtype): Likewise.
|
||
* d-decls.cc (FuncDeclaration::toSymbol): Likewise.
|
||
* d-elem.cc (CmpExp::toElem): Likewise.
|
||
(OrOrExp::toElem): Likewise.
|
||
(NotExp::toElem): Likewise.
|
||
* d-lang.cc (d_type_for_mode): Likewise.
|
||
(d_type_for_size): Likewise.
|
||
(d_signed_or_unsigned_type): Likewise.
|
||
|
||
2014-07-23 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-ctype.cc (TypeFunction::toCtype): Only check for ref return for
|
||
functions returning non-void.
|
||
|
||
2014-07-21 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-objfile.cc (output_declaration_p): Don't emit any declarations from
|
||
the gcc.attribute module.
|
||
(StructDeclaration::toObjFile): Call output_declaration_p.
|
||
* d-glue.cc (verror): Only call vasprintf on the initial format string.
|
||
|
||
2014-07-17 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-lang.cc (d_init_options_struct): Set flag_wrapv as on by default.
|
||
|
||
2014-07-14 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-elem.cc (NewExp::toElem): Don't initialise a new'd struct at the
|
||
caller. The callee ensures this is done.
|
||
|
||
2014-07-13 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-objfile.cc (d_finish_symbol): Always set TREE_STATIC for symbols
|
||
being sent to the backend here.
|
||
|
||
2014-07-12 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-objfile.cc (d_finish_symbol): Don't set DECL_INITIAL if the
|
||
initialiser is all zeros.
|
||
|
||
2014-07-10 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-builtins.cc (lookup_ctype_name): Remove function.
|
||
(string_type_node): Move to static declaration from d_global_trees.
|
||
(const_string_type_node): Likewise.
|
||
(wint_type_node): Likewise.
|
||
(intmax_type_node): Likewise.
|
||
(uintmax_type_node): Likewise.
|
||
(signed_size_type_node): Likewise.
|
||
(d_init_builtins): Update.
|
||
* d-lang.cc (d_type_for_mode): Return only fixed size types.
|
||
(d_type_for_size): Likewise.
|
||
(d_signed_or_unsigned_type): Likewise.
|
||
(d_unsigned_type): Remove duplicated code from
|
||
d_signed_or_unsigned_type.
|
||
(d_signed_type): Likewise.
|
||
|
||
2014-07-03 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-objfile.cc (finish_thunk): Use set_decl_section_name, copy the
|
||
implicit section flag.
|
||
(setup_symbol_storage): Use decl_default_tls_model.
|
||
|
||
2014-06-26 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-codegen.h (d_types_compatible): Remove function.
|
||
(d_types_same): Use more conservative approach to type equality.
|
||
* d-codegen.cc (get_libcall): Allow backend to be able to optimise
|
||
closure memory allocations.
|
||
(convert_for_assignment): Use d_types_same.
|
||
* d-elem.cc (CatExp::toElem): Likewise.
|
||
(BinExp::toElemBin): Likewise.
|
||
(CatAssignExp::toElem): Likewise.
|
||
(StructLiteralExp::toElem): Likewise.
|
||
|
||
2014-06-14 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-elem.cc (CondExp::toElem): Handle void type condition expressions.
|
||
(AssignExp::toElem): Use ismemset to test for initialising arrays with
|
||
a single value.
|
||
(StructLiteralExp::toElem): Build static initialiser if a symbol was
|
||
created by the front-end.
|
||
* d-codegen.h (d_types_compatible): First check equality of types, then
|
||
implicit compatibility.
|
||
* d-convert.cc (d_default_conversion): Remove function, fold
|
||
implementation into...
|
||
(d_truthvalue_conversion): ... here.
|
||
|
||
2014-06-12 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-convert.cc (d_scalar_conversion): Remove function.
|
||
(d_build_truthvalue_op): Update.
|
||
(d_truthvalue_conversion): Update.
|
||
|
||
* d-codegen.cc (get_frame_for_symbol): Remove glue-specific error
|
||
messages and refactor.
|
||
(build_vthis): Likewise.
|
||
(get_framedecl): Likewise.
|
||
* d-elem.cc (AssignExp::toElem): Update call to build_vthis.
|
||
(NewExp::toElem): Likewise.
|
||
(StructLiteralExp::toElem): Likewise.
|
||
* d-objfile.cc (Dsymbol::toObjFile): Fix build warning.
|
||
|
||
* d-codegen.cc (d_decl_context): Always return parent context for
|
||
functions nested in functions.
|
||
(is_degenerate_closure): Remove function.
|
||
(needs_static_chain): Remove function.
|
||
* d-decls.cc (FuncDeclaration::toSymbol): Remove workaround for cgraph
|
||
nesting structure, saving the original context decl.
|
||
* d-lang.h (D_DECL_STATIC_CHAIN): Remove macro.
|
||
* d-objfile.cc (Symbol::Symbol): Remove ScontextDecl field.
|
||
(FuncDeclaration::toObjFile): Remove workaround for cgraph nesting
|
||
structure, restoring the original context decl. Delay building the
|
||
cgraph node until...
|
||
(d_finish_function): ... here, where the function is unnested.
|
||
|
||
2014-06-11 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-objfile.cc (d_finish_function): Update the callgraph to reflect
|
||
unnesting of the function, as unravelling has already been handled by
|
||
the frontend. Do not delay calling cgraph_finalize_function.
|
||
|
||
2014-06-09 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-objfile.cc (d_comdat_group): Return a decl.
|
||
* d-decl.cc (FuncDeclaration::toThunkSymbol): Don't set comdat group.
|
||
* d-elem.cc (EqualExp::toElem): Always store temporaries when comparing
|
||
two dynamic arrays.
|
||
|
||
2014-06-08 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-decls.cc (TypeInfoDeclaration::toSymbol): Add assert that Error
|
||
types never reach the backend.
|
||
* d-typinf.cc (Type::getTypeInfo): Likewise.
|
||
|
||
2014-06-08 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* dfrontend: Update to D front-end version 2.065.
|
||
|
||
* d-codegen.cc (d_build_call): Evaluate side effects of the object
|
||
parameter for method or delegate calls before passing.
|
||
(libcall_ids): Rename _d_array_bounds to _d_arraybounds.
|
||
(get_libcall): Update parameter types for _d_arraycopy.
|
||
(finish_aggregate_type): Update for frontend UDA changes.
|
||
* d-ctype.cc (TypeTypedef::toCtype): Update for frontend UDA changes.
|
||
(TypeEnum::toCtype): Likewise.
|
||
(TypeStruct::toCtype): Likewise.
|
||
(TypeClass::toCtype): Likewise.
|
||
* d-elem.cc (BoolExp::toElem): New function.
|
||
* d-lang.cc (rootmodule): New declaration for frontend entrypoint
|
||
changes.
|
||
(genCmain): Update for frontend entrypoint changes.
|
||
(d_handle_option): Don't duplicate memory for argument values.
|
||
(d_parse_file): Don't duplicate memory for source filenames.
|
||
* d-objfile.cc (VarDeclaration::toObjFile): Don't emit instantiated
|
||
manifest constants to debug.
|
||
(TemplateInstance::toObjFile): Update for frontend changes.
|
||
(output_template_p): Remove function.
|
||
(output_declaration_p): Update for frontend changes.
|
||
(setup_symbol_storage): Update for frontend UDA changes.
|
||
* d-target.cc (Target::reverseCppOverloads): New declaration.
|
||
* d-typinf.cc (Type::getInternalTypeInfo): Update for frontend changes.
|
||
(Type::getTypeInfo, Type::getTypeInfoDeclaration): Likewise.
|
||
(TypeTypedef::getTypeInfoDeclaration): Likewise.
|
||
(TypePointer::getTypeInfoDeclaration): Likewise.
|
||
(TypeDArray::getTypeInfoDeclaration): Likewise.
|
||
(TypeSArray::getTypeInfoDeclaration): Likewise.
|
||
(TypeAArray::getTypeInfoDeclaration): Likewise.
|
||
(TypeStruct::getTypeInfoDeclaration): Likewise.
|
||
(TypeClass::getTypeInfoDeclaration): Likewise.
|
||
(TypeVector::getTypeInfoDeclaration): Likewise.
|
||
(TypeEnum::getTypeInfoDeclaration): Likewise.
|
||
(TypeFunction::getTypeInfoDeclaration): Likewise.
|
||
(TypeDelegate::getTypeInfoDeclaration): Likewise.
|
||
(TypeTuple::getTypeInfoDeclaration): Likewise.
|
||
(createTypeInfoArray): Likewise.
|
||
|
||
* d-intrinsics.def: New file for declaring D intrinsics.
|
||
|
||
* d-builtins.cc (std_intrinsic_module, std_math_module)
|
||
(core_math_module, va_arg_template, va_arg2_template)
|
||
(va_start_template): Remove declarations.
|
||
(is_intrinsic_module_p, is_math_module_p, is_builtin_va_arg_p)
|
||
(is_builtin_va_start_p, d_gcc_magic_stdarg_check)
|
||
(d_gcc_magic_stdarg_module): Remove functions.
|
||
(d_gcc_magic_builtins_module): Rename to d_build_builtins_module.
|
||
(d_gcc_magic_libbuiltins_module): Rename to maybe_set_builtin.
|
||
(d_gcc_magic_libbuiltins_check): Rename to maybe_set_builtin_1.
|
||
(gcc_type_to_d_type): Rename to build_dtype.
|
||
(gcc_cst_to_d_expr): Rename to build_expression.
|
||
(d_gcc_eval_builtin): Remove function.
|
||
(eval_builtin): Moved to...
|
||
* d-glue.cc (eval_builtin): New function, updated for glue changes.
|
||
(FuncDeclaration::isBuiltin): New function to determine whether a
|
||
given function symbol is a compiler intrinsic.
|
||
* d-codegen.cc (maybe_expand_builtin): Rename to expand_intrinsic.
|
||
(Intrinsic): Remove enum declaration, replaced with...
|
||
(intrinsic_code): New enum for compiler intrinsics.
|
||
(intrinsic_decls): New declaration for store intrinsic information.
|
||
(expand_intrinsic_bt): Update signature.
|
||
(maybe_set_intrinsic): New function to replace...
|
||
(maybe_set_builtin_frontend): Remove function.
|
||
* d-decls.cc (FuncDeclaration::toSymbol): Update for glue changes.
|
||
|
||
* d-builtins.c: Rename to d-builtins.cc
|
||
* d-gt.c: Rename to d-gt.cc
|
||
* d-spec.c: Rename to d-spec.cc
|
||
|
||
* d-toir.cc: Renamed to toir.cc
|
||
* toir.cc: New file, re-implement toIR methods as a visitor.
|
||
|
||
* d-codegen.cc (insert_type_modifiers): Handle MODwildconst modifiers.
|
||
(build_ir): New function.
|
||
* d-objfile.cc (FuncDeclaration::toObjFile): Use build_ir to walk
|
||
front-end IR trees.
|
||
* d-decls.cc (VarDeclaration::toSymbol): Mark compiler temporaries as
|
||
DECL_ARTIFICIAL.
|
||
(ClassDeclaration::toVtblSymbol): Update for front-end changes.
|
||
* d-builtins.c (gcc_type_to_d_type): Likewise.
|
||
* d-elem.cc (CatAssignExp::toElem): Likewise.
|
||
(ArrayLiteralExp::toElem): Likewise.
|
||
(BoolExp::toElem): Remove function.
|
||
(ComExp::toElem): Assert that unhandled array operations no longer
|
||
leak from the front-end.
|
||
(NegExp::toElem): Likewise.
|
||
* d-glue.cc (Global::init): Initialise new member run_noext.
|
||
* d-incpath (add_import_path): Update for front-end changes.
|
||
* d-lang.cc (d_add_builtin_version): Likewise.
|
||
* d-todt.cc (StructDeclaration::toDt): Likewise.
|
||
* d-toir.cc (LabelStatement::toIR): Don't delete forward references.
|
||
(GotoStatement::toIR): Assert that undefined labels no longer leak
|
||
from the front-end.
|
||
|
||
2014-05-31 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-todt.cc (dt_container): Properly handle zero length static arrays.
|
||
* d-codegen.h (build_dtype): Rename to lang_dtype.
|
||
(build_ddecl): Rename to lang_ddecl.
|
||
|
||
2014-05-21 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-builtins.c (d_init_builtins): Use void_node instead of
|
||
d_void_zero_node.
|
||
* d-lang.h (d_void_zero_node): Remove.
|
||
* d-elem.cc (AndAndExp::toElem): Adjust.
|
||
(OrOrExp::toElem): Likewise.
|
||
(AssertExp::toElem): Likewise.
|
||
(TupleExp::toElem): Likewise.
|
||
|
||
* d-builtins.c (d_init_builtins): Use null_pointer_node instead of
|
||
d_null_pointer.
|
||
* d-lang.h (d_null_pointer): Remove.
|
||
* d-codegen.cc (convert_expr): Adjust.
|
||
(get_frame_for_symbol): Likewise.
|
||
(build_vthis): Likewise.
|
||
(get_framedecl): Likewise.
|
||
* d-elem.cc (DeleteExp::toElem): Likewise.
|
||
(CallExp::toElem): Likewise.
|
||
(AssertExp::toElem): Likewise.
|
||
(NewExp::toElem): Likewise.
|
||
(ArrayLiteralExp::toElem): Likewise.
|
||
(NullExp::toElem): Likewise.
|
||
* d-objfile.cc (ClassDeclaration::toObjFile): Likewise.
|
||
(InterfaceDeclaration::toObjFile): Likewise.
|
||
(FuncDeclaration::toObjFile): Likewise.
|
||
(build_moduleinfo): Likewise.
|
||
* d-todt.cc (TypeInfoTypedefDeclaration::toDt): Likewise.
|
||
(TypeInfoEnumDeclaration::toDt): Likewise.
|
||
(TypeInfoStructDeclaration::toDt): Likewise.
|
||
|
||
2014-05-18 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-longdouble.cc (longdouble::from_shwi): Rename to from_int.
|
||
(longdouble::from_uhwi): Rename to from_uint.
|
||
(longdouble::to_shwi): Rename to to_int.
|
||
(longdouble::to_uhwi): Rename to to_uint.
|
||
(longdouble::set): Adjust.
|
||
(longdouble::operator): Likewise.
|
||
|
||
* d-lang.cc (alloc_binding_level): Adjust.
|
||
(build_d_type_lang_specific): Likewise.
|
||
(build_d_decl_lang_specific): Likewise.
|
||
* d-lang.h (lang_type): Don't use variable_size gty attribute.
|
||
* d-codegen.cc (cst_to_hwi): Remove function.
|
||
* d-codegen.cc (tree_to_hwi): Remove function.
|
||
* d-builtins.c (gcc_type_to_d_type): Adjust.
|
||
(gcc_cst_to_d_expr): Likewise.
|
||
* d-convert.cc (d_truthvalue_conversion): Use integer_zerop.
|
||
(get_nonnull_operand): Use tree_fits_uhwi_p.
|
||
* d-longdouble.cc (longdouble::from_int): Adjust.
|
||
(longdouble::from_uint): Likewise.
|
||
(longdouble::to_int): Likewise.
|
||
|
||
2014-04-30 Johannes Pfau <johannespfau@gmail.com>
|
||
|
||
* d-lang.cc (d_init): Define GNU_SEH_Exceptions and
|
||
GNU_DWARF2_Exceptions versions.
|
||
|
||
2014-04-21 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-lang.cc (d_init_options): Default deprecation warnings to off.
|
||
* d-ctype.cc (TypeDelegate::toCtype): Propogate TREE_ADDRESSABLE from
|
||
the base function to the delegatised copy.
|
||
|
||
2014-04-15 Johannes Pfau <johannespfau@gmail.com>
|
||
|
||
* d-lang.cc (d_handle_noclone_attribute): New function to handle
|
||
noclone attribute. noclone is required by the naked attribute.
|
||
* d-elem.cc (SymbolExp::toElem): Convert symbols to the expression
|
||
type.
|
||
|
||
2014-04-13 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-codegen.cc (get_frameinfo): Don't copy the node for frame record.
|
||
* d-irstate.cc (IRState::endCatches): Rebuild the STATEMENT_LIST of
|
||
catches in a TRY_CATCH_EXPR if it gets optimised away by
|
||
IRState::popStatement.
|
||
* d-codegen.cc (d_attribute_p): Provide access to target attributes.
|
||
|
||
2014-03-31 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-codegen.cc (error_mark_p): Removed function, replace uses with
|
||
error_operand_p.
|
||
(error_mark): Removed function, replace uses with error_mark_node.
|
||
* d-ctype.cc (Type::toCtype): Return d_unknown_type_node for frontend
|
||
error types.
|
||
* d-objfile.cc (VarDeclaration::toObjFile): Don't build CONST_DECLs for
|
||
non-scalar manifests.
|
||
|
||
2014-03-23 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-decls.cc (Dsymbol::toImport): Prevent GC from collecting
|
||
IMPORTED_DECL nodes whilst front-end compilation in progress.
|
||
|
||
2014-03-19 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-codegen.cc (AggLayout::visit): Rename to layout_aggregate_type.
|
||
(AggLayout::doFields, AggLayout::doInterfaces): Remove function and
|
||
move implementation into layout_aggregate_type.
|
||
(AggLayout::addField): Rename to insert_aggregate_field.
|
||
(AggLayout::finish): Rename to finish_aggregate_type.
|
||
* d-codegen.h (AggLayout): Update definition.
|
||
* d-ctype.cc (TypeStruct::toCtype): Update for glue changes.
|
||
(TypeFunction::toCtype): Fix ICE on generic function types.
|
||
(TypeClass::toCtype): Move generation of vptr and monitor fields into
|
||
layout_aggregate_type. Moved generation of TYPE_METHODS from ...
|
||
* d-objfile.cc (FuncDeclaration::toObjFile): ... here into
|
||
TypeClass::toCtype. Don't build up TYPE_METHODS on a per-function
|
||
basis, generate the entire vtable.
|
||
|
||
2014-03-18 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-decls.cc (Dsymbol::toSymbolX): Set the symbol prettyIdent.
|
||
(Dsymbol::toImport): Emit packages as their fully qualified names.
|
||
(ClassDeclaration::toSymbol): Distinguish between the classinfo
|
||
assembler and decl name.
|
||
(InterfaceDeclaration::toSymbol): Likewise for interface symbol.
|
||
(Module::toSymbol): Likewise for moduleinfo symbol.
|
||
(ClassDeclaration::toVtblSymbol): Likewise for class vtable symbol.
|
||
(AggregateDeclaration::toInitializer)
|
||
(TypedefDeclaration::toInitializer, EnumDeclaration::toInitializer):
|
||
Likewise for default initialisers.
|
||
* d-objfile.cc (Module::genobjfile): Don't set-up moduleinfo symbol
|
||
storage twice.
|
||
|
||
2014-03-17 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-codegen.cc (d_decl_context): Fix null pointer dereference.
|
||
* d-objfile.cc (FuncDeclaration::toObjFile): Don't override the setting
|
||
of DECL_CONTEXT on the declaration here.
|
||
(d_finish_symbol): Likewise.
|
||
* d-objfile.cc (VarDeclaration::toObjFile): Move the generation of
|
||
manifest constants to ...
|
||
* d-decls.cc (VarDeclaration::toSymbol): ... here, and emit them as
|
||
CONST_DECLs. Set the DECL_CONTEXT for all variable symbols.
|
||
|
||
* d-builtins.cc (d_gcc_magic_builtins_module): Don't store compiler
|
||
generated builtins in Symbol::isym, use Symbol::csym instead.
|
||
(d_gcc_magic_libbuiltins_check): Likewise.
|
||
* d-codegen.cc (d_decl_context): Return the imported symbol tree of
|
||
modules where the NAMESPACE_DECL is now stored.
|
||
(d_build_module): Remove function. Move implementation to ...
|
||
* d-decls.cc (Dsymbol::toImport): ... here. Build an IMPORTED_DECL for
|
||
all imported declarations.
|
||
(FuncDeclaration::toSymbol): Remove special handling of Symbol::isym.
|
||
(Module::toSymbol): Remove call to d_build_module.
|
||
* d-objfile.cc (Dsymbol::toObjFile): Handle emission of IMPORTED_DECL
|
||
symbols to debug.
|
||
|
||
2014-03-16 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-codegen.cc (build_attributes): Ensure D-specific attributes have
|
||
their value interpreted through CTFE.
|
||
|
||
2014-02-21 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-codegen.cc (d_build_module): Update signature to accept a Loc
|
||
location to the module declaration.
|
||
* d-decls.cc (Module::toSymbol): Update call to d_build_module.
|
||
Set TREE_PUBLIC/DECL_EXTERNAL to distingush which modules are being
|
||
compiled.
|
||
* d-objfile.cc (Dsymbol::toObjFile): Handle Import symbols, and emit
|
||
debug information for imported modules.
|
||
(ImportStatement::toIR): Likewise.
|
||
(set_input_location): New function to implement the equivalent of
|
||
set_decl_location, but instead sets input_location.
|
||
|
||
2014-02-19 Johannes Pfau <johannespfau@gmail.com>
|
||
|
||
* d-objfile.cc (build_call_function): Call set_input_location
|
||
to set debug info correctly
|
||
|
||
2014-02-18 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-objfile.cc (VarDeclaration::toObjFile): Remove toplevel check.
|
||
DECL_CONTEXT is never set on manifest constants.
|
||
(d_finish_compilation): Remove fancy check on force outputting
|
||
symbols to object file.
|
||
(build_type_decl): Don't emit the qualified identifier in debug
|
||
information. The fully qualified name is now determined through the
|
||
NAMESPACE_DECL context chain.
|
||
* d-ctype.cc (TypeEnum::toCtype): Likewise for enum members.
|
||
(VarDeclaration::toSymbol): Likewise for static variables.
|
||
(FuncDeclaration::toSymbol): Likewise for functions.
|
||
|
||
* d-decls.cc (FuncDeclaration::toSymbol): Don't emit the 'D main'
|
||
symbol to debug as plain 'main'.
|
||
* d-objfile.cc (VarDeclaration::toObjFile): Don't emit the qualified
|
||
identifier of manifest constants in debug information.
|
||
|
||
2014-02-17 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-codegen.cc (d_build_module): New function.
|
||
* d-decls.cc (Module::toSymbol): Use d_build_module to build up the
|
||
qualified module namespace.
|
||
|
||
* d-codegen.cc (expand_intrinsic_op, expand_intrinsic_op2): New
|
||
functions to build a call to a builtin code.
|
||
(expand_intrinsic_bsr, expand_intrinsic_bt): New functions to expand a
|
||
BUILTIN_FRONTEND call to core.bitop intrinsics.
|
||
(expand_intrinsic_vaarg, expand_intrinsic_vastart): New functions to
|
||
expand a BUILTIN_FRONTEND call to core.vararg intrinsics.
|
||
(maybe_expand_builtin): Update.
|
||
|
||
2014-02-16 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-decls.cc (Module::toSymbol): Build a NAMESPACE_DECL to populate the
|
||
DECL_CONTEXT of toplevel functions.
|
||
* d-codegen.cc (d_decl_context): Return the enclosing module
|
||
NAMESPACE_DECL as the decl context only when the symbol is extern(D)
|
||
and not D main.
|
||
|
||
2014-02-15 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-decls.cc (VarDeclaration::toSymbol): Don't call
|
||
setup_symbol_storage until after SET_DECL_ASSEMBLER_NAME has been set.
|
||
|
||
* d-decls.cc (VarDeclaration::toSymbol): Give prettyIdent precedence
|
||
for the DECL_NAME over the simple identifier.
|
||
(FuncDeclaration::toSymbol): Likewise.
|
||
* d-objfile.cc (d_finish_symbol): Remove setting DECL_NAME as
|
||
prettyIdent, this has already been done in Declaration::toSymbol.
|
||
(d_finish_function): Likewise.
|
||
|
||
* d-decls.cc (VarDeclaration::toSymbol): Call set_user_assembler_name
|
||
if pragma(mangle) was seen.
|
||
(FuncDeclaration::toSymbol): Likewise.
|
||
|
||
2014-02-12 Johannes Pfau <johannespfau@gmail.com>
|
||
|
||
* d-decls.cc (FuncDeclaration::toSymbol): Do not set TREE_NOTHROW on
|
||
nothrow functions.
|
||
* d-decls.cc (TypeInfoDeclaration::toSymbol): Call relayout_decl after
|
||
changing the type.
|
||
|
||
2014-02-03 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
|
||
* d-codegen.cc (d_build_call): Remove special handling of
|
||
flag_split_darrays switch.
|
||
(maybe_expand_builtin): Likewise.
|
||
* d-elem.cc (CatExp::toElem): Likewise.
|
||
* lang.opt (fsplit-dynamic-arrays): Remove.
|
||
|
||
2014-02-02 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-glue.cc (readFile, writeFile, ensurePathToNameExists): Define.
|
||
* d-incpath.cc (add_import_path): Update for frontend changes.
|
||
(add_fileimp_path): Likewise.
|
||
* d-lang.cc (deps_write): Likewise.
|
||
(d_parse_file): Likewise.
|
||
* d-todt.cc (Dts): Update define for frontend changes.
|
||
* d-decls.cc (ClassDeclaration::toVtblSymbol): Don't mark __vtbl
|
||
symbols as virtual. They are global static symbols.
|
||
|
||
2014-01-12 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-decls.cc (EnumDeclaration::toDebug): Build TYPE_DECL only for
|
||
enumeral types.
|
||
|
||
2014-01-06 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-ctype.cc (TypeClass::toCtype): Don't add __monitor field for
|
||
extern(C++) classes.
|
||
|
||
* d-builtins.c (d_gcc_magic_module): Remove tdata.
|
||
* d-codegen.cc (build_interface_binfo): Likewise.
|
||
* d-ctype.cc (TypeEnum::toCtype): Likewise.
|
||
(TypeClass::toCtype): Likewise.
|
||
* d-lang.cc (deps_write): Likewise.
|
||
|
||
2014-01-05 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-ctype.cc (TypeEnum::toCtype): Don't push CONST_DECLs into current
|
||
function.
|
||
* d-decls.cc (FuncDeclaration::toThunkSymbol): Don't mark symbol as
|
||
TREE_PRIVATE, just TREE_PUBLIC as false.
|
||
(StructLiteralExp::toSymbol): Likewise.
|
||
(ClassReferenceExp::toSymbol): Likewise.
|
||
* d-objfile.cc (d_comdat_linkage): Likewise.
|
||
(d_finish_symbol): Likewise.
|
||
(build_moduleinfo): Likewise.
|
||
|
||
* config-lang.in: Add d-lang.cc to gtfiles.
|
||
* d-irstate.h (IRState::varsInScope): Change from Array to vec<> type.
|
||
(IRState::statementList_): Likewise.
|
||
(IRState::scopes_): Likewise.
|
||
(IRState::loops_): Likewise.
|
||
(IRState::labels_): Likewise.
|
||
* d-lang.h (d_bi_builtin_func): Remove declaration.
|
||
(d_bi_builtin_type): Likewise.
|
||
(d_keep_list): Likewise.
|
||
* d-objfile.h (Symbol::thunks): Change from Array to vec<> type.
|
||
(ModuleInfo::classes): Likewise.
|
||
(ModuleInfo::ctors): Likewise.
|
||
(ModuleInfo::dtors): Likewise.
|
||
(ModuleInfo::ctorgates): Likewise.
|
||
(ModuleInfo::sharedctors): Likewise.
|
||
(ModuleInfo::shareddtors): Likewise.
|
||
(ModuleInfo::sharedctorgates): Likewise.
|
||
(ModuleInfo::unitTests): Likewise.
|
||
(build_simple_function): Remove declaration.
|
||
(build_call_function): Likewise.
|
||
(build_ctor_function): Likewise.
|
||
(build_dtor_function): Likewise.
|
||
(build_unittest_function): Likewise.
|
||
* d-builtins.c (bi_fn_list): Rename to gcc_builtins_functions.
|
||
(bi_lib_list): Rename to gcc_builtins_libfuncs.
|
||
(bi_type_list): Rename to gcc_builtins_types.
|
||
(builtin_converted_types): Remove.
|
||
(builtin_converted_decls): Change from Array to vec<> type.
|
||
(gcc_type_to_d_type): Update.
|
||
(d_bi_builtin_func): Remove and move to d_builtin_function.
|
||
(d_bi_builtin_type): Remove and move to d_register_builtin_type.
|
||
(d_gcc_magic_builtins_module): Update.
|
||
* d-ctype.cc (TypeClass::toCtype): Remove unused var.
|
||
* d-decls.cc (FuncDeclaration::toThunkSymbol): Update for change to
|
||
vec<> type.
|
||
* d-elem.cc (CatExp::toElem): Change stashed vars from Array to vec<>.
|
||
(Expression::toElemDtor): Update for change to vec<> type.
|
||
* d-irstate.cc (IRState::startFunction): Likewise.
|
||
(IRState::endFunction): Likewise.
|
||
(IRState::addExp): Likewise.
|
||
(IRState::pushStatementList): Likewise.
|
||
(IRState::popStatementList): Likewise.
|
||
(IRState::getLabelBlock): Likewise.
|
||
(IRState::getLoopForLabel): Likewise.
|
||
(IRState::beginFlow): Likewise.
|
||
(IRState::endFlow): Likewise.
|
||
(IRState::startScope): Likewise.
|
||
(IRState::pushLabel): Likewise.
|
||
(IRState::checkGoto): Likewise.
|
||
(IRState::checkPreviousGoto): Change from Array to Blocks type.
|
||
* d-lang.cc (global_declarations): Change from Array to vec<> type.
|
||
(d_add_global_declaration): Update for change to vec<> type.
|
||
(d_write_global_declarations): Likewise.
|
||
(d_keep_list): Make static to source file.
|
||
* d-objfile.cc (static_ctor_list): Change from Array to vec<> type.
|
||
(static_dtor_list): Likewise.
|
||
(Module::genobjfile): Update for change to vec<> type.
|
||
(d_finish_module): Likewise.
|
||
(d_finish_function): Likewise.
|
||
(deferred_thunks): Change from ArrayBase<> to vec<> type.
|
||
(write_deferred_thunks): Update for change to vec<> type.
|
||
(use_thunk): Likewise.
|
||
(build_simple_function): Make static to source file.
|
||
(build_call_function): Likewise.
|
||
(build_ctor_function): Likewise.
|
||
(build_dtor_function): Likewise.
|
||
(build_unittest_function): Likewise.
|
||
|
||
2014-01-02 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* d-objfile.cc (setup_symbol_storage): Use output_module_p on template
|
||
instantiating module to determine if symbol is externally compiled.
|
||
(d_finish_function): Set function local if function body was compiled.
|
||
* d-decls.cc (Dsymbol::toSymbolX): Use unsigned integer format for the
|
||
prefix string length.
|
||
|
||
|
||
Copyright (C) 2014 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.
|