aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog.MELT
blob: 6f050f920cce1e9b98dc441655767257b79c34ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838

2016-05-15   Basile Starynkevitch  <basile@starynkevitch.net>
	{{unstable, perhaps working only in ASLR}}
	* melt/warmelt-genobj.melt (compilobj_datatuple): Use
	foreach_in_multiple instead of multiple_every.

2016-05-15   Basile Starynkevitch  <basile@starynkevitch.net>
	{{unstable}}
	* melt/generated/*: Regenerated all.

2016-05-15   Basile Starynkevitch  <basile@starynkevitch.net>
	{{very unstable, but buildable with ASLR disabled}}
	* melt-runtime.cc (melt_load_module_index): Temporarily disable
	the set_discriminant_forwarding_routine of modules.
	* melt/warmelt-outobj.melt (translate_macroexpanded_list): Emit a
	melt_discrforwarding_module_data routine.

2016-05-15   Basile Starynkevitch  <basile@starynkevitch.net>
	{{unstable, but buildable with ASLR disabled}}
	* melt-runtime.h (melt_forward_discriminant): New function.
	(Melt_CallProtoFrame::melt_forward_discriminant_of_values): New
	virtual function.
	(Melt_CallFrameWithValues<>::melt_forward_discriminant_of_values):
	New, using melt_forward_discriminant.

	* melt-runtime.cc (Melt_Module::_mm_discforwardrout): New field.
	(Melt_Module::run_forwarding): Use it.
	(Melt_Module::set_discriminant_forwarding_routine): New function
	setting that field.
	(melt_minor_copying_garbage_collector): Run
	melt_forward_discriminant on touched global pointers.
	Run melt_forward_discriminant_of_values on call frames.
	(melt_load_module_index): melt_discrforwarding_module_data is a
	new optional symbol.
	(melt_load_module_index): Call set_discriminant_forwarding_routine
	with melt_discrforwarding_module_data.

2016-05-14   Basile Starynkevitch  <basile@starynkevitch.net>
	{{see http://stackoverflow.com/q/37229005/841108}}
	* melt-runtime.cc (memset, memcpy): Naive implementation when #if
	MELT_HAVE_OWN_STRINGS_FUNCTIONS>0...

2016-05-13   Basile Starynkevitch  <basile@starynkevitch.net>
	{{still very unstable; perhaps crashing only without ASLR}}
	* melt-runtime.h (melt_nb_full_garbcoll, melt_nb_garbcoll):
	Declared as MELT_EXTERN variables.
	(melt_magic_discr): when runtime debugging, the fatal error
	message shows the GC count.

	* melt-runtime.cc (Melt_Plain_Module::Melt_Plain_Module): add a
	melt_debuggc_eprintf.
	(check_pointer_at): Renamed to ...
	(melt_check_pointer_at): ... probably obsolete function.
	(melt_garbcoll): Better debug printing.
	(melt_really_initialize): For runtime debugging purposes, added
	sbrk-reserve program/plugin argument.  Both sbrk-reserve &
	mmap-reserve are Linux specific program/plugin argument.

2016-05-13   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/generated/*: Regenerated all.

2016-05-13   Basile Starynkevitch  <basile@starynkevitch.net>
	{{unstable, might crash with ASLR enabled in stage3}}

	* melt-runtime.cc: Moved the comment about astyle indentation.

	* melt/warmelt-outobj.melt (outpucod_initialmoduleroutine): Emit a
	melt_debuggc_eprintf..

2016-05-13   Basile Starynkevitch  <basile@starynkevitch.net>

	* melt/warmelt-outobj.melt (outpucod_initialmoduleroutine): Don't
	emit dbgprintf but melt_dumprintf & melt_debugeprintf.

2016-05-12   Basile Starynkevitch  <basile@starynkevitch.net>

	* melt/generated/*: Regenerated all.

2016-05-12   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/warmelt-outobj.melt (outpucod_initialmoduleroutine): Emit a
	melt_debugeprintf about the current frame...

2016-05-12   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.h (melt_dumprintf, melt_dumprintf_raw): Renaming ...
	(dbgprintf, dbgprintf_raw): Renamed.
	(dbgprintf): Temporarily redefined for backward compatibility.
	* melt-runtime.cc (melt_marking_callback)
	(meltgc_new_string_tempname_suffixed, melt_dbgread_printf)
	(melt_do_finalize, melt_sparebreakpoint_0_at)
	(melt_sparebreakpoint_1_at, melt_sparebreakpoint_2_at): Replace
	dbgprintf with melt_dumprintf..


2016-05-12   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.h (melt_cbreak_at): Always declared, even
	without MELT_HAVE_DEBUG.

	* melt-runtime.cc (Melt_CallProtoFrame::_dbgcall_file_)
	(Melt_CallProtoFrame::_dbgcall_count_, melt_cbreak_at): Always
	defined.

2016-05-12   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.h (debugeprintf_raw, debugeprintf)
	(debugeprintflinenonl, debugeprintfline, debugeprintfnonl)
	(debugeprintvalue, debugebacktrace, debugeputs, debugvalue)
	(debugmsgval, debugbacktrace, debugnum): Remove these macros. We
	now use their melt_debugeprintf counterparts everywhere.

	* melt-runtime.cc (MELT_DEFAULT_PERIODFULL): Increase value
	to 4096, to lower GC frequency.

2016-05-12   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/libmelt-ana-base.melt (install_melt_pass_in_gcc)
	(each_cgraph_fun_call_flow_graph): Use melt_debugeprintf...

	* melt/libmelt-ana-tree.melt (melt_register_pragmas_callback)
	(melt_pragma_process_callback, real_pragma_processor)
	(finalanatree_chk): Ditto.

	* melt/xtramelt-ana-simple.melt (justscanpass_exec): Ditto.

2016-05-12   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/generated/*: Regenerated all.

2016-05-12   Basile Starynkevitch  <basile@starynkevitch.net>
	{{use melt_debugeprintf... not debugeprintf... in MELT translator}}
	* melt/warmelt-base.melt (message_dbg): Use melt_debugeputs.

	* melt/warmelt-hooks.melt (hook_gimple_gate)
	(melt_attribute_handler_glue, register_gcc_attribute)
	(connect_to_server, json_lexer): Use melt_debugeprintf...

	* melt/warmelt-modes.melt (eval_docmd): Ditto.

	* melt/warmelt-outobj.melt (output_curframe_declstruct_init)
	(outpucod_initialmoduleroutine): Ditto.

2016-05-11   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.h (MELT_VERSION_STRING): Bump to 1.3rc2+.

2016-05-11   Basile Starynkevitch  <basile@starynkevitch.net>
	{{MELT plugin 1.3 release candidate 2}}
	* melt-runtime.h (MELT_VERSION_STRING): Bump to 1.3rc2.

2016-05-11   Basile Starynkevitch  <basile@starynkevitch.net>
	{{more stable, but...}}
	* melt/generated/*: Regenerated all.

2016-05-11   Basile Starynkevitch  <basile@starynkevitch.net>
	{{notice the new plugin/program argument}}
	* melt-runtime.cc (MELT_MIN_FULLTHRESHOLD_KW)
	(MELT_DEFAULT_FULLTHRESHOLD_KW, MELT_MAX_FULLTHRESHOLD_KW):
	Significantly increased.
	(melt_verbose_full_gc): New flag. Can be set with
	-fplugin-arg-melt-verbose-full-gc=1 ...
	New plugin or program argument: verbose-full-gc....
	(melt_really_initialize): Set melt_verbose_full_gc according to
	verbose-full-gc argument.

2016-05-11   Basile Starynkevitch  <basile@starynkevitch.net>
	{{still unstable probably}}
	* melt-runtime.h (meltgc_allocate): The tracing with
	melt_alptr_1... is done when MELT_HAVE_RUNTIME_DEBUG.

	* melt/generated/*: Regenerated all.

2016-05-11   Basile Starynkevitch  <basile@starynkevitch.net>
	{{very unstable; could work only with ASLR disabled...}}
	* melt-runtime.h (MELT_ALIGN, MELT_LIKELY, MELT_UNLIKELY): Defined
	earlier.
	(melt_magic_discr): Use MELT_UNLIKELY.
	(melt_debugbacktrace): Defined with melt_debugbacktrace_at.
	(melt_debugmsgval): Defined correctly.
	* melt-runtime.cc (Melt_Module::run_marking)
	(Melt_Module::run_forwarding): use melt_debuggc_eprintf.
	(melt_allocate_young_gc_zone, melt_free_young_gc_zone): Use
	MELT_UNLIKELY for melt_alptr_1, ... tests.
	(melt_really_initialize): Add mmap-reserve runtime argument to
	forcibly reserve megabytes.
	* melt/generated/meltrunsup-inc.cc: Manually edited for more
	debuggc on forwarding.
	* melt/warmelt-base.melt (messagenum_dbg, longbacktrace_dbg)
	(debugcstring, debuglong): Use melt_debugeprintf.
	(valdesc_object): Removed the hack for monitoring of copying of
	alptr1, alptr2.
	* melt/warmelt-modes.melt (generate_runtypesupport_forwcopy_fun):
	Emit support for melt_alptr_1, ... in prologue of melt_forwarded_copy.

2016-05-11   Basile Starynkevitch  <basile@starynkevitch.net>

	* melt-runtime.h: Replace all the debugep* macros or functions
	with melt_debugep*...
	(melt_debugeprintf_raw): Rename debugeprintf_raw macro.
	(melt_debugeprintfline): Rename debugeprintfline macro.
	(melt_debugeprintf): Rename debugeprintf macro.
	(melt_debugeprintflinenonl): Rename debugeprintflinenonl macro.
	(melt_debugeprintvalue): Rename debugeprintvalue macro.
	(melt_debugebacktrace): Rename debugebacktrace macro.
	(melt_debugeputs_at): Rename debugeputs_at inline function.
	(melt_debugeputs): Rename debugeputs macro.
	(melt_debugvalue_at): Rename debugvalue_at inline function.
	(melt_debugvalue): Rename debugvalue macro.
	(melt_debugmsgval_at): Rename debugmsgval_at inline function.
	(melt_debugmsgval): Rename debugmsgval macro.
	(melt_debugbacktrace_at): Rename debugbacktrace_at inline
	function.
	(melt_debugbacktrace): Rename debugbacktrace macro.
	(melt_debugnum_at): Rename debugnum_at inline function.
	(melt_debugnum): Rename debugnum macro.
	(debugeprintf_raw, debugeprintf, debugeprintflinenonl)
	(debugeprintfline, ebugeprintfnonl, debugeprintvalue)
	(debugebacktrace, debugeputs, debugvalue, debugmsgval)
	(debugbacktrace, debugnum): Temporarily define these as macros,
	for backward compatibility till we regenerate everything.

	* melt-runtime.cc: Likewise replace all the debugep* macros or
	functions with melt_debugep* ...
	(melt_caught_assign_at, melt_cbreak_at, melt_garbcoll)
	(meltgc_new_string_without_suffix)
	(meltgc_new_string_nakedbasename, melt_tempdir_path)
	(melt_run_make_for_plugin, melt_run_make_for_branch)
	(melt_compile_source, melt_find_file_at, melt_skipspace_getc)
	(meltgc_readval, meltgc_read_file, melt_attribute_callback)
	(melt_load_module_index, meltgc_run_cc_extension)
	(meltgc_load_flavored_module, "meltgc_start_flavored_module)
	(meltgc_load_one_module, meltgc_load_module_list)
	(meltgc_load_modules_and_do_mode, melt_really_initialize)
	(melt_do_finalize, melt_output_cfile_decl_impl_secondary)
	(melt_fatal_info, melt_sparebreakpoint_0_at)
	(melt_sparebreakpoint_1_at, melt_set_flag_debug)
	(melt_clear_flag_debug): Use melt_debugeprintf, etc...

2016-05-10   Basile Starynkevitch  <basile@starynkevitch.net>

	* melt-runtime.cc (melt_allocate_young_gc_zone): Correct order of
	arguments to xcalloc. Test MELT_HAVE_RUNTIME_DEBUG.
	(melt_free_young_gc_zone): Use #if MELT_HAVE_RUNTIME_DEBUG.
	(meltgc_make_special): Ditto.
	(meltgc_make_specialdata): Ditto.
	(melt_delete_unmarked_new_specialdata): Ditto.
	(melt_clear_old_specialdata): Ditto.
	(melt_garbcoll): Ditto.
	(meltgc_new_raw_object): Ditto.
	(melt_application_count, melt_application_depth): Always defined.
	(melt_apply): Runtime test on MELT_HAVE_RUNTIME_DEBUG or
	melt_flag_debug.
	(melt_compile_source): Use #if MELT_HAVE_RUNTIME_DEBUG.
	(meltgc_run_cc_extension): Ditto.

2016-05-09   Basile Starynkevitch  <basile@starynkevitch.net>

	{{still unstable}}
	* melt/generated/*: Regenerated all.

2016-05-09   Basile Starynkevitch  <basile@starynkevitch.net>
	{{very unstable; I had an heisenbug... -code crashing with ASLR,
	but nearly working without; The commit on 2016-05-03 commented as
	more stable as GCC5 plugin; but perhaps wrong with
	generate_runtypesupport_forwcopy_fun handle the unlikely case of
	young discriminant same as current object... etc is perhaps
	incorrect}}
	* melt-runtime.h: Add long comment about MELT_HAVE_DEBUG vs
	MELT_HAVE_RUNTIME_DEBUG and melt_flag_debug. Use more
	systematically MELT_HAVE_RUNTIME_DEBUG...
	(MELT_ENTERFRAME_AT): Test melt_flag_debug. The buffer for
	location is always needed.
	(MELT_TOUCHED_CACHE_SIZE): Raised slightly.
	(meltgc_touch): Introduce the touchgapwords constant.

	* melt-runtime.cc: Use more systematically
	MELT_HAVE_RUNTIME_DEBUG...

	(Melt_Module::Melt_Module): Copy dlerror() to some static buffer
	before showing it.
	(melt_compile_source, meltgc_readsexpr)
	(meltgc_readmacrostringsequence, meltgc_readval)
	(meltgc_read_from_rawstring, meltgc_read_from_val): Always have a
	curlocbuf..
	(meltgc_run_cc_extension): Copy dlerror() to some static buffer
	before showing it.
	(meltgc_start_module_by_index,meltgc_load_flavored_module)
	(meltgc_start_flavored_module, meltgc_load_one_module)
	(meltgc_load_module_list, meltgc_load_modules_and_do_mode): Always
	have some locbuf.
	(melt_really_initialize): Copy dlerror() to some static buffer.
	(melt_fatal_info): call melt_dbgshortbacktrace on runtime or
	flagged debugging.

2016-05-06   Basile Starynkevitch  <basile@starynkevitch.net>

	* melt/generated/*: Regenerated all.

2016-05-06   Basile Starynkevitch  <basile@starynkevitch.net>

	* melt/warmelt-base.melt: Use #if MELT_HAVE_RUNTIME_DEBUG > 0
	in most runtime code.

	* melt/warmelt-modes.melt: Likewise.
	(generate_runtypesupport_forwcopy_fun): Ditto, in emitted
	melt_forwarded_copy.

2016-05-04   Basile Starynkevitch  <basile@starynkevitch.net>

	{{we should also check that the same melt.so can be used with and
	without MELT_HAVE_DEBUG}}
	* melt/generated/*: Regenerated all.

2016-05-04   Basile Starynkevitch  <basile@starynkevitch.net>

	{{replace (cppif MELT_HAVE_DEBUG ...) with
	some (cppif ##{MELT_HAVE_DEBUG>0} ...) everywhere}}
	* melt/warmelt-macro.melt: Rewrite (cppif MELT_HAVE_DEBUG...)
	(mexpand_assert_msg, mexpand_debug): Expand to "MELT_HAVE_DEBUG>0"

	* melt/warmelt-normal.melt (normexp_cheader): Rewrite (cppif
	MELT_HAVE_DEBUG...)

	* melt/warmelt-outobj.melt: Ditto. Also in emitted frame
	handling...

2016-05-04   Basile Starynkevitch  <basile@starynkevitch.net>

	* melt/generated/*: Regenerated all.

2016-05-04   Basile Starynkevitch  <basile@starynkevitch.net>
	{{systematically use #if MELT_HAVE_DEBUG > 0 everywhere, but
	cppif MELT_HAVE_DEBUG remains}}
	* melt-runtime.h: Use  #if MELT_HAVE_DEBUG > 0
	(melt_magic_discr, melt_dynobjstruct_make_raw_object)
	(melt_getfield_object_at, class Melt_CallProtoFrame)
	(Melt_CallFrameWithValues<>)
	(MELT_LOCATION,MELT_LOCATION_HERE_MACRO, MELT_LOCATION_HERE)
	(MELT_LOCATION_HERE_PRINTF_MACRO, MELT_LOCATION_HERE_PRINTF):
	Ditto.

	* melt-runtime.cc (Melt_CallProtoFrame::_dbgcall_file_)
	(Melt_CallProtoFrame::_dbgcall_count_): Ditto.

	* melt/warmelt-first.melt (melt_callcount, melt_need_dbg)
	(melt_need_dbglim, hook_symbol_importer): Ditto.

	* melt/warmelt-genobj.melt (compilobj_nrep_return): Ditto.

	* melt/warmelt-outobj.melt (output_curframe_declstruct)
	(output_curframe_declstruct_init, outpucod_initialmoduleroutine)
	(emit_syntax_testing_routine): Ditto, in emitted code.

2016-05-04   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.cc (melt_alptr_1, melt_alptr_2, melt_objhash_1)
	(melt_objhash_2): Wrapping extern "C" when defining them...

2016-05-04   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.cc (melt_alptr_1, melt_alptr_2, melt_objhash_1)
	(melt_objhash_2): Forcibly always defined near end of file.
	This is a dirty hack.

2016-05-04   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/generated/*: Regenerated all.

2016-05-04   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/warmelt-base.melt (valdesc_multiple, valdesc_jsonobject)
	(valdesc_double) Typos.

2016-05-04   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.h: Don't early define MELT_HAVE_DEBUG when
	MELT_IS_PLUGIN.
	Force MELT_HAVE_DEBUG 1 when CHECKING_P.

	* melt/warmelt-base.melt: Emit #if MELT_HAVE_DEBUG > 0 test.
	(valdesc_object, valdesc_mapstrings)
	(valdesc_decay, valdesc_multiple, valdesc_closure)
	(valdesc_routine, valdesc_hook, valdesc_jsonobject)
	(valdesc_string, valdesc_strbuf, valdesc_pair, valdesc_list)
	(valdesc_int, valdesc_double, valdesc_mixloc, valdesc_mixbigint)
	(valdesc_real, valdesc_special_data): Remove GCC 4.9 specific
	generated code, for macros like ggc_alloc_*, notably in the copy
	chunks :valdesc_copychunk field.

2016-05-04   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.cc (melt_alptr_1, melt_alptr_2, melt_objhash_1)
	(melt_objhash_2): Declare them if they are not macro, even without
	MELT_HAVE_DEBUG..

2016-05-04   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.h (meltgc_allocate, melt_allocatereserved): Use
	melt_alptr_1 ... only when MELT_HAVE_DEBUG > 0.

2016-05-04   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.h (melt_alptr_1, melt_alptr_2): #define-d as NULL
	without MELT_HAVE_DEBUG
	(melt_objhash_1, melt_objhash_2): #define-d as 0U without
	MELT_HAVE_DEBUG.

	* melt-runtime.cc (melt_alptr_1, melt_alptr_2, melt_objhash_1)
	(melt_objhash_2): Declared as variables (to be modified by gdb)
	only when MELT_HAVE_DEBUG > 0.

2016-05-04   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/generated/*: Regenerated all.

2016-05-04   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.h (MELT_VERSION_STRING): Bump to 1.3.rc1+. Use
	CHECKING_P instead of ENABLE_CHECKING with GCC 6 to get
	MELT_HAVE_DEBUG.
	(melt_break_alptr_1, melt_break_alptr_2, melt_break_objhash_1)
	(melt_break_objhash_2): defined as no-op without MELT_HAVE_DEBUG.
	* melt-runtime.cc (melt_alptr_1, melt_alptr_2): Always defined,
	probably a temporary bug...
	* melt/warmelt-modes.melt (generate_runtypesupport_forwcopy_fun):
	In emitted melt_forwarded_copy use #if MELT_HAVE_DEBUG > 0.

2016-05-03   Basile Starynkevitch  <basile@starynkevitch.net>
	{{MELT plugin 1.3 release candidate 1}}
	* melt-runtime.h (MELT_VERSION_STRING): Bump to 1.3.rc1

2016-05-03   Basile Starynkevitch  <basile@starynkevitch.net>
	{{more stable as GCC5 plugin; but perhaps wrong}}
	* melt/warmelt-modes.melt (generate_runtypesupport_forwcopy_fun)
	In the generated melt_forwarded_copy handle the unlikely case of
	young discriminant same as current object...
	(generate_runtypesupport_scanning): In the generated melt_scanning
	handle the unlikely case of an already forwarded pointer...

	* melt/generated/*: Regenerated all.

2016-05-03   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.cc (meltgc_start_all_new_modules): Reserve a few
	kilowords before running each module initialization.

2016-05-03   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.h (MELT_ALIGN, MELT_LIKELY, MELT_UNLIKELY):
	Moved before.

2016-05-02   Basile Starynkevitch  <basile@starynkevitch.net>
	{{unstable as GCC5 plugin}}
	* melt-runtypes-5.h:
	(gt_ggc_mx_gimple): New function, workaround to work as GCC 5
	plugin.

2016-05-02   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-run.proto.h: Include "gimple-predict.h" &
	"tree-ssa-scopedtables.h" only for GCC 6.

	* melt/warmelt-base.melt: Update copyright year.

	* melt/libmelt-ana-gimple.melt:
	(gimple_predict): Don't use "gimple-predict.h" functions but steal
	code from it for GCC 5 compatibility.

2016-05-02   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/generated/*: Regenerated all.

2016-05-02   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.h: Improve comment about MELT_VERSION_STRING.
	Update it to 1.3.pre1.

2016-04-27   Basile Starynkevitch  <basile@starynkevitch.net>
	{{remove GCC 4.x specific code}}
	* melt-run.proto.h: Remove GCC 4.x code & includes.
	* melt-runtime.h: Likewise, notably for melt_fatal_error...
	* melt-runtime.cc: Likewise.
	(melt_resize_scangcvect, melt_branch_process_arguments)
	(melt_argument, meltgc_strbuf_reserve, melt_assert_failed)
	(melt_val2passflag): Ditto.

2016-04-26   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/libmelt-ana-base.melt: Remove GCC 4.x specific code
	* melt/libmelt-ana-tree.melt: Ditto.
	* melt/libmelt-ana-gimple.melt: Ditto.

2016-04-25   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/generated/*: Regenerated all.

2016-04-18   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-run.proto.h (DISABLE_CHECKING, ENABLE_CHECKING): Remove.

2016-04-18   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/generated/*: Regenerated all.

2016-04-18   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/warmelt-base.melt: Replace ENABLE_CHECKING with
	MELT_HAVE_DEBUG.
	* melt/warmelt-modes.melt: Ditto.
	* melt/warmelt-outobj.melt: Ditto.

2016-04-18   Basile Starynkevitch  <basile@starynkevitch.net>
	{{preparing for deprecation of ENABLE_CHECKING}}
	* melt-runtime.h: Replace most occurrences of ENABLE_CHECKING with
	MELT_HAVE_DEBUG. Temporarily forcing MELT_HAVE_DEBUG to be 1.
	* melt-runtime.cc: Replace occurrences of ENABLE_CHECKING with
	MELT_HAVE_DEBUG.

2016-04-17   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/libmelt-ana-gimple.melt:
	(gimple_transaction): Use gimple_transaction_label_norm.
	Not sure that (gccif "6." ...) does what it should...

2016-04-16   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/libmelt-ana-gimple.melt:
	(melt_build_transaction_with_label_norm): New inlined function,
	for gimple_transaction operator implementation...

2016-04-15   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.h (Melt_CallProtoFrame): always have some
	dbg_serial() even without debugging.

	* melt-runtime.cc (meltgc_new_list_from_pair): Forgot #undef pairv.

2016-04-15   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/generated/*: Regenerated all.

2016-04-15   Basile Starynkevitch  <basile@starynkevitch.net>
	{{trouble merging with GCC 6 svn rev 229800.
	possible issues with Melt_CallProtoFrame::_dbgcall_file_ ...
	}}
	* melt-build-script.tpl: Replace _NOMDFIVESUM_ with
	_MELTNOMDFIVESUM_.
	* melt-build-script.sh: Regenerate.
	* melt-runtime.cc: Update copyright years.

2016-04-14   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.h: Use more systematically the melt*ptr_t types.
	* melt-runtime.cc (meltgc_ppout_gimple_seq)
	(meltgc_ppout_basicblock): Ditto.
	* melt/libmelt-ana-gimple.melt: Ditto.

2016-04-14   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/generated/*: Regenerated all.

2016-04-14   Basile Starynkevitch  <basile@starynkevitch.net>
	{{merging with even more of GCC 6, i.e. svn rev 227942; very
	unstable...}}
	* melt/generated/warmelt-base+01.cc: Manually edited.
	* melt/generated/warmelt-debug.cc: Ditto.
	* melt/generated/warmelt-macro+01.cc: Ditto.

	* melt/warmelt-first.melt (ctype_gimple, ctype_gimpleseq): Change
	the :ctype_marker field to gt_ggc_mx_gimple. Should consider using
	overloaded gt_ggc_mx.

	* melt-runtime.h (melt_gimple_call_set_lhs): Use melt_gimpleptr_t
	in arg & result.

	* melt-runtime.cc (meltgc_retrieve_location_from_value)
	(meltgc_ppout_gimple): Likewise.
	(melt_gt_ggc_mx_gimple_seq_d): Specialized for GCC 6.

2016-04-14   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtypes-5.h: Copied from melt-runtypes-6.h bur untested
	with GCC 5 as plugin.

2016-04-13   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/generated/*: Regenerated all.

2016-04-13   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtypes-6.h (melt_loopptr_t, melt_rtxptr_t)
	(melt_bitmapptr_t, melt_rtvecptr_t): New types.

	* melt/warmelt-first.melt (ctype_loop, ctype_rtx, ctype_bitmap)
	(ctype_rtvec): Use them.

2016-04-13   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/generated/*: Regenerated all.

2016-04-13   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtypes-6.h (melt_gimpleseqptr_t, melt_basicblockptr_t)
	(melt_edgeptr_t): New types.
	* melt/warmelt-first.melt (ctype_gimple_seq, ctype_basic_block)
	(ctype_edge): Use them.

2016-04-13   Basile Starynkevitch  <basile@starynkevitch.net>
	* Makefile.in (MELT_H): order matters.
	* melt-runtime.h: Include "melt-runtypes.h" earlier.
	(melt_treeptr_t, melt_gimpleptr_t): Move the typedefs to
	melt-runtypes.h.
	* melt-runtypes-6.h (melt_gimpleptr_t, melt_treeptr_t): Define
	here.

2016-04-13   Basile Starynkevitch  <basile@starynkevitch.net>
	* Makefile.in (melt-runtypes.h): New file and rule to generate it.
	* melt-runtime.h: Now includes "melt-runtypes.h"
	* melt-runtypes-6.h: New variant, for GCC 6, of melt-runtypes.h

2016-02-12   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/generated/*: Regenerated all.

2016-02-12   Basile Starynkevitch  <basile@starynkevitch.net>
	* Makefile.in (MELT_H): Order of header files matter

2016-02-12   Basile Starynkevitch  <basile@starynkevitch.net>
	{{ preparing for GCC 6 svn rev227941 change where gimple is no
	more a pointer, but a class... See
	https://gcc.gnu.org/ml/gcc/2016-02/msg00149.html for more}}
	* melt-runtime.h (melt_treeptr_t, melt_gimpleptr_t):
	New typedefs.
	(MELT_VERSION_STRING): Bump to 1.3.pre
	* melt/warmelt-first.melt (ctype_tree, ctype_gimple):
	Use them.

2016-02-11   Basile Starynkevitch  <basile@starynkevitch.net>
	{{ merging with trunk r227925 }}
	* melt/libmelt-ana-tree.melt:
	(pragma_lex): Can take a 2nd argument for GCC 6.

2016-02-10   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-run.proto.h: include "gimple-predict.h" for GCC >= 5.0
	* melt/libmelt-ana-gimple.melt: mention that it might go here.

2016-02-10   Basile Starynkevitch  <basile@starynkevitch.net>
	{{ merging with trunk 226090 ; UNSTABLE }}
	* melt-run.proto.h: include tree-ssa-scopedtables.h
	* tree-ssa-dom.c: skip second record_edge_info

2015-07-24   Basile Starynkevitch  <basile@starynkevitch.net>
	{{ MELT 1.2.0 for GCC 4.9 & GCC 5.x release }}

	* melt-runtime.h (MELT_VERSION_STRING): Bump to 1.2.0
	* melt-runtime.cc: Issue a warning against Debian bug#793478

2015-06-12   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/generated/*: Regenerate all.

2015-06-12   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/warmelt-modes.melt (generate_runtypesupport_cloning_fun)
	typo emitting a buggy cloning.

2015-06-12   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/warmelt-modes.melt (generate_runtypesupport_cloning_fun)
	thinko.

2015-06-12   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/warmelt-base.melt: Add a line comment like
	// in file $_MELT_FILE_ line $_MELT_LINE_
	in most :valdesc_* chunks.

	* melt/warmelt-modes.melt (generate_runtypesupport_cloning_fun)
	(generate_runtypesupport_scanning): Use more output_for_runtime.

2015-06-11   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/warmelt-modes.melt (output_for_runtime): New function.
	(generate_runtypesupport_enum_objmagic)
	(generate_runtypesupport_gty): Use it sometimes.

2015-06-11   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.h (meltgc_new_list_from_pair): New declaration.

	* melt-runtime.cc (meltgc_new_list_from_pair): New function.

	* melt/warmelt-base.melt (make_list_from_pair): New primitive.

	* melt/warmelt-moremacro.melt (mexpand_quote): Use it for multiarg
	quote of macrostrings.

2015-06-10   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.h (melt_gcc_optimize): New inline function giving
	optimize.  #undef the optimize from gcc/options.h in build tree.
	(MELT_LOW_OPTIMIZATION): New attribute, to compile with -Og some
	generated routines.
	(MELT_FLEXIBLE_DIM) set to 1 to avoid using flexible array
	members.

	* melt/warmelt-outobj.melt (outpucod_initialmoduleroutine) Emit
	the meltmod*initialmeltchunk* and melt_start_this_module functions
	with MELT_LOW_OPTIMIZATION.

	* melt/xtramelt-playground: temporarily define playgr_foo.

2015-06-09   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/warmelt-base.melt (melt_make_sexpr): Moved near front.

2015-06-09   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/generated/*: Regenerate all.

2015-06-09   Basile Starynkevitch  <basile@starynkevitch.net>
	{{ The magic symbols are _MELT_FILE_ & _MELT_LINE_, mimicking the
	__FILE__ and __LINE__ C magical macros. }}
	* melt-runtime.cc (MELT_MAGICSYMB_FILE) is now "_MELT_FILE_"
	(MELT_MAGICSYMB_LINE) becomes "_MELT_LINE_".
	(meltgc_readmacrostringsequence, meltgc_readval): Update test for
	the _MELT_FILE_ & _MELT_LINE_ magical symbols.
	* melt/warmelt-base.melt: in comment inside macrostring,
	temporarily use % instead of $....
	* melt/warmelt-moremacro.melt (mexpand_quote): Handle variadic
	quote, but warns when outside of macro-string.

2015-06-09   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/generated/*: Regenerate all.

2015-06-09   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.cc (meltgc_readmacrostringsequence): Move warning
	about quoted macro string with $%s symbol.

	* melt/warmelt-moremacro.melt (mexpand_quote): More verbose
	messages when quote gets more than one argument, perhaps should
	handle it differently...

2015-06-09   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/generated/*: Regenerate all.
2015-06-09   Basile Starynkevitch  <basile@starynkevitch.net>
	{{New feature: magic symbols MELT_SOURCE_FILE & MELT_SOURCE_LINE
	are expanded at parse time to the file name and the line number.
	Garbage collection threshold are increased.}}
	* melt-predef.list (UNKNOWN_LOCATION): new predefined.
	* melt-runtime.cc
	(MELT_MIN_MINORSIZE_KW, MELT_MAX_MINORSIZE_KW)
	(MELT_MIN_FULLTHRESHOLD_KW, MELT_DEFAULT_FULLTHRESHOLD_KW)
	(MELT_MIN_PERIODFULL, MELT_DEFAULT_PERIODFULL): Increase GC
	thresholds.
	(meltgc_readmacrostringsequence, meltgc_readval): Magic processing
	for MELT_SOURCE_FILE and MELT_SOURCE_LINE symbols, always parsed
	magically!
	* melt/warmelt-first.melt: Predefine :UNKNOWN_LOCATION keyword.
	* melt-module.mk: Pass -DMELTBUILD_BASE=$(basename $<)...

2015-05-27   Basile Starynkevitch  <basile@starynkevitch.net>
	{{ensure that MELT can be compiled with --enable-checks=release}}
	* melt-runtime.h (MELT_LOCATION_HERE,MELT_LOCATION_HERE_PRINTF):
	Are no-op when MELT_HAVE_DEBUG is false.
	* melt-runtime.cc (meltgc_send, melt_compile_source)
	(meltgc_readsexpr, meltgc_readmacrostringsequence)
	(meltgc_readval): Clear the first byte of curlocbuf...

2015-05-27   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/generated/*: Regenerate all.

2015-05-27   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt-runtime.h: #include "gcc-plugin.h" & "plugin-version.h" &
	"diagnostic-core.h"
	* melt-runtime.cc (melt_ggcstart_callback, melt_garbcoll)
	(melt_load_module_index): More precise melt_fatal_error message.

2015-05-27   Basile Starynkevitch  <basile@starynkevitch.net>
	{{merged with GCC 5, so}}
	* melt-runtime.h (melt_fatal_error, melt_fatal_error_at_line):
	Pass UNKNOWN_LOCATION for GCC 5. Re-indented with command:
	   astyle --style=gnu -s2

	* melt-runtime.cc:  Re-indented with command:
	   astyle --style=gnu -s2
	(melt_branch_process_arguments, melt_ggcstart_callback)
	(melt_reserved_allocation_failure): Use melt_fatal_error instead
	of fatal_error.

	* melt/generated/meltrunsup-inc.cc: Manually edited for fatal_error.
	* melt/generated/warmelt-first.cc: Ditto.

	* melt/warmelt-first.melt (melt_assert_failure_fun): Ditto.
	* melt/warmelt-modes.melt (generate_runtypesupport_scanning):
	Ditto, in the emitted code.

	* Makefile.in: mention s-gtype instead of gt-melt-runtime.h in
	dependencies.
	(TEXI_GCCINT_FILES): Add meltgendoc.texi.


2015-01-23   Basile Starynkevitch  <basile@starynkevitch.net>
	* melt/libmelt-ana-gimple.melt: Adding all static_casts. Compiles
	ok.

2015-01-22   Basile Starynkevitch  <basile@starynkevitch.net>
	{{@@ STILL UNSTABLE and not fully building, but with progress...}}
	* melt/libmelt-ana-gimple.melt: Adding more static_casts. Incomplete.

2015-01-21   Basile Starynkevitch  <basile@starynkevitch.net>
	{{@@ STILL UNSTABLE and not fully building, but with progress...}}
	* melt/libmelt-ana-gimple.melt: Adding static_casts. Incomplete.

2015-01-21   Basile Starynkevitch  <basile@starynkevitch.net>
	{{@@ STILL UNSTABLE and not fully building, but with progress...}}
	* melt/libmelt-ana-base.melt (melthk_gimple_gate)
	(melthk_gimple_execute): Remove debugeprintf-s.

	* melt/libmelt-ana-gimple.melt: Use gimple_build_assign instead of
	gimple_build_assign_with_ops for GCC 5.0, but still incomplete so
	the generated C++ does not compile yet...

2015-01-21   Basile Starynkevitch  <basile@starynkevitch.net>
	{{merged with trunk -i.e. GCC5.0 in stage4- using
	svn merge -r209216:219879 svn+ssh://bstarynk@gcc.gnu.org/svn/gcc/trunk
	but should probably have used
	svn merge -r209216:219879 ^/trunk

	@@@ UNSTABLE since libmelt-ana-gimple.melt not compiling, but
	translator painfully bootstrapping!!@@@@ }}

	* toplev.c: Merged manually by keeping MELT extra stuff.
	* toplev.h: Likewise.
	* gengtype.c: Add "melt-runtime.h" in list, but merged with trunk.

	* melt-runtime.h (MELT_VERSION_STRING): Bump to "1.2-pre-merged".
	(meltgc_walk_gimple_seq): Remove.
	(gt_ggc_mx_gimple_statement_d): Same for GCC 4.9 & 5.0

	* melt-runtime.cc: Update copyright year.
	(ggc_alloc_cleared_melt_valuevector_st, melt_resize_scangcvect):
	Call ggc_internal_cleared_alloc.
	(melt_val2passflag): Skip TODO_verify_ssa, TODO_verify_flow,
	TODO_verify_stmts, TODO_verify_rtl_sharing for GCC 5.0.
	(meltgc_walkstmt_cb, meltgc_walktree_cb)
	(melt_tree_walk_frame_size, meltgc_walk_gimple_seq): Remove.
	(melt_gt_ggc_mx_gimple_seq_d): Call
	gt_ggc_mx_gimple_statement_base.
	* melt-build-script.tpl: Update copyright year. Don't symlink
	meltrunsup.h anymore.
	* melt-build-script.sh: Regenerate.

	* melt/warmelt-base.melt: Update copyright year.
	(valdesc_object, valdesc_mapobjects, valdesc_mapstrings)
	(valdesc_multiple, valdesc_closure, valdesc_routine, valdesc_hook)
	(valdesc_bucketlongs, valdesc_jsonobject, valdesc_string)
	(valdesc_strbuf, valdesc_pair, valdesc_list, valdesc_int)
	(valdesc_double, valdesc_mixint, valdesc_mixloc)
	(valdesc_mixbigint, valdesc_real, valdesc_special_data): Use
	ggc_internal_alloc & ggc_internal_cleared_alloc for GCC 5.0.
	(json_canonical_name): Use ISUPPER, ISALPHA, TOUPPER instead of
	their standard <ctype.h> lowercase macros.
	* melt/warmelt-modes.melt: Update copyright year.
	(generate_runtypesupport_forwcopy_fun): Emit both GCC 4.9 & 5.0
	compatible code.
	* melt/libmelt-ana-base.melt: Update copyright year.
	* melt/libmelt-ana-gimple.melt: TO BE IMPROVED
	* melt/generated/*: Painfully regenerated several times thru GCC
	4.9 MELT plugin.


2015-01-20   Basile Starynkevitch  <basile@starynkevitch.net>
	Move previous gcc/ChangeLog.MELT to gcc/ChangeLog.MELT.2012-2014


Copyright (C) 2015 - 2016 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.

/// Local Variables:
/// mode: change-log
/// End: