diff options
author | Seongbae Park <seongbae.park@gmail.com> | 2007-07-03 22:44:26 +0000 |
---|---|---|
committer | Seongbae Park <spark@gcc.gnu.org> | 2007-07-03 22:44:26 +0000 |
commit | e3ceb300c565aff0fc5e84cba60e4f715db62a27 (patch) | |
tree | fee268f6ce2ec4dded09aca6c74859c781bb418e | |
parent | d9ad7862455aba7f2cb9b4f42859dc228702d5f7 (diff) | |
download | gcc-e3ceb300c565aff0fc5e84cba60e4f715db62a27.zip gcc-e3ceb300c565aff0fc5e84cba60e4f715db62a27.tar.gz gcc-e3ceb300c565aff0fc5e84cba60e4f715db62a27.tar.bz2 |
rtl.def (UNSPEC, [...]): More comments.
2007-07-03 Seongbae Park <seongbae.park@gmail.com>
* rtl.def (UNSPEC, USE, CLOBBER): More comments.
From-SVN: r126286
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/rtl.def | 23 |
2 files changed, 23 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0c07aac..87a37dd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2007-07-03 Seongbae Park <seongbae.park@gmail.com> + + * rtl.def (UNSPEC, USE, CLOBBER): More comments. + 2007-07-04 Ben Elliston <bje@au.ibm.com> * c-objc-common.c (c_types_compatible_p): Fix indentation. diff --git a/gcc/rtl.def b/gcc/rtl.def index 5acf475..3fb68ec 100644 --- a/gcc/rtl.def +++ b/gcc/rtl.def @@ -212,8 +212,15 @@ DEF_RTL_EXPR(ASM_OPERANDS, "asm_operands", "ssiEEsi", RTX_EXTRA) operations is to be performed. (Note that the vector must be the first operand because of the way that genrecog.c record positions within an insn.) - This can occur all by itself in a PATTERN, as a component of a PARALLEL, - or inside an expression. */ + + UNSPEC can occur all by itself in a PATTERN, as a component of a PARALLEL, + or inside an expression. + UNSPEC by itself or as a component of a PARALLEL + is currently considered not deletable. + + FIXME: Replace all uses of UNSPEC that appears by itself or as a component + of a PARALLEL with USE. + */ DEF_RTL_EXPR(UNSPEC, "unspec", "Ei", RTX_EXTRA) /* Similar, but a volatile operation and one which may trap. */ @@ -273,12 +280,20 @@ DEF_RTL_EXPR(SET, "set", "ee", RTX_EXTRA) /* Indicate something is used in a way that we don't want to explain. For example, subroutine calls will use the register - in which the static chain is passed. */ + in which the static chain is passed. + + USE can not appear as an operand of other rtx except for PARALLEL. + USE is not deletable, as it indicates that the operand + is used in some unknown way. */ DEF_RTL_EXPR(USE, "use", "e", RTX_EXTRA) /* Indicate something is clobbered in a way that we don't want to explain. For example, subroutine calls will clobber some physical registers - (the ones that are by convention not saved). */ + (the ones that are by convention not saved). + + CLOBBER can not appear as an operand of other rtx except for PARALLEL. + CLOBBER of a hard register appearing by itself (not within PARALLEL) + is considered undeletable before reload. */ DEF_RTL_EXPR(CLOBBER, "clobber", "e", RTX_EXTRA) /* Call a subroutine. |