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]

Re: How early are COND_EXEC patterns created?


>> > BTW, can COND_EXEC appear inside a PARALLEL?
>> 
>> I would expect not, but did make provision for it in the bits
>> that scan for stores.
>
> As Richard knows, the reverse certain occurs (having a PARALLEL inside of a
> COND_EXEC) in the d30v.  Look at cond_exec_si_addsub.

Perhaps the enclosed patch might be useful to clarify the documentation?

ChangeLog:

Tue May  2 19:49:58 EDT 2000  John Wehle  (john@feith.com)

	* rtl.def (COND_EXEC): Clarify.

-- John Wehle
------------------8<------------------------8<------------------------
*** gcc/rtl.def.ORIGINAL	Tue Apr 25 16:11:52 2000
--- gcc/rtl.def	Tue May  2 19:45:36 2000
*************** DEF_RTL_EXPR(NOTE, "note", "iuu0n", 'x')
*** 394,400 ****
     Top level constituents of INSN, JUMP_INSN and CALL_INSN.
     ---------------------------------------------------------------------- */
     
! /* Several operations to be done in parallel.  */
  DEF_RTL_EXPR(PARALLEL, "parallel", "E", 'x')
  
  /* A string that is passed through to the assembler as input.
--- 394,409 ----
     Top level constituents of INSN, JUMP_INSN and CALL_INSN.
     ---------------------------------------------------------------------- */
     
! /* Conditionally execute code.
!    Operand 0 is the condition that if true, the code is executed.
!    Operand 1 is the code to be executed (typically a SET). 
! 
!    Semantics are that there are no side effects if the condition
!    is false.  This pattern is created automatically by the if_convert
!    pass run after reload.  */
! DEF_RTL_EXPR(COND_EXEC, "cond_exec", "ee", 'x')
! 
! /* Several operations to be done in parallel (perhaps under COND_EXEC).  */
  DEF_RTL_EXPR(PARALLEL, "parallel", "E", 'x')
  
  /* A string that is passed through to the assembler as input.
*************** DEF_RTL_EXPR(CALL_PLACEHOLDER, "call_pla
*** 896,908 ****
     of canonical RTL.  It is, however, easier to manipulate this way.  */
  DEF_RTL_EXPR(PHI, "phi", "E", 'x')
  
- /* Conditionally execute code.
-    Operand 0 is the condition that if true, the code is executed.
-    Operand 1 is the code to be executed (typically a SET). 
- 
-    Semantics are that there are no side effects if the condition
-    is false.  */
- DEF_RTL_EXPR(COND_EXEC, "cond_exec", "ee", 'x')
  
  /*
  Local variables:
--- 905,910 ----
-------------------------------------------------------------------------
|   Feith Systems  |   Voice: 1-215-646-8000  |  Email: john@feith.com  |
|    John Wehle    |     Fax: 1-215-540-5495  |                         |
-------------------------------------------------------------------------


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