This is the mail archive of the 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: [GSoC] questions about graphite_clast_to_gimple.c

Hi Tobias,

thank you for your reply! I have questions about types. Could you
please answer them?

Questions related to âtype_for_intervalâ:

1. What happens in these lines?

int precision = MAX (mpz_sizeinbase (bound_one, 2),
mpz_sizeinbase (bound_two, 2));
if (precision > BITS_PER_WORD)
gloog_error = true;
return integer_type_node;

Do we try to count maximum number of value bits in bound_one and
bound_two? Why can't it be greater than BITS_PER_WORD?

2. Why do we want to generate signed types as much as possible?

3. Why do we always have enough precision in case of precision <

Questions related to âclast_to_gcc_expressionâ:

4. What is the idea behind this code?

name = convert_to_ptrofftype (name);

5. Why do we check POINTER_TYPE_P(type)? (âtypeâ has tree type and the
manual says that a tree is a pointer type)

Questions related to âmax_precision_typeâ:

6. Why is type1, for example, is the maximal precision type in case of
truth of POINTER_TYPE_P (type1)?

7. Why do we have enough precision for p2 in case of p1 > p2 and signed type1?

8. Why do we always build signed integer type in the line: âtype =
build_nonstandard_integer_type (precision, false);â?

Questions related to âtype_for_clast_redâ:

9. Why do we use this code in case of clast_red_sum?

value_min (m1, bound_one, bound_two);
value_min (m2, b1, b2);
mpz_add (bound_one, m1, m2);

Can bound_one be greater then bound_two? (We also consider two cases
in âtype_for_intervalâ)

10. Why do we assume that new bounds are min(bound_one, bound_two) and
min(b1, b2) in case of clast_red_min?


Cheers, Roman Gareev

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