This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: RTL help needed
- From: 王逸 <cnnjuwy at hotmail dot com>
- To: gcc at gcc dot gnu dot org
- Cc: EMPEROR <kalyan_ch at students dot iiit dot net>
- Date: Fri, 16 Jul 2004 20:14:08 +0800
- Subject: Re: RTL help needed
- Organization: Nanjing University
- References: <Pine.LNX.4.44.0407111739310.17307-100000@students.iiit.net>
There's a chapter dealing with RTL in gcc internals, though it is not very
detailed, I think it's helpful and it's enough to help you understand the
dumped RTL code.
On the other hand, you can read GCC source, not the concrete code, read the
comments is very much helpful.
WangYi
hi all
I need to learn RTL .but the documentation given in the gcc site
is not clear and vivid.Can some one explain me the following RTL
code so that I can extend them to other programs and learn them myself
the c code
=======================
#include<stdio.h>
main()
{
int a=10;
}
=======================
the corresponding RTL code
********************************************************
;; Function main
(note 2 0 6 NOTE_INSN_DELETED)
(insn 6 2 8 (parallel[ (set (reg/f:SI 7 esp) (and:SI (reg/f:SI 7
esp) (const_int -16 [0xfffffff0])))
(clobber (reg:CC 17 flags))
] ) -1 (nil)
(nil))
(insn 8 6 10 (set (reg:SI 59) (const_int 0 [0x0])) -1 (nil)
(expr_list:REG_EQUAL (const_int 0 [0x0])
(nil)))
(insn 10 8 12 (parallel[ (set (reg/f:SI 7 esp) (minus:SI (reg/f:SI
7 esp) (reg:SI 59)))
(clobber (reg:CC 17 flags))
] ) -1 (nil)
(nil))
(insn 12 10 3 (set (reg/f:SI 60) (reg/f:SI 55
virtual-stack-dynamic)) -1 (nil)
(nil))
(note 3 12 4 NOTE_INSN_FUNCTION_BEG)
(note 4 3 13 NOTE_INSN_DELETED)
(note 13 4 14 0x401bc680 NOTE_INSN_BLOCK_BEG)
(note 14 13 17 NOTE_INSN_DELETED)
(insn 17 14 18 (set (mem/f:SI (plus:SI (reg/f:SI 54
virtual-stack-vars) (const_int -4 [0xfffffffc])) [0 a+0 S4 A32])
(const_int 10 [0xa])) -1 (nil)
(nil))
(note 18 17 19 0x401bc680 NOTE_INSN_BLOCK_END)
(note 19 18 24 NOTE_INSN_FUNCTION_END)
(insn 24 19 25 (clobber (reg/i:SI 0 eax)) -1 (nil)
(nil))
(insn 25 24 21 (clobber (reg:SI 58)) -1 (nil)
(nil))
(code_label 21 25 23 1 "" "" [0 uses])
(insn 23 21 26 (set (reg/i:SI 0 eax) (reg:SI 58)) -1 (nil)
(nil))
(insn 26 23 0 (use (reg/i:SI 0 eax)) -1 (nil)
(nil))
************************************************************
thnks in advance