compiler: add an option to emit optimization diagnostics
[gcc.git] / gcc / go / ChangeLog
1 2019-05-07 Cherry Zhang <cherryyz@google.com>
2
3 * lang.opt (-fgo-debug-optimization): New option.
4 * go-c.h (struct go_create_gogo_args): Add debug_optimization
5 field.
6 * go-lang.c (go_langhook_init): Set debug_optimization field.
7 * gccgo.texi (Invoking gccgo): Document -fgo-debug-optimization.
8
9 2019-03-06 Ian Lance Taylor <iant@golang.org>
10
11 PR go/89227
12 * go-gcc.cc (Gcc_backend::function): Set TREE_PUBLIC for an
13 only-inline function.
14
15 2019-02-15 Cherry Zhang <cherryyz@google.com>
16
17 * go-gcc.cc (Gcc_backend::Gcc_backend): Define __builtin_dwarf_cfa
18 instead of __builtin_frame_address.
19
20 2019-02-14 Ian Lance Taylor <iant@golang.org>
21
22 * go-backend.c (go_imported_unsafe): Update
23 optimization_default_node.
24
25 2019-02-13 Ian Lance Taylor <iant@golang.org>
26
27 * go-gcc.cc: #include "opts.h".
28 (Gcc_backend::function): Compile thunks with -Os.
29
30 2019-02-05 Nikhil Benesch <nikhil.benesch@gmail.com>
31
32 PR go/89019
33 * go-gcc.cc (Gcc_backend::placeholder_struct_type): Mark
34 placeholder structs as requiring structural equality.
35 (Gcc_backend::set_placeholder_pointer_type): Propagate the
36 canonical type from the desired pointer type to the placeholder
37 pointer type.
38
39 2019-01-09 Ian Lance Taylor <iant@golang.org>
40
41 PR go/86343
42 * go-gcc.cc (Gcc_backend::set_placeholder_struct_type): Go back to
43 build_distinct_type_copy, but copy the fields so that they have
44 the right DECL_CONTEXT.
45
46 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
47
48 PR other/16615
49
50 * go-backend.c: Mechanically replace "can not" with "cannot".
51 * go-gcc.cc: Likewise.
52
53 2019-01-01 Jakub Jelinek <jakub@redhat.com>
54
55 Update copyright years.
56
57 * gccgo.texi: Bump @copyrights-go year.
58
59 2018-11-27 Ian Lance Taylor <iant@golang.org>
60
61 * go-gcc.cc (Gcc_backend::function): Handle function_only_inline
62 flag.
63
64 2018-11-13 David Malcolm <dmalcolm@redhat.com>
65
66 * go-gcc-diagnostics.cc: Replace "source_location" with "location_t".
67 * go-gcc.cc: Likewise.
68 * go-linemap.cc: Likewise.
69 * go-location.h: Likewise.
70 * gofrontend/README: Likewise.
71
72 2018-10-31 Ian Lance Taylor <iant@golang.org>
73
74 * go-gcc.cc (Gcc_backend::write_global_definitions): Don't call
75 gimplify_function_tree. Instead call allocate_struct_function if
76 necessary.
77
78 2018-10-29 Ian Lance Taylor <iant@golang.org>
79
80 * go-gcc.cc (Gcc_backend::function): Change to use a single flags
81 parameter.
82
83 2018-10-29 Ian Lance Taylor <iant@golang.org>
84
85 * go-linemap.cc (Gcc_linemap::location_file): New method.
86
87 2018-10-17 David Malcolm <dmalcolm@redhat.com>
88
89 * Make-lang.in (selftest-go): New.
90
91 2018-09-20 Allan Sandfeld Jensen <allan.jensen@qt.io>
92
93 * gospec.c (lang_specific_driver): Handle -r like -nostdlib.
94
95 2018-08-27 Martin Liska <mliska@suse.cz>
96
97 * go-gcc.cc (Gcc_backend::call_expression): Use new function
98 fndecl_built_in_p and remove check for FUNCTION_DECL if
99 possible.
100
101 2018-07-20 Martin Sebor <msebor@redhat.com>
102
103 PR middle-end/82063
104 * go-lang.c (go_langhook_handle_option): Change function argument
105 to HOST_WIDE_INT.
106
107 2018-06-28 Ian Lance Taylor <iant@golang.org>
108
109 PR go/86343
110 * go-gcc.cc (Gcc_backend::set_placeholder_struct_type): Call
111 build_variant_type_copy rather than build_distinct_type_copy.
112
113 2018-06-08 Cherry Zhang <cherryyz@google.com>
114
115 * go-gcc.cc (class Gcc_backend): Remove
116 stack_allocation_expression method.
117
118 2018-02-03 Ian Lance Taylor <iant@golang.org>
119
120 * go-gcc.cc (Gcc_backend::fill_in_struct): Mark struct types as
121 using structural equality.
122
123 2018-02-02 Ian Lance Taylor <iant@golang.org>
124
125 * go-gcc.cc (Gcc_backend::type_size): Return 0 for
126 void_type_node.
127 (Gcc_backend::convert_expression): Don't convert if the type of
128 expr_tree is void_type_node.
129 (Gcc_backend::array_index_expression): Don't index if the type of
130 the array expression is void_type_node.
131 (Gcc_backend::init_statement): Don't initialize if the type of the
132 initializer expression is void_type_node.
133 (Gcc_backend::assignment_statement): Don't assign if the type of
134 either the left or right hand side is void_type_node.
135 (Gcc_backend::temporary_variable): Don't initialize if the type of
136 the initializer expression is void_type_node.
137
138 2018-02-01 Cherry Zhang <cherryyz@google.com>
139
140 * lang.opt (fgo-optimize): Remove RejectNegative.
141 * go-c.h (go_enable_optimize): Update declaration to take value
142 argument.
143 * go-lang.c (go_langhook_handle_option): Pass value to
144 go_enable_optimize.
145 * gccgo.texi (Invoking gccgo): Update -fgo-optimize-allocs doc.
146
147 2018-01-30 Ian Lance Taylor <iant@golang.org>
148
149 * go-gcc.cc (Gcc_backend::convert_tree): New private method.
150 (Gcc_backend::constructor_expression): Call it.
151 (Gcc_backend::assignment_statement): Likewise.
152 (Gcc_backend::temporary_variable): Likewise.
153
154 2018-01-09 Cherry Zhang <cherryyz@google.com>
155
156 * go-gcc.cc (local_variable): Add decl_var parameter.
157
158 2018-01-09 Cherry Zhang <cherryyz@google.com>
159
160 * lang.opt (fgo-debug-escape-hash): New option.
161 * go-c.h (struct go_create_gogo_args): Add debug_escape_hash
162 field.
163 * go-lang.c (go_langhook_init): Set debug_escape_hash field.
164 * gccgo.texi (Invoking gccgo): Document -fgo-debug-escape-hash.
165
166 2018-01-05 Ian Lance Taylor <iant@golang.org>
167
168 * go-gcc.cc (Gcc_backend::Gcc_backend): Correct
169 math_function_type_long to take one argument.
170
171 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
172 Alan Hayward <alan.hayward@arm.com>
173 David Sherwood <david.sherwood@arm.com>
174
175 * go-lang.c (go_langhook_type_for_mode): Handle MODE_VECTOR_BOOL.
176
177 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
178 Alan Hayward <alan.hayward@arm.com>
179 David Sherwood <david.sherwood@arm.com>
180
181 * go-lang.c (go_langhook_type_for_mode): Check valid_vector_subparts_p.
182
183 2018-01-03 Jakub Jelinek <jakub@redhat.com>
184
185 Update copyright years.
186
187 * gccgo.texi: Bump @copyrights-go year.
188
189 2017-12-12 Tony Reix <tony.reix@atos.net>
190 Ian Lance Taylor <iant@golang.org>
191
192 * go-lang.c (TARGET_AIX): Define if not defined.
193 (go_langhook_init): Set nil_check_size_threshold to -1 on AIX.
194
195 2017-12-01 Ian Lance Taylor <iant@golang.org>
196
197 * go-gcc.cc (Gcc_backend::Gcc_backend): Define
198 __builtin_unreachable.
199 (Gcc_backend::function): Add does_not_return parameter.
200
201 2017-12-01 Than McIntosh <thanm@google.com>
202
203 * go-c.h (go_create_gogo_args): Add nil_check_size_threshold
204 field.
205 * go-lang.c (go_langhook_init): Set nil_check_size_threshold.
206
207 2017-11-28 Jakub Jelinek <jakub@redhat.com>
208
209 * go-gcc.cc (Gcc_backend::switch_statement): Build SWITCH_EXPR using
210 build2_loc instead of build3_loc.
211
212 2017-11-14 Than McIntosh <thanm@google.com>
213
214 * go-gcc.cc (var_expression): Remove Varexpr_context parameter.
215
216 2017-10-11 Tony Reix <tony.reix@atos.net>
217
218 * go-system.h (__STDC_FORMAT_MACROS): Define before including any
219 system header files, as is done in ../system.h.
220
221 2017-10-05 Ian Lance Taylor <iant@golang.org>
222
223 * Make-lang.in (GO_OBJS): Add go/names.o.
224
225 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
226 Alan Hayward <alan.hayward@arm.com>
227 David Sherwood <david.sherwood@arm.com>
228
229 * go-lang.c (go_langhook_type_for_mode): Use is_complex_float_mode.
230
231 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
232 Alan Hayward <alan.hayward@arm.com>
233 David Sherwood <david.sherwood@arm.com>
234
235 * go-lang.c (go_langhook_type_for_mode): Use is_int_mode.
236
237 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
238 Alan Hayward <alan.hayward@arm.com>
239 David Sherwood <david.sherwood@arm.com>
240
241 * go-lang.c (go_langhook_type_for_mode): Use is_float_mode.
242
243 2017-08-07 Martin Liska <mliska@suse.cz>
244
245 * go-gcc.cc (Gcc_backend::function): Look up for no_split_stack
246 and not __no_split_stack__.
247
248 2017-07-27 Tony Reix <tony.reix@atos.net>
249
250 * go-backend.c (go_write_export_data): Use EXCLUDE section for
251 AIX.
252
253 2017-06-09 Ian Lance Taylor <iant@golang.org>
254
255 * go-lang.c (go_langhook_post_options): If -fsplit-stack is turned
256 on, disable implicit -forder-blocks-and-partition.
257
258 2017-05-12 Than McIntosh <thanm@google.com>
259
260 * go-gcc.cc (Gcc_backend::call_expression): Add caller parameter.
261
262 2017-05-11 Ian Lance Taylor <iant@google.com>
263
264 PR go/64238
265 * go-gcc.cc (Gcc_backend::implicit_variable_reference): Set
266 DECL_EXTERNAL, clear TREE_STATIC.
267
268 2017-05-10 Than McIntosh <thanm@google.com>
269
270 * go-backend.c: Include "go-c.h".
271 * go-gcc.cc (Gcc_backend::write_export_data): New method.
272
273 2017-05-10 Ian Lance Taylor <iant@google.com>
274
275 * go-gcc.cc (Gcc_backend::Gcc_backend): Declare
276 __builtin_prefetch.
277 * Make-lang.in (GO_OBJS): Add go/wb.o.
278
279 2017-03-28 Than McIntosh <thanm@google.com>
280
281 PR go/80226
282 * go-gcc.cc (Gcc_backend::return_statement): Check for
283 void_type_node when checking result size.
284
285 2017-02-20 Ian Lance Taylor <iant@golang.org>
286
287 PR go/79642
288 * lang.opt (-fgo-relative-import-path): Change space to tab.
289
290 2017-02-07 Richard Biener <rguenther@suse.de>
291
292 PR tree-optimization/79256
293 PR middle-end/79278
294 * go-backend.c (go_field_alignment): Adjust.
295
296 2017-01-11 Than McIntosh <thanm@google.com>
297
298 * go-gcc.cc (conditional_expression): Add Bfunction parameter.
299
300 2017-01-01 Jakub Jelinek <jakub@redhat.com>
301
302 Update copyright years.
303
304 * gccgo.texi: Bump @copyrights-go year.
305
306 2016-12-16 Than McIntosh <thanm@google.com>
307
308 * go-gcc.cc (Gcc_backend::expression_statement): Add Bfunction*
309 parameter.
310 (Gcc_backend::init_statement): Likewise.
311 (Gcc_backend::assignment_statement): Likewise.
312 (Gcc_backend::if_statement): Likewise.
313
314 2016-12-06 Than McIntosh <thanm@google.com>
315
316 * go-gcc.cc (Gcc_backend::var_expression): Add Varexpr_context
317 parameter.
318
319 2016-11-22 Than McIntosh <thanm@google.com>
320
321 * go-gcc.cc (char_needs_encoding): Remove.
322 (needs_encoding, fetch_utf8_char, encode_id): Remove.
323 (Gcc_backend::global_variable): Add asm_name parameter. Don't
324 compute asm_name here.
325 (Gcc_backend::implicit_variable): Likewise.
326 (Gcc_backend::implicit_variable_reference): Likewise.
327 (Gcc_backend::immutable_struct): Likewise.
328 (Gcc_backend::immutable_struct_reference): Likewise.
329 * Make-lang.in (GO_OBJS): Add go/go-encode-id.o.
330
331 2016-11-22 Ian Lance Taylor <iant@google.com>
332
333 * go-gcc.cc (Gcc_backend::Gcc_backend): Add builtin function
334 __builtin_frame_address.
335
336 2016-10-25 David Malcolm <dmalcolm@redhat.com>
337
338 * go-lang.c (go_langhook_type_for_mode): Remove redundant cast
339 from result of GET_MODE_CLASS. Minor formatting fixes.
340
341 2016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
342
343 * go-backend.c: Include memmodel.h.
344
345 2016-10-10 Than McIntosh <thanm@google.com>
346
347 * go-gcc.h: New file.
348 * go-c.h (struct go_create_gogo_args): Add backend and linemap
349 fields.
350 * go-lang.c: Include "go-gcc.h".
351 (go_langhook_init): Set linemap and backend fields of args.
352 * go-gcc.cc: Include "go-gcc.h".
353 * go-linemap.cc: Include "go-gcc.h".
354
355 2016-10-10 Than McIntosh <thanm@google.com>
356
357 * go-linemap.cc (Gcc_linemap::location_line): New method.
358
359 2016-10-10 Eric Botcazou <ebotcazou@adacore.com>
360
361 * config-lang.in (lang_requires_boot_languages): Delete.
362
363 2016-10-06 Chris Manghane <cmang@google.com>
364
365 * go-gcc.cc (Gcc_backend::stack_allocation_expression): Clear the
366 returned memory.
367
368 2016-09-27 Than McIntosh <thanm@google.com>
369
370 * go-linemap.cc (Gcc_linemap::to_string): New method.
371
372 2016-09-23 Than McIntosh <thanm@google.com>
373
374 * go-gcc-diagnostics.cc: New file.
375 * go-location.h (Location): Remove operator source_location. Add
376 operator==.
377 * go-system.h: #include <sstream>.
378 * Make-lang.in (GO_OBJS): Add go/go-diagnostics.o and
379 go/go-gcc-diagnostics.o.
380 (CFLAGS-go/go-gcc-diagnostics.o): New variable.
381
382 2016-09-23 Chris Manghane <cmang@google.com>
383
384 PR go/77701
385 * go-gcc.cc (Gcc_backend::Gcc_backend): Fix calls to integer_type
386 to pass arguments in the correct order.
387
388 2016-09-22 Ian Lance Taylor <iant@golang.org>
389
390 * go-gcc.cc (Gcc_backend::Gcc_backend): Declare
391 __builtin_frame_address.
392
393 2016-09-11 Ian Lance Taylor <iant@golang.org>
394
395 * go-gcc.cc (Gcc_backend::Gcc_backend): Add builtin versions of
396 ctz, ctzll, bswap32, bswap64.
397
398 2016-09-10 Ian Lance Taylor <iant@golang.org>
399
400 * go-backend.c (go_trampoline_info): Remove.
401 * go-c.h (go_trampoline_info): Don't declare.
402
403 2016-09-09 Than McIntosh <thanm@google.com>
404
405 * go-sha1.cc: New file.
406 * Make-lang.in (GO_OBJS): Add go/go-sha1.o.
407 (CFLAGS-go/go-sha1.o): New variable.
408
409 2016-08-29 Ian Lance Taylor <iant@google.com>
410
411 * lang.opt (fgo-c-header, fgo-compiling-runtime): New options.
412 * go-c.h (struct go_create_gogo_args): Define.
413 (go_create_gogo): Change declaration to take struct pointer.
414 * go-lang.c (go_c_header): New static variable.
415 (go_langhook_init): Update call to go_create_gogo.
416 * gccgo.texi (Invoking gccgo): Document -fgo-c-header and
417 -fgo-compiling-runtime.
418
419 2016-08-09 Ian Lance Taylor <iant@google.com>
420
421 * gccgo.texi (Invoking gccgo): Document -fgo-optimize-allocs and
422 -fgo-debug-escae.
423 (Compiler Directives): New chapter.
424 (Function Names): Describe using //go:linkname. Suggest using
425 -fgo-pkgpath rather than -fgo-prefix.
426
427 2016-08-08 Ian Lance Taylor <iant@google.com>
428
429 PR go/72814
430 * go-gcc.cc (Gcc_backend::function_type): If the return type is
431 zero bytes, treat the function as returning void.
432 (return_statement): If the return type is zero bytes, don't
433 actually return any values.
434
435 2016-08-05 Ian Lance Taylor <iant@google.com>
436
437 PR go/72812
438 * go-gcc.cc (char_needs_encoding): New static function.
439 (needs_encoding, fetch_utf8_char): New static functions.
440 (encode_id): New static function.
441 (Gcc_backend::global_variable): Set asm name if the name is not
442 simple ASCII.
443 (Gcc_backend::implicit_variable): Likewise.
444 (Gcc_backend::implicit_variable_reference): Likewise.
445 (Gcc_backend::immutable_struct): Likewise.
446 (Gcc_backend::immutable_struct_reference): Likewise.
447 (Gcc_backend::function): Likewise.
448
449 2016-08-02 Chris Manghane <cmang@google.com>
450
451 * lang.opt: Add -fgo-debug-escape option.
452 * go-c.h (go_create_gogo): Add debug_escape_level parameter.
453 * go-lang.c (go_langhook_init): Pass go_debug_escape_level to
454 go_create_gogo.
455
456 2016-05-06 Chris Manghane <cmang@google.com>
457
458 * Make-lang.in (GO_OBJS): Add go/escape.o (based on an entirely
459 new escape.cc).
460
461 2016-04-29 Chris Manghane <cmang@google.com>
462
463 * Make-lang.in (GO_OBJS): Remove go/dataflow.o, go/escape.o.
464
465 2016-04-18 Michael Matz <matz@suse.de>
466
467 * go-gcc.cc (Gcc_backend::implicit_variable): Use SET_DECL_ALIGN.
468
469 2016-02-12 Jakub Jelinek <jakub@redhat.com>
470
471 * gofrontend/lex.cc: Spelling fixes - behaviour -> behavior and
472 neighbour -> neighbor.
473 * gccgo.texi: Likewise.
474
475 2016-01-27 Ian Lance Taylor <iant@google.com>
476
477 * go-lang.c (go_langhook_init_options_struct): Default to
478 -fkeep-gc-roots-live.
479
480 2016-01-04 Jakub Jelinek <jakub@redhat.com>
481
482 Update copyright years.
483
484 * gccgo.texi: Bump @copyrights-go year.
485
486 2015-12-21 Ian Lance Taylor <iant@google.com>
487
488 * go-gcc.cc (class Bvariable): Remove Gcc_tree parent class. Add
489 t_ and orig_type_ fields. Add new two parameter constructor. Add
490 get_tree and get_decl methods.
491 (Gcc_backend::var_expression): Pass location to var get_tree.
492 (Gcc_backend::global_variable): Don't add VIEW_CONVERT_EXPR. Use
493 two parameter constructor for Bvariable.
494 (Gcc_backend::global_variable_set_init): Don't remove
495 VIEW_CONVERT_EXPR. Use var get_decl, not get_tree.
496 (Gcc_backend::write_global_definitions): Likewise.
497 (Gcc_backend::init_statement): Call var get_decl, not get_tree.
498 (Gcc_backend::block): Likewise.
499 (Gcc_backend::implicit_variable_set_init): Likewise.
500 (Gcc_backend::immutable_struct_set_init): Likewise.
501 (Gcc_backend::function_set_parameters): Likewise.
502
503 2015-12-21 Ian Lance Taylor <iant@google.com>
504
505 * go-gcc.cc (Gcc_backend::global_variable): If type is zero-sized,
506 add a VIEW_CONVERT_EXPR to the tree.
507 (Gcc_backend::global_variable_set_init): Remove any
508 VIEW_CONVERT_EXPR.
509 (Gcc_backend::write_global_definitions): Likewise.
510
511 2015-11-30 Ian Lance Taylor <iant@google.com>
512
513 PR go/68477
514 * go-gcc.cc (Gcc_backend::string_constant_expression): Don't set
515 TYPE_STRING_FLAG on a variant type.
516
517 2015-11-11 Andrew MacLeod <amacleod@redhat.com>
518
519 * go-backend.c: Remove unused header files.
520 * go-gcc.cc: Likewise.
521 * go-lang.c: Likewise.
522 * gospec.c: Likewise.
523
524 2015-10-29 Andrew MacLeod <amacleod@redhat.com>
525
526 * go-backend.c: Reorder #include's and remove duplicates.
527 * go-lang.c: Likewise.
528
529 2015-10-20 Alan Modra <amodra@gmail.com>
530
531 PR go/66870
532 * gospec.c (saw_opt_m32): Rename to..
533 (is_m64): ..this, initialised by TARGET_CAN_SPLIT_STACK_64BIT.
534 Update uses.
535 (lang_specific_driver): Set is_m64 if OPT_m64, clear if OPT_m32.
536
537 2015-10-01 Ian Lance Taylor <iant@google.com>
538
539 PR go/66870
540 * gospec.c (lang_specific_driver): Only look for OPT_m32 if
541 TARGET_CAN_SPLIT_STACK_64BIT is defined.
542
543 2015-10-01 Lynn Boger <laboger@linux.vnet.ibm.com>
544
545 PR target/66870
546 * gospec.c (lang_specific_driver): Set appropriate split stack
547 options for 64 bit compiles based on TARGET_CAN_SPLIT_STACK_64BIT.
548
549 2015-09-10 Chris Manghane <cmang@google.com>
550
551 * go-gcc.cc (Gcc_backend::type_size): Return -1 for
552 unrepresentable size.
553
554 2015-08-24 Marek Polacek <polacek@redhat.com>
555
556 PR tree-optimization/67284
557 * go-gcc.cc (Gcc_backend::define_builtin): Add NORETURN_P parameter.
558 Set TREE_THIS_VOLATILE.
559 (Gcc_backend::Gcc_backend): Mark __builtin_trap as a noreturn call.
560 Pass false to the rest of define_builtin calls.
561
562 2015-07-31 Andreas Schwab <schwab@linux-m68k.org>
563
564 * go-lang.c (go_langhook_init_options_struct): Don't set
565 x_flag_split_stack.
566 (go_langhook_post_options): Set it here instead.
567
568 2015-07-12 Aldy Hernandez <aldyh@redhat.com>
569
570 * gofrontend/backend.h: Fix double word typos.
571 * gofrontend/expressions.cc: Same.
572 * gospec.c: Same.
573
574 2015-07-07 Andrew MacLeod <amacleod@redhat.com>
575
576 * go-backend.c: Adjust includes.
577 * go-gcc.cc: Likewise.
578 * go-lang.c: Likewise.
579
580 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
581
582 * go-gcc.cc: Remove ipa-ref.h and plugin-api.h from include list.
583
584 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
585
586 * go-backend.c: Do not include input.h, line-map.h or is-a.h.
587 * go-gcc.cc: Likewise.
588 * go-lang.c: Likewise.
589 * go-system.h: Likewise.
590
591 2015-06-08 Andrew MacLeod <amacleod@redhat.com>
592
593 * go-backend.c : Adjust include files.
594 * go-gcc.cc : Likewise.
595 * go-lang.c : Likewise.
596
597 2015-06-05 Aldy Hernandez <aldyh@redhat.com>
598
599 * go-gcc.cc (write_global_definitions): Remove call to
600 finalize_compilation_unit.
601 Remove Go specific debug generation.
602 * go-lang.c (go_langhook_parse_file): Call go_write_globals.
603 (go_langhook_write_globals): Remove.
604 Remove LANG_HOOKS_WRITE_GLOBALS everywhere.
605
606 2015-06-04 Andrew MacLeod <amacleod@redhat.com>
607
608 * go-backend.c: Adjust includes for restructured coretypes.h.
609 * go-c.h: Likewise.
610 * go-gcc.cc: Likewise.
611 * go-lang.c: Likewise.
612
613 2015-04-30 Chris Manghane <cmang@google.com>
614
615 * go-gcc.cc (Gcc_backend::stack_allocation_expression): New
616 method.
617
618 2015-04-27 Jim Wilson <jim.wilson@linaro.org>
619
620 * Make-lang.in (go.mostlyclean): Remove gccgo, gccgo-cross, and go1.
621
622 2015-04-17 Chris Manghane <cmang@google.com>
623
624 * Make-lang.in (GO_OBJS): Add go/escape.o.
625
626 2015-02-02 Ian Lance Taylor <iant@google.com>
627
628 PR go/64836
629 PR go/64838
630 * go-gcc.cc (Gcc_backend::type_size): Change return type to
631 int64_t.
632 (Gcc_backend::type_alignment): Likewise.
633 (Gcc_backend::type_field_alignment): Likewise.
634 (Gcc_backend::type_field_offset): Likewise.
635 (Gcc_backend::implicit_variable): Change alignment parameter type
636 to int64_t.
637
638 2015-01-23 Ian Lance Taylor <iant@google.com>
639
640 PR go/63565
641 * gccgo.texi (Invoking gccgo): Mention that Go programs should not
642 be stripped.
643
644 * gccgo.texi (C Interoperability): Mention that people should use
645 cgo.
646
647 2015-01-23 Ian Lance Taylor <iant@google.com>
648
649 PR go/64595
650 * go-lang.c (go_langhook_init_options_struct): Set default
651 debug_info_level.
652 (go_langhook_post_options): If debug_info_level is still the
653 default, make sure write_symbols is set.
654 * gccgo.texi (Invoking gccgo): Document that -g1 is the default.
655
656 2015-01-16 Richard Henderson <rth@redhat.com>
657
658 * go-gcc.cc (Gcc_backend::call_expression): Add chain_expr argument.
659 (Gcc_backend::static_chain_variable): New method.
660
661 2015-01-09 Ian Lance Taylor <iant@google.com>
662
663 * config-lang.in (lang_dirs): Define.
664
665 2015-01-09 Michael Collison <michael.collison@linaro.org>
666
667 * go-gcc.cc: Include hash-set.h, machmode.h, vec.h, double-int.h,
668 input.h, alias.h, symtab.h, options.h, fold-const.h,
669 wide-int.h, and inchash.h due to flattening of tree.h.
670 * go-lang.c: Ditto.
671 * go-backend.c: Ditto.
672
673 2015-01-07 Chris Manghane <cmang@google.com>
674
675 PR go/61204
676 * go-gcc.cc (Gcc_backend::temporary_variable): Don't initialize
677 zero-sized variable.
678
679 2015-01-06 Chris Manghane <cmang@google.com>
680
681 * go-gcc.cc (Gcc_backend::constructor_expression): Don't
682 initialize zero-sized fields, just evaluate the values for side
683 effects.
684
685 2015-01-05 Jakub Jelinek <jakub@redhat.com>
686
687 Update copyright years.
688
689 * gccgo.texi: Bump @copyrights-go year.
690
691 2014-12-19 Chris Manghane <cmang@google.com>
692
693 * go-gcc.cc (Gcc_backend::array_constructor_expression): Don't
694 construct arrays of zero-sized values.
695
696 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
697
698 * go-lang.c: Remove redundant enum from machine_mode.
699
700 2014-10-28 Andrew MacLeod <amacleod@redhat.com>
701
702 * go-gcc.cc: Adjust include files.
703
704 2014-10-27 Andrew MacLeod <amacleod@redhat.com>
705
706 * go-gcc.cc: Adjust include files.
707 * go-lang.c: Ditto.
708
709 2014-10-23 Ian Lance Taylor <iant@google.com>
710
711 * go-gcc.cc (Gcc_backend::complex_constant_expression): Take one
712 mpc_t parameter instead of two mpfr_t parameters.
713
714 2014-09-15 Jakub Jelinek <jakub@redhat.com>
715
716 * Make-lang.in (check_go_parallelize): Change to just an upper bound
717 number.
718
719 2014-09-03 Chris Manghane <cmang@google.com>
720
721 * go-gcc.cc (Gcc_backend::implicit_variable): Remove init
722 parameter. Add is_hidden parameter.
723 (Gcc_backend::implicit_variable_set_init): New method.
724 (Gcc_backend::implicit_variable_reference): New method.
725
726 2014-08-08 Ian Lance Taylor <iant@google.com>
727
728 * go-gcc.cc (Gcc_backend::compound_statement): Don't return
729 NULL_TREE.
730
731 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
732
733 * go-gcc.cc (Gcc_backend::global_variable_set_init): Rename
734 symtab_get_node to symtab_node::get.
735
736 2014-06-13 Ian Lance Taylor <iant@google.com>
737
738 PR go/61496
739 * gospec.c (lang_specific_driver): On Solaris, when not using GNU
740 ld, add -t option to avoid warning about common symbol changing
741 size.
742
743 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
744
745 * go-gcc.cc (Gcc_backend::global_variable_set_init): Use
746 symtab_get_node(var_decl)->implicit_section.
747
748 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
749
750 * go-gcc.cc (global_variable_set_init): Use
751 set_decl_section_name.
752
753 2014-06-04 Ian Lance Taylor <iant@google.com>
754
755 * go-gcc.cc (Gcc_backend::implicit_variable): Add is_common and
756 alignment parameters. Permit init parameter to be NULL.
757
758 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
759
760 * go-gcc.cc: Include builtins.h.
761
762 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
763
764 * go-lang.c (struct GTY): Don't use variable_size gty attribute.
765
766 2014-05-06 Chris Manghane <cmang@google.com>
767
768 * go-gcc.cc (Gcc_backend::nil_pointer_expression): New method.
769 (Gcc_backend::boolean_constant_expression): New method.
770 (Gcc_backend::zero_expression): Use this->make_expression rather
771 than tree_to_expr.
772 (Gcc_backend::var_expression): Likewise.
773 (Gcc_backend::integer_constant_expression): Likewise.
774 (Gcc_backend::float_constant_expression): Likewise.
775 (Gcc_backend::complex_constant_expression): Likewise.
776 (Gcc_backend::struct_field_expression): Likewise.
777 (tree_to_type, tree_to_expr, tree_to_stat): Remove functions.
778 (tree_to_function, tree_to_block): Remove functions.
779 (type_to_tree, expr_to_tree, stat_to_tree): Remove functions.
780 (block_to_tree, var_to_tree, function_to_tree): Remove functions.
781
782 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
783 Mike Stump <mikestump@comcast.net>
784 Richard Sandiford <rdsandiford@googlemail.com>
785
786 * go-gcc.cc (Gcc_backend::type_size): Use tree_fits_uhwi_p.
787
788 2014-05-06 Chris Manghane <cmang@google.com>
789
790 * go-c.h (go_create_gogo): Update declaration to add
791 check_divide_zero and check_divide_overflow parameters.
792 * go-lang.c (go_langhook_init): Pass new arguments to
793 go_create_gogo.
794
795 2014-05-05 Chris Manghane <cmang@google.com>
796
797 * go-gcc.cc (Gcc_backend::implicit_variable): Rename from
798 gc_root_variable. Add name and is_constant parameters.
799
800 2014-05-05 Chris Manghane <cmang@google.com>
801
802 * go-gcc.cc (Gcc_backend::indirect_expression): Add btype
803 parameter.
804 (Gcc_backend::temporary_variable): Check for erroneous function.
805
806 2014-04-30 Chris Manghane <cmang@google.com>
807
808 * go-backend.c: #include "diagnostics.h".
809 (saw_errors): New function.
810 * go-c.h (saw_errors): Declare.
811 * Make-lang.in (GO_OBJS): Remove go/gogo-tree.o.
812
813 2014-04-30 Chris Manghane <cmang@google.com>
814
815 * go-lang.c (go_langhook_type_for_size): Do it here, rather than
816 calling into Go frontend.
817 (go_langhook_type_for_mode): Likewise.
818 * go-c.h (go_type_for_size, go_type_for_mode): Don't declare.
819
820 2014-04-30 Chris Manghane <cmang@google.com>
821
822 * go-gcc.cc: #include "langhooks.h".
823 (Gcc_backend::Gcc_backend): Add constructor.
824 (Gcc_backend::lookup_function): New function.
825 (Gcc_backend::define_builtin): New private function.
826 (Gcc_backend::gcc_backend): Remove.
827 (go_get_backend): Use new to create new Gcc_backend.
828
829 2014-04-25 Chris Manghane <cmang@google.com>
830
831 * go-gcc.cc: Include "cgraph.h" and "gimplify.h".
832 (Gcc_backend::return_statement): Push and pop function.
833 (Gcc_backend::label): Likewise.
834 (Gcc_backend::function_defer_statement): Likewise.
835 (Gcc_backend::switch_statement): Add function parameter.
836 (Gcc_backend::block): Don't permit function to be NULL.
837 (Gcc_backend::temporary_variable): Change go_assert to
838 gcc_assert.
839 (Gcc_backend::gc_root_variable): New function.
840 (Gcc_backend::write_global_definitions): New function.
841
842 2014-04-22 Chris Manghane <cmang@google.com>
843
844 * go-gcc.cc (Gcc_backend::temporary_variable): Push cfun around
845 call to create_tmp_var. Require that function be non-NULL.
846
847 2014-04-17 Chris Manghane <cmang@google.com>
848
849 * go-gcc.cc (Gcc_backend::named_constant_expression): New
850 function.
851
852 2014-04-14 Chris Manghane <cmang@google.com>
853
854 * go-gcc.cc: Include "convert.h".
855 (Gcc_backend::string_constant_expression): New function.
856 (Gcc_backend::real_part_expression): Likewise.
857 (Gcc_backend::imag_part_expression): Likewise.
858 (Gcc_backend::complex_expression): Likewise.
859 (Gcc_backend::constructor_expression): Likewise.
860 (Gcc_backend::array_constructor_expression): Likewise.
861 (Gcc_backend::pointer_offset_expression): Likewise.
862 (Gcc_backend::array_index_expression): Likewise.
863 (Gcc_backend::call_expression): Likewise.
864 (Gcc_backend::exception_handler_statement): Likewise.
865 (Gcc_backend::function_defer_statement): Likewise.
866 (Gcc_backend::function_set_parameters): Likewise.
867 (Gcc_backend::function_set_body): Likewise.
868 (Gcc_backend::convert_expression): Handle various type
869 conversions.
870
871 2014-03-03 Ian Lance Taylor <iant@google.com>
872
873 * go-gcc.cc (Gcc_backend::immutable_struct): If IS_COMMON, set
874 DECL_WEAK.
875 (GCC_backend::immutable_struct_set_init): If IS_COMMON, clear
876 DECL_WEAK.
877
878 2014-01-24 Chris Manghane <cmang@google.com>
879
880 * go-gcc.cc (Gcc_backend::unary_expression): New function.
881
882 2014-01-16 Chris Manghane <cmang@google.com>
883
884 * go-gcc.cc (Gcc_backend::conditional_expression): Add btype
885 parameter.
886 (operator_to_tree_code): New static function.
887 (Gcc_backend::binary_expression): New function.
888
889 2014-01-14 Chris Manghane <cmang@google.com>
890
891 * go-gcc.cc (Gcc_backend::compound_expression): New function.
892 (Gcc_backend::conditional_expression): New function.
893
894 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
895
896 Update copyright years
897
898 2014-01-02 Tobias Burnus <burnus@net-b.de>
899
900 * gccgo.texi: Bump @copying's copyright year.
901
902 2013-12-16 Chris Manghane <cmang@google.com>
903
904 * go-gcc.cc (Gcc_backend::struct_field_expression): New function.
905
906 2013-12-11 Ian Lance Taylor <iant@google.com>
907
908 * go-lang.c (go_langhook_post_options): Disable sibling calls by
909 default.
910
911 2013-12-10 Ian Lance Taylor <iant@google.com>
912
913 * Make-lang.in (check_go_parallelize): Test go-test.exp r* tests
914 separately.
915
916 2013-12-05 Ian Lance Taylor <iant@google.com>
917
918 Revert this change; no longer required.
919 2013-11-06 Ian Lance Taylor <iant@google.com>
920
921 * go-lang.c (go_langhook_post_options): If
922 -fisolate-erroneous-paths was turned on by an optimization option,
923 turn it off.
924
925 2013-11-23 Ian Lance Taylor <iant@google.com>
926
927 * go-gcc.cc (Gcc_backend::function_type): Add result_struct
928 parameter.
929
930 2013-11-22 Andrew MacLeod <amacleod@redhat.com>
931
932 * go-gcc.cc: Add required include files from gimple.h.
933 * go-lang.c: Likewise
934
935 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
936
937 * gofrontend/expressions.cc: Replace tree_low_cst (..., 0) with
938 tree_to_shwi throughout.
939
940 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
941
942 * gofrontend/expressions.cc: Replace host_integerp (..., 0) with
943 tree_fits_shwi_p throughout.
944
945 2013-11-14 Andrew MacLeod <amacleod@redhat.com>
946
947 * go-lang.c: Include only gimplify.h and gimple.h as needed.
948
949 2013-11-14 Diego Novillo <dnovillo@google.com>
950
951 * go-backend.c: Include stor-layout.h.
952 * go-gcc.cc: Include stringpool.h.
953 Include stor-layout.h.
954 Include varasm.h.
955 * go-lang.c: Include stor-layout.h.
956
957 2013-11-12 Andrew MacLeod <amacleod@redhat.com>
958
959 * go-lang.c: Include gimplify.h.
960
961 2013-11-06 Ian Lance Taylor <iant@google.com>
962
963 * go-lang.c (go_langhook_post_options): If
964 -fisolate-erroneous-paths was turned on by an optimization option,
965 turn it off.
966
967 2013-10-14 Chris Manghane <cmang@google.com>
968
969 * go-gcc.cc (Gcc_backend::address_expression): New function.
970
971 2013-10-11 Chris Manghane <cmang@google.com>
972
973 * go-gcc.cc (Gcc_backend::function_code_expression): New
974 function.
975
976 2013-10-10 Chris Manghane <cmang@google.com>
977
978 * go-gcc.cc (Gcc_backend::error_function): New function.
979 (Gcc_backend::function): New function.
980 (Gcc_backend::make_function): New function.
981 (function_to_tree): New function.
982
983 2013-10-04 Chris Manghane <cmang@google.com>
984
985 * go-gcc.cc (Gcc_backend::convert_expression): New function.
986
987 2013-10-02 Chris Manghane <cmang@google.com>
988
989 * go-gcc.cc: Include "real.h" and "realmpfr.h".
990 (Gcc_backend::integer_constant_expression): New function.
991 (Gcc_backend::float_constant_expression): New function.
992 (Gcc_backend::complex_constant_expression): New function.
993
994 2013-09-30 Chris Manghane <cmang@google.com>
995
996 * go-gcc.cc (Gcc_backend::error_expression): New function.
997 (Gcc_backend::var_expression): New function.
998 (Gcc_backend::indirect_expression): New function.
999
1000 2013-09-25 Tom Tromey <tromey@redhat.com>
1001
1002 * Make-lang.in (gospec.o): Remove.
1003 (CFLAGS-go/gospec.o): New variable.
1004 (GCCGO_OBJS): Update to use go/gospec.o.
1005 (go_OBJS): Define.
1006 (GO_SYSTEM_H, GO_C_H, GO_LINEMAP_H, GO_LEX_H, GO_PARSE_H)
1007 (GO_GOGO_H, GO_TYPES_H, GO_STATEMENTS_H, GO_EXPRESSIONS_H)
1008 (GO_EXPORT_H, GO_IMPORT_H, GO_RUNTIME_H, GO_AST_DUMP_H)
1009 (go/go-backend.o, go/go-lang.o, go/go-gcc.o, go/go-linemap.o)
1010 (go/ast-dump.o, go/dataflow.o, go/export.o, go/expressions.o)
1011 (go/go.o, go/go-dump.o, go/go-optimize.o, go/gogo-tree.o)
1012 (go/gogo.o, go/import.o, go/import-archive.o, go/lex.o)
1013 (go/parse.o, go/runtime.o, go/statements.o, go/types.o)
1014 (go/unsafe.o): Remove.
1015 (CFLAGS-go/go-gcc.o, CFLAGS-go/go-linemap.o): New variables.
1016 (go/%.o: go/gofrontend/%.cc): Use COMPILE and POSTCOMPILE.
1017
1018 2013-09-25 Tom Tromey <tromey@redhat.com>
1019
1020 * Make-lang.in (gospec.o): Don't use subshell.
1021
1022 2013-08-28 Ian Lance Taylor <iant@google.com>
1023
1024 * go-gcc.cc (Gcc_backend::immutable_struct): Set TREE_PUBLIC if
1025 the struct is not hidden.
1026 (Gcc_backend::immutable_struct_set_init): Don't set TREE_PUBLIC.
1027
1028 2013-08-06 Ian Lance Taylor <iant@google.com>
1029
1030 * go-gcc.cc (Gcc_backend::immutable_struct_set_init): Use
1031 compute_reloc_for_constant.
1032
1033 2013-08-02 Ian Lance Taylor <iant@google.com>
1034
1035 * go-gcc.cc (immutable_struct_set_init): Always call
1036 resolve_unique_section.
1037
1038 2013-07-24 Ian Lance Taylor <iant@google.com>
1039
1040 * go-gcc.cc (Gcc_backend::non_zero_size_type): If a struct has a
1041 fields, recreate those fields with the first one with a non-zero
1042 size.
1043
1044 2013-07-23 Ian Lance Taylor <iant@google.com>
1045
1046 * go-backend.c: Don't #include "rtl.h".
1047 (go_imported_unsafe): Don't call init_varasm_once.
1048 * Make-lang.in (go/go-backend.o): Don't depend on $(RTL_H).
1049
1050 2013-07-23 Ian Lance Taylor <iant@google.com>
1051
1052 * go-lang.c: Don't #include "except.h".
1053 * Make-lang.in (go/go-lang.o): Don't depend on $(EXCEPT_H).
1054
1055 2013-06-18 Ian Lance Taylor <iant@google.com>
1056
1057 * go-gcc.cc (Gcc_backend::immutable_struct): Add is_hidden
1058 parameter.
1059 (Gcc_backend::immutable_struct_set_init): Likewise.
1060
1061 2013-05-16 Jason Merrill <jason@redhat.com>
1062
1063 * Make-lang.in (go1$(exeext)): Use link mutex.
1064
1065 2013-01-16 Shenghou Ma <minux.ma@gmail.com>
1066
1067 * gospec.c: pass -u pthread_create to linker when static linking.
1068
1069 2012-12-21 Ian Lance Taylor <iant@google.com>
1070
1071 PR bootstrap/54659
1072 * go-system.h: Don't include <cstdio>.
1073
1074 2012-12-18 Ian Lance Taylor <iant@google.com>
1075
1076 PR go/55201
1077 * gospec.c: Revert last patch.
1078
1079 2012-12-18 Andreas Schwab <schwab@linux-m68k.org>
1080
1081 PR go/55201
1082 * gospec.c (LIBATOMIC): Define.
1083 (LIBATOMIC_PROFILE): Define.
1084 (lang_specific_driver): Add LIBATOMIC[_PROFILE] option.
1085
1086 2012-11-29 Ian Lance Taylor <iant@google.com>
1087
1088 * go-gcc.cc: Include "output.h".
1089 (global_variable): Add is_unique_section parameter.
1090 (global_variable_set_init): Adjust unique section if necessary.
1091 * Make-lang.in (go/go-gcc.o): Add dependency on output.h.
1092
1093 2012-11-17 Diego Novillo <dnovillo@google.com>
1094
1095 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
1096
1097 * go-lang.c: Use new vec API in vec.h.
1098
1099 2012-11-16 Ian Lance Taylor <iant@google.com>
1100
1101 * Make-lang.in (gccgo$(exeext)): Add + at start of command.
1102 (go1$(exeext)): Likewise.
1103
1104 2012-10-30 Ian Lance Taylor <iant@google.com>
1105
1106 * lang.opt (-fgo-relative-import-path): New option.
1107 * go-lang.c (go_relative_import_path): New static variable.
1108 (go_langhook_init): Pass go_relative_import_path to
1109 go_create_gogo.
1110 (go_langhook_handle_option): Handle -fgo-relative-import-path.
1111 * go-c.h (go_create_gogo): Update declaration.
1112 * gccgo.texi (Invoking gccgo): Document
1113 -fgo-relative-import-path.
1114
1115 2012-09-17 Ian Lance Taylor <iant@google.com>
1116
1117 * config-lang.in (target_libs): Add target-libbacktrace.
1118
1119 2012-09-16 Ian Lance Taylor <iant@google.com>
1120
1121 * Make-lang.in (go/gogo.o): Depend on filenames.h.
1122
1123 2012-08-14 Diego Novillo <dnovillo@google.com>
1124
1125 Merge from cxx-conversion branch. Configury.
1126
1127 * go-c.h: Remove all handlers of ENABLE_BUILD_WITH_CXX.
1128 * go-gcc.cc: Likewise.
1129 * go-system.h: Likewise.
1130
1131 2012-07-24 Uros Bizjak <ubizjak@gmail.com>
1132
1133 * go-lang.c (lang_decl): Add variable_size GTY option.
1134
1135 2012-05-09 Ian Lance Taylor <iant@google.com>
1136
1137 * lang.opt: Add -fgo-pkgpath.
1138 * go-lang.c (go_pkgpath): New static variable.
1139 (go_prefix): New static variable.
1140 (go_langhook_init): Pass go_pkgpath and go_prefix to
1141 go_create_gogo.
1142 (go_langhook_handle_option): Handle -fgo-pkgpath. Change
1143 -fgo-prefix handling to just set go_prefix.
1144 * go-c.h (go_set_prefix): Don't declare.
1145 (go_create_gogo): Add pkgpath and prefix to declaration.
1146 * go-gcc.cc (Gcc_backend::global_variable): Change unique_prefix
1147 to pkgpath. Don't include the package name in the asm name.
1148 * gccgo.texi (Invoking gccgo): Document -fgo-pkgpath. Update the
1149 docs for -fgo-prefix.
1150
1151 2012-04-23 Ian Lance Taylor <iant@google.com>
1152
1153 * go-lang.c (go_langhook_init): Set MPFR precision to 256.
1154
1155 2012-04-20 Ian Lance Taylor <iant@google.com>
1156
1157 * lang.opt: Add -fgo-check-divide-zero and
1158 -fgo-check-divide-overflow.
1159 * gccgo.texi (Invoking gccgo): Document new options.
1160
1161 2012-04-18 Steven Bosscher <steven@gcc.gnu.org>
1162
1163 * go-gcc.cc (Gcc_backend::switch_statement): Build SWITCH_EXPR
1164 with NULL_TREE type instead of void_type_node.
1165
1166 2012-03-09 Ian Lance Taylor <iant@google.com>
1167
1168 * go-gcc.cc (Gcc_backend::assignment_statement): Convert the rhs
1169 to the lhs type if necessary.
1170
1171 2012-03-08 Ian Lance Taylor <iant@google.com>
1172
1173 * go-gcc.cc (Gcc_backend::init_statement): Don't initialize a
1174 zero-sized variable.
1175 (go_non_zero_struct): New global variable.
1176 (Gcc_backend::non_zero_size_type): New function.
1177 (Gcc_backend::global_variable): Don't build an assignment for a
1178 zero-sized value.
1179 * go-c.h (go_non_zero_struct): Declare.
1180 * config-lang.in (gtfiles): Add go-c.h.
1181
1182 2012-02-29 Ian Lance Taylor <iant@google.com>
1183
1184 * go-gcc.cc (class Gcc_tree): Add set_tree method.
1185 (set_placeholder_pointer_type): When setting to a pointer to
1186 error, set to error_mark_node.
1187
1188 2012-02-23 Richard Guenther <rguenther@suse.de>
1189
1190 * go-gcc.cc (Gcc_backend::placeholder_pointer_type): Use
1191 build_distinct_type_copy.
1192
1193 2012-02-17 Ian Lance Taylor <iant@google.com>
1194
1195 * Make-lang.in (go/import.o): Add dependency on $(GO_LEX_H).
1196
1197 2012-02-17 Ian Lance Taylor <iant@google.com>
1198
1199 * gospec.c (lang_specific_driver): If linking, and no -o option
1200 was used, add one.
1201
1202 2012-02-14 Ian Lance Taylor <iant@google.com>
1203
1204 PR go/48411
1205 * Make-lang.in (gccgo-cross$(exeext)): New target.
1206 (go.all.cross): Depend on gccgo-cross$(exeext) instead of
1207 gccgo$(exeext).
1208 (go.install-common): Only install GCCGO_TARGET_INSTALL_NAME if
1209 gccgo-cross$(exeext) does not exist.
1210
1211 2012-02-07 Ian Lance Taylor <iant@google.com>
1212
1213 * gccgo.texi (Function Names): Document //extern instead of
1214 __asm__.
1215
1216 2012-02-01 Jakub Jelinek <jakub@redhat.com>
1217
1218 PR target/52079
1219 * go-lang.c (go_langhook_type_for_mode): For TImode and 64-bit HWI
1220 return build_nonstandard_integer_type result if possible.
1221
1222 2012-01-21 Ian Lance Taylor <iant@google.com>
1223
1224 * go-gcc.cc (Gcc_backend::type_size): Check for error_mark_node.
1225 (Gcc_backend::type_alignment): Likewise.
1226 (Gcc_backend::type_field_alignment): Likewise.
1227 (Gcc_backend::type_field_offset): Likewise.
1228
1229 2012-01-20 Ian Lance Taylor <iant@google.com>
1230
1231 * go-gcc.cc (Gcc_backend::placeholder_struct_type): Permit name to
1232 be empty.
1233 (Gcc_backend::set_placeholder_struct_type): Likewise.
1234
1235 2012-01-17 Ian Lance Taylor <iant@google.com>
1236
1237 * gospec.c (lang_specific_driver): If we see -S without -o, add -o
1238 BASE.s rather than -o BASE.o.
1239
1240 2012-01-11 Ian Lance Taylor <iant@google.com>
1241
1242 * go-lang.c (go_langhook_init): Initialize void_list_node before
1243 calling go_create_gogo.
1244
1245 2012-01-10 Ian Lance Taylor <iant@google.com>
1246
1247 * go-gcc.cc (Gcc_backend::type_size): New function.
1248 (Gcc_backend::type_alignment): New function.
1249 (Gcc_backend::type_field_alignment): New function.
1250 (Gcc_backend::type_field_offset): New function.
1251 * go-backend.c (go_type_alignment): Remove.
1252 * go-c.h (go_type_alignment): Don't declare.
1253
1254 2011-12-27 Ian Lance Taylor <iant@google.com>
1255
1256 * go-gcc.cc (Gcc_backend::set_placeholder_struct_type): Use
1257 build_distinct_type_copy rather than build_variant_type_copy.
1258 (Gcc_backend::set_placeholder_array_type): Likewise.
1259 (Gcc_backend::named_type): Add special handling for builtin
1260 basic types.
1261
1262 2011-12-22 Ian Lance Taylor <iant@google.com>
1263
1264 * go-gcc.cc (Gcc_backend::set_placeholder_pointer_type): Arrange
1265 for the type name to have a DECL_ORIGINAL_TYPE as gcc expects.
1266 (Gcc_backend::set_placeholder_struct_type): Likewise.
1267 (Gcc_backend::set_placeholder_array_type): Likewise.
1268 (Gcc_backend::named_type): Set DECL_ORIGINAL_TYPE.
1269
1270 2011-12-13 Ian Lance Taylor <iant@google.com>
1271
1272 * go-backend.c: #include "simple-object.h" and "intl.h".
1273 (GO_EXPORT_SEGMENT_NAME): Define if not defined.
1274 (GO_EXPORT_SECTION_NAME): Likewise.
1275 (go_write_export_data): Use GO_EXPORT_SECTION_NAME.
1276 (go_read_export_data): New function.
1277 * go-c.h (go_read_export_data): Declare.
1278
1279 2011-11-29 Sanjoy Das <thedigitalangel@gmail.com>
1280 Ian Lance Taylor <iant@google.com>
1281
1282 * go-location.h: New file.
1283 * go-linemap.cc: New file.
1284 * go-gcc.cc: Change all uses of source_location to Location.
1285 * Make-lang.in (GO_OBJS): Add go/go-linemap.o.
1286 (GO_LINEMAP_H): New variable.
1287 (GO_LEX_H): Use $(GO_LINEMAP_H).
1288 (GO_GOGO_H, GO_TYPES_H, GO_IMPORT_H): Likewise.
1289 (go/go-linemap.o): New target.
1290
1291 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1292
1293 * Make-lang.in (gospec.o): Pass SHLIB instead of SHLIB_LINK.
1294
1295 2011-08-24 Roberto Lublinerman <rluble@gmail.com>
1296
1297 * lang.opt: Add fgo-optimize-.
1298 * go-lang.c (go_langhook_handle_option): Handle OPT_fgo_optimize.
1299 * go-c.h (go_enable_optimize): Declare.
1300 * Make-lang.in (GO_OBJS): Add go/go-optimize.o.
1301 (GO_EXPORT_H): Define.
1302 (GO_IMPORT_H): Add $(GO_EXPORT_H).
1303 (GO_AST_DUMP_H): Define.
1304 (go/ast-dump.o, go/statements.o): Use GO_AST_DUMP_H.
1305 (go/export.o, go/gogo.o, go/import.o): Use GO_EXPORT_H.
1306 (go/types.o): Likewise.
1307 (go/expressions.o): Use GO_AST_DUMP_H and GO_EXPORT_H.
1308 (go/go-optimize.o): New target.
1309
1310 2011-08-24 Joseph Myers <joseph@codesourcery.com>
1311
1312 * Make-lang.in (CFLAGS-go/go-lang.o): New.
1313 (go/go-lang.o): Remove explicit compilation rule.
1314
1315 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1316
1317 * Make-lang.in (gccgo$(exeext)): Add $(EXTRA_GCC_LIBS).
1318
1319 2011-08-02 Roberto Lublinerman <rluble@gmail.com>
1320
1321 * Make-lang.in (GO_OBJS): Add go/ast-dump.o.
1322 (go/ast-dump.o): New target.
1323 (go/expressions.o): Depend on go/gofrontend/ast-dump.h.
1324 (go/statements.o): Likewise.
1325
1326 2011-07-06 Richard Guenther <rguenther@suse.de>
1327
1328 * go-lang.c (go_langhook_init):
1329 Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
1330
1331 2011-06-14 Joseph Myers <joseph@codesourcery.com>
1332
1333 * Make-lang.in (go/go-lang.o, go/go-backend.o): Update
1334 dependencies.
1335 * go-backend.c: Include common/common-target.h.
1336 (go_write_export_data): Use targetm_common.have_named_sections.
1337 * go-lang.c: Include common/common-target.h.
1338 (go_langhook_init_options_struct): Use
1339 targetm_common.supports_split_stack.
1340
1341 2011-06-13 Ian Lance Taylor <iant@google.com>
1342
1343 * Make-lang.in (go/expressions.o): Depend on $(GO_RUNTIME_H).
1344
1345 2011-06-10 Ian Lance Taylor <iant@google.com>
1346
1347 * go-gcc.cc: Include "toplev.h".
1348 (Gcc_backend::immutable_struct): New function.
1349 (Gcc_backend::immutable_struct_set_init): New function.
1350 (Gcc_backend::immutable_struct_reference): New function.
1351 * Make-lang.in (go/go-gcc.o): Depend on toplev.h.
1352
1353 2011-06-09 Ian Lance Taylor <iant@google.com>
1354
1355 * go-gcc.cc (Gcc_backend::zero_expression): New function.
1356
1357 2011-06-07 Richard Guenther <rguenther@suse.de>
1358
1359 * go-lang.c (go_langhook_init): Do not set
1360 size_type_node or call set_sizetype.
1361
1362 2011-05-27 Ian Lance Taylor <iant@google.com>
1363
1364 * go-backend.c: Include "output.h".
1365 (go_write_export_data): New function.
1366 * go-c.h (go_write_export_data): Declare.
1367 * Make-lang.in (go/go-backend.o): Depend on output.h.
1368 (go/export.o): Depend on $(GO_C_H). Do not depend on
1369 $(MACHMODE_H), output.h, or $(TARGET_H).
1370
1371 2011-05-24 Joseph Myers <joseph@codesourcery.com>
1372
1373 * Make-lang.in (GCCGO_OBJS): Remove prefix.o.
1374 (gccgo$(exeext)): Use libcommon-target.a.
1375
1376 2011-05-20 Joseph Myers <joseph@codesourcery.com>
1377
1378 * Make-lang.in (GCCGO_OBJS): Remove intl.o and version.o.
1379
1380 2011-05-13 Ian Lance Taylor <iant@google.com>
1381
1382 * go-gcc.cc (Gcc_backend::function_type): When building a struct
1383 for multiple results, check that all fields types have a size.
1384 (Gcc_backend::placeholder_pointer_type): Permit name to be empty.
1385
1386 2011-05-12 Ian Lance Taylor <iant@google.com>
1387
1388 * go-gcc.cc (Gcc_backend::local_variable): Add is_address_taken
1389 parameter.
1390 (Gcc_backend::parameter_variable): Likewise.
1391
1392 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
1393
1394 * go-lang.c (global_bindings_p): Return bool and simplify.
1395
1396 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
1397
1398 * go-gcc.cc (Gcc_backend::switch_statement): Call build_case_label.
1399
1400 2011-05-04 Ian Lance Taylor <iant@google.com>
1401
1402 * go-gcc.cc (Gcc_backend::struct_type): Call fill_in_struct.
1403 (Gcc_backend::fill_in_struct): New function.
1404 (Gcc_backend::array_type): Implement.
1405 (Gcc_backend::fill_in_array): New function.
1406 (Gcc_backend::placeholder_pointer_type): New function.
1407 (Gcc_backend::set_placeholder_pointer_type): New function.
1408 (Gcc_backend::set_placeholder_function_type): New function.
1409 (Gcc_backend::placeholder_struct_type): New function.
1410 (Gcc_backend::set_placeholder_struct_type): New function.
1411 (Gcc_backend::placeholder_array_type): New function.
1412 (Gcc_backend::set_placeholder_array_type): New function.
1413 (Gcc_backend::named_type): New function.
1414 (Gcc_backend::circular_pointer_type): New function.
1415 (Gcc_backend::is_circular_pointer_type): New function.
1416
1417 2011-04-26 Ian Lance Taylor <iant@google.com>
1418
1419 * go-gcc.cc (Gcc_backend::struct_type): Implement.
1420
1421 2011-04-25 Ian Lance Taylor <iant@google.com>
1422
1423 * go-gcc.cc (Gcc_backend::error_type): Implement.
1424 (Gcc_backend::string_type): Remove.
1425 (Gcc_backend::function_type): Change signature and implement.
1426 (Gcc_backend::struct_type): Change signature.
1427 (Gcc_backend::slice_type, Gcc_backend::map_type): Remove.
1428 (Gcc_backend::channel_type, Gcc_backend::interface_type): Remove.
1429 (Gcc_backend::pointer_type): Check for error.
1430 * Make-lang.in (go/types.o): Depend on go/gofrontend/backend.h.
1431
1432 2011-04-25 Evan Shaw <edsrzf@gmail.com>
1433
1434 * go-gcc.c (class Gcc_tree): Make get_tree const.
1435 (Gcc_backend::void_type): Implement.
1436 (Gcc_backend::bool_type): Implement.
1437 (Gcc_backend::integer_type): Implement.
1438 (Gcc_backend::float_type): Implement.
1439 (Gcc_backend::complex_type): New function.
1440 (Gcc_backend::pointer_type): New function.
1441 (Gcc_backend::make_type): New function.
1442 (type_to_tree): New function.
1443
1444 2011-04-21 Ian Lance Taylor <iant@google.com>
1445
1446 * go-system.h (go_assert, go_unreachable): Define.
1447
1448 2011-04-19 Ian Lance Taylor <iant@google.com>
1449
1450 * go-system.h: Include "intl.h".
1451 * Make-lang.in (GO_SYSTEM_H): Add intl.h.
1452 (go/statements.o): Remove dependencies on intl.h $(TREE_H)
1453 $(GIMPLE_H) convert.h tree-iterator.h $(TREE_FLOW_H) $(REAL_H).
1454
1455 2011-04-19 Ian Lance Taylor <iant@google.com>
1456
1457 * go-gcc.cc (Gcc_backend::temporary_variable): New function.
1458
1459 2011-04-19 Ian Lance Taylor <iant@google.com>
1460
1461 * go-gcc.cc (class Bblock): Define.
1462 (Gcc_backend::if_statement): Change then_block and else_block to
1463 Bblock*.
1464 (Gcc_backend::block): New function.
1465 (Gcc_backend::block_add_statements): New function.
1466 (Gcc_backend::block_statement): New function.
1467 (tree_to_block, block_to_tree): New functions.
1468
1469 2011-04-18 Ian Lance Taylor <iant@google.com>
1470
1471 * go-gcc.cc: Include "go-c.h".
1472 (class Bvariable): Define.
1473 (Gcc_backend::init_statement): New function.
1474 (Gcc_backend::global_variable): New function.
1475 (Gcc_backend::global_variable_set_init): New function.
1476 (Gcc_backend::local_variable): New function.
1477 (Gcc_backend::parameter_variable): New function.
1478 (tree_to_type, var_to_tree): New functions.
1479 * Make-lang.in (go/go-gcc.o): Depend on $(GO_C_H).
1480 * (go/gogo-tree.o): Depend on go/gofrontend/backend.h.
1481
1482 2011-04-15 Ian Lance Taylor <iant@google.com>
1483
1484 * go-gcc.cc (Gcc_backend::compound_statement): New function.
1485 (Gcc_backend::assignment_statement): Use error_statement.
1486 (Gcc_backend::return_statement): Likewise.
1487 (Gcc_backend::if_statement): Likewise.
1488 (Gcc_backend::switch_statement): Likewise.
1489 (Gcc_backend::statement_list): Likewise.
1490
1491 2011-04-14 Ian Lance Taylor <iant@google.com>
1492
1493 * go-gcc.cc (Gcc_backend::error_statement): New function.
1494
1495 2011-04-13 Ian Lance Taylor <iant@google.com>
1496
1497 * Make-lang.in (go/gogo-tree.o): depend on $(GO_RUNTIME_H).
1498
1499 2011-04-13 Ian Lance Taylor <iant@google.com>
1500
1501 * Make-lang.in (GO_OBJS): Add go/runtime.o.
1502 (GO_RUNTIME_H): New variable.
1503 (go/runtime.o): New target.
1504 (go/gogo.o): Depend on $(GO_RUNTIME_H).
1505 (go/statements.o): Likewise.
1506
1507 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
1508
1509 * go-lang.c (union lang_tree_node): Check for TS_COMMON before
1510 calling TREE_CHAIN.
1511
1512 2011-04-06 Ian Lance Taylor <iant@google.com>
1513
1514 * go-gcc.cc (if_statement): Use build3_loc.
1515 (Gcc_backend::switch_statement): New function.
1516 (Gcc_backend::statement_list): New function.
1517
1518 2011-04-06 Ian Lance Taylor <iant@google.com>
1519
1520 * go-gcc.cc (Gcc_backend::if_statement): New function.
1521 (tree_to_stat): New function.
1522 (expr_to_tree): Renamed from expression_to_tree.
1523 (stat_to_tree): Renamed from statement_to_tree.
1524
1525 2011-04-06 Ian Lance Taylor <iant@google.com>
1526
1527 * go-gcc.cc (Gcc_backend::expression_statement): New function.
1528
1529 2011-04-04 Ian Lance Taylor <iant@google.com>
1530
1531 * go-gcc.c (class Blabel): Define.
1532 (Gcc_backend::make_expression): New function.
1533 (get_identifier_from_string): New function.
1534 (Gcc_backend::label): New function.
1535 (Gcc_backend::label_definition_statement): New function.
1536 (Gcc_backend::goto_statement): New function.
1537 (Gcc_backend::label_address): New function.
1538 (expression_to_tree): New function.
1539 * Make-lang.in (go/expressions.o): Depend on
1540 go/gofrontend/backend.h.
1541 (go/gogo.o): Likewise.
1542
1543 2011-04-04 Ian Lance Taylor <iant@google.com>
1544
1545 * go-gcc.cc: #include "tree-iterator.h", "gimple.h", and "gogo.h".
1546 (class Bfunction): Define.
1547 (Gcc_backend::assignment_statement): Rename from assignment.
1548 Check for errors.
1549 (Gcc_backend::return_statement): New function.
1550 (tree_to_function): New function.
1551 * Make-lang.in (go/go-gcc.o): Depend on tree-iterator.h,
1552 $(GIMPLE_H), and $(GO_GOGO_H).
1553
1554 2011-04-03 Ian Lance Taylor <iant@google.com>
1555
1556 * go-gcc.cc: New file.
1557 * Make-lang.in (GO_OBJS): Add go/go-gcc.o.
1558 (go/go-gcc.o): New target.
1559 (go/go.o): Depend on go/gofrontend/backend.h.
1560 (go/statements.o): Likewise.
1561
1562 2011-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1563
1564 * gccgo.texi (Top, Import and Export): Fix a typo and a markup nit.
1565
1566 2011-02-08 Ian Lance Taylor <iant@google.com>
1567
1568 * go-lang.c (go_langhook_init_options_struct): Set
1569 frontend_set_flag_errno_math. Don't set x_flag_trapping_math.
1570
1571 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1572
1573 * gospec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use
1574 LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
1575
1576 2011-01-21 Ian Lance Taylor <iant@google.com>
1577
1578 * go-lang.c (go_langhook_init): Omit float_type_size when calling
1579 go_create_gogo.
1580 * go-c.h: Update declaration of go_create_gogo.
1581
1582 2011-01-13 Ian Lance Taylor <iant@google.com>
1583
1584 * go-backend.c: Include "rtl.h" and "target.h".
1585 (go_imported_unsafe): New function.
1586 * go-c.h (go_imported_unsafe): Declare.
1587 * Make-lang.in (go/go-backend.o): Depend on $(RTL_H).
1588 (go/gogo-tree.o): Remove dependency on $(RTL_H).
1589 (go/unsafe.o): Depend on $(GO_C_H).
1590
1591 2010-12-31 Joern Rennecke <amylaar@spamcop.net>
1592
1593 PR go/47113
1594 * go-backend.c: (go_field_alignment): Add ATTRIBUTE_UNUSED to
1595 variable ‘field’ .
1596
1597 2010-12-21 Ian Lance Taylor <iant@google.com>
1598
1599 * Make-lang.in (check-go): Remove.
1600 (lang_checks_parallelized): Add check-go.
1601 (check_go_parallelize): Set.
1602
1603 2010-12-13 Ian Lance Taylor <iant@google.com>
1604
1605 * gospec.c (lang_specific_driver): Add a -o option if not linking
1606 and there is no -o option already.
1607
1608 2010-12-07 Ian Lance Taylor <iant@google.com>
1609
1610 PR tree-optimization/46805
1611 PR tree-optimization/46833
1612 * go-lang.c (go_langhook_type_for_mode): Handle vector modes.
1613
1614 2010-12-06 Ian Lance Taylor <iant@google.com>
1615
1616 PR other/46789
1617 PR bootstrap/46812
1618 * go-lang.c (go_char_p): Define type and vectors.
1619 (go_search_dirs): New static variable.
1620 (go_langhook_handle_option): Use version and version/machine
1621 directories for -L.
1622 (go_langhook_post_options): Add non-specific -L paths.
1623 * Make-lang.in (go/go-lang.o): Define DEFAULT_TARGET_VERSION and
1624 DEFAULT_TARGET_MACHINE when compiling.
1625 * gccgo.texi (Invoking gccgo): Only document -L for linking.
1626 (Import and Export): Don't mention -L for finding import files.
1627
1628 2010-12-03 Ian Lance Taylor <iant@google.com>
1629
1630 PR bootstrap/46776
1631 * go-backend.c: New file.
1632 * go-c.h (go_type_alignment): Declare.
1633 (go_field_alignment, go_trampoline_info): Declare.
1634 * Make-lang.in (GO_OBJS): Add go/go-backend.o.
1635 (go/go-backend.o): New target.
1636 (go/go-lang.o): Make dependencies match source file.
1637 (go/expressions.o): Don't depend on $(TM_H) $(TM_P_H).
1638 (go/gogo-tree.o): Don't depend on $(TM_H).
1639
1640 2010-12-03 Ian Lance Taylor <iant@google.com>
1641
1642 * config-lang.in (build_by_default): Set to no.
1643
1644 2010-12-02 Ian Lance Taylor <iant@google.com>
1645
1646 Go frontend added to gcc repository.
1647 \f
1648 Copyright (C) 2010-2019 Free Software Foundation, Inc.
1649
1650 Copying and distribution of this file, with or without modification,
1651 are permitted in any medium without royalty provided the copyright
1652 notice and this notice are preserved.