This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RTL help needed


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]