On Tue, Jul 6, 2010 at 4:17 PM, Li Shengmei <lis...@gmail.com> wrote:

> Hi,all
>        I want to know how the .I files which are generated during IPA. The
> debug document of IPA is "TBD" in the doc of Open64.
>        Does anyone know the generation of .I files or give some suggestions
> about studying it?
>        What is the principle of generating .I files? How can I control the
> generation?
>
> Basically, you can use "-show -keep" to see the process, and finally you
will find a temporal directory, such as:
a.out.ipakeep directory where it will store all the .I fines, also the
symbol table information.

For the .I files, in IPO transformation phase, it will be divided into two
phases:
1. apply the transformation phase, generated the transformed IR, i.e .I
files, also perform the alias analysis
2. after the transformation phase,  it will annotate the alias analysis
result into the IR, the original .I files will be renamed into I.save
and annotated IR will be the final .I files.

for the debugging,
you can debug the ipa_link directly, for example:
(gdb) file ipa_link
Load new symbol table from
"/home/tianwei/sdracer-vm/install/lib/gcc-lib/x86_64-open64-linux/4.2.3/ipa_link"?
(y or n) y
Reading symbols from
/home/tianwei/sdracer-vm/install/lib/gcc-lib/x86_64-open64-linux/4.2.3/ipa_link...done.
(gdb) b Perform_Interprocedural_Analysis
Note: breakpoint 2 also set at pc 0x4c523f.
Breakpoint 3 at 0x4c523f: file ../../ipa/main/analyze/ipa_main.cxx, line
267.
(gdb) r
 
-INTERNAL:old_ld_lib_path="/home/tianwei/sdracer-vm/install//lib/gcc-lib/x86_64-open64-linux/4.2.3/;/home/tianwei/sdracer-vm/install//lib/gcc-lib/x\
86_64-open64-linux/4.2.3/;;/home/tianwei/sdracer-vm/install/bin/../i686-pc-linux-gnu/x86_32-linux/lib"
-L/home/tianwei/sdracer-vm/install/lib/gcc-lib/x86_64\
-open64-linux/4.2.3/32
-Wl,-rpath,/home/tianwei/sdracer-vm/install/lib/gcc-lib/x86_64-open64-linux/4.2.3/32
-Wl,-rpath-link,/home/tianwei/sdracer-vm/install\
/lib/gcc-lib/x86_64-open64-linux/4.2.3/32 -INTERNAL:lang=C -keep
-IPA:new_dsa=1 -IPA:dsa_fs=1 -IPA:svi=1 -m32 -m elf_i386
-L/home/tianwei/sdracer-vm/install\
/open64-gcc-4.2.0/bin/../lib/gcc/x86_64-redhat-linux/4.2.0/
-Wl,-rpath,/home/tianwei/sdracer-vm/install/open64-gcc-4.2.0/bin/../lib/gcc/x86_64-redhat-linux/\
4.2.0/
-Wl,-rpath-link,/home/tianwei/sdracer-vm/install/open64-gcc-4.2.0/bin/../lib/gcc/x86_64-redhat-linux/4.2.0/
-L/usr/lib/../lib/ -Wl,-rpath-link,/usr/l\
ib/../lib/
-L/home/tianwei/sdracer-vm/install///lib/gcc-lib/x86_64-open64-linux/4.2.3/32
-Wl,-rpath,/home/tianwei/sdracer-vm/install///lib/gcc-lib/x86_64-op\
en64-linux/4.2.3/32
-Wl,-rpath-link,/home/tianwei/sdracer-vm/install///lib/gcc-lib/x86_64-open64-linux/4.2.3/32
/usr/lib/../lib/crt1.o /usr/lib/../lib/crti.\
o
/home/tianwei/sdracer-vm/install/open64-gcc-4.2.0/bin/../lib/gcc/x86_64-redhat-linux/4.2.0/crtbegin.o
-o test test.o -lpthread -lrace -lopen64rt -lgcc -lc\
 -lgcc
/home/tianwei/sdracer-vm/install/open64-gcc-4.2.0/bin/../lib/gcc/x86_64-redhat-linux/4.2.0/crtend.o
/usr/lib/../lib/crtn.o
Starting program:
/home/tianwei/sdracer-vm/install/lib/gcc-lib/x86_64-open64-linux/4.2.3/ipa_link
-INTERNAL:old_ld_lib_path="/home/tianwei/sdracer-vm/instal\
l//lib/gcc-lib/x86_64-open64-linux/4.2.3/;/home/tianwei/sdracer-vm/install//lib/gcc-lib/x86_64-open64-linux/4.2.3/;;/home/tianwei/sdracer-vm/install/bin/../\
i686-pc-linux-gnu/x86_32-linux/lib"
-L/home/tianwei/sdracer-vm/install/lib/gcc-lib/x86_64-open64-linux/4.2.3/32
-Wl,-rpath,/home/tianwei/sdracer-vm/install/\
lib/gcc-lib/x86_64-open64-linux/4.2.3/32
-Wl,-rpath-link,/home/tianwei/sdracer-vm/install/lib/gcc-lib/x86_64-open64-linux/4.2.3/32
-INTERNAL:lang=C -keep -I\
PA:new_dsa=1 -IPA:dsa_fs=1 -IPA:svi=1 -m32 -m elf_i386
-L/home/tianwei/sdracer-vm/install/open64-gcc-4.2.0/bin/../lib/gcc/x86_64-redhat-linux/4.2.0/
-Wl,-rp\
ath,/home/tianwei/sdracer-vm/install/open64-gcc-4.2.0/bin/../lib/gcc/x86_64-redhat-linux/4.2.0/
-Wl,-rpath-link,/home/tianwei/sdracer-vm/install/open64-gcc-\
4.2.0/bin/../lib/gcc/x86_64-redhat-linux/4.2.0/ -L/usr/lib/../lib/
-Wl,-rpath-link,/usr/lib/../lib/
-L/home/tianwei/sdracer-vm/install///lib/gcc-lib/x86_64-\
open64-linux/4.2.3/32
-Wl,-rpath,/home/tianwei/sdracer-vm/install///lib/gcc-lib/x86_64-open64-linux/4.2.3/32
-Wl,-rpath-link,/home/tianwei/sdracer-vm/instal\
l///lib/gcc-lib/x86_64-open64-linux/4.2.3/32 /usr/lib/../lib/crt1.o
/usr/lib/../lib/crti.o
/home/tianwei/sdracer-vm/install/open64-gcc-4.2.0/bin/../lib/gcc/\
x86_64-redhat-linux/4.2.0/crtbegin.o -o test test.o -lpthread -lrace
-lopen64rt -lgcc -lc -lgcc
/home/tianwei/sdracer-vm/install/open64-gcc-4.2.0/bin/../lib\
/gcc/x86_64-redhat-linux/4.2.0/crtend.o /usr/lib/../lib/crtn.o

Breakpoint 2, Perform_Interprocedural_Analysis () at
../../ipa/main/analyze/ipa_main.cxx:267

Note that you need to add " " to wrapper around the old_ld_lib_path.


you can use gdb to see how the IPO generate the .I files.

Tianwei

> Thanks a lot,
> May
>
>
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by Sprint
> What will you do first with EVO, the first 4G phone?
> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
> _______________________________________________
> Open64-devel mailing list
> Open64-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/open64-devel
>



-- 
Sheng, Tianwei
Inst. of High Performance Computing
Dept. of Computer Sci. & Tech.
Tsinghua Univ.
------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to