| 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. |