Mercurial > hg > CbC > CbC_gcc
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. |