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