[Bug middle-end/66429] ICE in expand_GOMP_SIMD_LAST_LANE

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Jun 17 18:00:00 GMT 2015


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66429

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Wed Jun 17 17:59:25 2015
New Revision: 224568

URL: https://gcc.gnu.org/viewcvs?rev=224568&root=gcc&view=rev
Log:
        PR middle-end/66429
        * omp-low.c (expand_omp_taskreg): Use child_cfun instead of
        DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
        and has_force_vectorize_loops flags from cfun into
        child_cfun.
        (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
        if simduid is non-NULL.
        * tree-pass.h (make_pass_simduid_cleanup): New prototype.
        * passes.def (pass_simduid_cleanup): Add new pass after loop
        passes.
        * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
        indirection from htab argument's type.
        (shrink_simd_arrays): New function.
        (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
        Don't call adjust_simduid_builtins if there are no loops.
        (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
        (pass_simduid_cleanup::execute): New method.
        (make_pass_simduid_cleanup): New function.

        * c-c++-common/gomp/pr66429.c: New test.

Added:
    trunk/gcc/testsuite/c-c++-common/gomp/pr66429.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/omp-low.c
    trunk/gcc/passes.def
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-pass.h
    trunk/gcc/tree-vectorizer.c



More information about the Gcc-bugs mailing list