dotgnu-pnet
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Dotgnu-pnet] [patch #6799] libJIT 1.2.5 + / 1.2 1/2 Release (code


From: Kirill Kononenko
Subject: Re: [Dotgnu-pnet] [patch #6799] libJIT 1.2.5 + / 1.2 1/2 Release (code name: libJIT-ON-TESTOSTERONE)
Date: Tue, 7 Apr 2009 10:24:19 +0400

For other architectures. It is -very easy- to add support to use both
the old code generator and the data-flow and control-flow based
optimisations that are already used in the new code generator. When
compilation and run for other architectures than IA-32 stabilizes,
such support of other optimization level for different architectures
can be added in one-two days. These are basically only a couple of
extra lines with #defines #if def mostly.


Thanks,
Kirill

2009/4/7 Kirill Kononenko <address@hidden>:
> Because of very limited time I have not been able to test my code on
> different architectures than IA-32, and only on Debian even. So
> everyone who wants to submit patches, is either already in the list
> with open write access, or let me know if you want one.
>
>
> Thanks,
> Kirill
>
>
> 2009/4/7 Kirill Kononenko <address@hidden>:
>> Hi Boris,
>>
>>
>> Thanks a lot for the patch. I have also fixed a bug I found in
>> CALL_FINALLY.  You can freely submit any of your code to the svn
>> repository. In case instruction selection for the new code generator
>> has not been yet added it should fall back to the old register
>> allocator, like the old one does with falling back to the interpreter.
>> Do  you think you can fix this issue when you have a couple of free
>> minutes? Feel free to submit any of your code to the svn. See the web
>> page on how to check in to the repository (svn commit etc). Please let
>> me know if there any issues with svn access.
>>
>>
>> Thanks,
>> Kirill
>>
>> 2009/4/7 Boris Manojlovic <address@hidden>:
>>> Hello,
>>>
>>> this patch is NOT serious patch as it is just cosmetics to be able compiling
>>> it on x86_64 but anyway it compiles :) and
>>> it of course seg fault under dpas test cases..
>>>
>>>
>>> small part of debug....
>>> ---------------------------------------------------------------------------------------------------------
>>> $ gdb
>>> /home/steki/libjit-linear-scan-register-allocator-read-only/libjit/dpas/.libs/lt-dpas
>>> GNU gdb (GDB; openSUSE 11.1) 6.8.50.20081120-cvs
>>> Copyright (C) 2008 Free Software Foundation, Inc.
>>> License GPLv3+: GNU GPL version 3 or later
>>> <http://gnu.org/licenses/gpl.html>
>>> This is free software: you are free to change and redistribute it.
>>> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
>>> and "show warranty" for details.
>>> This GDB was configured as "x86_64-suse-linux".
>>> For bug reporting instructions, please see:
>>> <http://bugs.opensuse.org/>...
>>> (gdb) set args loop.pas
>>> (gdb) run
>>> Starting program:
>>> /builder/libjit-linear-scan-register-allocator-read-only/libjit/dpas/.libs/lt-dpas
>>> loop.pas
>>> [Thread debugging using libthread_db enabled]
>>>
>>> Program received signal SIGSEGV, Segmentation fault.
>>> 0x00007ffff7b84e18 in jit_insn_call_intrinsic (func=0x6214c0,
>>> name=0x7ffff7bc8bf5 "jit_int_to_ushort", intrinsic_func=0x7ffff7b8bb60,
>>> descriptor=0x7ffff7dda4e0, arg1=0x621988,
>>>     arg2=0x0) at jit-insn.c:6250
>>> 6250    {
>>> (gdb) up
>>> #1  0x00007ffff7b855ff in jit_insn_convert (func=0x6214c0, value=0x621988,
>>> type=<value optimized out>, overflow_check=0) at jit-insn.c:5004
>>> 5004                            value = apply_unary_conversion
>>> (gdb)
>>> #2  0x00007ffff7b84e61 in jit_insn_call_intrinsic (func=0x6214c0,
>>> name=0x7ffff7bcba40 "\001", intrinsic_func=0x7ffff7bcba80,
>>> descriptor=0x7ffff7dde5f0, arg1=0x621988, arg2=0x0)
>>>     at jit-insn.c:6272
>>> 6272            arg1 = jit_insn_convert(func, arg1, descriptor->arg1_type,
>>> 0);
>>> (gdb)
>>> #3  0x00007ffff7b855ff in jit_insn_convert (func=0x6214c0, value=0x621988,
>>> type=<value optimized out>, overflow_check=0) at jit-insn.c:5004
>>> 5004                            value = apply_unary_conversion
>>> (gdb)
>>> #4  0x00007ffff7b84e61 in jit_insn_call_intrinsic (func=0x6214c0,
>>> name=0x7ffff7bc8bf5 "jit_int_to_ushort", intrinsic_func=0x7ffff7b8bb60,
>>> descriptor=0x7ffff7dda4e0, arg1=0x621988,
>>>     arg2=0x0) at jit-insn.c:6272
>>> 6272            arg1 = jit_insn_convert(func, arg1, descriptor->arg1_type,
>>> 0);
>>> (gdb)
>>> ---------------------------------------------------------------------------------------------------------
>>>
>>>
>>> On Sat, Apr 4, 2009 at 3:55 PM, Kirill Kononenko <address@hidden>
>>> wrote:
>>>>
>>>> URL:
>>>>  <http://savannah.gnu.org/patch/?6799>
>>>>
>>>>                 Summary: libJIT 1.2.5 + / 1.2 1/2 Release (code name:
>>>> libJIT-ON-TESTOSTERONE)
>>>>                 Project: DotGNU Portable.NET
>>>>            Submitted by: krokas
>>>>            Submitted on: Sat 04 Apr 2009 01:55:14 PM GMT
>>>>                Category: None
>>>>                Priority: 5 - Normal
>>>>                  Status: None
>>>>                 Privacy: Public
>>>>             Assigned to: None
>>>>        Originator Email:
>>>>             Open/Closed: Open
>>>>         Discussion Lock: Any
>>>>
>>>>    _______________________________________________________
>>>>
>>>> Details:
>>>>
>>>>        * Add optimization levels for IA-32 from 0 to 4
>>>> (jit_set_optimization_level)
>>>>        * Add a new specialized jit_abi_internal
>>>>        * Add brand new optimized object code generator (level 1, 2, 3, 4
>>>> of
>>>> optimization)
>>>>        * Various low-level machine dependent optimizations and tricks
>>>>        * Aggressive optimization of division by integer constants as
>>>>          by Torbjorn Granlund and Peter L. Montgomery in "Division By
>>>> Invariant
>>>> Integers using Multiplication"
>>>>          divcnst-pldi94.pdf
>>>>        * Add primitive code generators for MMX/Streaming SIMD
>>>> Extensions/SSE/SSE2/SSE3 and others
>>>>        * Use SIMD SSE/SSE2/SSE3 for floating point values and operations
>>>> (level 1,
>>>> 2, 3, 4 of optimization\\)
>>>>        * Data-flow and control-flow based analysis (level 1, 2, 3, 4 of
>>>> optimization)
>>>>        * Fast liveness analysis (level 2 of optimization)
>>>>        * Dead-code elimination (level 4 of optimization)
>>>>        * Full liveness analysis (level 3, 4 of optimization)
>>>>        * Linear scan register allocator algorithm (level 2)
>>>>        * Bin packing register allocator algorithm (level 3, 4)
>>>>        * Tested on DotGNU Portable.NET Common Language Runtime
>>>>          / a Microsoft Common Intermediate Language Virtual Machine
>>>>
>>>>
>>>> Download is at:
>>>>
>>>>
>>>> http://libjit-linear-scan-register-allocator.googlecode.com/files/libjit-0.1.2.5%2B.tar.gz
>>>>
>>>> See also:
>>>>
>>>> http://code.google.com/p/libjit-linear-scan-register-allocator
>>>> jit-cil.net
>>>>
>>>>
>>>>
>>>>
>>>>    _______________________________________________________
>>>>
>>>> Reply to this item at:
>>>>
>>>>  <http://savannah.gnu.org/patch/?6799>
>>>>
>>>> _______________________________________________
>>>>  Message sent via/by Savannah
>>>>  http://savannah.gnu.org/
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Dotgnu-pnet mailing list
>>>> address@hidden
>>>> http://lists.gnu.org/mailman/listinfo/dotgnu-pnet
>>>
>>>
>>>
>>> --
>>> "Only two things are infinite, the universe and human stupidity, and I'm not
>>> sure about the former."-Albert Einstein
>>>
>>> _______________________________________________
>>> Dotgnu-pnet mailing list
>>> address@hidden
>>> http://lists.gnu.org/mailman/listinfo/dotgnu-pnet
>>>
>>>
>>
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]