For control on generating the .I files from IPA, you can look at
ipa/common/ipc_bwrite.cxx (start from IP_WRITE_pu()). Basically by default, it
starts emitting PUs into a .I file, until the file size exceeds a predefined
limit, then it moves on to the next .I file.
If you are looking for matching .I file for input files, you can use the option
-IPA:source_pu_order=on.
Gautam
________________________________
From: Sun Chan <sun.c...@gmail.com>
To: Tianwei <tianwei.sh...@gmail.com>
Cc: Li Shengmei <lis...@gmail.com>; open64-devel@lists.sourceforge.net
Sent: Tue, July 6, 2010 1:55:14 AM
Subject: Re: [Open64-devel] The debug and generation of .I files during IPA??
you can also use whirl2c, whirl2f... to convert the .I files back to .c/c++/f
files for easier reading and debugging.
Sun
On Tue, Jul 6, 2010 at 4:51 PM, Tianwei <tianwei.sh...@gmail.com> wrote:
>
>
>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
>
>
------------------------------------------------------------------------------
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