vector register allocation

2010-06-25 Thread BLUE 3TOO


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

2010-06-25 Thread BLUE 3TOO

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

2010-07-08 Thread BLUE 3TOO

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?

2010-07-09 Thread BLUE 3TOO

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

2010-07-12 Thread BLUE 3TOO

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

2010-07-12 Thread BLUE 3TOO

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