What are '1B' variables ?
Andrew Haley
aph-gcc@littlepinkcloud.COM
Fri Aug 31 14:30:00 GMT 2007
Emmanuel Fleury writes:
> # BLOCK 14 freq:1053
> # PRED: 12 [99.0%] (false,exec)
> <L16>:;
> *D.5198 = (char) __c;
> stdout.10->_IO_write_ptr = D.5198 + 1B;
> goto <bb 16> (<L11>);
> # SUCC: 16 [100.0%] (fallthru,exec)
>
> What does exactly does mean '1B' in this case ?
I think it just means 1 byte.
Andrew.
case INTEGER_CST:
if (TREE_CODE (TREE_TYPE (node)) == POINTER_TYPE)
{
/* In the case of a pointer, one may want to divide by the
size of the pointed-to type. Unfortunately, this not
straightforward. The C front-end maps expressions
(int *) 5
int *p; (p + 5)
in such a way that the two INTEGER_CST nodes for "5" have
different values but identical types. In the latter
case, the 5 is multiplied by sizeof (int) in c-common.c
(pointer_int_sum) to convert it to a byte address, and
yet the type of the node is left unchanged. Argh. What
is consistent though is that the number value corresponds
to bytes (UNITS) offset.
NB: Neither of the following divisors can be trivially
used to recover the original literal:
TREE_INT_CST_LOW (TYPE_SIZE_UNIT (TREE_TYPE (node)))
TYPE_PRECISION (TREE_TYPE (TREE_TYPE (node))) */
pp_wide_integer (buffer, TREE_INT_CST_LOW (node));
pp_string (buffer, "B"); /* pseudo-unit */
}
else if (! host_integerp (node, 0))
{
More information about the Gcc
mailing list