- 14 Mar, 2016 8 commits
-
-
PR tree-opt/68714 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New. (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P. (reassociate_bb): Use optimize_vec_cond_expr; avoid optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi on vectors. From-SVN: r234196
Richard Henderson committed -
* parser.c (cp_convert_range_for): Set the type of __end separately. (cp_parser_perform_range_for_lookup): Allow different begin/end types if they are comparable. Co-Authored-By: Jason Merrill <jason@redhat.com> From-SVN: r234191
Casey Carter committed -
PR target/70083 * lra-lives.c (process_bb_lives): Also update biggest mode for hard regs. (lra_create_live_ranges_1): initialize hard register biggest_mode to VOIDmode. * lra-constraints.c (split_reg): For hard regs, try to find the biggest single-register mode used in the function. testsuite/ PR target/70083 * gcc.dg/torture/pr70083.c: New test. * gcc.target/i386/pr70083.c: New test. From-SVN: r234184
Bernd Schmidt committed -
re PR tree-optimization/56365 (Missed opportunities for smin/smax standard name patterns when compiling as C++) 2016-03-14 Richard Biener <rguenther@suse.de> PR tree-optimization/56365 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate constants to compare against. * gcc.dg/tree-ssa/phi-opt-14.c: New testcase. From-SVN: r234183
Richard Biener committed -
In the rs6000 port, FLOAT_REGS can contain DImode values when compiling for 64-bit targets. Some instructions (like "fcfid" in the testcase, convert from integer to DP float) only work on floating point registers. So, we do want to allow DImode in these regs. Now, in unusual cases IRA will assign FLOAT_REGS to some allocno where some insns cannot handle FLOAT_REGS there, so they will need a reload. Maybe IRA can be made smarter, but it isn't doing anything wrong here, so we should be able to handle it. The place it goes wrong is in the output of the *ctrdi_internal[1256] pattern: the "bdz" and "bdnz" instructions. GCC refuses to do output reloads on JUMP_INSNs, probably because it is hard to do, needs different strategies than "normal" reloads do, and it cannot even be done at all for general patterns. So JUMP_INSNs need to be able to handle every possible output for the register class used. These patterns already handle writing to "c" (the base insn case), and to "r", "m", and "c" or "l"; all those via splitters. We just need to handle "d" as well. That is what this patch does. [A predicate in one of the splitters needs to be touched up so that the correct splitter is used for the FLOAT_REGS case.] But, that leaves another problem. One of the insns that are split to is a move from a GPR to an FPR. That work fine on targets with direct move (which does exactly that), i.e. power8 and up. But older targets need memory to do the move, and this splitter runs after reload so it cannot allocate memory; and allocating memory beforehand for every bdnz insn is pretty horrible as well. This patch implements the easy part. With it, power8 works, where it didn't before. PR target/70098 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2, *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output. (define_split for the GPR case): Use int_reg_operand instead of gpc_reg_operand for the output. gcc/testsuite/ PR target/70098 * lib/target-supports.exp (check_effective_target_powerpc64_no_dm): New function. * g++.dg/pr70098.C: New testcase. From-SVN: r234181
Segher Boessenkool committed -
2016-03-14 Tom de Vries <tom@codesourcery.com> PR tree-optimization/70045 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare create_empty_if_region_on_edge argument. * gcc.dg/graphite/pr70045.c: New test. From-SVN: r234177
Tom de Vries committed -
* configure.ac (CONFIG_STATUS_DEPENDENCIES): Substitute. * configure: Regenerate. * Makefile.in: Regenerate. From-SVN: r234176
Andreas Schwab committed -
From-SVN: r234175
GCC Administrator committed
-
- 13 Mar, 2016 6 commits
-
-
* config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define. (STACK_CHECK_PROTECT): Likewise. * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise (STACK_CHECK_PROTECT): Likewise. * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise (STACK_CHECK_PROTECT): Likewise. * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise. * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise. (STACK_CHECK_PROTECT): Likewise. ada/ * system-vxworks-m68k.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. * system-vxworks-mips.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. * system-vxworks-ppc.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. * system-vxworks-sparcv9.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. * system-vxworks-x86.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. From-SVN: r234171
Eric Botcazou committed -
libgomp/ * testsuite/lib/libgomp.exp (libgomp_init): Potentially append to always_ld_library_path the path to libgcc_s. From-SVN: r234170
Thomas Schwinge committed -
2016-03-13 Jerry DeLisle <jvdelisle@gcc.gnu.org> Jim MacArthur <jim.macarthur@codethink.co.uk> PR fortran/69043 * scanner.c (load_file): Check that included file is regular. PR fortran/69043 * gfortran.dg/include_9.f90: New test. Co-Authored-By: Jim MacArthur <jim.macarthur@codethink.co.uk> From-SVN: r234169
Jerry DeLisle committed -
2016-03-13 Dominique d'Humieres <dominiq@lps.ens.fr> PR fortran/45076 gfortran.dg/prof/prof.exp: New script. gfortran.dg/prof/dynamic_dispatch_6.f03: New test. From-SVN: r234168
Dominique d'Humieres committed -
2016-03-12 Jerry DeLisle <jvdelisle@gcc.gnu.org> Harold Anlauf <anlauf@gmx.de> PR fortran/69520 * invoke.texi: Explain use of the 'no-' construct within the -fcheck= option. * options.c (gfc_handle_runtime_check_option): Enable use of 'no-' prefix for the various options with -fcheck= to allow negating previously enabled check options. Co-Authored-By: Harald Anlauf <anlauf@gmx.de> From-SVN: r234167
Jerry DeLisle committed -
From-SVN: r234166
GCC Administrator committed
-
- 12 Mar, 2016 8 commits
-
-
PR rtl-optimization/69307 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard registers in modes that span more than one register. PR rtl-optimization/69307 * gcc.dg/pr69307.c: New test. From-SVN: r234163
Andrey Belevantsev committed -
re PR target/69614 (wrong code with -Os -fno-expensive-optimizations -fschedule-insns -mtpcs-leaf-frame -fira-algorithm=priority @ armv7a) 2016-03-12 Vladimir Makarov <vmakarov@redhat.com> PR target/69614 * lra-constraints.c (delete_move_and_clobber): New. (remove_inheritance_pseudos): Use it. 2016-03-12 Vladimir Makarov <vmakarov@redhat.com> PR target/69614 * gcc.target/arm/pr69614.c: New. From-SVN: r234162
Vladimir Makarov committed -
re PR fortran/70031 (Error in recursive module subroutine declaration if declared as "module recursive") 2016-03-12 Paul Thomas <pault@gcc.gnu.org> PR fortran/70031 * decl.c (gfc_match_prefix): Treat the 'module' prefix in the same way as the others, rather than fixing it to come last. (gfc_match_function_decl, gfc_match_subroutine): After errors in 'copy_prefix', emit them immediately in the case of module procedures to prevent a later ICE. PR fortran/69524 * decl.c (gfc_match_submod_proc): Permit 'module procedure' declarations within the contains section of modules as well as submodules. * resolve.c (resolve_fl_procedure): Likewise. *trans-decl.c (build_function_decl): Change the gcc_assert to allow all forms of module procedure declarations within module contains sections. 2016-03-12 Paul Thomas <pault@gcc.gnu.org> PR fortran/70031 * gfortran.dg/submodule_14.f08: New test PR fortran/69524 * gfortran.dg/submodule_15.f08: New test From-SVN: r234161
Paul Thomas committed -
PR ada/70017 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if the libcall is LCT_THROW. * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call for the checking routine. From-SVN: r234160
Eric Botcazou committed -
gcc/cp/ChangeLog: PR c++/70106 * semantics.c (force_paren_expr): Just build a PAREN_EXPR when processing_template_decl and EXPR is a SCOPE_REF. gcc/testsuite/ChangeLog: PR c++/70106 * g++.dg/cpp1y/paren3.C: New test. From-SVN: r234159
Patrick Palka committed -
From-SVN: r234158
GCC Administrator committed -
[gcc] 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/70131 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the optimization if we have direct move. (roundu32<mode>2_fprs): Likewise. [gcc/testsuite] 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/70131 * gcc.target/powerpc/ppc-round2.c: New test. From-SVN: r234155
Michael Meissner committed -
From-SVN: r234153
Joseph Myers committed
-
- 11 Mar, 2016 17 commits
-
-
PR target/70123 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t be rematerialized. (reg_overlap_for_remat_p): Renamed from input_regno_present_p. Arguments swapped. All callers changed. Take reg_renumber into account, and Calculate and compare register ranges for hard regs. PR target/70123 * gcc.dg/torture/pr70123.c: New test. From-SVN: r234152
Bernd Schmidt committed -
PR tree-optimization/70190 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths): Handle cases where we can not extract the taken edge, even though we found a constant value. PR tree-optimization/70190 * gcc.c-torture/compile/pr70190.c: New test. From-SVN: r234151
Jeff Law committed -
PR tree-optimization/64058 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX. (num_coalesce_pairs): Move up earlier in file. (find_coalesce_pair): Initialize the INDEX field for each pair discovered. (compare_pairs): No longer sort on the elements in each pair. Instead break ties with the index of the coalesce pair. From-SVN: r234149
Jeff Law committed -
gcc/testsuite/ChangeLog: PR c/68187 * c-c++-common/Wmisleading-indentation.c (test43_a): New test case. (test43_b): Likewise. (test43_c): Likewise. (test43_d): Likewise. (test43_e): Likewise. (test43_f): Likewise. (test43_g): Likewise. (test44_a): Likewise. (test44_b): Likewise. (test44_c): Likewise. (test44_d): Likewise. (test44_e): Likewise. From-SVN: r234146
David Malcolm committed -
PR c/70085 reported a false-positive from -Wmisleading-indentation. The warning was fixed by the fix for PR c/68187 (r233972), but it seems worth capturing the reproducer for PR c/70085 as an additional test case, as it's slightly different to those seen in PR c/68187. gcc/testsuite/ChangeLog: PR c/70085 * c-c++-common/Wmisleading-indentation.c (pr70085): New test case. From-SVN: r234145
David Malcolm committed -
* gcc.target/aarch64/vect-reduc-or_1.c: Add -fno-vect-cost-model to dg-options. From-SVN: r234142
Kyrylo Tkachov committed -
PR target/70002 * config/aarch64/aarch64-protos.h (aarch64_save_restore_target_globals): New prototype. * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Call the above when popping pragma. * config/aarch64/aarch64.c (aarch64_save_restore_target_globals): New function. (aarch64_set_current_function): Rewrite using the above. PR target/70002 PR target/69245 * gcc.target/aarch64/pr69245_2.c: New test. From-SVN: r234141
Kyrylo Tkachov committed -
PR tree-optimization/70177 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ... (extract_ops_from_tree): ... this. In the 2 argument overload remove _1 suffix. * gimple-expr.c (extract_ops_from_tree_1): Renamed to ... (extract_ops_from_tree): ... this. * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree): Adjust callers. * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise. * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand extract_ops_from_tree instead of 2 operand one. * gcc.dg/pr70177.c: New test. From-SVN: r234140
Jakub Jelinek committed -
gcc/testsuite: * gfortran.dg/unconstrained_commons.f: Widen regexp to match j_<N>. From-SVN: r234139
Alan Lawrence committed -
gcc: PR tree-optimization/70013 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data for constant-pool entries. gcc/testsuite: * gcc.dg/tree-ssa/sra-20.c: New. From-SVN: r234138
Alan Lawrence committed -
re PR rtl-optimization/70174 (ICE at -O1 and above on x86_64-linux-gnu in gen_lowpart_general, at rtlhooks.c:63) PR rtl-optimization/70174 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible followed by gen_lowpart on force_reg instead of just gen_lowpart. * gcc.dg/pr70174.c: New test. From-SVN: r234137
Jakub Jelinek committed -
re PR tree-optimization/70169 (ICE at -O1 and above on x86_64-linux-gnu in gen_lsm_tmp_name, at tree-ssa-loop.c:791) PR tree-optimization/70169 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable for unknown codes. * gcc.dg/pr70169.c: New test. From-SVN: r234136
Jakub Jelinek committed -
re PR rtl-optimization/70160 (gcc ICE at -O2 (seg fault) and above on valid code on x86_64-linux-gnu) gcc/ PR target/70160 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses of uninitialized values. gcc/testsuite/ PR target/70160 * gcc.target/i386/pr70160.c: New test. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r234135
Ilya Enkovich committed -
We do not have a direct conversion instruction from 128 bit DFP to 32 bit DFP so this needs to be done in two steps. The first needs to be done with the "prepare for shorter precision rounding mode" in order to produce a correct result. gcc/ChangeLog: 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/s390.md ("trunctddd2"): Turn former define_insn into define_expand. ("*trunctddd2"): New pattern definition. ("trunctdsd2"): Set prep_for_short_prec rounding mode for the TD->DD truncation. gcc/testsuite/ChangeLog: 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * gcc.target/s390/dfp-1.c: New test. From-SVN: r234134
Andreas Krebbel committed -
This patch replaces a few magic numbers used for floating point rounding modes with macros. This is mostly a NoOp change apart from: fixuns_truncdddi2, fixuns_trunctddi2, fixuns_trunc<mode>si2: Replace 5 with DFP_RND_TOWARD_0 (which is 9). 5 as well as 9 represent round towards 0 with the difference that for 5 the new DFP quantum exception is enabled as well. This exception isn't IEEE754 and we do not have an interface to enable and test it anyway. So we do not intend to enable it. This so far should not have any noticable effect since the quantum exception was not observable through the Posix functions. Some pattern ("fix_trunc<mode>di2") is already using rounding mode 9 correctly. gcc/ChangeLog: 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant definitions for BFP and DFP rounding modes. ("fixuns_truncdddi2", "fixuns_trunctddi2") ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2") ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2") ("fix_trunctf<mode>2"): Use the new constants instead of magic numbers. From-SVN: r234133
Andreas Krebbel committed -
The shift_count_or_setmem_operand predicate is now only used for setmem patterns anymore. Rename it together with the related functions. gcc/ChangeLog: 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/constraints.md: Adjust comment. ("Y"): Adjust comment. Rename s390_decompose_shift_count to s390_decompose_addrstyle_without_index. * config/s390/predicates.md (shift_count_or_setmem_operand): Rename to setmem_operand. * config/s390/s390-protos.h (s390_decompose_shift_count): Rename to s390_decompose_addrstyle_without_index. * config/s390/s390.c (s390_decompose_shift_count) (s390_mem_constraint, print_shift_count_operand) (print_operand_address, print_operand): Rename s390_decompose_shift_count to s390_decompose_addrstyle_without_index and rename print_shift_count_operand to print_addrstyle_operand troughout the file. * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long") ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"): Rename shift_count_or_setmem_operand to setmem_operand. * config/s390/vx-builtins.md ("vec_insert<mode>") ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with nonmemory_operand. From-SVN: r234132
Andreas Krebbel committed -
From-SVN: r234130
GCC Administrator committed
-
- 10 Mar, 2016 1 commit
-
-
PR target/70168 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Handle overlapping retval and newval. From-SVN: r234126
Ulrich Weigand committed
-