Sujet : Re: C23 thoughts and opinions
De : cr88192 (at) *nospam* gmail.com (BGB)
Groupes : comp.lang.cDate : 08. Jun 2024, 06:04:02
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v40oqa$2fjig$1@dont-email.me>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
User-Agent : Mozilla Thunderbird
On 6/7/2024 10:08 PM, Lawrence D'Oliveiro wrote:
On Fri, 7 Jun 2024 16:58:08 -0500, BGB-Alt wrote:
I think code generation went in the bulky direction when they started
adding auto-vectorization, and not really any option to be like "Yes, I
want SIMD instructions enabled, but, no, don't autovectorize."
>
Sometimes vectorization makes things faster, sometimes not, but one
thing it does do, is make the generated binaries bigger.
And MSVC is the compiler that Microsoft use to build Windows itself, isn’t
it?
Yes, pretty much.
Unless they’ve turned to GCC now ...
I think there has been at least some experimental use of Clang as an alternative compiler in Visual Studio.
But, in general, I suspect MS doesn't care if the EXE and DLL files are bulky and if their compiler doesn't win the performance game. They had kept trying to push people over to .NET anyways, which doesn't exactly improve things in terms of performance.
One thing MSVC does have going for it, is that Visual Studio is a much better debugger and profiler (in terms of user interface) than GDB and GPROF.
Though, there was also WinDbg, which is a more powerful debugger, but with a less well polished UI.
Can also note that the compilers handle debugging info different:
GCC tends to put debug data in the binary itself (as DWARF or STABS);
MSVC puts it into external files (".PDB" or similar).
One merit of using separate files is that one doesn't need to recompile to remove the debugging data.
Thus far, my compiler had used an augmented form of the symbol maps; using a similar format to the output of the "nm" tool; but with additional types of lines for things like line-number information and similar, etc. Currently not yet anything to describe things like stack-frame or structure layouts, etc (and there may need to be a better way to do this than to shove all this stuff in a symbol map file).
...