2003-05-27 Nick Drochak <ndrochak@gol.com>
[mono.git] / mono / mini / ChangeLog
1 2003-05-27  Nick Drochak <ndrochak@gol.com>
2
3         * basic-long.cs: tests for (ulong)int * (ulong)int also
4         * mini.c: use the same trick for (ulong)int * (ulong)int
5
6 2003-05-27  Nick Drochak <ndrochak@gol.com>
7
8         * basic-long.cs: add regression test for (long)int * (long)int
9         * cpu-pentium.md: add op_bigmul specification
10         * inssel-long32.brg: add OP_BIGMUL rule
11         * mini-ops.h: add OP_BIGMUL
12         * mini-x86.c: register allocator: handle case where src1 needs to be
13         in EAX.
14         * mini.c: substitute special BIGMUL opcode in the tree for 
15         (long)int * (long)int
16
17 Mon May 26 20:20:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
18
19         * jit-icalls.c: call the type ctor on field access if needed.
20
21 Mon May 26 15:21:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
22
23         * mini-ops.h, mini.c, inssel.brg, exceptions.cs: validate arguments passed
24         to a method (including results of ldelema, bug#43207).
25
26 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
27
28         * graph.c (cfg_emit_one_loop_level): loop over all blocks. use
29         colors to show exception handler blocks.
30
31         * inssel-x86.brg (OP_OUTARG_VT): dont push zero sized structures
32         (fix for pinvoke7.cs).
33
34 Mon May 26 12:11:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
35
36         * mini.h, mini.c: ensure correct initialization order for types that
37         require it. Prepare for lazy compilation of jit icall wrappers.
38         Provide a name for opcode emulation to reduce unneeded mallocing.
39
40 Fri May 23 16:08:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
41
42         * mini-x86.c: better register restoring code and profiling
43         support for tail calls.
44
45 Fri May 23 15:30:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
46
47         * mini.h, driver.c: prepare for leaf methods optimization.
48
49 Fri May 23 15:28:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
50
51         * mini.c: get targets of branches before converting a method.
52
53 2003-05-23  Dietmar Maurer  <dietmar@ximian.com>
54
55         * mini.c (optimize_branches): added some experimental code (disbaled) 
56
57 2003-05-22  Dietmar Maurer  <dietmar@ximian.com>
58
59         * mini.c (optimize_branches): fix branch to branch optimization 
60
61         * exceptions-x86.c (mono_arch_handle_exception): bug fix.
62
63         * mini-x86.c (mono_arch_output_basic_block): cleanup up exception code
64
65         * inssel-x86.brg: added OP_START_HANDLER, CEE_ENDFINALLY, OP_ENDFILTER
66
67         * mini-x86.c (mono_arch_allocate_vars): only reserve space for lmf
68         if needed.
69
70 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
71
72         * mini.c (mono_method_to_ir): call handle_loaded_temps before inlining.
73         enable use of interface variables again.
74
75         * mini-x86.c (mono_arch_get_allocatable_int_vars): dont allocate
76         I1 to registers because there is no simply way to sign extend 8bit
77         quantities in caller saved registers on x86.
78
79         * inssel-float.brg: set costs of some rules to 2 so
80         that monobure always select the arch. specific ones if supplied,
81         regardless of the order we pass the files to monoburg.
82
83 Tue May 20 17:19:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
84
85         * mini.c, mini-x86.c: since the magic trampoline for jumps
86         can't patch the code directly, we do it as soon as the
87         method gets compiled.
88
89 Tue May 20 16:02:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
90
91         * mini-x86.c, mini.h: introduce a new patching method
92         to support CEE_JMP and tail calls.
93         * mini.c: obey tail.call. Don't precompile methods target
94         of CEE_JMP.
95         * tramp-x86.c: new trampoline code to handle methods
96         reached through a jump.
97
98 2003-05-20  Dietmar Maurer  <dietmar@ximian.com>
99
100         * mini-x86.c (mono_arch_get_allocatable_int_vars): allocate 8/16
101         bit values to registers
102
103 2003-05-19  Dietmar Maurer  <dietmar@ximian.com>
104
105         * mini.c (mono_compile_get_interface_var): share interface
106         variables if possible.
107
108 2003-05-16  Martin Baulig  <martin@ximian.com>
109
110         * debug-mini.c (mono_init_debugger): New function to initialize
111         the debugger.  This is not in the debugger since it needs to
112         access some of mini's internals.
113
114 2003-05-16  Dietmar Maurer  <dietmar@ximian.com>
115
116         * mini.c (mono_method_to_ir): inlining fixes/cleanups
117
118 Fri May 16 13:27:23 CEST 2003 Paolo Molaro <lupus@ximian.com>
119
120         * mini.c, mini-opts.h, inssel.brg: inline small memcpy
121         for value type handling.
122
123 2003-05-16  Dietmar Maurer  <dietmar@ximian.com>
124
125         * mini.c (mono_method_to_ir): inline LDFLD/STFLD wrappers
126         (mono_method_check_inlining): enable inlining of all kinds of wrappers
127
128 2003-05-15  Lluis Sanchez Gual  <lluis@ideary.com>
129
130         * mini.c: fixed little bug in CEE_NEWOBJ case when calling
131           the constructor through a proxy.
132
133 Thu May 15 17:17:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
134
135         * jit-icalls.c, inssel.brg: fixes to array element address
136         calculations.
137
138 2003-05-15  Dietmar Maurer  <dietmar@ximian.com>
139
140         * mini-x86.c (is_regsize_var): allocate pointer to registers
141
142 Thu May 15 13:04:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
143
144         * driver.c: fixed typo, added intrins to the set of optimizations
145         tested with regressions.
146
147 Thu May 15 11:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
148
149         * mini-ops.h, mini.c, inssel.brg: optimize access to 2D arrays.
150         * jit-icalls.c, exceptions.cs: fixed index out of range checks, added
151         test case.
152
153 2003-05-14  Dietmar Maurer  <dietmar@ximian.com>
154
155         * inssel.brg: remove some common pop instructions without side effects
156
157 Wed May 14 12:40:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
158
159         * inssel-x86.brg: fixed thinko in int to double conversions.
160
161 Wed May 14 12:01:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
162
163         * mini.c, jit-icalls.c: added runtime thread-static variable support.
164
165 Tue May 13 22:02:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
166
167         * inssel-long32.brg: two more missing instructions.
168
169 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
170
171         * mini.c (mono_emit_call_args): set the cil_code for all arguments
172         if not already set.
173
174 2003-05-12  Zoltan Varga  <vargaz@freemail.hu>
175
176         * mini-x86.c (mono_arch_output_basic_block): Handle negative zero
177         correctly.
178
179         * basic-float.cs: Added tests for negative zero.
180
181 Sun May 11 14:56:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
182
183         * inssel-long32.brg, basic-long.cs, exceptions.cs: handle
184         a couple of missing operations for long casts, with test cases.
185
186 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
187
188         * exceptions-x86.c: fixed small leaks in mono_arch_handle_exception.
189
190 2003-05-09  Dietmar Maurer  <dietmar@ximian.com>
191
192         * mini-x86.c (mono_arch_emit_prolog): avoid reallocs with better
193         code size estimation.
194
195 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
196
197         * mini.c (mono_jit_create_remoting_trampoline): make it work with
198         abstract methods (fix bug 42542)
199
200         * aot.c: add ability to handle array types
201         
202 2003-05-08  Zoltan Varga  <vargaz@freemail.hu>
203
204         * mini.c: Call the _specific versions of the object allocation
205         functions if possible.
206
207 Tue May 6 17:18:33 CEST 2003 Paolo Molaro <lupus@ximian.com>
208
209         * driver.c: call setlocale ().
210
211 Tue May 6 14:38:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
212
213         * mini.h, mini.c, aot.c, debug-mini.c, exceptions.c: build fixes for
214         windows build.
215
216 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
217
218         * mini.c (optimize_branches): dont touch code inside exception clauses (fix bug 38136)
219
220         * exceptions-x86.c (ves_icall_get_frame_info): also skip remoting
221         wrappers (fix bug 42122)
222
223 2003-05-04  Martin Baulig  <martin@ximian.com>
224
225         * mini.h (mono_jit_init, mono_jit_cleanup): Added prototypes.
226
227         * driver.c: s/MONO_OPT_SAHRED/MONO_OPT_SHARED/g.
228         s/mini_set_defaults/mono_set_defaults/g.
229
230 2003-05-04  Martin Baulig  <martin@ximian.com>
231
232         * driver.c: s/mini_parse_default_optimizations/mono_parse_default_optimizations/g.
233
234 Sun May 4 11:48:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
235
236         * inssel-long32.brg: add missing lreg: OP_LCONV_TO_U8 (lreg) rule
237         (reported by Don Roberts).
238
239 Fri May 2 18:36:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
240
241         * mini.c: temporarily work around two bugs for this release.
242
243 Fri May 2 17:37:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
244
245         * Makefile.am: avoid linking libmono with GMODULE_LIBS, because
246         that contains -export-dynamic and it makes using the ld script
247         useless.
248         * mini.h, main.c, driver.c: s/mini_main/mono_main/g.
249
250 Fri May 2 12:52:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
251
252         * mini.h, mini-x86.c, driver.c: disable optimizations not available on a
253         specific cpu.
254
255 Thu May 1 15:28:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
256
257         * mini.c: make sure leave calls all the needed finally blocks,
258         even when the target jumps out of multiple exception clauses.
259
260 Thu May 1 15:18:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
261
262         * ldscript, Makefile.am: add linker script to reduce the number of
263         exported symbols (should also fix the issues with libwine defining
264         some of the same symbols in io-layer).
265
266 2003-05-01  Zoltan Varga  <vargaz@freemail.hu>
267
268         * driver.c (mini_main): Avoid assertion when no file name is given on 
269         the command line.
270
271 Wed Apr 30 15:33:11 CEST 2003 Paolo Molaro <lupus@ximian.com>
272
273         * driver.c: added --version/-V command line option.
274         Added the inline optimization in the regression tests.
275
276 Wed Apr 30 15:16:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
277
278         * mini.c, basic-calls.cs: when inlining, save arguments to locals according 
279         to the type in the method signature (fixes bug#42134).
280
281 Wed Apr 30 12:38:44 CEST 2003 Paolo Molaro <lupus@ximian.com>
282
283         * mini.c: when inlining, check this is not null only when needed (bug #42135).
284
285 Wed Apr 30 11:44:36 CEST 2003 Paolo Molaro <lupus@ximian.com>
286
287         * mini-ppc.h, tramp-pcc.c: type fixes from Max Horn <max@quendi.de>.
288
289 2003-04-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
290
291         * driver.c: fixed bug #42100.
292
293 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
294
295         * mini.c (mono_method_to_ir): UNBOX need to CAST objects first
296
297 Mon Apr 28 17:03:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
298
299         * mini.c: moved most of the code required to do inlining to its own
300         function so it can be reused. Inline also ctors if appropriate.
301
302 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
303
304         * Makefile.am: Link with -export-dynamic so shared libs loaded by
305         the runtime can call mono API functions.
306
307 2003-04-27  Martin Baulig  <martin@ximian.com>
308
309         * debug-mini.c (mono_debug_init_method): Added
310         `guint32 breakpoint_id' argument; if the method has a breakpoint,
311         send a notification to the debugger.
312
313         * mini.c (mono_method_to_ir): Don't insert a breakpoint if we're
314         running in the Mono Debugger, just pass the breakpoint number to
315         mono_debug_init_method().
316
317         * tramp-x86.c, tramp-ppc.c: Removed the breakpoint trampolines.
318
319 Sun Apr 27 13:18:04 CEST 2003 Paolo Molaro <lupus@ximian.com>
320
321         * mini.c: allow some more unsafe compares.
322
323 Sat Apr 26 11:55:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
324
325         * mini-x86.c, Makefile.am: make distcheck works (partially from
326         a patch by Richard Lee <r.h.lee@attbi.com>).
327         * regset.c, regset.h: removed, they are unused.
328
329 2003-04-25  Dick Porter  <dick@ximian.com>
330
331         * driver.c: Usage reports the name as 'mono' not 'mini'
332         * exceptions-x86.c: Build and run on freebsd
333
334 Thu Apr 24 17:09:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
335
336         * Makefile.am: install the program with the 'mono' name and
337         the library as libmono instead of mini and libmini.
338
339 Thu Apr 24 17:08:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
340
341         * driver.c: provide the APIs for the embedding interface of the old jit.
342
343 2003-04-23  Dietmar Maurer  <dietmar@ximian.com>
344
345         * jit-icalls.c (helper_stelem_ref): impl. (fix bug 41775)
346
347 2003-04-23  Martin Baulig  <martin@ximian.com>
348
349         * tramp-x86.c, tramp-ppc.c: Reenable the debugger breakpoint interface.
350
351         * driver.c: Added `--debug' command line argument to enable
352         debugging support.
353
354 2003-04-23  Martin Baulig  <martin@ximian.com>
355
356         * debug.[ch]: Removed.  The code is now in
357         ../metadata/mono-debug.[ch] and mono-debug-debugger.[ch].
358
359         * debug-stabs.c, debug-dwarf2.c: Removed; nobody used this for the
360         last six months.
361
362 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
363
364         * mini.c (mono_method_to_ir): set the cil_code address (fix bug 41525)
365
366 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
367
368         * mini.c:
369         (mini_cleanup): moved mono_runtime_cleanup call after the call to
370         mono_domain_finalize.
371         (mini_method_compile): use mono_method_profile* if the the option is
372         enabled.
373
374 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
375
376         * tramp-x86.c (mono_arch_create_jit_trampoline): Subsitute synchronized
377         methods with their wrapper.
378
379         * tramp-ppc.c (mono_arch_create_jit_trampoline): Subsitute synchronized
380         methods with their wrapper.
381
382         * jit-icalls.c (mono_ldvirtfn): Subsitute synchronized methods with
383         their wrapper.
384
385         * mini.c (mono_method_to_ir): Subsitute synchronized methods with their
386         wrapper.
387
388         * mini.c (mono_method_check_inlining): Avoid inlining synchronized
389         methods.
390
391 2003-04-17  Dietmar Maurer  <dietmar@ximian.com>
392
393         * exceptions-x86.c (mono_arch_handle_exception): fix for bug 36252
394
395 2003-04-16  Dietmar Maurer  <dietmar@ximian.com>
396
397         * mini.c (mono_compile_create_var): use g_malloc/g_realloc instead
398         of the mempool. This is slightly faster and uses less memory
399
400 Wed Apr 16 12:53:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
401
402         * mini.c: avoid O(n) allocation for variables.
403
404 Tue Apr 15 19:13:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
405
406         * mini.c: handle items on the stack after inlining methods.
407
408 Tue Apr 15 14:17:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
409
410         * mini.c: make the method->opcode optimization dependent
411         on MONO_OPT_INSTRINS and do it lazily.
412
413 Tue Apr 15 14:15:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
414
415         * driver.c: print overall results at the end of regression run.
416
417 Tue Apr 15 11:18:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
418
419         * inssel.brg: don't overwrite symbolic registers.
420
421 Mon Apr 14 17:41:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
422
423         * inssel-x86.brg: fix conversion from long to float.
424
425 2003-04-11  Dietmar Maurer  <dietmar@ximian.com>
426
427         * mini.c (mini_init): use an opcode for get_Chars (OP_GETCHR)
428
429 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
430
431         * mini.c (mono_type_blittable): MONO_TYPE_OBJECT is blittable.
432
433         * driver.c: Added --print-vtable option as in the old JIT.
434
435 Thu Apr 10 17:43:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
436
437         * inssel-long32.brg, exceptions.cs: fix conversions from long, too.
438
439 Thu Apr 10 16:27:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
440
441         * inssel.brg, basic.cs: fixed checked conversions to byte and short.
442
443 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
444
445         * mini.c regalloc.c regalloc.h: Fix memory leak.
446
447 2003-04-09  Dietmar Maurer  <dietmar@ximian.com>
448
449         * aot.c (mono_aot_get_method): register all used strings
450
451 Wed Apr 9 15:22:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
452
453         * mini.c: always intern strings references with ldstr at compile time.
454
455 Tue Apr 8 11:41:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
456
457         * Makefile.am: add BUILT_SOURCES.
458
459 Mon Apr 7 16:31:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
460
461         * driver.c: give a better error message when the assembly to execute
462         doesn't have an entry point.
463
464 2003-04-07  Dietmar Maurer  <dietmar@ximian.com>
465
466         * Makefile.am: added hack for automake
467
468         * mono/mini/mini.c (mono_save_args): always copy arguments to keep
469         correct sematics.
470
471         * mono/mini/ssa.c (mono_ssa_avoid_copies): don't optimize calls
472
473 22003-04-07  Martin Baulig  <martin@ximian.com>
474
475         * Makefile.am: Added Makefile.am.
476
477         * debugger-main.c: Removed, this is now in the debugger where it
478         belongs.
479
480         * mini.pc.in: Call this package `mini' for the moment.
481
482