RTL help needed

llewelly@xmission.com llewelly@xmission.com
Thu Jul 1 16:23:00 GMT 2004


Puneet Goyal <puneet_iitian@yahoo.com> writes:

> I am facing some problem in understanding rtl
> representation. Please help

Questions about gcc's IR, whether it be rtl, gimple, or what have you,
    should be directed to gcc at gcc.gnu.org .

> 
> Ques:
> What should i do to know which insn has plus or minus
> or... in it, and how to address the operands of
> operator like plus/minus/left shift/.......
> 
> 
> This is my program:
> int foo(int x, int y) {
> 	return x+y;
> }
> main() {
> 	int a=10;
> 	int b=1;
> 	int c=10;
> 	int e[4];
>         a=a+10;  
> 	e[0] = 5;
> 	int d=foo(a,b)+c;
> 	e[1] = 6;
> 
> **********************************
> On analyzing its rtl representation and following its
> insn chain i.e.
>  for (insn = get_insns (); insn; insn = NEXT_INSN
> (insn)) 
> {
> print insn id
> print defs(the web ids(DEFID)) and some related things
> print use (webid for corresponding use and see its
> register reference structure)
> 
> }
> 
> i printed following output:
> *******
> insn id=48 code=48 class=5
> 
> *******
> insn id=5 code=43 class=7
> 
> *******
> insn id=6 code=43 class=7
> DEFID=2  refid=2 regno==60 insnid=6code=72 class=8
> 
> *******
> insn id=7 code=43 class=7
> DEFID=3  refid=4 regno==61 insnid=7code=72 class=8
> USE**=2  refid=1 regno==60 insnid=7code=72 class=8
> 
> *******
> insn id=8 code=43 class=7
> DEFID=4  refid=6 regno==62 insnid=8code=72 class=8
> USE**=3  refid=2 regno==61 insnid=8code=72 class=8
> 
> *******
> insn id=9 code=43 class=7
> DEFID=5  refid=8 regno==63 insnid=9code=72 class=8
> USE**=4  refid=3 regno==62 insnid=9code=72 class=8
> 
> *******
> insn id=10 code=43 class=7
> DEFID=6  refid=9 regno==64 insnid=10code=72 class=8
> USE**=5  refid=4 regno==63 insnid=10code=72 class=8
> 
> <blah blah blah>
> 
> 
> *******
> insn id=34 code=43 class=7
> USE**=10  refid=19 regno==72 insnid=34code=72 class=8
> 
> *******
> insn id=35 code=45 class=7
> DEFID=21  refid=30 regno==15 insnid=35code=72 class=8
> DEFID=20  refid=29 regno==14 insnid=35code=72 class=8
> DEFID=19  refid=28 regno==13 insnid=35code=72 class=8
> DEFID=18  refid=27 regno==12 insnid=35code=72 class=8
> DEFID=17  refid=26 regno==11 insnid=35code=72 class=8
> DEFID=16  refid=25 regno==10 insnid=35code=72 class=8
> DEFID=15  refid=24 regno==9 insnid=35code=72 class=8
> DEFID=14  refid=23 regno==8 insnid=35code=72 class=8
> DEFID=13  refid=22 regno==2 insnid=35code=72 class=8
> DEFID=12  refid=21 regno==1 insnid=35code=72 class=8
> DEFID=11  refid=20 regno==0 insnid=35code=72 class=8
> DEFID=11  refid=19 regno==0 insnid=35code=72 class=8
> 
> *******
> insn id=36 code=43 class=7
> DEFID=56  refid=66 regno==58 insnid=36code=72 class=8
> USE**=11  refid=22 regno==0 insnid=36code=72 class=8
> 
> 
> <blah blah blah>
> **************************************************
> **************************************************
> **************************************************
> **************************************************
> **************************************************
> 
> What should i do to know which insn has plus or minus
> or... in it, and how to address the operands of
> operator like plus/minus/left shift/
> 
> I am in need of this If you can please help please
> help.
> Please reply asap
> 
> Dr. Puneet
> IIT DELHI
> INDIA
> 
> 
> 		
> __________________________________
> Do you Yahoo!?
> Yahoo! Mail is new and improved - Check it out!
> http://promotions.yahoo.com/new_mail



More information about the Gcc-help mailing list