On 28/10/15 17:05, Tom de Vries wrote:
On 28/10/15 16:35, Richard Biener wrote:
On Tue, 27 Oct 2015, Tom de Vries wrote:

On 27/10/15 13:24, Tom de Vries wrote:
Thinking it over a bit more, I realized the constraint handling started
to be messy. I've reworked the patch series to simplify that first.

       1    Simplify constraint handling
       2    Rename make_restrict_var_constraints to
make_param_constraints
       3    Add recursion to make_param_constraints
       4    Add handle_param parameter to create_variable_info_for_1
       5    Handle recursive restrict pointer in
create_variable_info_for_1
       6    Handle restrict struct fields recursively

Currently doing bootstrap and regtest on x86_64.

I'll repost the patch series in reply to this message.

This patch gets rid of this bit of code in intra_create_variable_infos:
...
       if (restrict_pointer_p)
    make_constraint_from_global_restrict (p, "PARM_RESTRICT");
       else
..

I already proposed to remove it here (
https://gcc.gnu.org/ml/gcc-patches/2015-10/msg02426.html ) but there
is a
problem with that approach: It can happen that restrict_pointer_p is
true, but
p->only_restrict_pointers is false. This happens with fipa-pta, when
create_function_info_for created a varinfo for the parameter before
intra_create_variable_infos was called.

The patch handles that case now by setting p->only_restrict_pointers.

Hmm, but ... restrict only has an effect in non-IPA mode.

Indeed, I also realized that by now.

So I've committed the original, approved patch from https://gcc.gnu.org/ml/gcc-patches/2015-10/msg02426.html

Thanks,
- Tom

Reply via email to