RTL help needed
Puneet Goyal
puneet_iitian@yahoo.com
Thu Jul 1 11:04:00 GMT 2004
I am facing some problem in understanding rtl
representation. Please help
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