Computation and usage of SSA_NAME_PTR_INFO
Hello, 1. Which passes of gcc make use of points-to information in SSA_NAME_PTR_INFO (or more precisely, pt_solution) in doing optimizations? 2. Also, who computes this points-to information and populates pt_solution? Is it ONLY ipa-pta pass? When I accessed pt_solution through a plugin which REPLACES ipa-pta pass, I found that the information (in pt_solution) with and without ipa-pta pass differs only in terms of flags in pt_solution. Here with the examples I could construct, I found that the bitmap 'vars' in pt_solution is same for both the cases. Is it always true? Can someone please help in clarifying these doubts. Thanks in advance. -- Regards, Nikhil Patil.
Fortran Compiler Hangs
Hello Everyone, The fortran compiler (f951) seem to hang even for a simple hello world program in GCC. This is causing the whole gcc build process to hang at the following line: checking for x86_64-unknown-linux-gnu-gfortran... /export/users/gcc-svn/b-cilkplus-gcc/./gcc/gfortran -B/export/users/gcc-svn/b-cilkplus-gcc/./gcc/ -B/export/users/gcc-svn/install_dir/cilkplus-install/x86_64-unknown-linux-gnu/bin/ -B/export/users/gcc-svn/install_dir/cilkplus-install/x86_64-unknown-linux-gnu/lib/ -isystem /export/users/gcc-svn/install_dir/cilkplus-install/x86_64-unknown-linux-gnu/include -isystem /export/users/gcc-svn/install_dir/cilkplus-install/x86_64-unknown-linux-gnu/sys-include checking whether we are using the GNU Fortran compiler... I tried a small hello world program and it was also hanging. I tried to gdb it and here is the backtrace. My current revision is at r198424. My previous revision was at r198143 and I believe things were working fine there. Here is the test program: PRINT *, 'Hello, world!' END Here is the back trace: (gdb) bt #0 0x00ece7f1 in __gmpn_mul_1 () #1 0x00ed540b in __gmpn_mul_basecase () #2 0x00ed3c2f in __gmpn_kara_mul_n () #3 0x00ed40df in __gmpn_kara_mul_n () #4 0x00ed4bd5 in __gmpn_toom3_mul_n () #5 0x00ed52ac in __gmpn_mul_n () #6 0x00ed011f in __gmpn_mul () #7 0x00edd4e4 in __gmpn_toom22_mul () #8 0x00eded73 in __gmpn_toom32_mul () #9 0x00ed0080 in __gmpn_mul () #10 0x00ec9cd3 in __gmpz_mul () #11 0x00ea2fb1 in S () #12 0x00ea2f95 in S () #13 0x00ea2f6b in S () #14 0x00ea2f95 in S () #15 0x00ea2f6b in S () #16 0x00ea2f6b in S () #17 0x00ea2f95 in S () #18 0x00ea2f6b in S () #19 0x00ea2f6b in S () #20 0x00ea326b in mpfr_const_log2_internal () #21 0x00eb98af in mpfr_cache () #22 0x00ea36eb in mpfr_log () #23 0x00eb3165 in mpfr_log10 () #24 0x0051d2af in gfc_arith_init_1() () #25 0x00576463 in gfc_init_1() () #26 0x005c5bb3 in gfc_init() () #27 0x0097d8b7 in toplev_main(int, char**) () #28 0x77644bc6 in __libc_start_main () from /lib64/libc.so.6 #29 0x0051bb41 in _start () at ../sysdeps/x86_64/elf/start.S:113 Thanks, Balaji V. Iyer.
Re: Fortran Compiler Hangs
Hello Iyer, Iyer, Balaji V wrote: The fortran compiler (f951) seem to hang even for a simple hello world program in GCC. This is causing the whole gcc build process to hang at the following line: checking for x86_64-unknown-linux-gnu-gfortran... /export/users/gcc-svn/b-cilkplus-gcc/./gcc/gfortran First question: Do you use the trunk or some branch? From your email, I'd assume that you use the trunk, but "b-cilkplus-gcc" rather implies that you are using some branch. Looking at the backtrace, it seems as if your GMP (GNU Multiprecision [integer] Library) and/or MPFR (multi-precision floating-point library) is not correctly working, e.g. you might use a different library version at run time than you compiled against. The problem could be either f951 -> MPFR or MFPR -> GMP. Or it could be something different. In any case, the failure happens very early in the f951 when the some variables are initialized - which is before the parser even has started. Tobias I tried a small hello world program and it was also hanging. I tried to gdb it and here is the backtrace. My current revision is at r198424. My previous revision was at r198143 and I believe things were working fine there. Here is the test program: PRINT *, 'Hello, world!' END Here is the back trace: (gdb) bt #0 0x00ece7f1 in __gmpn_mul_1 () #1 0x00ed540b in __gmpn_mul_basecase () #2 0x00ed3c2f in __gmpn_kara_mul_n () #3 0x00ed40df in __gmpn_kara_mul_n () #4 0x00ed4bd5 in __gmpn_toom3_mul_n () #5 0x00ed52ac in __gmpn_mul_n () #6 0x00ed011f in __gmpn_mul () #7 0x00edd4e4 in __gmpn_toom22_mul () #8 0x00eded73 in __gmpn_toom32_mul () #9 0x00ed0080 in __gmpn_mul () #10 0x00ec9cd3 in __gmpz_mul () #11 0x00ea2fb1 in S () #12 0x00ea2f95 in S () #13 0x00ea2f6b in S () #14 0x00ea2f95 in S () #15 0x00ea2f6b in S () #16 0x00ea2f6b in S () #17 0x00ea2f95 in S () #18 0x00ea2f6b in S () #19 0x00ea2f6b in S () #20 0x00ea326b in mpfr_const_log2_internal () #21 0x00eb98af in mpfr_cache () #22 0x00ea36eb in mpfr_log () #23 0x00eb3165 in mpfr_log10 () #24 0x0051d2af in gfc_arith_init_1() () #25 0x00576463 in gfc_init_1() () #26 0x005c5bb3 in gfc_init() () #27 0x0097d8b7 in toplev_main(int, char**) () #28 0x77644bc6 in __libc_start_main () from /lib64/libc.so.6 #29 0x0051bb41 in _start () at ../sysdeps/x86_64/elf/start.S:113
How am I supposed to verify gcc-4.8.0 download when you provide no .sig file?...
Just downloaded 4.8.0 from one of your mirror sites listed at [http://gcc.gnu.org/mirrors.html] and would like to verify the file with GPG. Your site says "The archives there will be signed by one of the following GnuPG keys...", but I see no .sig/.asc file on the mirror sites (or in the package itself), so how am I supposed to verify the file, exactly? -Scott
RE: Fortran Compiler Hangs
> -Original Message- > From: Tobias Burnus [mailto:bur...@net-b.de] > Sent: Monday, April 29, 2013 3:47 PM > To: Iyer, Balaji V > Cc: 'gcc@gcc.gnu.org' > Subject: Re: Fortran Compiler Hangs > > Hello Iyer, > > Iyer, Balaji V wrote: > > The fortran compiler (f951) seem to hang even for a simple hello world > program in GCC. This is causing the whole gcc build process to hang at the > following line: > > > > checking for x86_64-unknown-linux-gnu-gfortran... > > /export/users/gcc-svn/b-cilkplus-gcc/./gcc/gfortran > > First question: Do you use the trunk or some branch? From your email, I'd > assume that you use the trunk, but "b-cilkplus-gcc" rather implies that you > are > using some branch. Hi Tobias, I found this issue when I updated my cilkplus branch with trunk. Then, I went to the same revision in the trunk and the same issue was there also. > > > Looking at the backtrace, it seems as if your GMP (GNU Multiprecision > [integer] > Library) and/or MPFR (multi-precision floating-point library) is not correctly > working, e.g. you might use a different library version at run time than you > compiled against. The problem could be either f951 > -> MPFR or MFPR -> GMP. Or it could be something different. In any case, > the failure happens very early in the f951 when the some variables are > initialized > - which is before the parser even has started. I downloaded the MPFR, MPC and GMP libraries using ./contrib/download_prerequisites script. I am still having the same issue. I tried simple programs on cc1 and cc1plus and it seem to work OK. Thanks, Balaji V. Iyer. > > Tobias > > > I tried a small hello world program and it was also hanging. I tried to gdb > > it and > here is the backtrace. My current revision is at r198424. My previous revision > was at r198143 and I believe things were working fine there. > > > > Here is the test program: > > > > PRINT *, 'Hello, world!' > > END > > > > Here is the back trace: > > (gdb) bt > > #0 0x00ece7f1 in __gmpn_mul_1 () > > #1 0x00ed540b in __gmpn_mul_basecase () > > #2 0x00ed3c2f in __gmpn_kara_mul_n () > > #3 0x00ed40df in __gmpn_kara_mul_n () > > #4 0x00ed4bd5 in __gmpn_toom3_mul_n () > > #5 0x00ed52ac in __gmpn_mul_n () > > #6 0x00ed011f in __gmpn_mul () > > #7 0x00edd4e4 in __gmpn_toom22_mul () > > #8 0x00eded73 in __gmpn_toom32_mul () > > #9 0x00ed0080 in __gmpn_mul () > > #10 0x00ec9cd3 in __gmpz_mul () > > #11 0x00ea2fb1 in S () > > #12 0x00ea2f95 in S () > > #13 0x00ea2f6b in S () > > #14 0x00ea2f95 in S () > > #15 0x00ea2f6b in S () > > #16 0x00ea2f6b in S () > > #17 0x00ea2f95 in S () > > #18 0x00ea2f6b in S () > > #19 0x00ea2f6b in S () > > #20 0x00ea326b in mpfr_const_log2_internal () > > #21 0x00eb98af in mpfr_cache () > > #22 0x00ea36eb in mpfr_log () > > #23 0x00eb3165 in mpfr_log10 () > > #24 0x0051d2af in gfc_arith_init_1() () > > #25 0x00576463 in gfc_init_1() () > > #26 0x005c5bb3 in gfc_init() () > > #27 0x0097d8b7 in toplev_main(int, char**) () > > #28 0x77644bc6 in __libc_start_main () from /lib64/libc.so.6 > > #29 0x0051bb41 in _start () at > > ../sysdeps/x86_64/elf/start.S:113
gcc-4.8.0: march=amdfam10 vs march=native on a k10
On a box where amdfam10 is the native arch, 4.8 #defines two symbols with march=native which it does not with march=amdfam10: :; gcc-4.8.0 -march=amdfam10 -E -dM - /tmp/amdfam10 :; gcc-4.8.0 -march=native -E -dM - /tmp/native :; diff -U0 /tmp/amdfam10 /tmp/native --- /tmp/amdfam10 2013-04-29 18:07:22.435553711 -0400 +++ /tmp/native 2013-04-29 18:07:14.987605897 -0400 @@ -76,0 +77 @@ +#define __FXSR__ 1 @@ -156,0 +158 @@ +#define __PRFCHW__ 1 Should -march=amdfam10 then also set -mfxsr and -mprfchw? -JimC -- James Cloos OpenPGP: 1024D/ED7DAEA6
Re: How am I supposed to verify gcc-4.8.0 download when you provide no .sig file?...
Am 29.04.2013 22:14, schrieb Scott Baldwin: Just downloaded 4.8.0 from one of your mirror sites listed at [http://gcc.gnu.org/mirrors.html] and would like to verify the file with GPG. Your site says "The archives there will be signed by one of the following GnuPG keys...", but I see no .sig/.asc file on the mirror sites (or in the package itself), so how am I supposed to verify the file, exactly? Interestingly, the .sig files are only on the GNU server, e.g. http://ftp.gnu.org/gnu/gcc/gcc-4.8.0/ but not on the GCC server, e.g. ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.8.0/ As the latter is used by the mirrors, it is also not available on the mirrors. Tobias
RE: How am I supposed to verify gcc-4.8.0 download when you provide no .sig file?...
I was able to verify it with the .sig from gnu.org ftp, along with the info at http://ftp.gnu.org/ about where to obtain the gnu-keyring.gpg file. A suggestion... In addition to making sure the .sig is copied to your mirrors, I recommend including the gnu-keyring.gpg info (from http://ftp.gnu.org) at http://gcc.gnu.org/mirrors.html instead of just saying "The archives on these mirrors will be signed by one of the following GnuPG keys: ..." and listing the fingerprints (but not providing the actual keys). One more thing... 4.8.0 was signed with an expired key: $ gpg --verify --keyring ./gnu-keyring.gpg ./gcc-4.8.0.tar.gz.sig gpg: Signature made Fri 22 Mar 2013 08:32:29 AM CDT using DSA key ID C3C45C06 gpg: Good signature from "Jakub Jelinek " gpg: Note: This key has expired! Primary key fingerprint: 33C2 35A3 4C46 AA3F FB29 3709 A328 C3A2 C3C4 5C06 Also, I am about to submit a bug ("internal compiler error") I found in 4.8.0/4.8.1, which of course clang has no problem with. -Original Message- From: Tobias Burnus [mailto:bur...@net-b.de] Sent: Monday, April 29, 2013 5:25 PM To: Scott Baldwin Cc: gcc@gcc.gnu.org Subject: Re: How am I supposed to verify gcc-4.8.0 download when you provide no .sig file?... Am 29.04.2013 22:14, schrieb Scott Baldwin: > Just downloaded 4.8.0 from one of your mirror sites listed at > [http://gcc.gnu.org/mirrors.html] and would like to verify the file > with GPG. > > Your site says "The archives there will be signed by one of the > following GnuPG keys...", but I see no .sig/.asc file on the mirror > sites (or in the package itself), so how am I supposed to verify the file, exactly? Interestingly, the .sig files are only on the GNU server, e.g. http://ftp.gnu.org/gnu/gcc/gcc-4.8.0/ but not on the GCC server, e.g. ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.8.0/ As the latter is used by the mirrors, it is also not available on the mirrors. Tobias
Re: GSoC openMP task scheduling Advice
Dear All, I'm trying to speed up the OpenMP implementation in GCC and Intel compiler. I'm working on multisort because i thought it has too much branches and i applied tree model task. I used Paraver and Extrae to profile program After that, I executed them on a machine Minotauro supercomputer in top500 with Intel Xeon E5649 E5649 (6-Core, each core has 2 threads) a 2.53 GHz. The following report shows the OpenMP in GCC scheduling vs Intel C Compiler https://github.com/grypp/gcc-gsoc-taskscheduler/raw/master/report.pdf And Here is my omp code https://github.com/grypp/gcc-gsoc-taskscheduler/blob/master/multisort-omp.c I thought gcc tasks/threads waiting too much on the idle than intel compiler's threads. In addition to I tried to profiling nanos task scheduler with mercurium compiler. I used 3 scheduler types in nanos. These're respectively -Work-First (WF) -Breadth-First (BF) -Cilk (CILK) I run this program on computer has 12 processors. The following image shows the trace of schedulers: https://raw.github.com/grypp/gcc-gsoc-taskscheduler/master/nns.png And Here is my ompss code https://github.com/grypp/gcc-gsoc-taskscheduler/blob/master/multisort-ompss-tree.c In addition to i got speed up interestingly breadth-first more than others. Texecution times: -Work-First (WF): ~0.5 -Breadth-First (BF): ~0.22 -Cilk (CILK): ~0.49 I also read this mail "http://gcc.gnu.org/ml/gcc/2011-04/msg00040.html";. I suppose lazy task creatation algorithm was implemented on gcc. I do not know. I wonder? Lazy task creation algorithm may good. But task scheduling is not good. Currently, I'm planning to change task scheduling algorithm with BF. But i am not sure it's good or not. In addition to i'll ask some idea related task scheduling my professor who is the main writer papers that gave you and is director of the barcelona supercomputer center. Are there any advice your? Regards, Güray Özen Polytechnic University of Catalonia 2013/4/26 guray.ozen : > Hi, > > I'm MSc High-Performance Computing student at Polytechnic University > of Catalonia(BarcelonaTech). I'm interesting openmp task scheduling > optimization or openmp 3.1 facility taskyield. > > @For Task scheduling > I'm using mercurium compiler already at my university because the > compiler was developed by my university. In fact i'm working on > openACC integration at mercurium. However i haven't enough knowledge > nanos scheduler. > > I read 3 articles that you recommend related task scheduling. Cilk and > work-first scheduling algorithms makes sense for me with cut-off > mechanism. I suppose cut-off mechanism will decide on run-time. > > Now I'm trying to understand which task scheduler is better in some > cases at nanos scheduler > (https://pm.bsc.es/projects/nanox/wiki/UserManual/Schedule). I'll > analyze result with PARAVER profiling tool. > > However i am not sure for this topics. Should i develop a new > task-scheduler? otherwise should I optimize existing scheduler? > > > King regards, > > > Güray Özen > Polytechnic University of Catalonia