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