comparison gcc/d/ChangeLog-2013 @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
comparison
equal deleted inserted replaced
131:84e7813d76e9 145:1830386684a0
1 2013-12-27 Iain Buclaw <ibuclaw@gdcproject.org>
2
3 * d-codegen.cc (build_two_field_type): Declare builtin types as
4 toplevel declarations.
5 * d-ctype.cc (EnumDeclaration::toDebug): Build type decl in debug code.
6 * d-lang.cc (nametype): Rename to d_nametype.
7
8 2013-12-23 Iain Buclaw <ibuclaw@gdcproject.org>
9
10 * d-decls.cc (EnumDeclaration::toDebug): Don't send array types to
11 rest_of_type_compilation.
12
13 2013-12-16 Iain Buclaw <ibuclaw@gdcproject.org>
14
15 * d-spec.cc (lang_specific_driver): Require linking in library for all
16 files except D interface files.
17 * d-lang.cc (d_write_global_declarations): Call d_finish_compilation.
18 * d-objfile.cc (mark_needed): Mark static.
19 (d_finish_symbol): Don't call mark_needed.
20 (d_finish_function): Likewise.
21 (d_finish_compilation): New function to wrapup all global
22 declarations, mark templates/comdats as needed if required, and start
23 the final compilation.
24
25 2013-12-10 Iain Buclaw <ibuclaw@gdcproject.org>
26
27 * d-ctype.cc (TypeVector::toCtype): Treat void vectors as ubyte.
28 * d-objfile.cc (VarDeclaration::toObjFile): Gag all errors compiling
29 manifest constants.
30 * d-todt.cc (TypeVector::toDt): New function to generate correct static
31 data for vector initialisers.
32
33 2013-12-05 Iain Buclaw <ibuclaw@gdcproject.org>
34
35 * d-lang.cc (d_init_options_struct): Don't define strict aliasing.
36 (d_get_alias_set): New function to return language-specific alias set.
37 * d-convert.cc (d_convert_basic): Always zero extend pointer to integer
38 conversions.
39
40 2013-12-04 Iain Buclaw <ibuclaw@gdcproject.org>
41
42 * d-codegen.cc (maybe_set_builtin_frontend): Assert that all runtime
43 library functions have been set-up correctly.
44 (libcall_ids): Remove unhandled library functions.
45 (get_libcall): Likewise.
46 * d-codegen.h (LibCall): Likewise.
47 * d-objfile.cc (output_symbol_p): Remove.
48
49 2013-12-03 Iain Buclaw <ibuclaw@gdcproject.org>
50
51 * d-lang.cc (d_init_options): Update for frontend changes.
52 (d_handle_option): Set frontend allInst option if -femit-templates.
53 * d-objfile.cc (output_template_p): Want to emit all instantiated
54 templates if -femit-templates or -fdebug was passed to the compiler.
55 * d-objfile.h (TemplateEmission): Define TEallinst.
56 * d-todt.cc (StructDeclaration::toDt): Update for frontend changes.
57 * d-spec.cc (THREAD_LIBRARY): Define default thread library to link if
58 one is not already specified in the configuration process.
59 (TIME_LIBRARY): Define default real time library to link if one is not
60 already specified in the configuration process.
61 (LIBSTDCXX): Define C++ library to link if compiling C++ and D sources.
62 (lang_specific_driver): Update implementation to use new macros.
63
64 2013-12-02 Iain Buclaw <ibuclaw@gdcproject.org>
65
66 * d-elem.cc (CatAssignExp::toElem): Don't call postblit after element
67 append to array.
68 (NewExp::toElem): Handle calling 'new' on opaque types.
69 (ArrayLiteralExp::toElem): Ensure array literal elements have no side
70 effects by making temporaries as necessary.
71 * d-todt.cc (StructLiteralExp::toDt): Update for frontend changes.
72 * d-codegen.cc (build_frame_type): Check for scoped variables if
73 building a closure.
74 * d-objfile.cc (d_finish_symbol): Relax toDt checking rule.
75
76 2013-12-01 Iain Buclaw <ibuclaw@gdcproject.org>
77
78 * d-asmstmt.cc (ExtAsmStatement::ExtAsmStatement): Remove labels
79 member from class.
80 * d-codegen.cc (d_gcc_force_templates): Remove.
81 (convert_expr): Update for frontend changes.
82 (convert_for_assignment): Likewise.
83 (maybe_set_builtin_frontend): Update for changes to libdruntime
84 core.bitops signatures.
85 * d-ctype.cc (TypeFunction::toCtype): Update for frontend changes.
86 * d-decls.cc (Dsymbol::toSymbolX): Likewise.
87 (VarDeclaration::toSymbol): Likewise.
88 (FuncDeclaration::toSymbol): Don't defer nested functions here.
89 * d-elem.cc (PowAssignExp::toElem): Update for frontend changes.
90 (DeleteExp::toElem): Likewise.
91 (AssertExp::toElem): Don't call invariant on an extern C++ class.
92 * d-glue.cc (Global::init): Initialise new stdmsg member.
93 * d-lang.cc (d_handle_option): Handle -fdeps switch. Remove TEprivate
94 for -femit-templates switch.
95 (genCmain): Update for frontend changes.
96 (d_parse_file): Likewise.
97 * d-longdouble.cc (longdouble::dump): Likewise.
98 * d-objfile.cc (ClassDeclaration::toObjFile): Update for frontend
99 changes.
100 (InterfaceDeclaration::toObjFile): Likewise.
101 (EnumDeclaration::toObjFile): Likewise.
102 (Symbol::Symbol): Remove outputSymbol member.
103 (output_symbol_p): Mark static.
104 (output_declaration_p): Determine symbol codegen status from
105 semanticRun.
106 (output_template_p): New function to determine whether an instantiated
107 template is to be written to object file.
108 (FuncDeclaration::toObjFile): Use semanticRun to update codegen status
109 of function.
110 (FuncDeclaration::buildClosure): Error if putting a scoped variable in
111 a closure.
112 (Module::genobjfile): Update for frontend changes.
113 (d_comdat_linkage): Don't determine linkage from TE setting. Mark all
114 comdat symbols as DECL_COMDAT.
115 (setup_symbol_storage): Use output_template_p to determine whether the
116 symbol is being written to object file.
117 (mark_needed): New function to mark decls that must be emitted.
118 (d_finish_symbol): Mark finished symbols as needed.
119 (d_finish_function): Mark finished functions as needed.
120 (build_simple_function): Set semanticRun for glue changes.
121 * d-objfile.h (OutputStage): Remove enum.
122 * d-todt.cc (build_vptr_monitor): Update for frontend changes.
123 (StructInitializer::toDt): Likewise.
124 (StructDeclaration::toDt): Likewise.
125 (TypeInfoEnumDeclaration::toDt): Likewise.
126 (TypeInfoStructDeclaration::toDt): Likewise.
127 (Type::getTypeInfo): Likewise.
128
129 2013-11-30 Iain Buclaw <ibuclaw@gdcproject.org>
130
131 * d-lang.cc (genCmain): Implement code generation of __entrypoint
132 module to provide the target C main function.
133 (deps_write): Ignore the module __entrypoint when writing make deps.
134 (d_parse_file): Handle writing __entrypoint module to object file.
135 * d-objfile.cc (d_finish_symbol): Remove special handling of _tlsstart
136 symbol, but ensure _tlsend gets written to the thread common section.
137 (d_finish_function): Remove call to build_tlssections.
138 (build_tlssections): Remove.
139
140 2013-11-29 Iain Buclaw <ibuclaw@gdcproject.org>
141
142 * d-decls.cc (ClassDeclaration::toVtblSymbol): Use TypeSArray::makeType
143 to generate frontend static array type.
144 * d-glue.cc (Dsymbol::ungagSpeculative): Define.
145 * d-lang.cc (genCmain): Define as empty.
146 (d_parse_file): Update for frontend changes.
147 * d-objfile.cc (StructDeclaration::toObjFile): Likewise.
148 * d-typinf.cc (TypeBasic::builtinTypeInfo): Likewise.
149 * d-longdouble.cc (longdouble::isIdenticalTo): Remove.
150 * d-port.cc (Port::fequal): Define.
151
152 2013-11-28 Iain Buclaw <ibuclaw@gdcproject.org>
153
154 * d-builtins.cc (gcc_type_to_d_type): Use TypeSArray::makeType to
155 generate frontend static array types.
156 * d-codegen.cc (build_attributes): Use optimize as don't want the
157 ctfeInterpret of TypeExp expressions.
158 (get_object_method): Update for frontend changes.
159 (get_libcall): Update to use Type::dtypeinfo.
160 * d-elem.cc (IndexExp::toElem): Don't generate bounds checking codegen
161 if frontend explictly requests it.
162 (ArrayLiteralExp::toElem): Use TypeSArray::makeType to generate
163 frontend static array type.
164 (StructLiteralExp::toElem): Update for frontend changes.
165 * d-glue.cc (Global::increaseErrorCount): Define.
166 * d-objfile.cc (Module::genmoduleinfo): Remove moduleinfo 'New'
167 implementation for libdruntime changes.
168 * d-todt.cc (StructLiteralExp::toDt): Literal initialisers override
169 default initialisers.
170 (TypeInfoDeclaration::toDt): Update to use Type::dtypeinfo.
171 (TypeInfoStructDeclaration::toDt): Update for frontend changes.
172 * d-typinf.c (Type::getInternalTypeInfo): Update to use
173 Type::dtypeinfo.
174
175 2013-11-25 Iain Buclaw <ibuclaw@gdcproject.org>
176
177 * d-asmstmt.cc (ExtAsmStatement::comeFromImpl): Define for frontend
178 implementation changes.
179 * d-codegen.cc (get_libcall): Update to use Type::typeinfoclass.
180 * d-codegen.cc (WrappedExp): Define as class.
181 * d-convert.cc (d_convert_basic): Fix format warnings.
182 * d-decls.cc (ModuleInfoDeclaration::toSymbol): Remove.
183 (FuncDeclaration::toSymbol): Use mangleExact to get decl mangle.
184 * d-elem.cc (ClassReferenceExp::toElem): Return reference to class.
185 * d-glue.cc (verror): Fix format warnings.
186 (verrorSupplemental): Likewise.
187 (vwarning): Likewise.
188 (vdeprecation): Likewise.
189 (escapePath): Define for frontend implementation changes.
190 * d-irstate.cc (IRState::getLoopForLabel): Implement breaking on named
191 scope labels in for/while loops.
192 * d-lang.cc (d_handle_option): Add handler for new -fdeps and
193 -fmake-deps options.
194 (d_parse_file): Handle new -fdeps and fmake-deps options.
195 * d-objfile.cc (Dsymbol::toObjFile): Update to use RootObject.
196 (Type::typeinfoclass): Update to use Type::typeinfoclass.
197 (InterfaceDeclaration::toObjFile): Likewise.
198 * d-objfile.h (Symbol): Remove inheritance from Object.
199 * d-todt.cc (TypeInfoStructDeclaration::toDt): Update to use
200 Type::immutableOf.
201
202 2013-11-24 Iain Buclaw <ibuclaw@gdcproject.org>
203
204 * d-builtins.c (gcc_type_to_d_type): Use TREE_INT_CST_LOW macro instead
205 of tree_low_cst.
206 (eval_builtin): Likewise.
207 (gcc_cst_to_d_expr): Use tree_cst_hwi.
208 * d-codegen.cc (tree_to_hwi): Remove call to deleted host_integerp.
209 (maybe_expand_builtin): Use TREE_INT_CST_LOW macro.
210 * d-lang.cc (d_parse_file): Update debug_hooks call for middle-end
211 changes.
212 * d-system.h: Update includes for middle-end changes.
213
214 2013-11-17 Iain Buclaw <ibuclaw@gdcproject.org>
215
216 * d-objfile.cc (finish_thunk): Update for conversion of symtab types to
217 a true class hierarchy.
218
219 * d-ctype.cc (TypeClass::toCtype): Fix ABI to emit correct vtable and
220 monitor field names.
221
222 * d-ctype.cc (TypeClass:toCtype): Set TYPE_LANG_SPECIFIC on record as
223 well as reference type.
224 * d-lang.cc (d_classify_record): New langhook to return appropriate
225 class/interface/struct type to the debugger.
226
227 2013-10-27 Iain Buclaw <ibuclaw@gdcproject.org>
228
229 * d-elem.cc (ArrayLiteralExp::toElem): Build empty constructor for zero
230 sized arrays.
231
232 2013-10-23 Iain Buclaw <ibuclaw@gdcproject.org>
233
234 * d-elem.cc (AssignExp::toElem): Optimise assigning array literal to a
235 static array.
236 (ArrayLiteralExp::toElem): Do not allocate static or const array
237 literals on the heap using the GC.
238
239 2013-10-16 Iain Buclaw <ibuclaw@gdcproject.org>
240
241 * d-builtins.c (DEF_FUNCTION_TYPE_8): Define.
242
243 2013-10-10 Iain Buclaw <ibuclaw@gdcproject.org>
244
245 * d-builtins.c (gcc_cst_to_d_expr): Add support for VECTOR_CST to
246 Expression conversion.
247 (d_gcc_paint_type): Add support for painting to/from array literals.
248
249 2013-10-01 Iain Buclaw <ibuclaw@gdcproject.org>
250
251 * d-objfile.cc (cvtLocToloc_t): Rename to get_linemap.
252 * d-glue.cc: New source to provide interface for defined globals and
253 error handling called from the front-end.
254
255 2013-09-16 Iain Buclaw <ibuclaw@gdcproject.org>
256
257 * d-codegen.cc (IRState::call): Rename to d_build_call.
258 (IRState::emitLocalVar): Rename to build_local_var.
259 (IRState::buildAssignOp): Move to BinExp::toElemBin.
260 (IRState::IRState): Remove IRState class.
261 * d-irstate.cc (IRBase::IRBase): Rename to IRState, remove inheritance
262 from Object class.
263 * d-decls.cc (VarDeclaration::toSymbol): Remove redundant CONST_DECL
264 code as VarDeclaration::toObjFile does not emit manifest constants.
265 * d-ctype.cc (TypeEnum::toCtype): Generate CONST_DECLs for enumeration
266 members for correct debugging.
267 * d-objfile.cc (build_type_decl): Use fully qualified type name in
268 debugging code.
269 (VarDeclaration::toObjFile): Emit manifest constant values in debug
270 code generation.
271
272 2013-09-10 Iain Buclaw <ibuclaw@gdcproject.org>
273
274 * d-elem.cc (SliceExp::toElem): Don't build D array for slices that
275 return a static array.
276
277 2013-09-03 Iain Buclaw <ibuclaw@gdcproject.org>
278
279 * d-codegen.cc (IRState::buildOp): Rename to build_binary_op.
280
281 2013-09-01 Iain Buclaw <ibuclaw@gdcproject.org>
282
283 * d-decls.cc (binfo_for): Rename to build_class_binfo.
284 (intfc_binfo_for): Rename to build_interface_binfo.
285 (ClassDeclaration::toDebug): Move binfo generation into toCtype.
286 * d-lang.cc (pushlevel): Rename to push_binding_level.
287 (poplevel): Rename to pop_binding_level.
288 (global_bindings_p): Rename to d_global_bindings_p, add langhook.
289 (pushdecl): Rename to d_pushdecl, add langhook.
290 (getdecls): Rename to d_getdecls, add langhook.
291 (set_block): Remove function.
292 (insert_block): Remove function.
293 * d-irstate.cc (IRBase::startBindings): Inline set_block here.
294 (IRBase::endBindings): Inline insert_block here.
295
296 2013-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
297
298 * d-spec.c (lang_specific_spec_functions): Remove.
299
300 2013-08-28 Iain Buclaw <ibuclaw@gdcproject.org>
301
302 * d-codegen.cc (IRState::doArraySet): Rename to IRBase::doArraySet.
303 (IRState::arraySetExpr): Remove function.
304 (IRState::expandDecl): Rename to expand_decl.
305 (IRState::typeinfoReference): Rename to build_typeinfo.
306 (IRState::buildChain): Merge into FuncDeclaration::buildClosure.
307 (IRState::getVThis): Rename to build_vthis.
308 (IRState::maybeExpandSpecialCall): Rename to maybe_expand_builtin.
309 (IRState::toDArray): Rename to d_array_convert.
310
311 2013-08-26 Iain Buclaw <ibuclaw@gdcproject.org>
312
313 * d-codegen.cc (convert_expr): Check that the class type the codegen is
314 casting from is a base class of the class type the codegen is casting
315 to, not the other way round.
316
317 2013-08-14 Iain Buclaw <ibuclaw@gdcproject.org>
318
319 * d-elem.cc (ArrayLiteralExp::toElem): Return null for zero length
320 array literals.
321
322 2013-08-07 Iain Buclaw <ibuclaw@gdcproject.org>
323
324 * d-objfile.cc (finish_thunk): Don't emit thunks to external symbols as
325 weakref declarations.
326 * d-codegen.cc (IRState::maybeExpandSpecialCall): Remove intrinsic yl2x
327 and yl2xp1 builtins.
328 (maybe_set_builtin_frontend): Likewise.
329
330 2013-07-09 Iain Buclaw <ibuclaw@gdcproject.org>
331
332 * d-builtins.c (d_gcc_magic_builtins_module): Set builtins solely
333 provided by the compiler as @safe, pure and nothrow.
334 * d-codegen.cc (IRState::getVThis): Don't set outer 'this' of structs
335 to be parent function chain if no frame has been created.
336
337 2013-07-08 Iain Buclaw <ibuclaw@gdcproject.org>
338
339 * d-elem.cc (Expression::toElemDtor): Wrap temp variables destructor
340 calls in a try/finally expression.
341
342 2013-07-05 Johannes Pfau <johannespfau@gmail.com>
343
344 * patch-versym-os-4.8.x: Set versions on powerpc and alpha.
345 Remove SysV4 support and therefore fix macro redefinition warnings.
346 * patch-versym-os-4.9.x: Likewise.
347
348 2013-07-03 Iain Buclaw <ibuclaw@gdcproject.org>
349
350 * d-longdouble.cc (longdouble::set): Intepret set values at higher
351 precision for min/max properties.
352 * d-codegen.cc (maybe_set_builtin_frontend): Add yl2x and yl2xp1
353 math intrinsics.
354 (IRState::maybeExpandSpecialCall): Likewise.
355
356 2013-07-02 Iain Buclaw <ibuclaw@gdcproject.org>
357
358 * d-objfile.cc (Module::genobjfile): Don't free current_module_info.
359 * d-codegen.cc (IRState::buildAssignOp): Don't create a SAVE_EXPR
360 around comma expressions used as lvalues.
361 * d-todt.cc (TypeSArray::toDtElem): Get underlying vector basetype when
362 layouting out data in a static array.
363
364 2013-06-29 Iain Buclaw <ibuclaw@gdcproject.org>
365
366 * complex_t.h: Move into dfrontend.
367 * d-builtins.c (gcc_cst_to_d_expr): Explicitly create longdouble.
368 * d-longdouble.cc (longdouble::parse): Remove function.
369 (longdouble::longdouble): Remove constructors from longdouble.
370 Replaced with operator= template and longdouble::set.
371 (longdouble::rv): Update for new class layout.
372 (longdouble::from_shwi): New function to create a longdouble value
373 from a HOST_WIDE_INT.
374 (longdouble::from_uhwi): Likewise, but from an unsigned HOST_WIDE_INT.
375 (longdouble::to_shwi): New function to return a HOST_WIDE_INT value
376 from a longdouble.
377 (longdouble::to_uhwi): Likewise, but from an unsigedn HOST_WIDE_INT.
378 (longdouble::set): New function to explicitly set longdouble value.
379 (longdouble::toInt): Remove function.
380 (longdouble::isZero): Remove function.
381 (longdouble::isNegative): Remove function.
382 * d-port.cc (Port::nan): Rename to Port::ldbl_nan.
383 (Port::infinity): Rename to Port::ldbl_infinity.
384 (Port::ldbl_max): New static field.
385 (Port::init): Set ldbl_max to be maximimum value for long double type.
386 (Port::strtof): New function to convert string to longdouble.
387 (Port::strtod): Likewise.
388 (Port::strtold): Likewise.
389
390 2013-06-24 Iain Buclaw <ibuclaw@gdcproject.org>
391
392 * d-objfile.cc (make_alias_for_thunk): Do not set
393 TREE_SYMBOL_REFERENCED.
394
395 2013-06-17 Iain Buclaw <ibuclaw@gdcproject.org>
396
397 * d-codegen.cc (build_struct_memcmp): New function.
398 * d-elem.cc (IdentityExp::toElem): Use build_struct_memcmp for field
399 comparisons of small structs.
400
401 2013-06-13 Iain Buclaw <ibuclaw@gdcproject.org>
402
403 * d-codegen.cc (make_temp): New function.
404 * d-decls.cc (StructLiteralExp::toSymbol): Implement correctly to
405 generate an anonymous symbol to reference to in the codegen.
406 (ClassReferenceExp::toSymbol): Likewise, but also use an anonymous
407 type as size is not determined until the data has been layed out.
408 * d-elem.cc (EqualExp::toElem): Optimise comparisons of arrays of basic
409 types, also ensure left-to-right evaluation.
410 (SliceExp::toElem): Handle returing slice as a static array type.
411 (AddrExp::toElem): Handle taking the address of StructLiteralExp and
412 ClassReferenceExp symbols.
413 (FuncExp::toElem): Relax type checking to allow returning function
414 addresses as generic pointer types.
415 (ArrayLiteralExp::toElem): Implicitly convert static arrays of void to
416 static arrays of ubyte.
417 (StructLiteralExp::toElem): Remove code generation of postblit calls,
418 now taken care of in the front end.
419 * d-objfile.cc (Module::genmoduleinfo): Emit module name as a null
420 terminated static array.
421 * d-ctype.cc (TypeAArray::toCtype): Pass AA types around like pointers.
422
423 2013-06-11 Iain Buclaw <ibuclaw@gdcproject.org>
424
425 * dfrontend: Update to D front-end version 2.063.
426
427 * d-builtins.c (gcc_type_to_d_type): Use Loc for unknown locations.
428 (d_gcc_magic_builtins_module): Likewise.
429 (gcc_cst_to_d_expr): Likewise.
430 * d-codegen.cc (get_libcall): Use FuncDeclaration::genCfunc to build
431 D runtime library functions.
432 * d-decl.cc (SymbolDeclaration::SymbolDeclaration): Remove function.
433 (StructLiteralExp::toSymbol): New function.
434 (ClassReferenceExp::toSymbol): New function.
435 * d-elem.cc (AssertExp::toElem): Call struct/class invariants only if
436 compiler is generating invariant code.
437 (TupleExp::toElem): Update for new front-end.
438 (ClassReferenceExp::toElem): New function.
439 * d-lang.cc (d_init_options): Set compiler.vendor front-end parameter.
440 (d_init): Call Expression::init.
441 * d-objfile.cc (InterfaceDeclaration::toObjFile): Correctly set the
442 xgetRTInfo field in the record layout.
443 * d-todt.cc (CastExp::toDt): New function.
444 (AddrExp::toDt): New function.
445 (ClassReferenceExp::toDt): New function.
446 (ClassReferenceExp::toDtI): New function.
447 (ClassReferenceExp::toInstanceDt): New function.
448 (ClassReferenceExp::toDt2): New function.
449
450 2013-06-10 Iain Buclaw <ibuclaw@gdcproject.org>
451
452 * d-objfile.cc (FuncDeclaration::toObjFile): Set 'this' parameter as
453 implicitly read-only.
454 * d-codegen.cc (declaration_type): Set 'this' declaration type as
455 implicitly const.
456 (build_frame_type): Set frame or closure type as implicitly const.
457
458 2013-06-09 Iain Buclaw <ibuclaw@gdcproject.org>
459
460 * d-builtins.c (d_init_builtins): Make d_unknown_type_node a
461 RECORD_TYPE.
462 * d-lang.cc (d_build_eh_type_type): Cast the returned typeinfo decl to
463 void pointer type.
464
465 2013-06-07 Iain Buclaw <ibuclaw@gdcproject.org>
466
467 * d-codegen.cc (IRState::var): Rename to get_decl_tree.
468 (IRState::convertForArgument): Rename to convert_for_argument.
469 (IRState::floatMod): Rename to build_float_modulus.
470 (IRState::findThis): Rename to find_this_tree.
471 (IRState::emitLocalVar): Update signature.
472 (IRState::arrayElemRef): Remove function.
473 * d-elem.cc (IndexExp::toElem): Move implementation of
474 IRState::arrayElemRef here.
475
476 2013-06-04 Iain Buclaw <ibuclaw@gdcproject.org>
477
478 * d-codegen.cc (cmodule): Rename to current_module_decl.
479 (object_file): Remove variable.
480 * d-objfile.cc (ObjectFile::moduleInfo): Rename to current_module_info.
481 (ObjectFile::modules): Rename to output_modules.
482 (ObjectFile::staticCtorList): Rename to static_ctor_list.
483 (ObjectFile::staticDtorList): Rename to static_dtor_list.
484 (ObjectFile::emitTemplates): Rename to flag_emit_templates.
485 (ObjectFile::beginModule): Remove function.
486 (ObjectFile::endModule): Remove function.
487 (ObjectFile::finish): Rename to d_finish_module.
488 (ObjectFile::doLineNote): Remove function.
489 (ObjectFile::setLoc): Rename to set_input_location.
490 (ObjectFile::setDeclLoc): Rename to set_decl_location.
491 (ObjectFile::setCfunEndLoc): Rename to set_function_end_locus.
492 (ObjectFile::giveDeclUniqueName): Rename to get_unique_name.
493 (ObjectFile::setupSymbolStorage): Rename to setup_symbol_storage.
494 (ObjectFile::setupStaticStorage): Remove function.
495 (ObjectFile::makeDeclOneOnly): Rename to d_comdat_linkage.
496 (ObjectFile::outputStaticSymbol): Rename to d_finish_symbol.
497 (ObjectFile::outputFunction): Rename to d_finish_function.
498 (ObjectFile::addAggMethod): Remove function.
499 (ObjectFile::initTypeDecl): Rename to build_type_decl.
500 (ObjectFile::declareType): Remove function.
501 (ObjectFile::shouldEmit): Rename to output_declaration_p.
502 (ObjectFile::shouldEmit): Rename variant to output_symbol_p.
503 (ObjectFile::doThunk): Rename to use_thunk.
504 (ObjectFile::stripVarDecl): Remove function.
505 (ObjectFile::doSimpleFunction): Rename to build_simple_function.
506 (ObjectFile::doFunctionToCallFunctions): Rename to
507 build_call_function.
508 (ObjectFile::doCtorFunction): Rename to build_ctor_function.
509 (ObjectFile::doDtorFunction): Rename to build_dtor_function.
510 (ObjectFile::doUnittestFunction): Rename to build_unittest_function.
511 (ObjectFile::hasModule): Rename to output_module_p.
512 (ObjectFile::outputThunk): Rename to finish_thunk.
513 (write_deferred_thunks): New function to emit deferred thunks.
514
515 2013-06-03 Iain Buclaw <ibuclaw@gdcproject.org>
516
517 * d-decls.cc (VarDeclaration::toSymbol): Don't set default tls model.
518 * d-objfile.cc (ObjectFile::setupSymbolStorage): Set default tls
519 model for var decls before determining whether symbol is public.
520 (build_tlssections): Likewise for TLS symbols.
521
522 2013-06-01 Johannes Pfau <johannespfau@gmail.com>
523
524 * d-codegen.cc (maybe_set_builtin_frontend): Check parameter and
525 return types of intrinsics.
526
527 2013-06-01 Iain Buclaw <ibuclaw@gdcproject.org>
528
529 * d-codegen.cc (IRState::var): Handle variables used for NRVO.
530 * d-ir.cc (ReturnStatement::toIR): Return result decl directly if NRVO.
531 * d-objfile.cc (Symbol::SnamedResult): New member to hold the named
532 RESULT_DECL of the function.
533 (FuncDeclaration::toObjFile): Set-up function for NRVO.
534 (build_tlssections): Align _tlsstart and _tlsend symbols to target
535 address size.
536 * d-ctype.cc (TypeFunction::toSymbol): Mark functions returning non-POD
537 structs as TREE_ADDRESSABLE to force return in memory.
538 * d-decls.cc (FuncDeclaration::toSymbol): Propagate TREE_ADDRESSABLE
539 from the original function type.
540
541 2013-05-29 Iain Buclaw <ibuclaw@gdcproject.org>
542
543 * d-target.cc: New source file to handle Target structure.
544
545 * d-builtins.c (d_bi_init): Remove function.
546 (d_gcc_type_align): Move to Target::alignsize.
547 (d_gcc_field_align): Move to Target::fieldalign.
548 (d_init_builtins): Build va_list type for D frontend.
549 * d-lang.cc (d_init): Use isLP64 to determine LP64 targets.
550 (d_add_builtin_version): Set is64bit if target is X86_64.
551 * d-codegen.cc (convert_for_assignment): Use memset to implement front
552 end code (struct = 0) here, rather than build an empty constructor.
553 * d-elem.cc (AssignExp::toElem): Remove handling of (struct = 0) and
554 call convert_for_assignment.
555
556 2013-05-28 Iain Buclaw <ibuclaw@gdcproject.org>
557
558 * d-gcc-complex_t.h: Rename to complex_t.h.
559 * d-gcc-real.cc: Rename to d-longdouble.cc.
560 * d-gcc-real.h: Rename to longdouble.h
561 * d-port.cc: New source file to handle Port structure.
562 * gdc_alloca.h: Remove source.
563
564 * d-longdouble.cc (real_t): Rename to longdouble.
565 (longdouble::getnan): Move to Port::nan.
566 (longdouble::getsnan): Move to Port::snan.
567 (longdouble::getinfinity): Move to Port::infinity.
568 (longdouble::isInf): Move to Port::isInfinite.
569 (longdouble::isNan): Move to Port::isNan.
570 (longdouble::isSignallingNan): Move to Port::isSignallingNan.
571 * d-builtins.c (gcc_d_backend_init): Rename to d_backend_init.
572 (gcc_d_backend_term): Rename to d_backend_term.
573 (gcc_type_to_d_type): Don't map 128bit integers to D front end.
574
575 * d-elem.cc (AssignExp::toElem): Remove handling of fillHoles, use
576 memset to implement (struct = 0).
577 (StructLiteralExp::toElem): Handle fillHoles here, creating a
578 temporary var that is zero init'd with memset and returned.
579
580 2013-05-27 Iain Buclaw <ibuclaw@gdcproject.org>
581
582 * d-codegen.cc (IRState::localVar): Rename to build_local_var.
583 (IRState::exprVar): Rename to create_temporary_var.
584 (IRState::maybeExprvar): Rename to maybe_temporary_var.
585 (IRState::pointerIntSum): Rename to build_array_index.
586 * d-lang.cc (d_handle_target_attribute): New function to handle D
587 target attributes.
588
589 2013-05-26 Iain Buclaw <ibuclaw@gdcproject.org>
590
591 * d-incpath.cc (prefixed_path): Add cpp_GCC_INCLUDE_DIR back in as
592 second method for relocation.
593 * d-elem.cc (IndexExp::toElem): Fix call to _aaGetX as from
594 IRState::toElemLvalue.
595 * d-codegen.cc (IRState::toElemLvalue): Remove function.
596 (IRState::convertForAssignment): Rename to convert_for_assignment.
597 (IRState::convertForCondition): Rename to convert_for_condition.
598 (IRState::checkedIndex): Rename to d_checked_index.
599 (IRState::boundsCond): Rename to d_bounds_condition.
600 (IRState::arrayBoundsCheck): Rename to array_bounds_check.
601 (IRState::assertCall): Rename to d_assert_call.
602 (IRState::doLineNote): Move to irstate.h.
603 * d-irstate.cc (IRBase::getLocalContext): Remove function.
604 * d-decls.cc (VarDeclaration::toSymbol): Build decl lang specific for
605 decl to point back to D front end type.
606 (FuncDeclaration::toSymbol): Likewise.
607
608 2013-05-23 Iain Buclaw <ibuclaw@gdcproject.org>
609
610 * d-codegen.cc (AggLayout::finish): Unset TYPE_SIZE before
611 re-calculating.
612 * d-ctype.cc (TypeStruct::toCtype): Don't call decl_attribute on the
613 type twice.
614
615 2013-05-21 Iain Buclaw <ibuclaw@gdcproject.org>
616
617 * d-lang.cc (d_gcc_dump_source): Remove function.
618 (d_post_options): Set flag_excess_precision_cmd as standard.
619 * d-gcc-real.cc (real_t::convert): Remove function.
620 (real_t::floatCompare): Remove function.
621 (real_t::operator): Always perform floating point compilation at the
622 precision of the target real mode.
623 * d-todt.cc (dt_last): Remove function.
624 (dtlist_to_tree): Rename to dtvector_to_tree.
625 (dt_cons): Replace TREE_CHAIN implementation for use of CONSTRUCTOR.
626 (dt_chainon): Likewise.
627 (dt_container): Likewise.
628 (dt_container2): Likewise.
629 (StructInitializer::toDt): Likewise.
630 (StructLiteralExp::toDt): Likewise.
631
632 2013-05-17 Iain Buclaw <ibuclaw@gdcproject.org>
633
634 * d-codegen.cc (IRState::convertTo): Replace with d_convert and
635 convert_expr.
636 (IRState::declContext): Replace with d_decl_context.
637 (IRState::functionNeedsChain): Replace with needs_static_chain.
638 (IRState::label): Replace with d_build_label.
639 (IRState::emitTemplates): Move to ObjectFile.
640 (functionDegenerateClosure): Replace with is_degenerate_closure.
641 (get_object_method): Assert that function is a method.
642 (IRState::startCond): Move to IRBase.
643 (IRState::startElse): Likewise.
644 (IRState::endCond): Likewise.
645 (IRState::startLoop): Likewise.
646 (IRState::continueHere): Likewise.
647 (IRState::setContinueLabel): Likewise.
648 (IRState::exitIfFalse): Likewise.
649 (IRState::endLoop): Likewise.
650 (IRState::startCase): Likewise.
651 (IRState::doCase): Likewise.
652 (IRState::endCase): Likewise.
653 (IRState::continueLoop): Likewise.
654 (IRState::exitLoop): Likewise.
655 (IRState::startTry): Likewise.
656 (IRState::startCatches): Likewise.
657 (IRState::startCatch): Likewise.
658 (IRState::endCatch): Likewise.
659 (IRState::endCatches): Likewise.
660 (IRState::startFinally): Likewise.
661 (IRState::endFinally): Likewise.
662 (IRState::doReturn): Likewise.
663 (IRState::doJump): Likewise.
664 (IRState::pushLabel): Likewise.
665 (IRState::checkSwitchCase): Likewise.
666 (IRState::checkGoto): Likewise.
667 (IRState::checkPreviousGoto): Likewise.
668
669 * d-elem.cc (CatAssignExp::toElem): Call postblit on appending array of
670 structs if required.
671
672 2013-05-16 Johannes Pfau <johannespfau@gmail.com>
673
674 * d-incpath.cc (prefixed_path): use cpp_PREFIX instead of
675 cpp_GCC_INCLUDE_DIR for relocation.
676
677 2013-05-16 Iain Buclaw <ibuclaw@gdcproject.org>
678
679 * d-codegen.cc (IRState::convertForAssignment): Remove use of
680 CtorEltMaker wrapper for vec<constructor_elt, va_gc>.
681 (d_array_value): Likewise.
682 (build_delegate_cst): Likewise.
683 (extract_from_method_call): Likewise.
684 * d-elem.cc (NewExp::toElem): Likewise.
685 (ArrayLiteralExp::toElem): Likewise.
686 (AssocArrayLiteralExp::toElem): Likewise.
687 (StructLiteralExp::toElem): Likewise.
688 (NullExp::toElem): Likewise.
689 (VectorExp::toElem): Likewise.
690 * d-objfile.cc (build_moduleinfo): Likewise.
691 * d-todt.cc (dt_container): Likewise.
692 (dt_container2): Likewise.
693
694 * d-asmstmt.cc (ExtAsmStatement::toIR): Remove use of ListMaker
695 wrapper for tree chaining.
696 * d-builtins.c (d_bi_builtin_func): Likewise.
697 (d_bi_builtin_type): Likewise.
698 (d_gcc_magic_builtins_module): Likewise.
699 (d_gcc_magic_libbuiltins_module): Likewise.
700 * d-codegen.cc (build_attributes): Likewise.
701 (IRState::call): Likewise.
702 (IRState::buildFrameForFunction): Likewise.
703 (AggLayout::doFields): Likewise.
704 (AggLayout::addField): Likewise.
705 * d-ctype.cc (TypeEnum::toCtype): Likewise.
706 (TypeFunction::toCtype): Likewise.
707 * d-todt.cc (dt_container2): Likewise.
708
709 * d-codegen.cc (IRState::getFrameInfo): Replace with get_frameinfo.
710 (IRState::buildFrameForFunction): Replace with build_frame_type.
711 (IRState::isClassNestedInFunction): Replace with d_nested_class.
712 (IRState::isStructNestedInFunction): Replace with d_nested_struct.
713 (IRState::getFrameForFunction): Fold into IRState::getFrameForSymbol.
714 (IRState::getFrameForNestedClass): Likewise.
715 (IRState::getFrameForNestedStruct): Likewise.
716
717 2013-05-15 Iain Buclaw <ibuclaw@gdcproject.org>
718
719 * d-codegen.cc (IRState::buildFrameForFunction): Also copy the
720 parameters of functions with 'in' contracts to a local frame decl.
721 * d-lang.cc (d_handle_flatten_attribute): New function to handle D
722 flatten attributes.
723
724 2013-05-14 Iain Buclaw <ibuclaw@gdcproject.org>
725
726 * d-codegen.cc (IRState::chainLink): Remove function.
727 (IRState::chainFunc): Remove function.
728 (IRState::sthis): New member which holds the chain of function.
729 (IRState::buildChain): Update to use new static chain decl.
730 (IRState::getFrameInfo): Likewise.
731 * d-objfile.cc (FuncDeclaration::buildClosure): Likewise.
732 (FuncDeclaration::toObjFile): Default the function static chain decl
733 to null unless vthis is given for the function.
734
735 2013-05-13 Iain Buclaw <ibuclaw@gdcproject.org>
736
737 * d-lang.cc (d_handle_noinline_attribute): New function to handle D
738 noinline attributes.
739 (d_handle_forceinline_attribute): New function to handle D forceinline
740 attributes.
741 * d-elem.cc (StructLiteralExp::toElem): Return the struct initialiser
742 symbol directly if the tree has already been built.
743 * d-decls.cc (Dsymbol::toSymbolX): Constify the mangling name to use.
744
745 2013-05-10 Iain Buclaw <ibuclaw@gdcproject.org>
746
747 * d-typinf.cc: New file containing type info routines originally in
748 the D Front End.
749
750 * d-todt.cc (dt_last): New helper function to retrieve last node in a
751 dt_t tree list.
752 (dt_cons): New helper function to append nodes to the end of a list.
753 (dt_chainon): New helper function to concatenate two lists together.
754 (dt_container): New helper function to build a ctor from a list.
755 (build_vptr_monitor): New helper function to generate the class
756 vtable, and put out __vptr and __monitor.
757 symbol default values in a class declaration.
758 (dtlist_to_tree): New helper function to convert a dt_t list into a
759 constructor tree.
760 (Type::toDt): Implement routines for new dt_t format.
761 (TypeInfoDeclaration::toDt): Likewise.
762 (Initializer::toDt): Likewise.
763 (Expression::toDt): Likewise.
764 (Declaration::toDt): Likewise.
765
766 * d-objfile.cc (Dsymbol::toObjFile): Update for new dt_t format.
767 (Module::genmoduleinfo): Likewise.
768 (Symbol::Symbol): Moved from symbol.cc
769 (Obj::objmod): Remove abstraction layer.
770 (Obj::moduleinfo): Renamed to build_moduleinfo.
771 (obj_tlssections): Renamed to build_tlssections.
772 (outdata): Renamed to d_finish_symbol.
773 (check_static_sym): Moved into d_finish_symbol.
774
775 * d-codegen.cc (d_gcc_emit_local_variable): Remove.
776
777 * d-decls.cc (Dsymbol::toSymbolX): Update to not call symbol_calloc.
778 (FuncDeclaration::toThunkSymbol): Likewise.
779 (ClassDeclaration::toSymbol): Build type as d_unknown_type_node.
780 (InterfaceDeclaration::toSymbol): Likewise.
781 (Module::toSymbol): Likewise.
782 (ClassDeclaration::toVtblSymbol): Update call to toSymbolX.
783 (AggregateDeclaration::toInitializer): Likewise.
784 (TypedefDeclaration::toInitializer): Likewise.
785 (EnumDeclaration::toInitializer): Likewise.
786
787 * d-ir.cc (CaseStatement::toIR): Don't call static_sym.
788
789 * d-lang.cc (rtlsym): Remove symbol.
790 (D_DECL_READONLY_STATIC): Remove macro.
791 (d_unknown_type_node): New LANG_TYPE node for marking TypeInfo_Class,
792 Interface, and ModuleInfo types that are of a variable size determined
793 at compile time.
794
795 * d-elem.cc (StringExp::toElem): Clean up for new dt_t format.
796
797 * symbol.cc: Remove file.
798
799 2013-05-08 Iain Buclaw <ibuclaw@gdcproject.org>
800
801 * d-codegen.cc (IRState::getFrameInfo): Don't create a frame/closure
802 for member functions, only required for nested.
803 * d-elem.cc (Expression::toElemDtor): Call dtors in the correct order.
804 (DeclarationExp::toElem): Don't call dtor on static, manifest, or
805 extern symbols upon declaration.
806 (AssignExp::toElem): Only call postblit on lvalues in assignment.
807 (ArrayLiteralExp::toElem): Always generate literals on heap.
808
809 2013-05-06 Iain Buclaw <ibuclaw@gdcproject.org>
810
811 * d-elem.cc (StructLiteralExp::toElem): Return the default initialiser
812 symbol if one exists.
813 * d-builtins.c (d_gcc_magic_libbuiltins_check): Override the function
814 type with the correct built-in function type as defined in backend.
815
816 2013-04-15 Iain Buclaw <ibuclaw@gdcproject.org>
817
818 * d-elem.cc (IdentityExp::toElem): Remove special handling of class,
819 reference and array types.
820
821 2013-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
822
823 * d-codegen.cc (maybe_make_temp): Save call expressions so aren't
824 evaluated more than once.
825 (d_has_side_effects): Remove check for exceptional class types.
826
827 2013-04-10 Iain Buclaw <ibuclaw@gdcproject.org>
828
829 * d-decls.cc (FuncDeclaration::toSymbol): Harden logic for marking
830 functions pure as in 'has no side effects'.
831
832 2013-04-07 Iain Buclaw <ibuclaw@gdcproject.org>
833
834 * d-decls.cc (FuncDeclaration::toSymbol): Push deferred functions to
835 FuncDeclaration::deferred.
836 * d-elem.cc (DelegateExp::toElem): Likewise.
837 (FuncExp::toElem): Likewise.
838 * d-objfile.cc (ObjectFile::shouldEmit): Likewise.
839 (FuncDeclaration::toObjFile): Process all deferred functions in
840 FuncDeclaration::deferred.
841 * symbol.cc (Symbol::deferredNestedFuncs): Remove.
842
843 2013-04-05 Iain Buclaw <ibuclaw@gdcproject.org>
844
845 * d-elem.cc (FuncExp::toElem): Defer function literals and lambdas
846 until parent function has finished processing.
847
848 2013-04-04 Iain Buclaw <ibuclaw@gdcproject.org>
849
850 * d-codegen.cc (IRState::buildChain): Use __frame decl directly when
851 setting up the function frame.
852 (maybe_set_builtin_frontend): Exit early if symbol has no parent.
853 * d-decls.cc (FuncDeclaration::toSymbol): Defer all nested functions,
854 not just templated instances.
855 * d-objfile.cc (FuncDeclaration::toObjFile): Delay processed deferred
856 nested functions until function has finished being generated.
857 (ObjectFile::shouldEmit): Don't emit nested functions if the parent
858 function hasn't finished processing.
859
860 2013-04-03 Iain Buclaw <ibuclaw@gdcproject.org>
861
862 * d-codegen.cc (maybe_set_builtin_frontend): Merged from
863 maybe_set_builtin and maybe_set_libcall.
864 * d-decls.cc (FuncDeclaration::toSymbol): Use
865 maybe_set_builtin_frontend.
866
867 2013-03-31 Iain Buclaw <ibuclaw@gdcproject.org>
868
869 * d-lang.cc (d_init_options): Default module info emission to on.
870 (d_handle_option): New femit-moduleinfo switch.
871 * d-objfile.cc (Module::genobjfile): Don't emit module if disabled
872 explicitly.
873 * d-builtins.cc (is_intrinsic_module_p): New function to test whether
874 module is core.bitops.
875 (is_math_module_p): New function to test whether module is std.math or
876 core.stdc.math.
877 (is_builtin_va_arg_p): New function to test whether symbol is
878 specially handled va_arg template.
879 (is_builtin_va_start_p): New function to test whether symbol is
880 specially handled va_start template.
881 * d-codegen.cc (IRState::binding): Replace with bind_expr.
882 (IRState::mathModule): Replace with std_math_module.
883 (IRState::mathCoreModule): Replace with core_math_module.
884 (IRState::intrinsicModule): Replace with std_intrinsic_module.
885 (IRState::cstdargTemplateDecl): Replace with va_arg_template.
886 (IRState::stdargTemplateDecl): Replace with va_arg2_template.
887 (IRState::cstdargStartTemplateDecl): Replace with va_start_template.
888 (IRState::getLibCallDecl): Replace with get_libcall.
889 (IRState::maybeSetLibCallDecl): Replace with maybe_set_libcall.
890 (IRState::libCall): Replace with build_libcall.
891 (IRState::maybeSetUpBuiltin): Replace with maybe_set_builtin.
892 (IRState::Intrinsic): Move enum out of IRState.
893
894 2013-03-30 Iain Buclaw <ibuclaw@gdcproject.org>
895
896 * d-codegen.cc (IRState::darrayPtrRef): Replace with d_array_ptr.
897 (IRState::darrayLenRef): Replace with d_array_length.
898 (IRState::darrayVal): Replace with d_array_value.
899 (IRState::darrayString): Replace with d_array_string.
900 (IRState::arrayLength): Replace with get_array_length.
901 (get_object_method): Remove dependancy on irs parameter.
902 * d-lang.cc (d_init): Use static bool std_inc to determine whether to
903 include standard module paths.
904 (d_post_options): Canonicalize the input filename.
905 (d_parse_file): Correctly catch cases where input file is stdin.
906
907 2013-03-27 Iain Buclaw <ibuclaw@gdcproject.org>
908
909 * d-codegen.cc (IRState::getFrameInfo) Create a custom static chain for
910 all nested functions.
911 * d-gcc-includes.h: Rename to d-system.h
912
913 2013-03-23 Iain Buclaw <ibuclaw@gdcproject.org>
914
915 * d-builtins.c (d_bi_init): Set REALPAD to be TYPE_PRECISION of
916 long_double_type_node.
917 * d-codegen.cc (IRState::twoFieldType): Replace with
918 build_two_field_type.
919 (IRState::arrayOpNotImplemented): Replace with unhandled_arrayop_p.
920 (IRState::delegateMethodRef): Replace with delegate_method.
921 (IRState::delegateObjectRef): Replace with delegate_object.
922 (IRState::delegateVal): Replace with build_delegate_cst.
923 (IRState::methodCallExpr): Replace with build_method_call.
924 (IRState::extractMethodCallExpr): Replace with
925 extract_from_method_call.
926 (IRState::objectInstanceMethod): Replace with get_object_method.
927 (IRState::twoFieldCtor): Remove.
928 (IRState::call): Assert that if calling a normal FUNCTION_TYPE,
929 'object' is not set.
930 * d-ctype.cc (TypeDelegate::toCtype): Build a METHOD_TYPE for the .func
931 field type in delegates.
932 * d-lang.h (D_IS_METHOD_CALL_EXPR): Rename to D_METHOD_CALL_EXPR.
933 * d-objfile.cc (FuncDeclaration::toObjFile): Remove assert for chain
934 function.
935
936 2013-03-20 Johannes Pfau <johannespfau@gmail.com>
937
938 * d-codegen.cc (IRState::objectInstanceMethod): Recursively check
939 for TOKsuper / TOKdottype. Do not ignore CastExp.
940 * d-elem.cc (IdentityExp::toElem): Ignore padding in bitwise floating
941 point comparisons.
942 * testsuite: Cleanup. Remove invalid tests, adjust tests, etc.
943
944 2013-03-20 Iain Buclaw <ibuclaw@gdcproject.org>
945
946 * d-codegen.cc (IRState::objectInstanceMethod): Get function pointer
947 off function TREE_TYPE.
948 (build_deref): Handle cases where expression to dereference is an
949 address expression.
950 (modify_expr): New function overload to set return type directly.
951 * d-elem.cc (CatAssignExp::toElem): Use new modify_expr.
952 (AssignExp::toElem): Likewise.
953 * d-decls.cc (FuncDeclaration::toSymbol): Don't build a method type for
954 nested functions / delegates. Just add on the hidden 'this' pointer
955 containing the custom static chain/closure object.
956
957 * d-codegen.cc (GlobalValues): Replace with current_module,
958 current_irs, object_file.
959 (IRState::getFuncType): Replace with get_function_type.
960 (IRState::isCallByAlias): Replace with call_by_alias_p.
961 (IRState::isFuncType): Replace with function_type_p.
962 (IRState::doExp): Remove.
963
964 * d-asmstmt.cc (ExtAsmStatement::syntaxCopy): Use arraySyntaxCopy to
965 copy front end expressions.
966
967 * d-codegen.cc (AssignExp::toElem): Call _d_arrayassign / _d_arrayctor
968 when assigning arrays of structs.
969
970 2013-03-18 Iain Buclaw <ibuclaw@gdcproject.org>
971
972 * d-codegen.cc (IRState::realPart): Replace with real_part.
973 (IRState::imagPart): Replace with imaginary_part.
974 (IRState::integerConstant): Replace with build_integer_cst.
975 (IRState::floatConstant): Replace with build_float_cst.
976 (IRState::hwi2toli): Replace with cst_to_hwi.
977 (IRState::addressOf): Replace with build_address.
978 (IRState::markAddressable): Replace with d_mark_addressable.
979 (IRState::markUsed): Replace with d_mark_used.
980 (IRState::markRead): Replace with d_mark_read.
981 (IRState::indirect): Replace with indirect_ref.
982 (IRState::pvoidOkay): Replace with void_okay_p.
983 (IRState::maybeCompound): Replace with maybe_compound_expr.
984 (IRState::maybeVoidCompound): Replace with maybe_vcompound_expr.
985 (IRState::isErrorMark): Replace with error_mark_p.
986 (IRState::getTargetSizeConst): Replace with tree_to_hwi.
987 (IRState::modify): Replace with modify_expr.
988 (IRState::vmodify): Replace with vmodify_expr.
989 (IRState::vinit): Replace with build_vinit.
990 (IRState::nop): Replace with build_nop.
991 (IRState::vconvert): Replace with build_vconvert.
992 (IRState::boolOp): Replace with build_boolop.
993 (IRState::compound): Replace with compound_expr.
994 (IRState::voidCompound): Replace with vcompound_expr.
995 (IRState::component): Replace with component_ref.
996 (IRState::errorMark): Replace with error_mark.
997 (IRState::typesSame): Replace with d_types_same.
998 (IRState::typesCompatible): Replace with d_types_compatible.
999 (IRState::getDType): Replace with build_dtype.
1000 (IRState::getObjectType): Replace with build_object_type.
1001 (IRState::isDeclarationReferenceType): Replace with decl_reference_p.
1002 (IRState::trueDeclarationType): Replace with declaration_type.
1003 (IRState::isArgumentReferenceType): Replace with arg_reference_p.
1004 (IRState::trueArgumentType): Replace with type_passed_as.
1005 (IRState::arrayType): Replace with d_array_type.
1006 (IRState::addTypeAttribute): Replace with insert_type_attributes.
1007 (IRState::addDeclAttribute): Replace with insert_decl_attributes.
1008 (IRState::attributes): Replace with build_attributes.
1009 (IRState::addTypeModifiers): Replace with insert_type_modifiers.
1010 (IRState::maybeMakeTemp): Replace with maybe_make_temp.
1011 (IRState::isFreeOfSideEffects): Replace with d_has_side_effects.
1012 (IRState::pointerOffsetOp): Replace with build_offset_op.
1013 (IRState::pointerOffset): Replace with build_offset.
1014 (IRState::buildCall): Replace with d_build_call.
1015 (IRState::exceptionObject): Replace with build_exception_object.
1016
1017 2013-03-17 Iain Buclaw <ibuclaw@gdcproject.org>
1018
1019 * d-asmstmt.cc (d_build_asm_stmt): Remove.
1020 (ExtAsmStatement::ExtAsmStatement): Update to match renamed members.
1021 (ExtAsmStatement::syntaxCopy): Likewise.
1022 (ExtAsmStatement::semantic): Likewise.
1023 (ExtAsmStatement::toCBuffer): Likewise.
1024 (ExtAsmStatement::comeFrom): New.
1025 (ExtAsmStatement::blockExit): Don't error if must not throw.
1026 (naturalString): Remove.
1027 (ExtAsmStatement::toIR): Inline IRState::doAsm implementation.
1028 * d-codegen.cc (IRState::doAsm): Remove.
1029 * d-decls.cc (FuncDeclaration::toSymbol): Don't generate 'naked'
1030 attribute.
1031 (binfo_for): Move into d-decls.cc.
1032 (intfc_binfo_for): Likewise.
1033 (ClassDeclaration::toDebug): Likewise.
1034 (EnumDeclaration::toDebug): Likewise.
1035 (TypedefDeclaration::toDebug): Likewise.
1036 (StructDeclaration::toDebug): Likewise.
1037 * d-objfile.cc (FuncDeclaration::toObjFile): Move into d-objfile.cc.
1038 (FuncDeclaration::buildClosure): Likewise.
1039 (Module::genobjfile): Likewise.
1040 * d-glue.cc: Remove file.
1041
1042 2013-03-16 Iain Buclaw <ibuclaw@gdcproject.org>
1043
1044 * d-ir.cc (SynchronizedStatement::toIR): Remove implementation as is
1045 now handled by the frontend.
1046
1047 2013-03-15 Iain Buclaw <ibuclaw@gdcproject.org>
1048
1049 * d-codegen.cc (IRState::maybeExpandSpecialCall): Handle ref argptr
1050 arguments.
1051
1052 2013-03-13 Iain Buclaw <ibuclaw@gdcproject.org>
1053
1054 * d-builtins.c (handle_alias_attribute): New function to handle
1055 internal 'alias' attribute.
1056 (handle_weakref_attribute): New function to handle internal 'weakref'
1057 attribute.
1058 * d-objfile.cc (ObjectFile::outputThunk): Define thunks to external
1059 symbols as weakref, alias
1060
1061 2013-03-12 Johannes Pfau <johannespfau@gmail.com>
1062
1063 * patch-versym-os-4.8.x (mingw32.h): Fix typo
1064 * patch-versym-cpu-4.8.x (mips.h): Fix typo
1065 Update version symbols to latest dlang specification.
1066
1067 2013-03-10 Iain Buclaw <ibuclaw@gdcproject.org>
1068
1069 * d-decls.cc (FuncDeclaration::toSymbol): Delay setting TREE_TYPE as
1070 function type could be hidden in a nested function not yet built.
1071 * d-codegen.cc (IRState::findThis): Don't get 'this' from outer
1072 function if it's a closure type. This has already been handled by
1073 IRState::getFrameForSymbol.
1074 (IRState::buildChain): Give frame decl debug name '__frame'.
1075 Always set '__chain' link field.
1076 (IRState::getFrameInfo): Don't build a frame for all nested functions.
1077 Search through nested aggregates for static chain in outer functions.
1078 * d-codegen.h (IRState::useParentChain): Remove.
1079 * d-glue.cc (FuncDeclaration::toObjFile): Don't call useParentChain.
1080 Don't create a local var for the chain link for a function.
1081 (FuncDeclaration::buildClosure): Always set '__chain' link field.
1082
1083 2013-03-08 Iain Buclaw <ibuclaw@gdcproject.org>
1084
1085 * d-codegen.cc (d_gcc_force_templates): Only check for emitting
1086 templates as private.
1087 * d-lang.cc (d_handle_option): Remove -femit-templates= option.
1088 * d-objfile.cc (ObjectFile::makeDeclOneOnly): Fix code logic so
1089 fallback method could be reached.
1090 * d-objfile.h (TEall, TEauto): Remove.
1091
1092 2013-03-07 Iain Buclaw <ibuclaw@gdcproject.org>
1093
1094 * d-ir.cc (ReturnStatement::toIR): Don't call postblit on return.
1095 * d-codegen.cc (IRState::trueDeclarationType): Don't set
1096 D_TYPE_ADDRESSABLE.
1097 (IRState::makeTemp): Remove.
1098 (IRState::maybeMakeTemp): Copy makeTemp into function.
1099 * d-glue.cc (d_genericize): Remove D_TYPE_ADDRESSABLE handling.
1100 * d-lang.h (D_TYPE_ADDRESSABLE): Remove macro.
1101
1102 2013-03-04 Johannes Pfau <johannespfau@gmail.com>
1103
1104 * d-ctype.cc (Type::toCtype): Always call gen.addTypeModifiers to
1105 make sure TYPE_MAIN_VARIANT is set. Reuse tree from unqualified
1106 variant for that. Also cache the resulting qualified tree.
1107 (TypeTypedef::toCtype): Likewise.
1108 (TypeEnum::toCtype): Likewise.
1109 (TypeStruct::toCtype): Likewise.
1110 (TypeFunction::toCtype): Likewise.
1111 (TypeVector::toCtype): Likewise.
1112 (TypeSArray::toCtype): Likewise.
1113 (TypeDArray::toCtype): Likewise.
1114 (TypeAArray::toCtype): Likewise.
1115 (TypeDelegate::toCtype): Likewise.
1116 (TypeClass::toCtype): Likewise.
1117 * d-objfile.cc (ObjectFile::giveDeclUniqueName): Make sure DECL_NAME is set
1118
1119 2013-03-01 Iain Buclaw <ibuclaw@gdcproject.org>
1120
1121 * d-decls.cc (VarDeclaration::toSymbol): Remove use of c_ident.
1122 (FuncDeclaration::toSymbol): Likewise.
1123 * d-builtins.c (handle_noreturn_attribute): Assert that this is only
1124 used for internal purposes.
1125 (handle_const_attribute): Likewise.
1126 (handle_malloc_attribute): Likewise.
1127 (handle_pure_attribute): Likewise.
1128 (handle_nonnull_attribute): Likewise.
1129 (handle_nothrow_attribute): Likewise.
1130 (handle_sentinel_attribute): Likewise.
1131 (handle_transaction_pure_attribute): Likewise.
1132 (handle_returns_twice_attribute): Likewise.
1133 * d-glue.cc (FuncDeclaration::toObjFile): Result variables have no
1134 default initialiser.
1135 * d-codegen.cc (IRState::emitLocalVar): Add in assert that the local
1136 variable has no initialiser if called with no_init = true.
1137 (IRState::getLibCallDecl): Mark exceptional library functions as
1138 noreturn.
1139 (IRState::attributes): Gracefully handle @attribute, and
1140 @attribute(null).
1141
1142 2013-02-28 Jernej Krempus <jkrempus@gmail.com>
1143
1144 * d-builtins.c (d_attribute_table): Renamed it to
1145 d_builtins_attribute_table.
1146 * d-lang.cc (d_attribute_table): Added an empty table
1147 * d-lang.cc (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Defined it as
1148 d_builtins_attribute_table.
1149 * d-lang.h (d_builtins_attribute_table): Added a declaration.
1150 * d-codegen.cc (IRState::attributes): Changed it so it goes through
1151 in_attrs and looks for any @gcc.attribute.attribute("attr_name").
1152 * d-objfile.cc (ObjectFile::setupSymbolStorage): Pass userAttributes
1153 instead of attributes in all calls to IRState::attributes.
1154 * d-ctype.cc (TypeTypedef::toCtype): Likewise.
1155 (TypeEnum::toCtype): Likewise.
1156 (TypeStruct::toCtype): Likewise.
1157 (TypeClass::toCtype): Likewise.
1158 * libphobos/libdruntime/gcc/attribute.d: New file.
1159
1160 2013-02-28 Iain Buclaw <ibuclaw@gdcproject.org>
1161
1162 * d-lang.cc (d_handle_option): Remove OPT_fdeprecated and
1163 OPT_Wsign_compare, add handling for OPT_Wdeprecated.
1164 (d_post_options): Handle Wdeprecated and Werror switch combination.
1165
1166 2013-02-27 Iain Buclaw <ibuclaw@gdcproject.org>
1167
1168 * d-codegen.cc (ArrayScope::ArrayScope): Don't setup length var if its
1169 value is known at compile time.
1170 (ArrayScope::setArrayExp): Likewise.
1171 * d-decls.cc (uniqueName): Remove function.
1172 (VarDeclaration::toSymbol): Set decl assembler name directly.
1173 (FuncDeclaration::toSymbol): Likewise.
1174
1175 2013-02-15 Iain Buclaw <ibuclaw@gdcproject.org>
1176
1177 * Make-lang.in (GDC_EXTENDED_ASM_SYNTAX): Remove macro.
1178
1179 2013-02-14 Iain Buclaw <ibuclaw@gdcproject.org>
1180
1181 * d-lang.h (D_DECL_IS_CONTRACT): Remove macro.
1182 * d-decls.cc (FuncDeclaration::toSymbol): Likewise.
1183
1184 2013-02-13 Iain Buclaw <ibuclaw@gdcproject.org>
1185
1186 * d-lang.cc (d_gcc_is_target_win32): Remove.
1187 (d_add_builtin_version): New function to handle define_builtin
1188 callback from backend.
1189 * d-codegen.cc (IRState::maybeExpandSpecialCall): Remove intrinsic bt.
1190
1191 * d-builtins.c: Merge with d-builtins2.cc.
1192 * d-builtins2.cc: Remove.
1193
1194 2013-02-07 Johannes Pfau <johannespfau@gmail.com>
1195
1196 * d-lang.cc (d_init): Use gcc's config system for predefined OS versions.
1197 * setup-gcc.sh: Likewise.
1198 * target-ver-syms.sh: Likewise.
1199
1200 2013-02-05 Iain Buclaw <ibuclaw@ubuntu.com>
1201
1202 * d-builtins2.cc (gcc_type_to_d_type): Remove STRUCTTHISREF condition.
1203 * d-decls.cc (FuncDeclaration::toSymbol): Likewise.
1204 * d-elem.cc (ThisExp::toElem): Likewise.
1205 * d-ctype.cc (TypeSArray::toCtype): Remove SARRAYVALUE condition.
1206 * d-codegen.cc (IRState::isDeclarationReferenceType): Likewise.
1207 (IRState::isArgumentReferenceType): Likewise.
1208
1209 2013-02-01 Johannes Pfau <johannespfau@gmail.com>
1210
1211 * d-lang.cc (d_init): Use gcc's config system for predefined CPU versions.
1212 (d_init): Fix definition of D_LP64 version.
1213 * setup-gcc.sh: Likewise.
1214 * target-ver-syms.sh: Likewise.
1215
1216
1217 Copyright (C) 2013 Free Software Foundation, Inc.
1218
1219 Copying and distribution of this file, with or without modification,
1220 are permitted in any medium without royalty provided the copyright
1221 notice and this notice are preserved.