/
ChangeLog
8667 lines (5178 loc) · 267 KB
/
ChangeLog
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
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2006-06-16 Massimiliano Mantione <massi@ximian.com>
* ssa.c: Fixed bug 78653 for SSA based deadce.
* mini.h: added MONO_INST_DEFINITION_HAS_SIDE_EFFECTS flag go
MonoInst.flags, used in SSA based deadce.
* aliasing.c: Fixed bug 78653 for "fastpath" deadce.
* simple-cee-ops.h, simple-mini-ops.h: Fixed bug 78653.
Thu Jun 15 16:52:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
* tramp-ppc.c: don't use malloc () for trampoline code, sometimes
it can end up using non executable memory on ppc64 systems
running ppc32 userspace (fix from Johannes Berg).
2006-06-14 Dick Porter <dick@ximian.com>
* wapihandles.c: Fix a bunch of signed/unsigned warnings from gcc
4.1.1
2006-06-13 Massimiliano Mantione <massi@ximian.com>
* mini.c: Made so that inline is locally disabled if it would
trigger a .cctor, because too many apps depend on this behavior
(which seems to be also the one of the MS CLR).
2006-06-13 Zoltan Varga <vargaz@gmail.com>
* mini-amd64.c (mono_emit_stack_alloc): Fix initialization of localloc'ed memory.
No idea why this worked before.
* branch-opts.c (mono_branch_optimize_exception_target): Avoid branches
which branch to outer exception clauses since they could skip the
inner finally clauses. Fixes #78633.
* exceptions.cs: Add a test for the above.
* mini.c (merge_basic_blocks): Nullify the branch at the end of the first bb.
Fixes #78629.
* iltests.il: Add a test for the above.
2006-06-12 Zoltan Varga <vargaz@gmail.com>
* mini.c (remove_block_if_useless): Do not remove the bblock immediately
after the end of a try bblock, to prevent asserts in mini_method_compile ().
* iltests.il: Add a test for the above.
2006-06-10 Zoltan Varga <vargaz@gmail.com>
* mini-ia64.c (mono_arch_lowering_pass): Remove some code duplication.
* mini-ia64.c inssel-ia64.brg: Implement the new net 2.0 Interlocked.Add
methods as instrinsics.
2006-06-09 Wade Berrier <wberrier@novell.com>
* Makefile.am: Fix sources list for svn rename so that make dist succeeds
(simple-cee-ops.h ssapre-mini-ops.h)
2006-06-09 Neale Ferguson <neale@sinenomine.net>
* mini-exceptions.c (ves_icall_get_frame_info): Fix this function on s390/s390x.
* mini-s390x.c, mini-s390.c: Correct ATOMIC operations (incorrect register for CS
instruction).
* mini-s390x.h, mini-s390.h: Simplify MCONTEXT_GET_BP.
* cpu-s390x.md: Fix max. length values for a couple of instructions.
2006-06-09 Jonathan Chambers <jonathan.chambers@ansys.com>
* mini-exceptions.c: Minor fix for building mono in Visual Studio.
2006-06-08 Massimiliano Mantione <massi@ximian.com>
* ssapre-cee-ops.h: Renamed as "simple-cee-ops.h"
* simple-cee-ops.h: Was "ssapre-cee-ops.h" (renamed).
* ssapre-mini-ops.h: Renamed as "simple-mini-ops.h"
* simple-mini-ops.h: Was "ssapre-mini-ops.h" (renamed).
* local-propagation.c: In mono_cprop_invalidate_values use a whitelist
of opcodes, so that bug 78549 should not happen again.
* ssapre.c: Updated to use the renamed files.
2006-06-08 Zoltan Varga <vargaz@gmail.com>
* mini-amd64.c (mono_arch_output_basic_block): Fix a wrong reg-reg move
in OP_ATOMIC_EXCHANGE_I4.
2006-06-07 Wade Berrier <wberrier@novell.com>
* tramp-s390.c: Fix s390 build (add missing pointer declarations
in mono_debugger_create_notification_function)
2006-06-06 Zoltan Varga <vargaz@gmail.com>
* mini.c (NEW_AOTCONST_TOKEN): Fix amd64 build.
* mini.c (type_from_stack_type): Disable some changes which do not
seem to work.
* driver.c: Reenable opts.
* mini.h (MonoStackSlot): New structure to keep track of the verification state
of the evaluation stack.
* mini.h (MonoBasicBlock): Add a 'stack_state' field to keep track of the
evaluation stack trace at entry to the bblock.
* mini.c (merge_stacks): New function to perform verification of stack merges.
Turned off by default.
* mini.c: Fill up ins->klass for instructions whose type is STACK_OBJ or
STACK_MP.
2006-06-06 Massimiliano Mantione <massi@ximian.com>
* local-propagation.c: Fixed bug 78549.
2006-06-04 Zoltan Varga <vargaz@gmail.com>
* mini-exceptions.c (ves_icall_get_frame_info): Fix this function on ia64.
2006-06-02 Miguel de Icaza <miguel@novell.com>
* tramp-sparc.c, tramp-ppc.c, tramp-s390.c, tramp-s390x.c,
tramp-arm.c, tramp-ia64.c
(mono_debugger_create_notification_function): Update signature to
new signature and use new protocol for creating the notification
function.
Should fix the build.
2006-06-02 Geoff Norton <gnorton@customerdna.com>
* exceptions-ppc.c (mono_jit_walk_stack)
(ves_icall_get_frame_info): Fix the build
2006-06-02 Zoltan Varga <vargaz@gmail.com>
* mini.c (mono_set_defaults): Fix the handling of -O=-all.
2006-05-31 Raja R Harinath <rharinath@novell.com>
* il2tests.2.il: New file for generics CIL tests. Add test for
#78019.
* Makefile.am: Update.
Fix #78019
* mini.c (mono_method_to_ir): Don't apply box+brtrue optimization
to nullable types.
2006-05-30 Massimiliano Mantione <massi@ximian.com>
* aliasing.c: Fixed bug 78311.
2006-05-29 Martin Baulig <martin@ximian.com>
* mini-exceptions.c (mono_find_jit_info): When computing the
native offset, check whether we're actually inside the method's
code; call mono_debug_print_stack_frame() to format the frame.
(ves_icall_System_Exception_get_trace): Call
mono_debug_print_stack_frame() to format the stack frame.
(ves_icall_get_trace): Update to the new debugging API.
(mono_jit_walk_stack_from_ctx): Likewise.
(ves_icall_get_frame_info): Likewise.
* mini.c (get_method_from_ip): Use the new debugging API.
(mono_print_method_from_ip): Likewise.
* exceptions-ppc.c
(mono_jit_walk_stack): Use the new debugging API.
(ves_icall_get_frame_info): Likewise.
2006-05-27 Zoltan Varga <vargaz@gmail.com>
* mini-amd64.c (mono_arch_output_basic_block): Fix MONO_PROFILE_COVERAGE.
2006-05-25 Massimiliano Mantione <massi@ximian.com>
* mini.c: Added "limitator" to inline for debugging.
2006-05-24 Martin Baulig <martin@ximian.com>
* debug-debugger.c (mono_debugger_init): Create a private,
malloc()-based code manager for the notification function and
intentionally leak it on exit. This fixes the crash-on-exit race
condition.
* tramp-amd64.c
(mono_debugger_create_notification_function): Added
`MonoCodeManager *' argument.
* tramp-x86.c
(mono_debugger_create_notification_function): Added
`MonoCodeManager *' argument.
2006-05-23 Massimiliano Mantione <massi@ximian.com>
* aliasing.c: Fixed 64 bit issue.
* driver.c: Enabled inline,consprop,copyprop,treeprop,deadce by
default since all known bugs are fixed (one more time!).
Tue May 23 13:47:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: write barrier support.
2006-05-23 Martin Baulig <martin@ximian.com>
* debug-debugger.c: Revert Paolo's change. Add comment and #error
check at the top of the file.
Sun May 21 12:22:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
* debug-debugger.c: fix the build. Again. Hopefully Martin will stop
reverting changes without reason and without changelog entries.
2006-05-18 Zoltan Varga <vargaz@gmail.com>
* mini-sparc.c (mono_arch_output_basic_block): Add support for large stack offets
to a few opcodes. Fixes #78439.
* mini-sparc.c: Rename mono_sparch_break () to mono_arch_break () to improve
consistency with other archs.
* mini-ia64.c (mono_arch_emit_prolog): Remove debug stuff left in by mistake.
Wed May 17 18:07:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
* debug-debugger.c: fix the build.
2006-05-17 Martin Baulig <martin@ximian.com>
* debug-debugger.c
(debugger_thread_vtable): Moved here from ../metadata/threads.c.
(debugger_init_threads): Formerly known as mono_debugger_init_threads().
(debugger_finalize_threads): Formaly known as mono_debugger_finalize_threads().
(debugger_attach): Call GC_mono_debugger_add_all_threads().
2006-05-11 Zoltan Varga <vargaz@gmail.com>
* mini.c (mini_init): Call pthread_attr_destroy () to fix a small memory leak.
2006-05-10 Zoltan Varga <vargaz@gmail.com>
* mini-x86.c (mono_arch_instrument_epilog): Fix handling of
MONO_TYPE_GENERICINST.
* mini-amd64.c (mono_arch_instrument_epilog): Fix handling of
MONO_TYPE_GENERICINST.
2006-05-09 Zoltan Varga <vargaz@gmail.com>
* mini-x86.c (mono_arch_get_vcall_slot_addr): Add a missing call sequence. Fixes
#78325.
2006-05-08 Zoltan Varga <vargaz@gmail.com>
* mini.c (mono_create_jump_trampoline): Allocate MonoJitInfo from the domain
mempool.
(mono_jit_free_method): Remove the method from jump_trampoline_hash as well.
2006-05-06 Zoltan Varga <vargaz@gmail.com>
* mini.c (mini_cleanup): Applied patch from Joachim Ante (joe@otee.dk). Call
mono_trace_cleanup ().
* iltests.il: Fix problem with the newly added test.
* mini-codegen.c (mono_local_regalloc): When changing the dreg of an instruction
due to register constraints, free up the previous hreg. Fixes #78314.
* iltests.il: Add new test for #78314.
* mini-x86.c (mono_arch_get_inst_for_method): Use OP_ATOMIC_ADD_NEW_I4 for
Interlocked.Add. Fixes #78312.
* mini-amd64.c (mono_arch_get_inst_for_method): Ditto.
2006-05-05 Zoltan Varga <vargaz@gmail.com>
* inssel.brg (mini_emit_virtual_call): Fix a warning.
2006-05-05 Martin Baulig <martin@ximian.com>
* debug-mini.c (mono_debug_open_block): New method.
* mini-amd64.c
(mono_arch_output_basic_block): Call mono_debug_open_block() at
the beginning of each basic block.
* mini-x86.c
(mono_arch_output_basic_block): Call mono_debug_open_block() at
the beginning of each basic block.
2006-05-04 Massimiliano Mantione <massi@ximian.com>
* driver.c: Disabled inline,consprop,copyprop,treeprop,deadce by
default until I understand why they break the build on amd64.
2006-05-04 Zoltan Varga <vargaz@gmail.com>
* mini.c (mini_cleanup): Call mono_cleanup ().
* mini.c (UNVERIFIED): New macro to make it easier to track down verification
errors.
2006-05-04 Massimiliano Mantione <massi@ximian.com>
* aliasing.c: Fixed shameful cut&paste error that caused JIT crashes.
* driver.c: Enabled inline,consprop,copyprop,treeprop,deadce by
default since all known bugs are fixed, and I cannot reproduce bug
77944... I'm asking Matt Hargett to test again after this commit.
2006-04-28 Massimiliano Mantione <massi@ximian.com>
* mini-codegen.c: Fixed typo that thrashed inline.
2006-04-28 Zoltan Varga <vargaz@gmail.com>
* dominators.c (compute_dominators): Avoid using a worklist since
it is not correct in some cases. Instead, iterate over all bblocks as
in the original paper. Fixes --compile-all -O=all System.Xml.dll.
2006-04-28 Miguel de Icaza <miguel@novell.com>
* mini.c (mono_jit_compile_method_inner): Use
mono_prepare_exception_from_error that resets the value
internally.
2006-04-27 Miguel de Icaza <miguel@novell.com>
* mini.c: Move the mini_loader_error_to_exception to metadata.
2006-04-27 Massimiliano Mantione <massi@ximian.com>
* aliasing.c: Fixed bug 78210.
2006-04-27 Massimiliano Mantione <massi@ximian.com>
* driver.c: Disabled inline,consprop,copyprop,treeprop,deadce by
default until all their problems (or the ones they trigger) are fixed.
2006-04-26 Zoltan Varga <vargaz@gmail.com>
* aot-runtime.c (mono_aot_get_method_from_token_inner): Fix the previous patch.
* aot-runtime.c (mono_aot_get_method_from_token_inner): Mark the method
as loaded only after resolving patches since that could invoke the same method.
* aot-runtime.c (mono_aot_plt_resolve): Fix ppc etc. builds.
* aot-compiler.c: Refactor mono_aot_compile_aot () into a bunch of smaller
functions.
* aot-runtime.c (init_plt): Use a normal trampoline to transfer code to the
AOT loader.
* aot-compiler.c (emit_plt): Pass the plt offset in %eax instead of on the
stack.
* mini-trampolines.c (mono_aot_plt_trampoline): New trampoline to handle calls
made from AOT code through the PLT table.
* mini-x86.h mini-amd64.h: Define MONO_ARCH_AOT_PLT_OFFSET_REG to the register
holding the plt offset when a call is made to the aot plt trampoline.
2006-04-25 Zoltan Varga <vargaz@gmail.com>
* aot-runtime.c aot-compiler.c cpu-amd64.md mini-amd64.c: Update parts of the
amd64 AOT support.
* Makefile.am (common_sources): Fix build breakage.
* aot-runtime.c aot-compiler.c: Reorganize the AOT code yet again: Make all
calls through a jump table similar to the ELF PLT table. Avoid indirect calls for
intra-assembly calls if possible.
* tramp-*.c: Add new functions for patching/nullifying PLT entries.
* mini-trampolines.c: Handle PLT entries.
* mini.c: Avoid creating a GOT var for calls.
* jit-icalls.c (helper_ldstr_mscorlib): New helper function for loading strings
from mscorlib code.
* jit-icalls.c (helper_newobj_mscorlib): New helper function to create objects
from mscorlib code.
* mini.c (mono_method_to_ir): Use the new helper functions in throw bblocks in
AOT code.
* mini.h: Bump AOT file format version.
* mini.c (get_basic_blocks): Fix the calculation of bb->out_of_line so it
covers more cases.
2006-04-25 Martin Baulig <martin@ximian.com>
* driver.c: Disable copyprop, consprop and inline when running
inside the debugger.
2006-04-25 Martin Baulig <martin@ximian.com>
* debug-debugger.h (MonoDebuggerInfo): Replaced `get_thread_id'
with `get_current_thread' and added `detach'.
(MonoDebuggerMetadataInfo): Added `thread_size',
`thread_tid_offset', `thread_stack_ptr_offset' and
`thread_end_stack_offset'.
2006-04-25 Zoltan Varga <vargaz@gmail.com>
* aot.c Makefile.am: Split aot.c into two new files aot-compiler.c and
aot-runtime.c.
* inssel.brg (mini_emit_load_intf_reg_vtable): Use a new kind of AOT constant
ADJUSTED_IID to avoid the need for adjusting the IID at runtime.
* mini.h (MonoJumpInfoType): Add MONO_PATCH_INFO_ADJUSTED_IID.
* mini.c (mono_resolve_patch_target): Handle ADJUSTED_IID.
* aot.c: Add support for ADJUSTED_IID.
2006-04-24 Zoltan Varga <vargaz@gmail.com>
* aot.c (emit_method_order): Don't align method_order_end.
* inssel.brg (stmt): Fix interface calls in AOT code which got broken by
the interface ID changes.
2006-04-21 Dick Porter <dick@ximian.com>
* mini.c (mini_thread_cleanup): Clear the JIT TLS data when
cleaning up a thread. Fixes the new part of bug 77470.
2006-04-20 Geoff Norton <gnorton@customerdna.com>
* mini-ppc.c: Call mono_jit_thread_attach when transitioning a native
to managed wrapper.
2006-04-19 Zoltan Varga <vargaz@gmail.com>
* mini.h mini.c: Remove mono_type_to_ldind/stind () which are now in marshal.c.
* mini.c (mono_runtime_install_handlers): Handle SIGABRT similarly to
SIGSEGV. Fixes #78072.
* mini-exceptions.c (mono_handle_native_sigsegv): Add a 'signal' argument,
unregister our SIGABRT handler.
2006-04-19 Massimiliano Mantione <massi@ximian.com>
* mini.c: Disabled inline where it can alter the call stack in a
way visible from managed code.
* driver.c: enabled inline,consprop,copyprop,treeprop,deadce by
default.
2006-04-16 Zoltan Varga <vargaz@gmail.com>
* mini-amd64.c (mono_arch_emit_prolog): Attach the thread to the runtime as it is done
on other platforms. Fixes #78089.
2006-04-13 Martin Baulig <martin@ximian.com>
* driver.c: Also check a `MONO_INSIDE_MDB' environment variable to
determine whether we're inside the debugger.
* debug-debugger.h
(MonoDebuggerMetadataInfo): Added all offsets from `MonoDefaults'.
2006-04-12 Zoltan Varga <vargaz@gmail.com>
* mini.c (mono_method_to_ir): Handle multiple LEAVE statements inside a single
handler clauses. Fixes #78024.
* mini-sparc.c (mono_arch_output_basic_block): Handle large offsets
in the CALL_MEMBASE opcodes. Fixes #78088.
(mono_arch_get_vcall_slot_addr): Ditto.
2006-04-10 Martin Baulig <martin@ximian.com>
* debug-debugger.c: The thread handling code has now been moved
into ../metadata/threads.c.
2006-04-10 Zoltan Varga <vargaz@gmail.com>
* driver.c (mono_main): Fix --with-gc=none build.
* mini-codegen.c (mono_spillvar_offset): Improve alignment.
(mono_spillvar_offset_float): Ditto.
(mono_local_regalloc): Only do the OP_MOVE optimization if ins->dreg is a local
hreg, not when its !global, since on ia64, there is a third category: stacked
registers.
Mon Apr 10 14:39:49 CEST 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: set MonoInst->klass for load field address and a few other
places.
2006-04-10 Zoltan Varga <vargaz@gmail.com>
* helpers.c (mono_disassemble_code): Emit debug info on amd64 as well.
2006-04-07 Zoltan Varga <vargaz@gmail.com>
* dominators.c (compute_dominators): Fix yet another bug which surfaced after
the branch opt changes.
2006-04-06 Dick Porter <dick@ximian.com>
* wapihandles.c (mini_wapi_semdel): Fix parameters in semctl () call.
* wapihandles.c (mini_wapi_seminfo):
* driver.c (mono_main): Add semaphore info option
2006-04-05 Zoltan Varga <vargaz@gmail.com>
* dominators.c (compute_dominators): Fix a bug which surfaced after the recent
branch optimization changes. Fixes #78009.
Wed Apr 5 16:40:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: ignore accessibility of methods in managed->native wrappers.
2006-04-04 Zoltan Varga <vargaz@gmail.com>
* mini.c (mini_cleanup): Call print_jit_stats () earlier since it accesses metadata.
* mini.c (mini_cleanup): Free 'emul_opcode_map' as well.
2006-04-03 Zoltan Varga <vargaz@gmail.com>
* mini.c: Modify the branch optimizations to preserve the invariant that
the entries inside the in_bb and out_bb arrays are unique.
(mono_unlink_bblock): Avoid creation of new arrays.
2006-04-02 Zoltan Varga <vargaz@gmail.com>
* mini.c (mono_unlink_bblock): Fix regression caused by previous
change (#77992).
2006-04-01 Zoltan Varga <vargaz@gmail.com>
* mini.c (optimize_branches): Remove the "optimizations" in
the cbranch1/cbranch2 -> branch cases which were causing several
problems in the past. Fixes #77986.
2006-03-31 Chris Toshok <toshok@ximian.com>
* driver.c (DEFAULT_OPTIMIZATIONS): back out the new set of
default optimizations :(
2006-03-31 Zoltan Varga <vargaz@gmail.com>
* inssel-x86.brg mini-codegen.c mini.c: Merge some changes/fixes from linear-il
branch.
2006-03-31 Massimiliano Mantione <massi@ximian.com>
* local-propagation.c: Added comments to structs and removed
"Mono" prefixes from local tree mover types.
2006-03-30 Zoltan Varga <vargaz@gmail.com>
* Makefile.am (arch_sources): Define this for each architecture so
libmono_la_SOURCES is defined in one place.
Wed Mar 29 20:51:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
* driver.c, wapihandles.c, Makefile.am: integrate the io-layer utils
from handles/.
Wed Mar 29 17:16:57 CEST 2006 Paolo Molaro <lupus@ximian.com>
* driver.c: print the GC name supplied by configure.
2006-03-29 Massimiliano Mantione <massi@ximian.com>
* local-propagation.c: Added tree mover, and moved here all the
local propagation code from mini.c
* mini.c: Added support for treeprop, and moved all the local
propagation code to local-propagation.c
* mini.h: Added support for treeprop
* driver.c: Added support for treeprop, enabled consprop, copyprop,
treeprop, inline and deadce by default
* Makefile.am: Added local-propagation.c
2006-03-25 Zoltan Varga <vargaz@gmail.com>
* exceptions-sparc.c: Applied patch from David S. Miller <davem@sunset.davemloft.net>: Implement correct support for sparc/linux.
Fri Mar 24 20:07:19 CET 2006 Paolo Molaro <lupus@ximian.com>
* debug-debugger.c: make it compile without the Boehm GC.
Wed Mar 22 18:25:18 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: fixed issue with mismatch when an icall is registered
with multiple names but same address.
Tue Mar 21 15:59:57 CET 2006 Paolo Molaro <lupus@ximian.com>
* declsec.c, mini-exceptions.c: use write barrier to set reference
fields of managed objects.
2006-03-19 Zoltan Varga <vargaz@gmail.com>
* mini.c (mono_print_method_from_ip): Recognize JIT trampolines as well.
(can_access_internals): Fix a warning.
* mini.c (print_method_from_ip): Rename this to
mono_print_method_from_ip so it gets exported.
* trace.c: Deal with strings inside StringBuilder's containing garbage
and fix memory leaks. Fixes #77848.
2006-03-19 Zoltan Varga <vargaz@gmail.com>
* mini.c (mini_init): Disable the setting of GC_stackbottom on ia64. Hopefully
fixes #77787.
2006-03-16 Neale Ferguson <neale@sinenomine.net>
* mini-s390.c: Remove OP_X86_TEST_NULL.
Thu Mar 16 17:19:04 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: use the correct GetHashCode() for the moving collector.
2006-03-16 Massimiliano Mantione <massi@ximian.com>
* liveness.c: Regalloc spill cost tuning.
2006-03-15 Neale Ferguson <neale@sinenomine.net>
* mini-s390x.h: Correct S390_LONG macro.
* mini-s390x.c: Cleanup unused code.
2006-03-15 Zoltan Varga <vargaz@gmail.com>
* jit-icalls.h: New file.
* Makefile.am mini.c jit-icalls.c: Use a proper include file for the jit
icalls and include that instead of including jit-icalls.c.
* mini-ppc.c (mono_arch_output_basic_block): Remove references to
OP_X86 opcodes.
Tue Mar 14 20:23:53 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: when checking for member accessibility, also check for
friend assemblies and for explicit interface implementations.
2006-03-14 Zoltan Varga <vargaz@gmail.com>
* mini-codegen.c (mono_local_regalloc): Remove incorrect g_free () calls.
* cpu-arm.md cpu-g4.md: Remove x86_ opcodes.
* mini-x86.h (MONO_ARCH_INST_FIXED_REG): Reorganize the comparisons so
common cases are done first.
* mini-ops.h: Only define platform specific opcodes on the given platform.
* mini.h regalloc.h mini-codegen.c: Merge optimizations from the linear-il
branch.
2006-03-14 Martin Baulig <martin@ximian.com>
Revert Paolo's change from r57348:
* mini.h: don't use gboolean for bitfields.
* mini.c: verifier changes for fields and methods accessibility.
2006-03-13 Neale Ferguson <neale@sinenomine.net>
* mini-s390.h, mini-s390x.h: Fix calls to mono_call_inst_add_outarg_reg.
* mini-s390x.c: Fix conv_r_un.
* cpu-s390, cpu-s390x.md: Fix lengths.
Sun Mar 12 17:31:22 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: nested types have access to all the nesting
levels, not just the enclosing types.
Sun Mar 12 16:23:11 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: added a few more verification checks.
2006-03-12 Zoltan Varga <vargaz@gmail.com>
* liveness.c: Merge optimizations from the linear-il branch.
2006-03-11 Zoltan Varga <vargaz@gmail.com>
* mini-ia64.c (emit_call): Add a comment.
* tramp-ia64.c (mono_arch_patch_callsite): Handle indirect calls as well.
* tramp-ia64.c: Fix some warnings.
Sat Mar 11 20:15:59 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini.h: don't use gboolean for bitfields.
* mini.c: verifier changes for fields and methods accessibility.
2006-03-11 Zoltan Varga <vargaz@gmail.com>
* mini.c (mono_icall_get_wrapper): Fix an ia64 bug introduced by the
lazy icall wrapper changes.
* dominators.c: Replace all the dominator algorithms with faster
ones from the linear-il branch.
* inssel-*.brg: Allocate call->out_ireg_args and call->out_freg_args from
the mempool.
* mini-amd64.h (MONO_ARCH_INST_FIXED_REG): Reorganize the comparisons so
common cases are done first.
* mini-amd64.c: Fix some warnings.
* mini-codegen.c mini-*.c: Allocate call->out_ireg_args and call->out_freg_args
from the mempool.
* mini.c (mono_jit_compile_method_with_opt): Fix a race in the newly
added code.
* mini.h: Add a missing prototype.
2006-03-10 Zoltan Varga <vargaz@gmail.com>
* mini.c: Compile icall wrappers lazily.
* mini-codegen.c: Use printf instead of g_print since its much faster.
* mini.h (mono_bitset_foreach_bit): Use the faster mono_bitset_find_start ()
function.
* mini.c (optimize_branches): Cache the negative result from
remove_block_if_useless ().
* mini.c (optimize_branches): Avoid restarting the iteration after each change.
Also fix some bblock linking issues.
* helpers.c (mono_disassemble_code): Reduce the size of the temporary
assembly files.
* mini.h: Define G_LIKELY/G_UNLIKELY macros for older glib versions.
* mini.h (MonoBasicBlock): Reorganize the fields, putting more frequently
accessed fields first, for better cache behavior.
Fri Mar 10 18:21:41 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: speedup IList<T> array accesses.
2006-03-09 Zoltan Varga <vargaz@gmail.com>
* mini.c (mono_method_to_ir): Handle large methods overflowing the
inline_costs counter. Fixes #77190.
2006-03-06 Zoltan Varga <vargaz@gmail.com>
* mini-exceptions.c: Call mono_trace_is_enabled () before printing
trace messages. Fixes #77706.
2006-03-04 Martin Baulig <martin@ximian.com>
* tramp-amd64.c, tramp-x86.c
(mono_debugger_create_notification_function): Use
mono_global_codeman_reserve() to allocate a buffer at runtime and
return it.
* debug-debugger.h (MonoDebuggerInfo): Added `initialize'.
* debug-debugger.c (mono_debugger_init): Dynamically allocate the
notification function at runtime and then call `initialize' in the
`MONO_DEBUGGER__debugger_info' vtable.
2006-03-04 Zoltan Varga <vargaz@gmail.com>
* iltests.il: Fix a visibility problem.
Wed Mar 1 15:55:25 CET 2006 Paolo Molaro <lupus@ximian.com>
* driver.c, mini.c: add hooks for the counters API.
Wed Mar 1 12:28:04 CET 2006 Paolo Molaro <lupus@ximian.com>
* driver.c: show disabled options.
Wed Mar 1 12:18:51 CET 2006 Paolo Molaro <lupus@ximian.com>
* linear-scan.c: always use cost-driven selection.
2006-02-28 Raja R Harinath <rharinath@novell.com>
* jit-icalls.c (helper_compile_generic_method): Revert change from
2006-02-24.
Mon Feb 27 18:58:19 GMT 2006 Paolo Molaro <lupus@ximian.com>
* cpu-arm.md, mini-arm.c: implemented MemoryBarrier.
Sat Feb 25 17:39:21 CET 2006 Paolo Molaro <lupus@ximian.com>
* inssel.brg: style fixes, mostly to force the updated monoburg
to run for people using svn.
Sat Feb 25 17:07:42 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: match monoburg changes.
Sat Feb 25 16:04:33 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini.h, mini.c, abcremoval.c, aliasing.c, liveness.c,
ssapre.c, graph.c, ssa.c: put the mono_burg_arity[]
declaration in the header file.
Sat Feb 25 14:19:31 CET 2006 Paolo Molaro <lupus@ximian.com>
* helpers.c: reduce relocations and mem usage.
Sat Feb 25 11:58:16 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini.h, mini-codegen.c: disable logging features if
requested by configure.
Sat Feb 25 11:54:49 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: tiny verifier changes.
Fri Feb 24 18:17:52 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini-ops.h, inssel-x86.brg, tramp-x86.c, mini-x86.c,
cpu-pentium.md: stack alignment changes for osx/x86,
partially from Geoff Norton <gnorton@customerdna.com>.
2006-02-24 Raja R Harinath <harinath@gmail.com>
* jit-icalls.c (helper_compile_generic_method): Update to changes
in metadata/class.c.
2006-02-24 Zoltan Varga <vargaz@gmail.com>
* mini-amd64.c (mono_arch_get_vcall_slot_addr): Add a missing check.
* mini-amd64.c (mono_arch_get_vcall_slot_addr): Add support for
interface calls with large offsets.
2006-02-23 Raja R Harinath <rharinath@novell.com>
* jit-icalls.c (helper_compile_generic_method): Document the
special-case we depend on so that we can inflate the method twice
with the same context with no bad side-effects.
Thu Feb 23 13:45:46 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini-x86.c, mini-amd64.c: fix for case when xen support
is disabled.
Wed Feb 22 19:38:40 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini-x86.c, mini-amd64.c: generate code to access tls items
in a faster way for Xen systems.
Wed Feb 22 10:31:25 CET 2006 Paolo Molaro <lupus@ximian.com>
* exceptions-x86.c, mini-x86.h, driver.c, mini-codegen.c:
updates and compilation fixes for the OSX/x86 port, mostly from
Geoff Norton <gnorton@customerdna.com>.
Tue Feb 21 19:56:55 CET 2006 Paolo Molaro <lupus@ximian.com>
* inssel.brg: faster interface call implementation
to sync with the interface_offsets MonoVTable changes.
Mon Feb 20 10:37:57 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: more verification checks.
Fri Feb 17 19:47:29 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: added a few more verification checks.
2006-02-17 Neale Ferguson <neale@sinenomine.net>
* mini-s390x.c, mini-s390x.h: Check for presence of long displacement
facility on the processor and use it if available.
Fri Feb 17 16:12:52 CET 2006 Paolo Molaro <lupus@ximian.com>
* driver.c, aot.c, mini.c: throw exception if the IL code is
invalid or unverifiable.
2006-02-17 Raja R Harinath <rharinath@novell.com>
* generics.2.cs (test_0_ldfld_stfld_mro): Use m.struct_field, not
m.StructField.
2006-02-16 Zoltan Varga <vargaz@gmail.com>
* generics.2.cs: Add some tests for generics ldfld/stfld wrappers.
Wed Feb 15 16:23:17 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini-s390x.c, mini-s390.c, mini.c, mini-amd64.c, mini-arm.c,
mini-ia64.c, mini-sparc.c, mini-x86.c, mini-ppc.c: fixed
handling of instantiated generic valuetypes.
2006-02-11 Zoltan Varga <vargaz@gmail.com>
* mini-exceptions.c mini-x86.h mini-x86.c: Get rid of
MONO_INIT_CONTEXT_FROM_CALLER, and use MONO_INIT_CONTEXT_FROM_FUNC
instead.
* generics.2.cs: Revert the nullable reftypes tests.
2006-02-10 Zoltan Varga <vargaz@gmail.com>
* mini-exceptions.c (MONO_INIT_CONTEXT_FROM_CALLER): Avoid
using __builtin_frame_address (1) as it doesn't work in the presence
of optimizations. Hopefully fixes #77273.
* Makefile.am generics.cs generics.2.cs: Revert the generics.2.cs
-> generics.cs change as it doesn't work with some automake versions.
Thu Feb 9 16:24:44 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: handle systems that sue a different way to
retrieve the stack address of the current thread.
2006-02-09 Zoltan Varga <vargaz@gmail.com>
* Makefile.am generics.2.cs: Rename this to generics.cs and handle
it specially in the makefile.
* generics.2.cs: Add tests for nullable reference types.
Wed Feb 8 19:33:17 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: always handle the case when mono_jit_init()
is called in a thread different from the main thread,
confusing libgc (bug #77309).
Mon Feb 6 09:01:24 EST 2006 Paolo Molaro <lupus@ximian.com>
* mini-ppc.c: fix handling of exceptions in large methods (bug #74932).
Fri Feb 3 18:51:35 CET 2006 Paolo Molaro <lupus@ximian.com>
* mini.c: change optimize_branches () to use a single loop
and introduce a new optimization to simplify some range checks.
2006-02-03 Martin Baulig <martin@ximian.com>
* debug-debugger.c (debugger_thread_manager_thread_created): Removed
and merged with debugger_thread_manager_add_thread().
(mono_debugger_main): Call debugger_thread_manager_add_thread() to
inform the debugger about the main thread.
2006-02-03 Zoltan Varga <vargaz@gmail.com>
* basic.cs: Add test for div.un/rem.un constant folding.
2006-02-03 Neale Ferguson <neale@sinenomine.net>
* cpu-s390x.md: correct int_xor_imm length
2006-02-03 Zoltan Varga <vargaz@gmail.com>
* generics.2.cs: New test for #77442.
* jit-icalls.c (helper_compile_generic_method): Check for null. Fixes
#77442.
2006-02-02 Martin Baulig <martin@ximian.com>
* tramp-x86.c, tramp-amd64.c: It's now safe to #include
<mono/metadata/mono-debug-debugger.h>
* debug-mini.c: Don't #define _IN_THE_MONO_DEBUGGER.
2006-02-02 Martin Baulig <martin@ximian.com>
* debug-debugger.h: New header file for debug-debugger.c.
* debug-debugger.c: Big API cleanup; don't run the managed Main()
function is a separate thread anymore; add support for attaching.
2006-02-01 Zoltan Varga <vargaz@gmail.com>
* tramp-x86.c: Fix a warning.
2006-01-31 Zoltan Varga <vargaz@gmail.com>
* mini-amd64.c (mono_arch_compute_omit_fp): Avoid hitting an assertion
on very large methods.