On 3/9/08 11:31 AM, Richard Guenther wrote:
On Sun, Mar 9, 2008 at 3:46 PM, Zdenek Dvorak <[EMAIL PROTECTED]> wrote:
Hi,
> So, what about adding a GIMPLE_COPY code? The code would have 0
> operands and used only for its numeric value.
another possibility would be to make GIMPLE_COPY an unary operator, and
get rid of the SINGLE_RHS case altogether (of course, unlike any other
unary operator, it would not require its operand to be gimple_val, so
special handling might still be necessary at some places. but it might
be less cumbersome),
I like that. Maybe I even suggested this some time ago after some
beer in some IRC
session. (I don't see how unary should be fundamentally different from single).
The major difference is that GIMPLE_COPY never exists as a GENERIC tree
node. Unary operators do exist in GENERIC.
When converting to GIMPLE, a unary operator will be flattened by putting
its tree code in gimple_subcode() and its TREE_OPERAND (t, 0) in the RHS.
Instead, a single operand will be put in its entirety in the RHS. The
subcode in that case becomes GIMPLE_COPY. No need to build a one
operand operator in order to flatten it immediately.
Diego.