1. 23 Oct, 2015 13 commits
    • Move fold_trunc_transparent_mathfn to match.pd · 67dbe582
      This moves the fold rules for trunc, floor, ceil, round, nearbyint and
      rint in one go, since they're tested as a group.  Most of the code is
      supporting the f(x)->x fold when x is known to be integer-valued.
      Like with the non-negative test, this is probably more elegantly handled
      by tracking range information for reals, but until that happens, I think
      we should handle it analogously to tree_expr_nonnegative_p.
      
      I've incorporated the fix for PR68031 in the new version of
      integer_valued_real_p.  However, it seemed confusing to test for an
      SSA name at the head of the function rather than the case statement,
      and not fall through to tree_simple_nonnegative_warnv_p (which
      conceptually shouldn't care whether an update is in progress).
      But tree_simple_nonnegative_warnv_p is a no-op for SSA names,
      so I simply changed it to:
      
                return (!name_registered_for_update_p (t)
      	      && depth < PARAM_VALUE (PARAM_MAX_SSA_NAME_QUERY_DEPTH)
      	      && gimple_stmt_nonnegative_warnv_p (SSA_NAME_DEF_STMT (t),
      						  strict_overflow_p, depth));
      
      and used that in the new code too.
      
      Doing these folds later meant that IPA would start to use information
      about the aborting sinf and floor in 20030125-1.c before the folds
      kicked in.  I changed them from noinline to weak to stop that.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/
      	* builtins.c (integer_valued_real_p): Move to fold-const.c.
      	(fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
      	(fold_builtin_ceil, fold_builtin_round): Delete.
      	(fold_builtin_1): Handle constant trunc, floor, ceil and round
      	arguments here.
      	* convert.c (convert_to_real): Remove narrowing of rounding
      	functions.
      	* fold-const.h (integer_valued_real_unary_p)
      	(integer_valued_real_binary_p, integer_valued_real_call_p)
      	(integer_valued_real_single_p, integer_valued_real_p): Declare.
      	* fold-const.c (tree_single_nonnegative_warnv_p): Move
      	name_registered_for_update_p check to SSA_NAME case statement.
      	Don't call tree_simple_nonnegative_warnv_p for SSA names.
      	(integer_valued_real_unary_p, integer_valued_real_binary_p)
      	(integer_valued_real_call_p, integer_valued_real_single_p)
      	(integer_valued_real_invalid_p): New functions.
      	(integer_valued_real_p): Move from fold-const.c and rework
      	to call the functions above.  Handle SSA names.
      	* gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
      	* gimple-fold.c (gimple_assign_integer_valued_real_p)
      	(gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
      	(gimple_stmt_integer_valued_real_p): New functions.
      	* match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
      	Fold f(x)->x for the same f if x is known to be integer-valued.
      	Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
      	the result.  Canonicalize floor(x) as trunc(x) if x is
      	nonnegative.
      
      gcc/testsuite/
      	* gcc.c-torture/execute/20030125-1.c (floor, floorf, sin, sinf):
      	Make weak rather than noinline.
      	* gcc.dg/builtins-57.c: Compile with -O.
      	* gcc.dg/torture/builtin-integral-1.c: Skip for -O0.
      
      From-SVN: r229221
      Richard Sandiford committed
    • MAINTAINERS: Update email address. · 735a559c
      2015-10-23  Paulo Matos  <pmatos@linki.tools>
      
              * MAINTAINERS: Update email address.
      
      From-SVN: r229220
      Paulo Matos committed
    • Use make_constraint_from in intra_create_variable_infos · 0becf354
      2015-10-23  Tom de Vries  <tom@codesourcery.com>
      
      	* tree-ssa-structalias.c (intra_create_variable_infos): Use
      	make_constraint_from.
      
      From-SVN: r229219
      Tom de Vries committed
    • Add missing is_full_var setting in create_variable_info_for_1 · 498dbe0a
      2015-10-23  Tom de Vries  <tom@codesourcery.com>
      
      	* tree-ssa-structalias.c (create_variable_info_for_1): Add missing
      	setting of is_full_var in case of a single field.
      
      From-SVN: r229218
      Tom de Vries committed
    • Run tree-ssa/restrict-4.c without fipa-icf · 74093af2
      2015-10-23  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.dg/tree-ssa/restrict-4.c: Add -fno-ipa-icf to dg-options.
      
      From-SVN: r229217
      Tom de Vries committed
    • MAINTAINERS (Write After Approval): Add myself. · 15713b43
      2015-10-23  Alan Hayward <alan.hayward@arm.com>
      
      	* MAINTAINERS  (Write After Approval): Add myself.
      
      From-SVN: r229216
      Alan Hayward committed
    • Update HOWTO_MERGE file for libsanitizer. · 02f4d3e9
      From-SVN: r229215
      Maxim Ostapenko committed
    • Fix typo. · 956dd14e
      From-SVN: r229213
      Nick Clifton committed
    • Fix ASan output pattern tests on Darwin. · 9f468f07
      gcc/testsuite/
      
      	PR sanitizer/68042
      	* c-c++-common/asan/memcmp-1.c: Adjust test to pass on Darwin.
      	* c-c++-common/asan/sanity-check-pure-c-1.c: Likewise.
      
      From-SVN: r229212
      Max Ostapenko committed
    • typo · 8ae06525
      From-SVN: r229211
      Jason Merrill committed
    • call.c (add_template_conv_candidate): Pass DEDUCE_CALL. · ba2b189e
      	* call.c (add_template_conv_candidate): Pass DEDUCE_CALL.
      	(add_template_candidate_real): Handle it.
      	(fn_type_unification): Handle it.
      
      From-SVN: r229210
      Jason Merrill committed
    • call.c (add_conv_candidate): Remove first_arg parm. · d4db5060
      	* call.c (add_conv_candidate): Remove first_arg parm.
      	(add_template_conv_candidate): Likewise.
      	(add_template_candidate_real): Don't pass it.
      	(build_op_call_1): Likewise.
      
      From-SVN: r229209
      Jason Merrill committed
    • Daily bump. · cfed1924
      From-SVN: r229208
      GCC Administrator committed
  2. 22 Oct, 2015 21 commits
    • re PR driver/68043 (many undocumented options, missing punctuation) · ffbd5e09
      gcc/ChangeLog:
      
      2015-10-22  Martin Sebor  <msebor@redhat.com>
      
      	PR driver/68043
      	* config/i386/i386.opt: Add missing periods to the ends of sentences.
      	* config/msp430/msp430.opt: Same.
      
      gcc/testsuite/ChangeLog:
      
      2015-10-22  Martin Sebor  <msebor@redhat.com>
      
      	PR driver/68043
      	* gcc.misc-tests/help.exp: Verify that option descriptions
      	end in periods.
      	* lib/options.exp (check_for_options): Use the regexp --line option.
      	Print unexpected match on failure.
      
      From-SVN: r229205
      Martin Sebor committed
    • pr67985-3.c (dg-options): Add -mfpmath=sse. · efee9dc4
      	* gcc.target/i386/pr67985-3.c (dg-options): Add -mfpmath=sse.
      
      From-SVN: r229199
      Uros Bizjak committed
    • Fix up ChangeLog for rev. 229155. · b1726d6c
      From-SVN: r229195
      Martin Sebor committed
    • Proposed doc update for Explicit Reg Vars 3/3 · aba77695
      	* doc/extend.exp (Global Register Variables): Rewrite.
      
      From-SVN: r229188
      David Wohlferd committed
    • [PATCH 3/9] ENABLE_CHECKING refactoring: Java and Ada · 9abe8b74
      [PATCH 3/9] ENABLE_CHECKING refactoring: Java and Ada
      gcc/java/ChangeLog:
      
      2015-10-05  Mikhail Maltsev  <maltsevm@gmail.com>
      
      	* decl.c (java_mark_decl_local): Use flag_checking instead of
      	ENABLE_CHECKING.
      
      gcc/ada/ChangeLog:
      
      2015-10-05  Mikhail Maltsev  <maltsevm@gmail.com>
      
      	* gcc-interface/decl.c (gnat_to_gnu_entity): Use gcc_checking_assert.
      	* gcc-interface/trans.c (assoc_to_constructor): Use flag_checking.
      	* gcc-interface/utils.c (relate_alias_sets): Likewise.
      	* gcc-interface/utils2.c (build_binary_op, build_unary_op): Use
      	gcc_checking_assert
      
      From-SVN: r229185
      Mikhail Maltsev committed
    • [PATCH] Fix abort in write_eligible_delay · 71e558ef
      [PATCH] Fix abort in write_eligible_delay
              * genattrtab.c (main): If we do not have any annul-true or annul-false
              slots, then write out a dummy eligible_for_annul_true or
              eligible_for_annul_false as needed.
      
      From-SVN: r229184
      Jeff Law committed
    • msp430.opt: Add -msilicon-errata and -msilicon-errata-warn. · 8d535dab
      	* config/msp430/msp430.opt: Add -msilicon-errata and
      	-msilicon-errata-warn.
      	* config/msp430/msp430.h (ASM_SPEC): Pass new options on to
      	assembler.
      	* doc/invoke.texi: Document new options.
      
      From-SVN: r229177
      Nick Clifton committed
    • re PR c++/67838 (Rejects-valid-code: templated lambda variable.) · 2c34eb74
      2015-10-22  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/67838
      	* g++.dg/cpp1y/var-templ46.C: New.
      
      From-SVN: r229175
      Paolo Carlini committed
    • oops- omitted by accident from the previous delta. · 5eec02d0
      From-SVN: r229174
      Nick Clifton committed
    • re PR tree-optimization/58497 (SLP vectorizes identical operations) · 975b6ff3
      2015-10-22  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/58497
      	* tree-vect-generic.c (ssa_uniform_vector_p): New helper.
      	(expand_vector_operations_1): Use it.  Lower operations on
      	all uniform vectors to scalar operations if the HW supports it.
      
      	* gcc.dg/tree-ssa/vector-5.c: New testcase.
      
      From-SVN: r229173
      Richard Biener committed
    • re PR tree-optimization/19049 (not vectorizing a fortran loop) · 90a7a1b5
      2015-10-22  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/19049
      	PR tree-optimization/65962
      	* tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
      	to strided accesses if single-element interleaving doesn't work.
      
      	* gcc.dg/vect/vect-strided-store-pr65962.c: New testcase.
      	* gcc.dg/vect/vect-63.c: Adjust.
      	* gcc.dg/vect/vect-70.c: Likewise.
      	* gcc.dg/vect/vect-strided-u8-i2-gap.c: Likewise.
      	* gcc.dg/vect/vect-strided-a-u8-i2-gap.c: Likewise.
      	* gfortran.dg/vect/pr19049.f90: Likewise.
      	* gfortran.dg/vect/vect-8.f90: Likewise.
      
      From-SVN: r229172
      Richard Biener committed
    • re PR middle-end/68046 (-ftrapv doesn't catch leaq-based overflows on x86-64) · a51ca2f4
      2015-10-22  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/68046
      	PR middle-end/61893
      	* optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
      	(expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
      	(expand_unop): Likewise.
      
      	* gcc.dg/torture/ftrapv-2.c: New testcase.
      
      From-SVN: r229170
      Richard Biener committed
    • ChangeLog: Fix whitespace. · 08e99efb
      From-SVN: r229169
      Uros Bizjak committed
    • Fix bootstrap on x86_64-apple-darwin14 after r229119. · 692b1131
      libsanitizer/
      
      	PR bootstrap/68041
      	* configure.ac (link_sanitizer_common): Link against librt only if it
      	contains shm_open, required by sanitizers.
      	(CXX_ABI_NEEDED): Remove variable.
      	* configure: Regenerate.
      	* ubsan/Makefile.am (libubsan_la_LIBADD): Do not add -lc++abi anymore.
      	* ubsan/Makefile.in: Regenerate.
      
      From-SVN: r229168
      Max Ostapenko committed
    • fold-const.c (fold_addr_of_array_ref_difference): Properly convert operands… · a8fc2579
      fold-const.c (fold_addr_of_array_ref_difference): Properly convert operands before folding a MINUS_EXPR.
      
      2015-10-22  Richard Biener  <rguenther@suse.de>
      
      	* fold-const.c (fold_addr_of_array_ref_difference): Properly
      	convert operands before folding a MINUS_EXPR.
      	(fold_binary_loc): Move simplification of MINUS_EXPR on
      	converted POINTER_PLUS_EXPRs ...
      	* match.pd: ... here.
      
      	c/
      	* c-typeck.c (c_finish_omp_clauses): Properly convert operands
      	before folding a MINUS_EXPR.
      
      	cp/
      	* semantics.c (cp_finish_omp_clause_depend_sink): Properly convert
      	before folding a MINUS_EXPR.
      	(finish_omp_clauses): Likewise.
      
      From-SVN: r229167
      Richard Biener committed
    • Move tan simplifications to match.pd · cfed37a0
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/
      	* builtins.c (fold_builtin_tan): Delete.
      	(fold_builtin_1): Handle constant tan arguments here.
      	* match.pd: Simplify (tan (atan x)) to x.
      
      From-SVN: r229166
      Richard Sandiford committed
    • Move more cproj simplifications to match.pd · 92c52eab
      Also make build_complex_cproj available globally and use
      it for the existing match.pd rules.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/
      	* builtins.c (fold_builtin_cproj): Delete.
      	(fold_builtin_1): Handle constant arguments here.
      	(build_complex_cproj): Move and rename to...
      	* tree.c: (build_complex_inf): ...this.
      	* tree.h (build_complex_inf): Declare.
      	* match.pd: Fold cproj(x)->x if x has no infinity.
      	Use build_complex_inf for existing cproj rules.
      
      From-SVN: r229164
      Richard Sandiford committed
    • S/390: PR68015 Fix ICE in s390_emit_compare · 7477de01
      gcc/ChangeLog:
      
      2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	PR target/68015
      	* config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
      	already have a comparison result.
      
      gcc/testsuite/ChangeLog:
      
      2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	PR target/68015
      	* gcc.target/s390/pr68015.c: New test.
      
      From-SVN: r229163
      Andreas Krebbel committed
    • [PATCH][ARM] Fix for testcase after r228661 · 597bb9db
      This patch addresses PR-67948 by changing the xor-and.c test,
      initially written for a simplify-rtx pattern, to make it pass post
      r228661 (see
      https://gcc.gnu.org/ml/gcc-patches/2015-10/msg00676.html). This test
      no longer triggered the simplify-rtx pattern it was written for prior
      to r228661, though other optimizations did lead to the same assembly
      the test checked for. The optimization added with r228661 matches the
      pattern used in the test and optimizes it to a better and still valid
      sequence. Being unable to easily change the test to trigger the
      original simplify-rtx pattern, I chose to change it to pass with the
      new produced assembly sequence.
      
      This is correct because the transformation is valid and it yields a
      more efficient pattern. However, as I pointed out before this test
      doesn't test the optimization it originally was intended for.
      
      Tested by running regression tests for armv6.
      
      Is this OK to commit?
      
      Thanks, Andre
      
      2015-10-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	PR testsuite/67948
      	* gcc.target/arm/xor-and.c: Adjust test to check for eor
      	instead of orr.
      
      From-SVN: r229161
      Andre Vieira committed
    • [Patch AArch64 63304] Fix issue with global state. · 1be34295
      Jiong pointed out privately that there was a thinko
      in the way in which the global state was being
      set and reset. I don't like adding such
      global state but ....
      
      
      2015-10-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      
              PR target/63304
              * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
              (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
              (aarch64_classify_address): Likewise.
              (aarch64_secondary_reload): Likewise.
              (aarch64_override_options_after_change_1): Adjust.
              * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
              Use aarch64_nopcrelative_literal_loads.
              (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
              * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads): 
      	Declare
      
      2015-10-22  Jiong Wang  <jiong.wang@arm.com>
                  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      
              PR target/63304
              * gcc.target/aarch64/pr63304_1.c: New test.
      
      From-SVN: r229160
      Ramana Radhakrishnan committed
    • Daily bump. · 01f32f32
      From-SVN: r229159
      GCC Administrator committed
  3. 21 Oct, 2015 6 commits
    • re PR c++/66781 ("confused by earlier errors, bailing out" with wrong enum within class) · f523e68a
      /cp
      2015-10-21  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/66781
      	* parser.c (cp_parser_enum_specifier): Upon error_at set
      	nested_name_specifier to error_mark_node; improve error message.
      
      /testsuite
      2015-10-21  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/66781
      	* g++.dg/parse/enum13.C: New.
      
      /cp
      2015-10-21  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/67847
      	* parser.c (cp_parser_enum_specifier): Reject a nested_name_specifier
      	which doesn't name a class or namespace.
      
      /testsuite
      2015-10-21  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/67847
      	* g++.dg/parse/enum12.C: New.
      
      From-SVN: r229156
      Paolo Carlini committed
    • Improve --help output to generate references to option aliases. · a7b2e184
      gcc/
      	PR driver/68043
      	* opts.c (undocumented_msg, use_diagnosed_msg): New globals.
      	(print_filtered_help): Reference aliased option's name and encourage
      	readers to use it in preference to the alias if the former is not
      	documented.  Mention when using an option is diagnosed.
      	* gcc.c (display_help): End each sentence with a period.
      
      	* ada/gcc-interface/lang.opt: End each sentence that describes
      	an option with a period.
      	* c-family/c.opt: Same.
      	* common.opt: Same.
      	* config/aarch64/aarch64.opt: Same.
      	* config/alpha/alpha.opt: Same.
      	* config/arc/arc.opt: Same.
      	* config/arm/arm.opt: Same.
      	* config/avr/avr.opt: Same.
      	* config/bfin/bfin.opt: Same.
      	* config/c6x/c6x.opt: Same.
      	* config/cr16/cr16.opt: Same.
      	* config/cris/cris.opt: Same.
      	* config/cris/linux.opt: Same.
      	* config/darwin.opt: Same.
      	* config/epiphany/epiphany.opt: Same.
      	* config/fr30/fr30.opt: Same.
      	* config/frv/frv.opt: Same.
      	* config/ft32/ft32.opt: Same.
      	* config/g.opt: Same.
      	* config/h8300/h8300.opt: Same.
      	* config/i386/cygming.opt: Same.
      	* config/i386/djgpp.opt: Same.
      	* config/i386/i386.opt: Same.
      	* config/i386/interix.opt: Same.
      	* config/i386/mingw-w64.opt: Same.
      	* config/i386/mingw.opt: Same.
      	* config/ia64/ia64.opt: Same.
      	* config/ia64/ilp32.opt: Same.
      	* config/iq2000/iq2000.opt: Same.
      	* config/linux.opt: Same.
      	* config/lm32/lm32.opt: Same.
      	* config/lynx.opt: Same.
      	* config/m32c/m32c.opt: Same.
      	* config/m32r/m32r.opt: Same.
      	* config/m68k/ieee.opt: Same.
      	* config/m68k/m68k.opt: Same.
      	* config/mcore/mcore.opt: Same.
      	* config/mep/mep.opt: Same.
      	* config/microblaze/microblaze.opt: Same.
      	* config/mips/mips.opt: Same.
      	* config/mmix/mmix.opt: Same.
      	* config/mn10300/mn10300.opt: Same.
      	* config/moxie/moxie.opt: Same.
      	* config/msp430/msp430.opt: Same.
      	* config/nios2/elf.opt: Same.
      	* config/nios2/nios2.opt: Same.
      	* config/nvptx/nvptx.opt: Same.
      	* config/pa/pa-hpux.opt: Same.
      	* config/pa/pa-hpux1010.opt: Same.
      	* config/pa/pa-hpux1111.opt: Same.
      	* config/pa/pa-hpux1131.opt: Same.
      	* config/pa/pa.opt: Same.
      	* config/pa/pa64-hpux.opt: Same.
      	* config/pdp11/pdp11.opt: Same.
      	* config/rl78/rl78.opt: Same.
      	* config/rs6000/476.opt: Same.
      	* config/rs6000/aix64.opt: Same.
      	* config/rs6000/darwin.opt: Same.
      	* config/rs6000/linux64.opt: Same.
      	* config/rs6000/rs6000.opt: Same.
      	* config/rs6000/sysv4.opt: Same.
      	* config/s390/s390.opt: Same.
      	* config/s390/tpf.opt: Same.
      	* config/sh/sh.opt: Same.
      	* config/sol2.opt: Same.
      	* config/sparc/long-double-switch.opt: Same.
      	* config/sparc/sparc.opt: Same.
      	* config/spu/spu.opt: Same.
      	* config/stormy16/stormy16.opt: Same.
      	* config/tilegx/tilegx.opt: Same.
      	* config/tilepro/tilepro.opt: Same.
      	* config/v850/v850.opt: Same.
      	* config/vax/vax.opt: Same.
      	* config/visium/visium.opt: Same.
      	* config/vms/vms.opt: Same.
      	* config/vxworks.opt: Same.
      	* config/xtensa/xtensa.opt: Same.
      	* fortran/lang.opt: Same.
      
      testsuite/
      	PR driver/68043
      	* gcc.misc-tests/help.exp: Adjust.
      	* lib/options.exp (check_for_options): Add detail to output.
      
      From-SVN: r229155
      Martin Sebor committed
    • [PATCH 2/9] ENABLE_CHECKING refactoring: libcpp · 22d66382
      [PATCH 2/9] ENABLE_CHECKING refactoring: libcpp
              * include/line-map.h: Use CHECKING_P instead of ENABLE_CHECKING.
              * init.c: Likewise.
              * macro.c (struct macro_arg_token_iter, set_arg_token,
              macro_arg_token_iter_init, macro_arg_token_iter_forward,
              macro_arg_token_iter_get_token, macro_arg_token_iter_get_location,
              alloc_expanded_arg_mem, _cpp_backup_tokens): Likewise.
      
      From-SVN: r229154
      Mikhail Maltsev committed
    • re PR fortran/67939 (ICE on using data with negative substring range) · 44f92b59
      2015-10-21  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/67939
      	* data.c (create_character_initializer): Deal with zero length string.
      
      
      2015-10-21  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/67939
      	* gfortran.dg/pr67939.f90: New test.
      
      From-SVN: r229153
      Steven G. Kargl committed
    • a scalar depending on vdefs in the current region is not invariant · 78fd2726
      When a scalar is defined in function of an array reference in the current scop,
      it does variate.  Graphite cannot represent the condition in scop-11.c, as a[*]
      variates in the current region, and it is not an affine condition:
      
        for (j = 0; j <= 20; j++)
          a[j] = b + i;
      
        if (a[12] == 23)
          b = 3;
        else
          b = 1;
      
        for (j = 0; j <= 20; j++)
          a[j] = b + i;
      
      	* graphite-scop-detection.c (parameter_index_in_region): Update call to
      	invariant_in_sese_p_rec.
      	* graphite-sese-to-poly.c (extract_affine): Same.
      	* sese.c (invariant_in_sese_p_rec): Pass in an extra parameter has_vdefs.
      	(scalar_evolution_in_region): Return chrec_dont_know when the scalar variable
      	depends on virtual definitions in the current region.
      	* sese.h (invariant_in_sese_p_rec): Update declaration.
      
      testsuite/
      	* gcc.dg/graphite/scop-11.c: Update pattern.
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r229151
      Aditya Kumar committed