Re: Can you write code directly in CIL ???
"Peter Olcott" <olcott@att.net > wrote in message
news:0izsf.3804 9$QW2.32014@duk eread08...[color=blue]
>
> "Willy Denoyette [MVP]" <willy.denoyett e@telenet.be> wrote in message
> news:ezbs6U5CGH A.2292@tk2msftn gp13.phx.gbl...[color=green]
>>
>> "Peter Olcott" <olcott@att.net > wrote in message
>> news:g8ksf.3800 5$QW2.12382@duk eread08...[color=darkred]
>>>
>>> "Willy Denoyette [MVP]" <willy.denoyett e@telenet.be> wrote in message
>>> news:%233iWaovC GHA.1032@TK2MSF TNGP11.phx.gbl. ..
>>>>
>>>> "Peter Olcott" <olcott@att.net > wrote in message
>>>> news:IEbsf.3796 5$QW2.18916@duk eread08...
>>>>>
>>>>> "Abubakar" <abubakarm@gmai l.com> wrote in message
>>>>> news:%23tiR4prC GHA.3820@TK2MSF TNGP12.phx.gbl. ..
>>>>>> Hi,
>>>>>>> Cab you write code directly in the Common Intermediate language? I
>>>>>>> need to
>>>>>>> optimize a critical real-time function.
>>>>>>
>>>>>> ofcourse you can, by now you may even have done it. Just write few
>>>>>> *.il
>>>>>> lines and pass it to ilasm (that comes with the sdk) and you'll get
>>>>>> the
>>>>>> managed binary.
>>>>>>
>>>>>> although Nicholas tried explaning. I have just few things to add.
>>>>>>
>>>>>> 1- If you look at the shared source implementation of .net, ie, SSCLI
>>>>>> (aka
>>>>>> ROTOR), you wont find a single *.il file that microsoft devs had to
>>>>>> write in
>>>>>> order to acheive better performance. The max they did to write fast
>>>>>> code as
>>>>>> a .net code was to write the unsafe C# code (which uses pointers).
>>>>>> Beyond
>>>>>> that, places that needed to get maximum efficiency like JIT, they
>>>>>> used a
>>>>>> pure c++ code and in very few places, x86 assembly code was used. I
>>>>>> think if
>>>>>> those developers could acheive anything significant by writing il
>>>>>> directly,
>>>>>> they would have done that.
>>>>> What I had in mind was to write the best possible code in C++ and have
>>>>> the best compiler translate this into assembly language. The best
>>>>> compiler so far seems to be Visual C++ 6.0. Some of the optimizations
>>>>> in 7.0 are disabled, in particular function inlining. Then I was going
>>>>> to hand tweak this generated assembly language. Then as a final step I
>>>>> was going to translate this into CIL.
>>>>>
>>>>>> 2- C# compiler is as clever in generating msil as anyone can possibly
>>>>>> get. I
>>>>> False assumption when one examines the benchmarks of managed C++
>>>>> against managed C#, Managed C++ does significantly better in at least
>>>>> some cases.
>>>>>
>>>>
>>>> Not sure where you get this from? Did you actually run such benchmarks?
>>>> I did run many benchmarks, since v1.0 comparing both C# and Managed C++
>>>> (and C++/CLI) and I never saw a delta (yes, for some C# is the winner)
>>>> larger than 5%, using v2 they are even smaller.
>>>>
>>>>
>>>>
>>>> Willy.
>>>>
>>>>
>>> I found it on the web, some of the differences were several-fold. I
>>> don't know which versions.[/color]
>>
>> Well, they were wrong, for sure, Please post the URL's where you found
>> this kind of nonsense.
>>
>> Willy.[/color]
>
> The difference between VC++ 6.0 and VC++ 7.0 is 50%. The older compiler
> produces much better code.[/color]
Ok, now you are again comparing C++(6.0) to C++ (7.1) while previously you
were comparing C++ to C#.
But also this one is one of your claims you can't (or are not willing?)
prove, anyway if it's true I would suggest you to file a bug report
(http://lab.msdn.microsoft.com).
I can prove that the newest C++ compiler produces equal or better (faster)
code than VC6.
Willy.
"Peter Olcott" <olcott@att.net > wrote in message
news:0izsf.3804 9$QW2.32014@duk eread08...[color=blue]
>
> "Willy Denoyette [MVP]" <willy.denoyett e@telenet.be> wrote in message
> news:ezbs6U5CGH A.2292@tk2msftn gp13.phx.gbl...[color=green]
>>
>> "Peter Olcott" <olcott@att.net > wrote in message
>> news:g8ksf.3800 5$QW2.12382@duk eread08...[color=darkred]
>>>
>>> "Willy Denoyette [MVP]" <willy.denoyett e@telenet.be> wrote in message
>>> news:%233iWaovC GHA.1032@TK2MSF TNGP11.phx.gbl. ..
>>>>
>>>> "Peter Olcott" <olcott@att.net > wrote in message
>>>> news:IEbsf.3796 5$QW2.18916@duk eread08...
>>>>>
>>>>> "Abubakar" <abubakarm@gmai l.com> wrote in message
>>>>> news:%23tiR4prC GHA.3820@TK2MSF TNGP12.phx.gbl. ..
>>>>>> Hi,
>>>>>>> Cab you write code directly in the Common Intermediate language? I
>>>>>>> need to
>>>>>>> optimize a critical real-time function.
>>>>>>
>>>>>> ofcourse you can, by now you may even have done it. Just write few
>>>>>> *.il
>>>>>> lines and pass it to ilasm (that comes with the sdk) and you'll get
>>>>>> the
>>>>>> managed binary.
>>>>>>
>>>>>> although Nicholas tried explaning. I have just few things to add.
>>>>>>
>>>>>> 1- If you look at the shared source implementation of .net, ie, SSCLI
>>>>>> (aka
>>>>>> ROTOR), you wont find a single *.il file that microsoft devs had to
>>>>>> write in
>>>>>> order to acheive better performance. The max they did to write fast
>>>>>> code as
>>>>>> a .net code was to write the unsafe C# code (which uses pointers).
>>>>>> Beyond
>>>>>> that, places that needed to get maximum efficiency like JIT, they
>>>>>> used a
>>>>>> pure c++ code and in very few places, x86 assembly code was used. I
>>>>>> think if
>>>>>> those developers could acheive anything significant by writing il
>>>>>> directly,
>>>>>> they would have done that.
>>>>> What I had in mind was to write the best possible code in C++ and have
>>>>> the best compiler translate this into assembly language. The best
>>>>> compiler so far seems to be Visual C++ 6.0. Some of the optimizations
>>>>> in 7.0 are disabled, in particular function inlining. Then I was going
>>>>> to hand tweak this generated assembly language. Then as a final step I
>>>>> was going to translate this into CIL.
>>>>>
>>>>>> 2- C# compiler is as clever in generating msil as anyone can possibly
>>>>>> get. I
>>>>> False assumption when one examines the benchmarks of managed C++
>>>>> against managed C#, Managed C++ does significantly better in at least
>>>>> some cases.
>>>>>
>>>>
>>>> Not sure where you get this from? Did you actually run such benchmarks?
>>>> I did run many benchmarks, since v1.0 comparing both C# and Managed C++
>>>> (and C++/CLI) and I never saw a delta (yes, for some C# is the winner)
>>>> larger than 5%, using v2 they are even smaller.
>>>>
>>>>
>>>>
>>>> Willy.
>>>>
>>>>
>>> I found it on the web, some of the differences were several-fold. I
>>> don't know which versions.[/color]
>>
>> Well, they were wrong, for sure, Please post the URL's where you found
>> this kind of nonsense.
>>
>> Willy.[/color]
>
> The difference between VC++ 6.0 and VC++ 7.0 is 50%. The older compiler
> produces much better code.[/color]
Ok, now you are again comparing C++(6.0) to C++ (7.1) while previously you
were comparing C++ to C#.
But also this one is one of your claims you can't (or are not willing?)
prove, anyway if it's true I would suggest you to file a bug report
(http://lab.msdn.microsoft.com).
I can prove that the newest C++ compiler produces equal or better (faster)
code than VC6.
Willy.
Comment