vector register allocation
Hello, Can anybody explain how the register allocation is handled in GCC? Is it done together with the general register allocation? or GCC has a separate phase to handle them separately? Any pointer to the source code that I can take a look? Thanks Peng _ Turn down-time into play-time with Messenger games http://go.microsoft.com/?linkid=9734385
RE: vector register allocation
Ian, thanks a lot for the help. Is there any document about IRA (e.g. how the SIMD registers of a specific architecture is exposed to the allocation process)? or the only option is the read the code? what is the best information source for a beginner on gcc? Thanks again. > From: i...@google.com > To: blue_3...@hotmail.com > CC: gcc@gcc.gnu.org > Subject: Re: vector register allocation > Date: Fri, 25 Jun 2010 14:38:19 -0700 > > BLUE 3TOO writes: > >> Can anybody explain how the register allocation is handled in GCC? >> Is it done together with the general register allocation? or GCC >> has a separate phase to handle them separately? > > There is no separate vector register allocator. All classes of > registers are allocated using the same register allocator. In current > GCC we use IRA by Vladimir Makarov. > > Ian _ Learn more ways to connect with your buddies now http://go.microsoft.com/?linkid=9734388
a few beginner questiosn
Hi, I have following questions and would appreciate any comment. Thanks you very much. 1. How to build a debugable version of GCC? I tried to set CFLGAS & CXXFLAGS to "-O0 -g -fno-inline" in my configure command line, but it seems it doesn't work. I manually modify all the Makefiles in gcc sub-directories and replace "-O2" with "-O0 -g", it is dumb but works. I guess there is a better way that I am not aware of. Can anybody tell me how to do it? 2. during the "make" process, i noticed it enters gcc-4.5.0/host-i686-pc-cygwin/gcc and build the same source files three times: E.g. first time: gcc .././gcc/c-typeck.c -o c-typeck.o 2nd time: xgcc -O2 -gtoggle .././gcc/c-typeck.c -o c-typeck.o 3rd time:xgcc -O2 -DIN_GCC .././gcc/c-typeck.c -o c-typeck.o Can anybody tells me what these compilation for? Seems that the first one is building gcc, how about 2nd and 3rd one? thanks 3. what is libgcc and newlib for? 4. what are these directories for? prev-i686-pc-cygwin/ stage1-i686-pc-cygwin/ 5. what is libssp for? what is lto-plugin for? thank you very much. _
where is INTEGER_CST defined?
Hi, I cannot find the declaration of INTEGER_CST. Seems it is generated during the build process? Is there a way to let the building process to generate all the source files that are needed for a smooth source browsing? Thanks _ Turn down-time into play-time with Messenger games http://go.microsoft.com/?linkid=9734385
struct tree_type
Hello, I did a quick search on "gcc internal" document and cannot find any explanation about the field meaning of struct tree_type. I am trying to use typedef to introduce some new aggregrate types that my gcc can handle. And I want to mark these types so that I can handle these types specifically. I might have to differenciate my own types into several categories, therefore I need several marking bits. My application will be in C/C++. Is there any fields that I can recycle? Or it is better to introduce some new fields. Can somebody quickly explain what the bit fields are for? thanks unsigned int precision : 10; unsigned no_force_blk_flag : 1; unsigned needs_constructing_flag : 1; unsigned transparent_aggr_flag : 1; unsigned restrict_flag : 1; unsigned contains_placeholder_bits : 2; ENUM_BITFIELD(machine_mode) mode : 8; unsigned string_flag : 1; unsigned lang_flag_0 : 1; unsigned lang_flag_1 : 1; unsigned lang_flag_2 : 1; unsigned lang_flag_3 : 1; unsigned lang_flag_4 : 1; unsigned lang_flag_5 : 1; unsigned lang_flag_6 : 1; _ Game on: Challenge friends to great games on Messenger http://go.microsoft.com/?linkid=9734387
RE: Compilation time in gcc-4.4.0
33 minutes to 39 second? that sounds a drastic improvement. The performance improvement is also amazing. You can try to divide your program into subphases and measure the biggest change in time and then focus on parts that contribute to the most improvement. Sometimes it is can be done quickly through comparing the optimization log/IR dumpings/assembly. if everything is right, your paper probably is a good story to tell. But before that, I guess the compiler is quite noisey. :) > From: i...@google.com > To: maxiw...@gmail.com > CC: gcc@gcc.gnu.org > Subject: Re: Compilation time in gcc-4.4.0 > Date: Sat, 10 Jul 2010 15:04:02 -0700 > > Maxiwell Garcia writes: > >> I am writing a paper about instruction-set architecture simulators. In >> first time, I used gcc-4.4.0 and the compilation time reached 33 >> minutes (with -O3) for my simulator and the performance reached 270 >> MIPS (Million instruction per second). When I used the gcc-4.4.4, in >> the same code, the compilation time reached 39 seconds and the >> performance reached 600 MIPS. My code have many "switchs" with 512 >> "cases" and the library is in use. >> How to explain this behavior in the compilation and performance in my paper? > > If I'm reading this correctly, it sounds like a useful optimization fix > in gcc 4.4.4. The compiler runs faster and generates better code. > > So I'm not sure what your question is. Are you asking us why gcc has > gotten better? > > Ian _ Learn more ways to connect with your buddies now http://go.microsoft.com/?linkid=9734388