| 2013-02-15 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * Make-lang.in (GDC_EXTENDED_ASM_SYNTAX): Remove macro. | |
| 2013-02-14 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.h (D_DECL_IS_CONTRACT): Remove macro. | |
| * d-decls.cc (FuncDeclaration::toSymbol): Likewise. | |
| 2013-02-13 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-lang.cc (d_gcc_is_target_win32): Remove. | |
| (d_add_builtin_version): New function to handle define_builtin | |
| callback from backend. | |
| * d-codegen.cc (IRState::maybeExpandSpecialCall): Remove intrinsic bt. | |
| * d-builtins.c: Merge with d-builtins2.cc. | |
| * d-builtins2.cc: Remove. | |
| 2013-02-07 Johannes Pfau <johannespfau@gmail.com> | |
| * d-lang.cc (d_init): Use gcc's config system for predefined OS versions. | |
| * setup-gcc.sh: Likewise. | |
| * target-ver-syms.sh: Likewise. | |
| 2013-02-05 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-builtins2.cc (gcc_type_to_d_type): Remove STRUCTTHISREF condition. | |
| * d-decls.cc (FuncDeclaration::toSymbol): Likewise. | |
| * d-elem.cc (ThisExp::toElem): Likewise. | |
| * d-ctype.cc (TypeSArray::toCtype): Remove SARRAYVALUE condition. | |
| * d-codegen.cc (IRState::isDeclarationReferenceType): Likewise. | |
| (IRState::isArgumentReferenceType): Likewise. | |
| 2013-02-01 Johannes Pfau <johannespfau@gmail.com> | |
| * d-lang.cc (d_init): Use gcc's config system for predefined CPU versions. | |
| (d_init): Fix definition of D_LP64 version. | |
| * setup-gcc.sh: Likewise. | |
| * target-ver-syms.sh: Likewise. | |
| 2012-12-16 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-decls.cc (FuncDeclaration::toSymbol): Don't optimise PUREconst | |
| calls. | |
| 2012-10-27 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-codegen.cc (IRState::buildAssignOp): Handle case where LHS type is | |
| not compatible with expression type. | |
| 2012-10-26 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-decls.cc (ClassDeclaration::toSymbol): Use empty RECORD_TYPE to | |
| build internal symbol. | |
| (Module::toSymbol): Likewise. | |
| * d-objfile.cc (outdata): Set type size from constructor if not | |
| COMPLETE_TYPE_P. Assert that DECL_INITIAL is never bigger than | |
| TYPE_SIZE. | |
| 2012-10-25 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-codegen.cc (IRState::getFrameInfo): Use vthis to determine whether | |
| function is nested. | |
| 2012-10-21 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-builtins2.cc (gcc_type_to_d_type): Remove special case for | |
| double/long double types. | |
| (d_gcc_magic_builtins_module): Cleanup generation of builtin types. | |
| Add __builtin_unwind_int and __builtin_unwind_uint. | |
| 2012-10-16 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-objfile.cc (ObjectFile::outputThunk): Mark thunk as DECL_WEAK | |
| rather than using weakref attribute. | |
| 2012-10-14 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-bi-attrs.h: Remove file. | |
| * d-builtins.c (d_attribute_table): Define table of machine independant | |
| attributes for gcc builtins. | |
| (d_format_attribute_table): Define table of format attributes for gcc | |
| builtins. | |
| (handle_noreturn_attribute, handle_leaf_attribute, | |
| handle_const_attribute, handle_malloc_attribute, | |
| handle_returns_twice_attribute, handle_pure_attribute, | |
| handle_novops_attribute, get_nonnull_operand, | |
| handle_nonnull_attribute, handle_nothrow_attribute, | |
| handle_sentinel_attribute, handle_type_generic_attribute, | |
| handle_fnspec_attribute, handle_transaction_pure_attribute, | |
| ignore_attribute): Moved common attribute handlers from d-bi-attrs.h. | |
| * d-lang.cc (LANG_HOOKS_ATTRIBUTE_TABLE): Use instead of | |
| LANG_HOOKS_COMMON_ATTRIBUTE_TABLE. | |
| (d_attribute_table): Renamed from d_common_attribute_table. | |
| (d_format_attribute_table): Renamed from | |
| d_common_format_attribute_table. | |
| (d_init_ts): Renamed from d_common_init_ts. | |
| * d-builtins2.cc (d_bi_init): Determine D frontend type for size_t. | |
| * d-objfile.cc (ObjectFile::hasModule): Remove old compatibility | |
| macros. | |
| 2012-10-08 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-glue.cc (VectorExp::toElem): Handle non-constant array literals as | |
| vector expressions. | |
| 2012-10-04 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-glue.cc (VectorExp::toElem): Handle both array literal as well as | |
| single element constructors for vector expressions. | |
| 2012-09-27 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-convert.cc (convert): Remove assert. | |
| 2012-09-22 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-codegen.cc (IRState::maybeCompound): Use IRState::compound. | |
| (IRState::maybeVoidCompound): Use IRState::voidCompound. | |
| (IRState::call): Check TREE_SIDE_EFFECTS to determine order of | |
| evaluation in function calls. Evaluate callee before arguments if has | |
| side effects. | |
| * d-decls.cc (FuncDeclaration::toSymbol): Don't set any pure/nothrow | |
| attributes if asserts are generated in code. | |
| * d-incpath (add_fileimp_path): Fix ICE using -J option. | |
| * d-objfile.cc (Obj::moduleinfo): Clean-up. | |
| 2012-09-18 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-lang.cc (d_initialize_diagnostics): New function, disable unneeded | |
| diagnostic options. | |
| (d_handle_option): Remove OPT_fdebug_c. | |
| * d-spec.c (lang_specific_driver): Remove OPT_fod_, OPT_fop. | |
| * lang.opt: Remove -fdebug-c, -fod, and -fop compiler options. | |
| 2012-09-17 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-codegen.h (CtorEltMaker::cons): Adjust call to VEC_safe_push. | |
| * d-objfile.cc (ObjectFile::stripVarDecl): Clean-up. | |
| 2012-09-16 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-codegen.cc (IRState::isCallByAlias): New function. | |
| (IRState::call): Use IRState::isCallByAlias. | |
| * d-objfile.cc (ObjectFile::setupSymbolStorage): Mark | |
| force_static_public symbols as public. | |
| * d-spec.c (lang_specific_driver): Update for GCC-4.8. | |
| * lang.opt: Fix spelling of option -static-libphobos | |
| * d-codegen.cc (IRState::maybeExpandSpecialCall): Do not handle inp* | |
| and outp* port intrinsic functions. | |
| (IRState::maybeSetUpBuiltin): Likewise. | |
| (IRState::expandPortIntrinsic): Remove. | |
| 2012-09-10 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-codegen.cc (AggLayout::doFields): Propagate volatile out of type. | |
| (AggLayout::addField): Likewise. | |
| * d-decls.cc (VarDeclaration::toSymbol): Likewise. | |
| 2012-09-06 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-codegen.h (IRState::vconvert): Don't use VIEW_CONVERT_EXPR. | |
| * d-glue.cc (TypeEnum::toCtype): Mark TYPE_PACKED if flag_short_enums. | |
| (TypeClass::toCtype): Mark TREE_ADDRESSABLE to ensure class is always | |
| passed in memory. | |
| * d-tree.def (UNSIGNED_RSHIFT_EXPR): Define new tree expression. | |
| (FLOAT_MOD_EXPR): Define new tree expression. | |
| * d-lang.cc (d_common_init_ts): New function. | |
| (d_write_global_declarations): Call check_global_declarations after | |
| finalize_compilation_unit. | |
| (d_gimplify_expr): Handle UNSIGNED_RSHIFT_EXPR, IASM_EXPR. | |
| * d-codegen.cc (IRState::arrayOpNotImplemented): New function. | |
| (IRState::buildOp): New function. | |
| (IRState::buildAssignOp): New function. | |
| * d-glue.cc (build_bool_binop): Remove function, mostly move to | |
| CmpExp::toElem. | |
| (build_math_op): Remove function, mostly move to IRState::buildOp. | |
| (build_assign_math_op): Remove function, mostly move to | |
| IRState::buildAssignOp. | |
| (BinExp::toElemBin): Remove function. | |
| (IdentityExp::toElem, EqualExp::toElem, CmpExp::toElem) | |
| (AndAndExp::toElem, OrOrExp::toElem): Clean-up, use IRState::boolOp. | |
| (XorExp::toElem, OrExp::toElem, AndExp::toElem, UshrExp::toElem) | |
| (ShrExp::toElem, ShlExp::toElem, ModExp::toElem, DivExp::toElem) | |
| (MulExp::toElem, MinExp::toElem, AddExp::toElem):Use | |
| IRState::arrayOpNotImplemented, IRState::buildOp. | |
| (XorAssignExp::toElem, OrAssignExp::toElem, AndAssignExp::toElem) | |
| (UshrAssignExp::toElem, ShrAssignExp::toElem, ShlAssignExp::toElem) | |
| (ModAssignExp::toElem, DivAssignExp::toElem, MulAssignExp::toElem) | |
| (MinAssignExp::toElem, AddAssignExp::toElem): Use | |
| IRState::arrayOpNotImplemented, IRState::buildAssignOp. | |
| * d-codegen.cc (libcall_ids): Remove _adCmpChar. | |
| (IRState::getLibCallDecl): Remove LIBCALL_ADCMPCHAR. | |
| * d-glue.cc (CmpExp::toElem): Don't call LIBCALL_ADCMPCHAR. | |
| * lang.opt: Define Wcast-result. | |
| * d-codegen.cc (IRState::convertTo): Warn about null result, but only | |
| if -Wcast-result. | |
| (IRState::hwi2toli): Move to header. | |
| (IRState::realPart): Likewise. | |
| (IRState::imagPart): Likewise. | |
| (IRState::toElemLvalue): Clean-up tree args array. | |
| (IRState::doArraySet): New function. | |
| (IRState::arraySetExpr): New function. | |
| * d-glue.cc (EqualExp::toElem): Clean-up tree args array. | |
| (CatAssignExp::toElem): Likewise. | |
| (AssignExp::toElem): Likewise. | |
| (DeleteExp::toElem): Likewise. | |
| (NewExp::toElem): Use IRState::modify. | |
| (ArrayLiteralExp::toElem): Don't call ARRAYLITERALTX library function | |
| if assigning to static array. | |
| (StructLiteralExp::toElem): Use IRState::arraySetExpr. | |
| (do_array_set): Move to IRState::doArraySet. | |
| (array_set_expr): Move to IRState::arraySetExpr. | |
| * d-lang.h (D_TYPE_IMAGINARY_FLOAT): Define. | |
| (d_convert_basic): Remove. | |
| * d-builtins.c (d_init_builtins): Mark imaginary types as | |
| D_TYPE_IMAGINARY_FLOAT. | |
| * d-builtins2.cc (gcc_type_to_d_type): Use convert. | |
| * d-codegen.cc (IRState::emitLocalVar): Call pushdecl earlier so | |
| catches CONST_DECLs. | |
| (IRState::convertTo): Remove handling of conversions between | |
| imaginary/real, imaginary/complex, complex/imaginary types, use | |
| convert. | |
| (IRState::convertForArgument): Use convert. | |
| (IRState::arrayElemRef): Likewise. | |
| (IRState::call): Likewise. | |
| (IRState::libCall): Likewise. | |
| (IRState::maybeExpandSpecialCall): Likewise. | |
| * d-convert.cc (d_convert_basic): Mark static. | |
| (convert): Handle correct conversions between imaginary/real, | |
| imaginary/complex, complex/imaginary types. | |
| * d-glue.cc (InExp::toElem): Use convert. | |
| (BoolExp::toElem): Likewise. | |
| (FuncDeclaration::buildClosure): Likewise. | |
| * d-builtins.c (def_fn_type): Use build_varargs_function_type_array and | |
| build_function_type_array to create built-in functions. | |
| (d_init_builtins): Use lang_hooks.types.type_for_size. | |
| * d-builtins2.cc (d_gcc_magic_builtins_module): Use | |
| lang_hooks.types.type_for_mode. | |
| * d-codegen.cc (IRState::pointerIntSum): Use | |
| lang_hooks.types.type_for_size. | |
| (IRState::call): Use lang_hooks.types.type_promotes_to. | |
| (IRState::maybeExpandSpecialCall): Likewise. | |
| * d-glue.cc (build_math_op): Use lang_hooks.types.type_for_mode. | |
| * d-lang.cc (d_type_for_mode): Mark static. | |
| (d_type_for_size): Likewise. | |
| (d_type_promotes_to): Likewise. | |
| 2012-08-31 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-glue.cc (FuncDeclaration::toObjFile): Flatten nested levels and | |
| loops in function, delay printing function name in verbose mode until | |
| we know the function is being compiled. | |
| * d-codegen.cc (IRState::buildFrameForFunction): New function. | |
| (IRState::buildChain): Use IRState::buildFrameForFunction to get the | |
| frame record type. | |
| (IRState::getFrameInfo): Likewise. | |
| * d-glue.cc (FuncDeclaration::buildClosure): Likewise. | |
| 2012-08-30 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * asmstmt.cc (ExtAsmStatement::toCBuffer): Mark unused parameter as | |
| ATTRIBUTE_UNUSED. | |
| * d-codegen.cc (WrappedExp::toCBuffer): Likewise. | |
| * d-objfile.cc (ObjectFile::setupSymbolStorage): Revert to previous | |
| behaviour of setting symbol storage. | |
| * d-codegen.cc (IRState::expandDecl): Use IRState::vinit. | |
| (IRState::binding): Likewise. | |
| (IRState::var): Handle all declarations, not just vars. | |
| * d-glue.cc (PtrExp::toElem): Simplify use of IRState::var. | |
| (SymbolExp::toElem ): Likewise. | |
| (ThisExp::toElem): Likewise. | |
| * d-lang.cc (d_init): Remove 'Thumb' identifier for ARM as 16bit | |
| platforms aren't supported. | |
| (GNU_LongDouble128): Remove identifier as long double size is | |
| determined from type information. | |
| * d-decls.cc (TypeInfoDeclaration::toSymbol): Mark all typeinfo decls | |
| as 'used'. | |
| * d-glue.cc (one_elem_array): Remove. | |
| (CatExp::toElem): Inline use of one_elem_array, clean-up. | |
| * d-objfile.cc (ObjectFile::setupSymbolStorage): Update to better | |
| handle use of declarations marked with comdat, extern or static. | |
| (ObjectFile::doSimpleFunction): Mark function as 'used'. | |
| * dt.cc (dt2node): Clean-up indentation. | |
| * Make-lang.in: Fix issue with cross-compiler configuration. | |
| 2012-08-29 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * lang-specs.h: Remove special case for handled D source files. | |
| * Make-lang.in: Remove special case for building gcc.o, use | |
| GCC_EXTRA_LIBS to link against, rather than specific gcc object files. | |
| (D_DRIVER_NAME): Remove use of variable. | |
| (D_DRIVER_OBJS): Likewise. | |
| (D_COMPILER_NAME): Likewise. | |
| 2012-08-23 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-builtins2.cc (eval_builtin): Use builtin_decl_explicit. | |
| * d-codegen.cc (IRState::emitLocalVar): Use warning. | |
| (IRState::convertTo): Likewise. | |
| (IRState::addressOf): Use IRState::markAddressable. | |
| (IRState::markAddressable): New function. | |
| (IRState::markUsed): New function. | |
| (IRState::markRead): New function. | |
| (IRState::maybeExpandSpecialCall): Use builtin_decl_explicit. | |
| (IRState::floatMod): Likewise. | |
| (IRState::exceptionObject): Likewise. | |
| * d-glue.cc (IdentityExp::toElem): Likewise. | |
| (EqualExp::toElem): Likewise. | |
| (PowExp::toElem): Likewise. | |
| (AssignExp::toElem): Likewise. | |
| (HaltExp::toElem): Likewise. | |
| (ArrayLiteralExp::toElem): Likewise. | |
| (FuncDeclaration::toObjFile): Likewise. | |
| * d-lang.cc (d_mark_addressable): Remove function. | |
| (d_mark_exp_read): Remove function. | |
| * d-lang.h (d_warning): Remove macro. | |
| (d_built_in_decls): Remove macro. | |
| * d-objfile.cc (Obj::includelib): Use warning. | |
| (Obj::startaddress): Likewise. | |
| 2012-08-22 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-lang.cc (binary): Moved function from frontend. | |
| * d-codegen.cc (IRState::extractMethodCallExpr): Update for new C++ VEC | |
| template in GCC. | |
| * d-bi-attrs.h (parse_optimize_options): Likewise. | |
| * d-dmd-gcc.h: Remove ifdef __cplusplus, use GCC_SAFE_DMD. | |
| * d-gcc-includes.h: Remove ifdef __cplusplus. | |
| * d-lang.h: Likewise. | |
| * Make-lang.in: Remove CC and CFLAGS from Makefile, add build rule for | |
| new texi man pages. | |
| * gdc.texi: New documentation for GDC. | |
| 2012-08-18 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-codegen.cc (IRState::convertTo): Fix to allow conversion between | |
| void* and associative arrays. | |
| (IRState::convertForArgument): Use d_convert_basic. | |
| (IRState::call): Don't use d_convert_basic, now handled by | |
| convertForArgument. | |
| * d-gcc-real.cc (real_t::real_t): Increase real type mode to be greater | |
| than integer type size to prevent overflow in conversions. | |
| * d-glue.cc (CastExp::toElem): Don't get implicit AA type. | |
| 2012-08-17 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * dfrontend: Update to D frontend version 2.060 | |
| * d-codegen.cc (libcall_ids): New library functions. | |
| (IRState::getLibCallDecl): Implement new library function signatures. | |
| * d-codegen.h (LibCall::LIBCALL_NEWITEMT): New enum value. | |
| (LibCall::LIBCALL_NEWITEMIT): Likewise. | |
| * d-decls.cc (FuncDeclaration::toSymbol): Small readability cleanup. | |
| * d-glue.cc (NewExp::toElem): Use new library functions. | |
| (StructLiteralExp::toElem): Update for new frontend. | |
| (ReturnStatement::toIR): Likewise. | |
| * d-incpath.cc (add_import_path): New signature. | |
| (add_fileimp_path): Likewise. | |
| (add_import_paths): Pass split Strings to helper functions. | |
| * d-lang.cc (d_parse_file): Use Obj::init and Obj::term. | |
| * d-objfile.cc (objmod): New variable. | |
| (Obj::init): New function. | |
| (Obj::term): Likewise. | |
| (Obj::includelib): Likewise. | |
| (Obj::startaddress): Likewise. | |
| (Obj::allowZeroSize): Likewise. | |
| (Obj::moduleinfo): Likewise. | |
| (Obj::export_symbol): Likewise. | |
| * symbol.h (Obj): New struct to allow object oriented interface to glue | |
| code from frontend. | |
| * d-builtins2.cc (d_gcc_magic_stdarg_check): Add new va_arg magic | |
| function that stores the next value through a passed parameter. | |
| Remove workaround for inout signature as va_list is always passed by | |
| reference to intrinsic templates. | |
| (d_gcc_magic_module): Assign module directly to global IRState. | |
| * d-codegen.cc (IRState::builtinsModule): Remove static declaration. | |
| (IRState::intrinsicModule): Likewise. | |
| (IRState::intrinsicCoreModule): Likewise. | |
| (IRState::mathModule): Likewise. | |
| (IRState::mathCoreModule): Likewise. | |
| (IRState::cstdargTemplateDecl): Likewise. | |
| (IRState::cstdargStartTemplateDecl): Likewise. | |
| (IRState::varsInScope): Likewise. | |
| (IRState::call): Use flag_split_darrays. | |
| (IRState::maybeExpandSpecialCall): Clean-up va_start and va_arg | |
| implementations. | |
| (IRState::maybeSetUpBuiltin): Handle new va_arg function. | |
| * d-codegen.h (Intrinsic::INTRINSIC_VA_ARG): New enum definition. | |
| (IRState::setBuiltinsModule): Remove. | |
| (IRState::setIntrinsicModule): Likewise. | |
| (IRState::setMathModule): Likewise. | |
| (IRState::setCStdArg): Likewise. | |
| * d-glue.cc (CatExp::toElem): Use flag_split_darrays. | |
| * d-irstate.cc (IRBase::startFunction): Set varsInScope. | |
| * d-lang.cc (d_init_options): Set modules that require special | |
| handling. | |
| (d_handle_option): Don't handle OPT_fsplit_dynamic_arrays. | |
| * lang.opt: fsplit-dynamic-arrays mapped to variable | |
| flag_split_darrays. | |
| 2012-08-16 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-glue.cc (IdentityExp::toElem): Re-order precendence of type | |
| checking. Treat static arrays as D arrays in identity comparisons. | |
| (EqualExp::toElem): Use adEq2 over built-in memcmp for equality | |
| comparisons for static and dynamic arrays. | |
| (TypeStruct::toCtype): Remove old platform specific workaround. | |
| * d-builtins2.cc (bi_lib_list): New decl to hold list of GCC library | |
| built-ins. | |
| (d_bi_init): Add decls to bi_list_list if recognising built-ins. | |
| (d_gcc_magic_builtins_module): Rename built-in type C long to | |
| __builtin_clong, built-in type C ulong to __builtin_culong. | |
| (d_gcc_magic_libbuiltins_check): New function to assign internal | |
| symbol for built-in library functions. | |
| (d_gcc_magic_libbuiltins_module): New function to scan modules that | |
| contain GCC library built-ins. | |
| (d_gcc_magic_module): Search all core.stdc modules for possible GCC | |
| library built-ins. | |
| * d-codegen.h (IRState::useBuiltins): Remove. | |
| * d-lang.cc (d_init_options): Don't set IRState::useBuiltins. | |
| (d_handle_option): Likewise. | |
| * lang.opt: Re-order D frontend compiler options. | |
| * d-codegen.cc (IRState::buildChain): Override chainLink and chainFunc | |
| for function if static chain is passed via hidden 'this' and no frame | |
| is created. | |
| (IRState::getFrameInfo): Pass static chain around nested functions in | |
| the same way as closures for better performance. | |
| * d-codegen.cc (libcall_ids): Re-order list in ascii collating order, | |
| add new library routines to lookup, rename all non-vararg functions to | |
| match DMD ABI implementation. | |
| (LibCall): Re-order enum and rename values to match libcall_ids. | |
| (IRState::toElemLvalue): Use new LibCall name. | |
| (IRState::getLibCallDecl): Update to match current library signatures, | |
| add implementation of new library routines. | |
| (IRState::maybeSetLibCallDecl): New function to set internal symbol | |
| for special D RT library functions. | |
| * d-decls.cc (FuncDeclaration::toSymbol): Use | |
| IRState::maybeSetLibCallDecl. | |
| * d-glue.cc (InExp::toElem): Use new LibCall name. | |
| (CatAssignExp::toElem): Likewise. | |
| (IndexExp::toElem): Likewise. | |
| (DeleteExp::toElem): Likewise. | |
| (RemoveExp::toElem): Likewise. | |
| (NewExp::toElem): Likewise. | |
| (ArrayLiteralExp::toElem): Likewise. | |
| (AssocArrayLiteralExp::toElem): Likewise. | |
| (NullExp::toElem): Use IRState::convertTo. | |
| * d-codegen.cc (needs_temp): Remove. | |
| (IRState::makeTemp): New function. | |
| (IRState::maybeMakeTemp): Re-implement to use isFreeOfSideEffects. | |
| (IRState::isFreeOfSideEffects): Re-implement to allow better CSE. | |
| (IRState::call): Use IRState::makeTemp. | |
| * d-builtins2.cc (gcc_type_to_d_type): Use d_convert_basic. | |
| * d-codegen.cc (IRState::emitLocalVar): Use IRState::vinit. | |
| (IRState::convertTo): New function for tree conversions. | |
| (IRState::convertTo): Use IRState::convertTo. | |
| (IRState::convertForCondition): Likewise. | |
| (IRState::darrayVal): Likewise. | |
| (IRState::pointerIntSum): Likewise. | |
| (IRState::pointerOffsetOp): Likewise. | |
| (IRState::pvoidOkay): Likewise. | |
| (IRState::boundsCond): Likewise. | |
| * d-convert.cc (convert): New function to be called from C. | |
| (d_build_truthvalue_op): Use d_convert_basic. | |
| * d-glue.cc (convert): Remove. | |
| (build_bool_binop): Use IRState::convertTo. | |
| (build_math_op): Likewise. | |
| (CmpExp::toElem): Likewise. | |
| (PowExp::toElem): Likewise. | |
| (do_array_set): Likewise. | |
| (AssignExp::toElem): Likewise. | |
| (VectorExp::toElem): Likewise. | |
| (NotExp::toElem): Likewise. | |
| (CallExp::toElem): Likewise. | |
| (SymbolExp::toElem): Likewise. | |
| * dt.cc (dt2tree_list_of_elems): Use d_convert_basic. | |
| 2012-07-26 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-gcc-real.cc (real_t::real_t): Use d_float64 for constructor. | |
| (real_t::isConst0): Remove. | |
| (real_t::isConst1): Likewise. | |
| (real_t::isConst2): Likewise. | |
| (real_t::isConstMinus1): Likewise. | |
| (real_t::isConstHalf): Likewise. | |
| * d-gcc-real.h (longdouble): New typedef for real_t. | |
| (ldouble): New template for ldouble conversions. | |
| (ld_sprint): New function for ldouble to string formatting. | |
| * d-codegen.cc (IRState::hwi2toli): Handle maximum 64bit value case. | |
| 2012-07-18 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-codegen.cc (IRState::delegateVal): Remove ENABLE_CHECKING code. | |
| (IRState::objectInstanceMethod): Remove special case to avoid calling | |
| DotTypeExp::toElem. | |
| * d-glue.cc (CommaExp::toElem): Likewise. | |
| (DotTypeExp::toElem): Implement function. | |
| (StructLiteralExp::toElem): Assert instead that basetype is a struct. | |
| * d-gcc-reah.cc (real_t::real_t): New overload for 'double' type. | |
| (real_t::format): Change function type to int, return size of buffer | |
| from function. | |
| (real_t::formatHex): Likewise. | |
| * d-builtins2.cc (d_gcc_magic_stdarg_check): Update signature, remove | |
| check for is_c_std_arg. | |
| (d_gcc_magic_stdarg_module): Likewise. | |
| (d_gcc_magic_module): Remove check for core.vararg. | |
| * d-codegen.cc (INTRINSIC_STD_VA_ARG): Remove. | |
| (IRState::maybeSetUpBuiltin): Don't handle INTRINSIC_STD_VA_ARG. | |
| 2012-07-13 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-decls.cc (Dsymbol::toSymbolX): Remove use of PRIuSIZE format macro. | |
| (FuncDeclaration::toThunkSymbol): Likewise. | |
| 2012-07-12 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-lang.h (D_DECL_IS_CONTRACT): New macro. | |
| * d-decls.cc (FuncDeclaration::toSymbol): Mark in and out contracts as | |
| D_DECL_IS_CONTRACT. | |
| (FuncDeclaration::toThunkSymbol): D thunks no longer private by | |
| design. Alter mangling of thunk symbols to be unique across the entire | |
| compilation unit. | |
| * d-objfile.cc (ObjectFile::makeDeclOneOnly): Catch public contracts to | |
| mark them as one-only. | |
| (ObjectFile::outputThunk): Mark weakref thunks as private. | |
| 2012-07-10 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * Make-lang.in: Remove unused borrowed objects. | |
| * d-builtins2.cc (d_bi_builtin_func): Don't add builtin if | |
| -fno-builtin was given. | |
| * d-codegen.cc (IRState::emitTemplates): Remove static declaration. | |
| (IRState::splitDynArrayVarArgs): Likewise. | |
| (IRState::useInlineAsm): Likewise. | |
| (IRState::useBuiltins): Likewise. | |
| (d_gcc_force_templates): Update to use global gen. | |
| * d-codegen.h (emitTemplates): Remove static attribute. | |
| (splitDynArrayVarArgs): Likewise. | |
| (useBuiltins): Likewise. | |
| (useInlineAsm): Remove member. | |
| (stdInc): Define new member. | |
| * d-incpath.cc (std_inc): Remove global. | |
| (add_import_paths): Update function signature. | |
| * d-lang.cc (d_init_options): Default splitDynArrayVarArgs to false. | |
| (d_init): Update call to add_import_paths. | |
| (d_handle_option): Remove OPT_fd_inline_asm, add | |
| OPT_fsplit_dynamic_arrays. | |
| * lang.opt: Likewise. | |
| 2012-07-08 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-builtins2.cc (d_gcc_type_align): Update function signature. Use | |
| type align size to determine the known align size of a decl. | |
| * d-dmd-gcc.h (d_gcc_type_align): Update function signature. | |
| * symbol.h (Symbol): New member, Salignment. | |
| * symbol.cc (Symbol::Symbol): Initialise Salignment. | |
| * d-decls.cc (VarDeclaration::toSymbol): Set Salignment if there is an | |
| alignment in effect on the decl. | |
| (AggregateDeclaration::toInitializer): Likewise. | |
| * d-objfile.cc (ObjectFile::outputStaticSymbol): Set DECL_ALIGN if | |
| Salignment was given for static decl. | |
| 2012-07-07 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-builtins2.cc (d_gcc_magic_builtins_module): Add check for | |
| DECL_ASSEMBLER_NAME_SET_P when testing for builtins that can be | |
| markable as pure in the D frontend. | |
| * d-codegen.cc (IRState::integerConstant): Hide use of | |
| HOST_BITS_PER_WIDE_INT macros. | |
| (IRState::hwi2toli): Likewise. | |
| (IRState::getTargetSizeConst): Likewise. | |
| * d-builtins.c (d_global_trees): Move declaration here. | |
| (lookup_C_type_name): Rename to lookup_ctype_name. | |
| (d_init_builtins): Move set-up of d_global_trees here. | |
| (gcc_d_backend_init): Move function from d-glue.cc and refactored. | |
| (gcc_d_backend_term): Likewise. | |
| * d-builtins2.cc (d_bi_init): Set-up D frontend sizes here. | |
| * d-glue.cc (gcc_d_backend_init): Removed. | |
| (gcc_d_backend_term): Likewise. | |
| * d-incpath.cc (add_phobos_versyms): New function to scan | |
| phobos-vers-syms file. | |
| (register_import_chains): Renamed to add_import_paths. | |
| * d-lang.cc (d_init): Call add_phobos_versyms and add_import_paths. | |
| (d_parse_int): Don't use strtol to get number from argument string. | |
| * d-incpath.cc (maybe_fixup_phobos_target): Remove. | |
| (register_import_chains): Remove use of maybe_fixup_phobos_target. | |
| * d-lang.cc (maybe_fixup_os_versym): Remove | |
| (d_init): Remove use of maybe_fixup_os_versym. | |
| * d-lang.cc (saved_reg_names): Remove. | |
| (d_init): Remove use of saved_reg_names. | |
| (d_post_options): Likewise. | |
| 2012-07-05 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-glue.cc (StructLiteralExp::toElem): Stop after first assignment for | |
| constructors built for union types. | |
| 2012-07-01 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * symbol.h (deferredNestedFuncs): Renamed from otherNestedFuncs, use as | |
| value type rather than pointer. | |
| (thunks): Use as value type rather than pointer. | |
| * d-decls.cc (FuncDeclaration::toSymbol): Remove check for | |
| deferredNestedFuncs being NULL. | |
| (FuncDeclaration::toThunkSymbol): Remove check for thunks being NULL. | |
| * d-glue.cc (DelegateExp::toElem): Remove check for deferredNestedFuncs | |
| being NULL. | |
| (FuncDeclaration::toObjFile): Likewise. | |
| * d-objfile.cc (ObjectFile::shouldEmit): Add nested functions to | |
| deferredNestedFuncs of their parent function incase parent is actually | |
| emitted later in during compilation. | |
| * d-builtins2.cc (d_gcc_type_align): Explicit alignment of variables | |
| takes precedence over default alignment. | |
| * d-gcc-includes.h: Re-order list of includes. | |
| 2012-06-26 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-codegen.cc (IRState::twoFieldType): Use rest_of_decl_compilation. | |
| * d-gcc-includes.h: Remove last of poisoned backend headers. | |
| * d-glue.cc (FuncDeclaration::toObjFile): Use fprintf for diagnostic | |
| message. Use rest_of_decl_compilation directly. | |
| (SynchronizedStatement::toIR): Likewise. | |
| (TypeFunction::toCtype): Remove old version1 macro. | |
| * d-lang.cc (d_parse_file): Remove dependency on backend header. Use | |
| fprintf for diagnostic messages. | |
| (nametype): Use rest_of_decl_compilation directly. | |
| (d_handle_option): Remove version 1 option. | |
| * dmd-script: Likewise. | |
| * lang.opt: Likewise. | |
| * d-objfile.cc (ObjectFile::outputStaticSymbol): Use | |
| rest_of_decl_compilation directly. | |
| (ObjectFile::declareType): Likewise. | |
| (obj_moduleinfo): Likewise. | |
| (obj_tlssections): Likewise. | |
| (ObjectFile::outputThunk): Implement new method of thunk generation | |
| for external symbols using weakref. | |
| * d-objfile.h (rodc): Remove. | |
| 2012-06-25 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-builtins.c (d_init_builtins): Use build_tree_list to initialise | |
| void_list_node. | |
| * d-glue.cc (ArrayLiteralExp::toElem): Always generate code for | |
| arrayliteralTp. | |
| (TypeFunction::toCtype): Chain on void_list_node to the end of the | |
| function type parameters. Fixes function signatures in debugging. | |
| 2012-06-23 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * Make-lang.in (d_OBJS): Add so IN_GCC_FRONTEND is defined when | |
| building gdc sources. | |
| * d-builtins.c: Remove poisoned headers. | |
| * d-codegen.cc: Likewise. | |
| * d-gcc-includes.h: GCC system headers included first, removed | |
| internally defined macros and poisoned headers. | |
| * d-gcc-tree.h: Use GCC system headers instead of defining tree_node. | |
| * d-lang.cc: GCC system headers included first. | |
| (pushdecl_top_level): Removed. | |
| * d-objfile.cc: Remove poisoned headers. | |
| * gdc_alloca.h: Use liberty.h instead of handling include of alloca. | |
| * d-decls.cc (Dsymbol::toSymbolX): Use snprintf rather than sprintf. | |
| (FuncDeclaration::toSymbol): Likewise. | |
| * d-gcc-real.cc (real_t::init): Likewise. | |
| * symbol.cc (Symbol::Symbol): Use NULL_TREE to initialise tree. | |
| (symbol_calloc): Use xstrdup to copy string. | |
| * Make-lang.in: Remove D language version 1 from build | |
| (_GNU_SOURCE): Removed macro from build. | |
| (ELFOBJ): Likewise. | |
| (D_VA_LIST_TYPE_VOIDPTR): Likewise. | |
| * asmstmt.cc (ExtAsmStatement::semantic): Removed use of V2 macro. | |
| * d-builtins2.cc (d_gcc_builtin_va_list_d_type): Removed use of | |
| D_VA_LIST_TYPE_VOIDPTR macro. | |
| (gcc_type_to_d_type): Likewise. | |
| (d_gcc_magic_stdarg_check): Likewise. | |
| (d_gcc_magic_builtins_module): Removed use of V2 macro, and V1 | |
| encapsulated code. | |
| * d-codegen.cc (IRState::convertTo): Likewise. | |
| (IRState::toDArray): Likewise. | |
| (IRState::typesCompatible): Likewise. | |
| (IRState::arrayBoundsCheck): Likewise. | |
| (IRState::assertCall): Likewise. | |
| (libcall_ids): Likewise. | |
| (IRState::getLibCallDecl): Likewise. | |
| (IRState::getFrameForSymbol): Likewise. | |
| (IRState::isFuncNestedIn): Likewise. | |
| (IRState::buildChain): Likewise. | |
| (IRState::getFrameInfo): Likewise. | |
| (IRState::getFrameRef): Likewise. | |
| (IRState::functionNeedsChain): Likewise. | |
| (IRState::startCond): Likewise. | |
| (IRState::exitIfFalse): Likewise. | |
| (IRState::startCase): Likewise. | |
| (IRState::doCase): Likewise. | |
| (IRState::endCase): Likewise. | |
| * d-decls.cc (VarDeclaration::toSymbol): Likewise | |
| (FuncDeclaration::toSymbol): Likewise. | |
| * d-glue.cc (CondExp::toElem): Likewise. | |
| (build_bool_binop): Likewise. | |
| (EqualExp::toElem): Likewise. | |
| (CmpExp::toElem): Likewise. | |
| (AndAndExp::toElem): Likewise. | |
| (OrOrExp::toElem): Likewise. | |
| (AssignExp::toElem): Likewise. | |
| (CastExp::toElem): Likewise. | |
| (CallExp::toElem): Likewise. | |
| (AssertExp::toElem): Likewise. | |
| (AssocArrayLiteralExp::toElem): Likewise. | |
| (StructLiteralExp::toElem): Likewise. | |
| (FuncDeclaration::toObjFile): Likewise. | |
| (Module::genobjfile): Likewise. | |
| (TypeFunction::toCtype): Likewise. | |
| (ThrowStatement::toIR): Likewise. | |
| (TryCatchStatement::toIR): Likewise. | |
| (ReturnStatement::toIR): Likewise. | |
| (SwitchStatement::toIR): Likewise. | |
| (IfStatement::toIR): Likewise. | |
| (ForStatement::toIR): Likewise. | |
| (ExpStatement::toIR): Likewise. | |
| * d-irstate.cc (IRBase::startFunction): Likewise. | |
| * d-lang.cc (d_init_options_struct): Likewise. | |
| (d_handle_option): Likewise. | |
| (d_parse_file): Likewise. | |
| 2012-06-21 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * Make-lang.in: Remove d-asm-i386.h | |
| * asmstmt.cc (d_build_asm_stmt): Update signature, use build5. | |
| (getFrameRelativeValue): Remove. | |
| (d_format_priv_asm_label): Likewise. | |
| (d_have_inline_asm): Likewise. | |
| (AsmProcessor): Likewise. | |
| (AsmStatement::toIR): Update sorry message. | |
| * d-codegen.cc (IRState::expandPortIntrinsic): Update call to | |
| d_build_asm_stmt. | |
| (IRState::doAsm): Likewise. | |
| * d-decls.cc (FuncDeclaration::toSymbol): Remove check for inline asm. | |
| * d-glue.cc (FuncDeclaration::toObjFile): Likewise. | |
| (LabelStatement::toIR): Likewise. | |
| * d-lang.cc (VersionCondition::addPredefinedGlobalIdent): Remove D | |
| Inline Asm version identifiers. | |
| * d-lang.h (d_build_asm_stmt): Update signature. | |
| 2012-06-19 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-decls.cc (FuncDeclaration::toSymbol): Mark in/out contracts as | |
| TREE_PUBLIC to allow calling cross-module. | |
| * d-lang.cc (d_parse_file): Update for 2.059. | |
| 2012-06-16 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * dfrontend: Merged with DMD 2.059. | |
| * d-builtins2.cc (gcc_type_to_d_type): Use new frontend value. | |
| * d-codegen.cc (IRState::getLibCallDecl): Fix return type of _aaDelp. | |
| (IRState::getVThis): Use frontend provided member to determine if | |
| function has nested references. | |
| * d-decl.cc (FuncDeclaration::toSymbol): Weakly pure functions don't | |
| guarantee no vops. | |
| * d-gcc-real.cc (max_float_mode): Remove. | |
| (real_t::convert): Catch imaginary types in conversion. | |
| * d-glue.cc (EqualExp::toElem): Use memcmp for struct comparisons. | |
| (CatAssignExp::toElem): Rework order of logic to allow appending | |
| delegates to an array. | |
| (DelegateExp::toElem): Implement handling of lambda functions. | |
| (FuncExp::toElem): Ditto. | |
| (AssocArrayLiteralExp::toElem): Implement handling of AssociativeArray | |
| types sent to backend. | |
| * d-objfile.cc (lmtab): Remove. | |
| (cvtLocToloc_t): Update implementation. | |
| (outdata): Now assert that we don't receive error nodes. | |
| 2012-06-05 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-decls.cc (FuncDeclaration::toSymbol): Make better use of 'pure' and | |
| 'pure const' functions in GCC codegen. | |
| * d-bi-attrs.h: Added TM_ATTR* masks. | |
| (handle_tm_wrap_attribute, handle_tm_attribute, tm_attr_to_mask, | |
| find_tm_attribute): New. | |
| (struct d_common_attribute_table): Added transaction* attributes. | |
| 2012-06-04 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-objfile.cc (ObjectFile::outputThunk): Output thunks moved back to | |
| the frontend, as backend does not emit them for DECL_EXTERNAL functions. | |
| 2012-05-29 Daniel Green <venix1@gmail.com> | |
| * setup-gcc.sh: Add GCC 4.8 to list of supported GCC versions. Patch | |
| courtesy of Calrama | |
| https://bitbucket.org/goshawk/gdc/issue/345 | |
| 2012-05-29 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-codegen.cc (IRState::endCase): Remove parameter from function. Use | |
| condition type as the SWITCH_EXPR type, rather than use of void. | |
| * d-codegen.h (IRState::endCase): Update signature. | |
| * d-glue.cc (SwitchStatement::toIR): Update call to endCase. | |
| 2012-05-28 Daniel Green <venix1@gmail.com> | |
| * d-builtins.c (DEF_ATTR_STRING): Define and undefine along with other | |
| macros. | |
| * d-lang.cc (d_write_global_declartions): Use | |
| finalize_compilation_unit. GCC 2012-04-30 | |
| * d-objfile.cc (ObjectFile::outputThunk): Use | |
| symtab_add_to_same_comdat_group. GCC 2012-04-30 | |
| * lang.opt: Match help strings for duplicated options. | |
| 2012-02-01 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * setup-gcc.sh: Remove -hg option. | |
| * dfrontend/func.c (FuncDeclaration::semantic): Remove code adding | |
| method to flat list. | |
| (FuncDeclaration::semantic3): Re-add here. | |
| 2012-01-01 Iain Buclaw <ibuclaw@ubuntu.com> | |
| * d-builtins2.cc (IRState::buildChain): Don't do nrvo if the | |
| variable is put in a closure. | |
| * d-glue.cc (FuncDeclaration::buildClosure): Ditto. | |
| (ReturnStatement::toIR): Don't call postblit on nrvo returns. | |
| (DtorExpStatement::toIR): Don't call destructor if var is returned as | |
| the nrvo variable. | |
| Copyright (C) 2012 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. |