Thank all of you so much. 

 

I want to designate some functions to be output into one .I file.

For example, initially, function A and function B are in file1.cxx, function
C and function D are in file2.cxx.

I want to output function A, B, cC into file1.I and output function D into
file2.I.

 

I use pathscale 2.4. 

 

Thanks,

May 

 

  _____  

From: Gautam Chakrabarti [mailto:gautam.c...@yahoo.com] 
Sent: Wednesday, July 07, 2010 12:08 PM
To: Sun Chan; Tianwei
Cc: Li Shengmei; open64-devel@lists.sourceforge.net
Subject: Re: [Open64-devel] The debug and generation of .I files during
IPA??

 

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_l
ink...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-l
inux-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/3
2 -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-redh
at-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-redh
at-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_l
ink -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-l
inux/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-re
dhat-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-linu
x/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 <http://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

Reply via email to