Richard Biener [Fri, 5 Sep 2014 09:17:49 +0000 (09:17 +0000)]
cfgloop.c (mark_loop_for_removal): New function.
2014-09-05 Richard Biener <rguenther@suse.de>
* cfgloop.c (mark_loop_for_removal): New function.
* cfgloop.h (mark_loop_for_removal): Declare.
* cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
(merge_blocks): Likewise.
(duplicate_block): Likewise.
* except.c (sjlj_emit_dispatch_table): Likewise.
* tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
* tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
(thread_through_loop_header): Likewise.
From-SVN: r214942
Richard Biener [Fri, 5 Sep 2014 08:23:32 +0000 (08:23 +0000)]
re PR tree-optimization/63148 (r187042 causes auto-vectorization failure for X86 for -m32.)
2014-09-05 Richard Biener <rguenther@suse.de>
PR middle-end/63148
* fold-const.c (try_move_mult_to_index): Remove.
(fold_binary_loc): Do not call it.
* tree-data-ref.c (dr_analyze_indices): Strip conversions
from the base object again.
c-family/
* c-format.c (check_format_arg): Properly handle
effectively signed POINTER_PLUS_EXPR offset.
* gcc.dg/vect/pr63148.c: New testcase.
* c-c++-common/pr19807-1.c: Likewise.
* g++.dg/tree-ssa/pr19807.C: Adjust.
* g++.dg/tree-ssa/tmmti-2.C: Remove.
From-SVN: r214941
James Greenhalgh [Fri, 5 Sep 2014 08:19:12 +0000 (08:19 +0000)]
[AArch64 Obvious] Add a mode to operand 1 of sibcall_value_insn
gcc/
* config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
a mode.
From-SVN: r214940
Joey Ye [Fri, 5 Sep 2014 06:52:17 +0000 (06:52 +0000)]
re PR plugins/59335 (Plugin doesn't build on trunk)
2014-09-05 Joey Ye <joey.ye@arm.com>
PR plugin/59335
* Makefile.in (PLUGIN_HEADERS): Add wide-int.h, signop.h, hash-map.h,
From-SVN: r214938
Bin Cheng [Fri, 5 Sep 2014 03:45:57 +0000 (03:45 +0000)]
re PR target/55701 (Inline some instances of memset for ARM)
PR target/55701
* config/arm/arm.md (setmem): New pattern.
* config/arm/arm-protos.h (struct tune_params): New fields.
(arm_gen_setmem): New prototype.
* config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
(arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
(arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
(arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
(arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
(arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
(arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
(arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
(arm_const_inline_cost): New function.
(arm_block_set_max_insns): New function.
(arm_block_set_non_vect_profit_p): New function.
(arm_block_set_vect_profit_p): New function.
(arm_block_set_unaligned_vect): New function.
(arm_block_set_aligned_vect): New function.
(arm_block_set_unaligned_non_vect): New function.
(arm_block_set_aligned_non_vect): New function.
(arm_block_set_vect, arm_gen_setmem): New functions.
testsuite
* gcc.target/arm/memset-inline-1.c: New test.
* gcc.target/arm/memset-inline-2.c: New test.
* gcc.target/arm/memset-inline-3.c: New test.
* gcc.target/arm/memset-inline-4.c: New test.
* gcc.target/arm/memset-inline-5.c: New test.
* gcc.target/arm/memset-inline-6.c: New test.
* gcc.target/arm/memset-inline-7.c: New test.
* gcc.target/arm/memset-inline-8.c: New test.
* gcc.target/arm/memset-inline-9.c: New test.
* gcc.target/arm/memset-inline-10.c: New test.
From-SVN: r214937
Bin Cheng [Fri, 5 Sep 2014 03:33:38 +0000 (03:33 +0000)]
arm.md (arm_movqi_insn): Use Uh instead of m constraint.
* config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
From-SVN: r214936
Bin Cheng [Fri, 5 Sep 2014 03:31:29 +0000 (03:31 +0000)]
arm.c (output_move_neon): Handle REG explicitly.
* config/arm/arm.c (output_move_neon): Handle REG explicitly.
From-SVN: r214935
Trevor Saunders [Fri, 5 Sep 2014 02:32:00 +0000 (02:32 +0000)]
make dead_debug_insert_temp take an rtx_insn *
gcc/ChangeLog:
2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
* valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
an rtx.
* valtrack.h: Adjust.
From-SVN: r214934
Trevor Saunders [Fri, 5 Sep 2014 02:31:40 +0000 (02:31 +0000)]
make several emit functions take an rtx_insn *
gcc/ChangeLog:
2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
* emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
an rtx.
(emit_jump_insn_before_noloc): Likewise.
(emit_call_insn_before_noloc): Likewise.
(emit_label_before): Likewise.
(emit_label_after): Likewise.
(emit_insn_before_setloc): Likewise.
(emit_jump_insn_before_setloc): Likewise.
(emit_call_insn_before_setloc): Likewise.
(emit_call_insn_before): Likewise.
* rtl.h: Adjust.
From-SVN: r214933
David Malcolm [Fri, 5 Sep 2014 01:32:23 +0000 (01:32 +0000)]
Remove a cast in cse.c
gcc/
2014-09-05 David Malcolm <dmalcolm@redhat.com>
* cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
rtx_insn *, eliminating a checked cast.
From-SVN: r214932
David Malcolm [Fri, 5 Sep 2014 01:24:47 +0000 (01:24 +0000)]
Params to modified_between_p
gcc/
2014-09-05 David Malcolm <dmalcolm@redhat.com>
* rtl.h (modified_between_p): Strengthen params 2 and 3 from
const_rtx to const rtx_insn *.
* rtlanal.c (modified_between_p): Likewise, eliminating a checked
cast.
From-SVN: r214931
David Malcolm [Fri, 5 Sep 2014 01:14:41 +0000 (01:14 +0000)]
fixup_args_size_notes takes a pair of rtx_insn
gcc/
2014-09-05 David Malcolm <dmalcolm@redhat.com>
* emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
fixup_args_size_notes.
* expr.c (fixup_args_size_notes): Strengthen first two params from
rtx to rtx_insn *, eliminating a checked cast.
* rtl.h (fixup_args_size_notes): Strengthen first two params from
rtx to rtx_insn *.
From-SVN: r214930
David Malcolm [Fri, 5 Sep 2014 01:06:19 +0000 (01:06 +0000)]
Return type of get_ready_element
gcc/
2014-09-05 David Malcolm <dmalcolm@redhat.com>
* haifa-sched.c (get_ready_element): Strengthen return type from
rtx to rtx_insn *.
* sched-int.h (get_ready_element): Likewise.
From-SVN: r214929
Kaz Kojima [Fri, 5 Sep 2014 00:20:33 +0000 (00:20 +0000)]
Remove dg-options for sh*-*-* from gcc.c-torture/execute/pr44683.c.
From-SVN: r214928
GCC Administrator [Fri, 5 Sep 2014 00:17:08 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r214927
Segher Boessenkool [Thu, 4 Sep 2014 22:53:01 +0000 (00:53 +0200)]
re PR target/63165 (r214816 breaks Java build and 435.gromacs)
2014-09-04 Segher Boessenkool <segher@kernel.crashing.org>
PR target/63165
* config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
indexed_or_indirect_operand instead of memory_operand.
(floatsi<mode>2_lfiwzx_mem): Ditto.
From-SVN: r214924
Trevor Saunders [Thu, 4 Sep 2014 21:11:34 +0000 (21:11 +0000)]
use rtx_insn * a little more
gcc/ChangeLog:
2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
* config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
From-SVN: r214923
Trevor Saunders [Thu, 4 Sep 2014 21:11:23 +0000 (21:11 +0000)]
Change the types of arguments and return values for several functions from rtx to rtx_insn *
gcc/ChangeLog:
2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
* emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
rtx.
(get_last_nonnote_insn): Likewise.
(next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
* resource.c (find_basic_block): Likewise.
* rtl.h: Adjust.
* rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
const_rtx.
From-SVN: r214922
David Malcolm [Thu, 4 Sep 2014 20:56:16 +0000 (20:56 +0000)]
insn_latency takes a pair of rtx_insn
gcc/
2014-09-04 David Malcolm <dmalcolm@redhat.com>
* genattr.c (main): Within the prototype of insn_latency written
out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
* genautomata.c (output_internal_maximal_insn_latency_func):
Within the implementation of insn_latency written out to
insn-automata.c, strengthen both params from rtx to rtx_insn *,
eliminating a pair of checked casts.
From-SVN: r214921
David Malcolm [Thu, 4 Sep 2014 20:34:36 +0000 (20:34 +0000)]
eh_returnjump_p takes an rtx_insn
2014-09-04 David Malcolm <dmalcolm@redhat.com>
gcc/
* jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
rtx_insn *.
* rtl.h (eh_returnjump_p): Likewise.
From-SVN: r214919
Aldy Hernandez [Thu, 4 Sep 2014 19:19:46 +0000 (19:19 +0000)]
* Makefile.in (TAGS): Handle constructs in timevar.def.
From-SVN: r214918
Aldy Hernandez [Thu, 4 Sep 2014 18:22:13 +0000 (18:22 +0000)]
Revert mistakenly committed change.
From-SVN: r214917
Aldy Hernandez [Thu, 4 Sep 2014 18:08:47 +0000 (18:08 +0000)]
Remove file that was mistakenly added.
From-SVN: r214916
Aldy Hernandez [Thu, 4 Sep 2014 18:08:42 +0000 (18:08 +0000)]
Merge remote-tracking branch 'origin/aldyh/debug-early' into debug-early
Conflicts:
gcc/ChangeLog.debug-early
gcc/dwarf2out.c
From-SVN: r214915
Aldy Hernandez [Thu, 4 Sep 2014 18:04:14 +0000 (18:04 +0000)]
Revert incorrect merging of debug-early branch.
From-SVN: r214914
Aldy Hernandez [Thu, 4 Sep 2014 16:38:29 +0000 (16:38 +0000)]
Merge remote-tracking branch 'origin/aldyh/debug-early' into debug-early
Conflicts:
gcc/ChangeLog.debug-early
gcc/dwarf2out.c
From-SVN: r214912
Aldy Hernandez [Thu, 4 Sep 2014 16:38:21 +0000 (16:38 +0000)]
+ * c/c-decl.c (write_global_declarations_1): Call global_decl() + with early=true.
+ * c/c-decl.c (write_global_declarations_1): Call global_decl()
+ with early=true.
+ (write_global_declarations_2): Call global_decl() with
+ early=false.
+ * dbxout.c (dbxout_global_decl): New argument.
+ * debug.c (do_nothing_debug_hooks): Use debug_nothing_tree_bool
+ for global_decl hook.
+ (debug_nothing_tree_bool): New.
+ (struct gcc_debug_hooks): New argument to global_decl.
+ * dwarf2out.c (output_die): Add misc debugging information.
+ (gen_variable_die): Do not reparent children.
+ (dwarf2out_global_decl): Add new documentation. Add EARLY
+ argument.
+ (dwarf2out_decl): Make sure we don't generate new DIEs if we
+ already have a DIE.
+ * cp/name-lookup.c (do_namespace_alias): New argument to
+ global_decl debug hook.
+ * fortran/trans-decl.c (gfc_emit_parameter_debug_info): Same.
+ * godump.c (go_global_decl): Same.
+ * lto/lto-lang.c (lto_write_globals): Same.
+ * sdbout.c (sdbout_global_decl): Same.
+ * toplev.c (emit_debug_global_declarations): Same.
+ * vmsdbgout.c (vmsdbgout_global_decl): Same.
+ * tree.c (free_lang_data_in_decl): Do not call
+ dwarf2out_early_decl from here.
From-SVN: r214911
Aldy Hernandez [Thu, 4 Sep 2014 16:38:11 +0000 (16:38 +0000)]
Add missing ChangeLog entries for last commit.
From-SVN: r214910
Aldy Hernandez [Thu, 4 Sep 2014 16:38:04 +0000 (16:38 +0000)]
dwarf2out.c (struct die_struct): Add dumped_early field.
* dwarf2out.c (struct die_struct): Add dumped_early field.
(reparent_child): New.
(splice_child_die): Use reparent_child.
(gen_subprogram_die): Do not regenerate parameters if previously
dumped.
(gen_variable_die): Fix parent of decls that have been dumped
early to reflect correct context.
Do not regenerate decls if previously dumped.
(dwarf2out_decl): Add return value.
(dwarf2out_early_decl): Set dumped_early bit.
From-SVN: r214909
Aldy Hernandez [Thu, 4 Sep 2014 16:37:54 +0000 (16:37 +0000)]
Make output_die() output the parent DIE for each DIE.
From-SVN: r214908
Aldy Hernandez [Thu, 4 Sep 2014 16:37:45 +0000 (16:37 +0000)]
Make gen_formal_parameter_die() merge DIEs from a previous execution.
Do not set DW_AT_inline incorrectly on all functions.
Do not remove formal parameters when a previous DIE has been found.
Instead, augment the missing bits later.
From-SVN: r214907
Aldy Hernandez [Thu, 4 Sep 2014 16:37:36 +0000 (16:37 +0000)]
dearly: Emit DIEs for decls early in the compilation process.
This is the original patch from Michael Matz, ported to a more recent
mainline.
From-SVN: r214906
Guozhi Wei [Thu, 4 Sep 2014 16:06:13 +0000 (16:06 +0000)]
re PR target/62040 (internal compiler error: in simplify_const_unary_operation, at simplify-rtx.c:1555)
PR target/62040
* config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
* config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
it into two patterns.
(move_lo_quad_internal_be_<mode>): Likewise.
* gcc.target/aarch64/pr62040.c: New test.
From-SVN: r214905
Manuel López-Ibáñez [Thu, 4 Sep 2014 15:13:40 +0000 (15:13 +0000)]
options.texi: Document that Var and Init are required if CPP is given.
gcc/ChangeLog:
2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
* doc/options.texi: Document that Var and Init are required if CPP
is given.
* optc-gen.awk: Require Var and Init if CPP is given.
* common.opt (Wpedantic): Use Init.
libcpp/ChangeLog:
2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
* macro.c (replace_args): Use cpp_pedwarning, cpp_warning and
CPP_W flags.
* include/cpplib.h: Add CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC.
* init.c (cpp_create_reader): Do not init to -1 here.
* expr.c (num_binary_op): Use cpp_pedwarning.
gcc/c-family/ChangeLog:
2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
* c.opt (Wc90-c99-compat,Wc++-compat,Wcomment,Wendif-labels,
Winvalid-pch,Wlong-long,Wmissing-include-dirs,Wmultichar,Wpedantic,
(Wdate-time,Wtraditional,Wundef,Wvariadic-macros): Add CPP, Var
and Init.
* c-opts.c (c_common_handle_option): Do not handle here.
(sanitize_cpp_opts): Likewise.
* c-common.c (struct reason_option_codes_t): Handle
CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC.
gcc/testsuite/ChangeLog:
2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
* gcc.dg/cpp/endif-pedantic2.c: More general options do not
override specific ones, but specific ones do.
From-SVN: r214904
Bill Schmidt [Thu, 4 Sep 2014 14:31:34 +0000 (14:31 +0000)]
rs6000.c (special_handling_values): Add SH_EXTRACT.
[gcc]
2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/rs6000.c (special_handling_values): Add
SH_EXTRACT.
(rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
wrapped in a VEC_DUPLICATE, representing an extract. Mark these
as swappable with special handling SH_EXTRACT. Remove
UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
optimization.
(adjust_extract): New function.
(handle_special_swappables): Add default to case statement; add
case for SH_EXTRACT that calls adjust_extract.
(dump_swap_insn_table): Handle SH_EXTRACT.
[gcc/testsuite]
2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.target/powerpc/swaps-p8-13.c: New test.
* gcc.target/powerpc/swaps-p8-14.c: New test.
* gcc.target/powerpc/swaps-p8-15.c: New test.
From-SVN: r214903
Bill Schmidt [Thu, 4 Sep 2014 14:27:45 +0000 (14:27 +0000)]
vsx.md (*vsx_extract_<mode>_load): Always match selection of 0th memory doubleword, regardless of endianness.
[gcc]
2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
selection of 0th memory doubleword, regardless of endianness.
[gcc/testsuite]
2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.target/powerpc/vsx-extract-1.c: Test 0th doubleword
regardless of endianness.
From-SVN: r214902
Jan-Benedict Glaw [Thu, 4 Sep 2014 13:22:53 +0000 (13:22 +0000)]
rx.h (HARD_REGNO_MODE_OK): Add braces.
2014-09-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
From-SVN: r214901
Markus Trippelsdorf [Thu, 4 Sep 2014 12:37:05 +0000 (12:37 +0000)]
re PR ipa/61659 (Extra undefined symbol because of devirtualization)
PR ipa/61659
* decl.c (duplicate_decls): Check DECL_DECLARED_INLINE_P on
newdecl, not olddecl.
From-SVN: r214900
Alan Modra [Thu, 4 Sep 2014 12:18:25 +0000 (21:48 +0930)]
re PR debug/60655 (ICE: output_operand: invalid expression as operand)
PR debug/60655
* dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
can't be output.
From-SVN: r214899
Matthew Fortune [Thu, 4 Sep 2014 08:32:05 +0000 (08:32 +0000)]
Add target hook to override DWARF2 frame register size
gcc/
* target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
* targhooks.c (default_dwarf_frame_reg_mode): New function.
* targhooks.h (default_dwarf_frame_reg_mode): New prototype.
* doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
* doc/tm.texi: Regenerate.
* dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
selection logic to default_dwarf_frame_reg_mode.
From-SVN: r214898
GCC Administrator [Thu, 4 Sep 2014 00:17:00 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r214897
Chris Manghane [Wed, 3 Sep 2014 22:56:09 +0000 (22:56 +0000)]
compiler: Add precise type information on the heap.
* go-gcc.cc (Gcc_backend::implicit_variable): Remove init
parameter. Add is_hidden parameter.
(Gcc_backend::implicit_variable_set_init): New method.
(Gcc_backend::implicit_variable_reference): New method.
From-SVN: r214894
Marek Polacek [Wed, 3 Sep 2014 20:37:33 +0000 (20:37 +0000)]
invoke.texi: Document that -Wlogical-not-parentheses is enabled by -Wall.
* doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
by -Wall.
c-family/
* c.opt (Wlogical-not-parentheses): Enable by -Wall.
From-SVN: r214893
Fritz Reese [Wed, 3 Sep 2014 18:50:27 +0000 (18:50 +0000)]
[multiple changes]
2014-09-03 Fritz Reese <Reese-Fritz@zai.com>
PR fortran/62174
* decl.c (variable_decl): Don't overwrite typespecs of Cray
* pointees
when matching a component declaration.
2014-09-02 Fritz Reese <Reese-Fritz@zai.com>
PR fortran/62174
* gfortran.dg/cray_pointers_11.f90: New.
From-SVN: r214891
Richard Sandiford [Wed, 3 Sep 2014 18:43:29 +0000 (18:43 +0000)]
rtl.texi (RTX_AUTOINC): Document that the first operand is the automodified register.
gcc/
* doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
the automodified register.
From-SVN: r214890
Richard Sandiford [Wed, 3 Sep 2014 18:36:10 +0000 (18:36 +0000)]
output.h (get_some_local_dynamic_name): Declare.
gcc/
* output.h (get_some_local_dynamic_name): Declare.
* final.c (some_local_dynamic_name): New variable.
(get_some_local_dynamic_name): New function.
(final_end_function): Clear some_local_dynamic_name.
* config/alpha/alpha.c (machine_function): Remove some_ld_name.
(get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
(print_operand): Report an error if '%&' is used inappropriately.
* config/i386/i386.c (get_some_local_dynamic_name): Delete.
(get_some_local_dynamic_name_1): Delete.
* config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
(rs6000_get_some_local_dynamic_name): Delete.
(rs6000_get_some_local_dynamic_name_1): Delete.
(print_operand): Report an error if '%&' is used inappropriately.
* config/s390/s390.c (machine_function): Remove some_ld_name.
(get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
(print_operand): Assert that get_some_local_dynamic_name is nonnull.
* config/sparc/sparc.c: Include rtl-iter.h.
(machine_function): Remove some_ld_name.
(sparc_print_operand): Report an error if '%&' is used inappropriately.
(get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
From-SVN: r214889
Richard Henderson [Wed, 3 Sep 2014 17:00:31 +0000 (10:00 -0700)]
aarch64: Improve epilogue unwind info
* config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
(aarch64_popwb_pair_reg): Remove.
(aarch64_set_frame_expr): Remove.
(aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
the restore ops performed by the insns generated.
(aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
insn. Perform the calls_eh_return addition later; do not attempt to
preserve the CFA in that case. Don't use aarch64_set_frame_expr.
(aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
special markup at all. Load cfun->machine->frame.hard_fp_offset
into a local variable.
(aarch64_frame_pointer_required): Don't check calls_alloca.
From-SVN: r214886
Richard Biener [Wed, 3 Sep 2014 14:28:20 +0000 (14:28 +0000)]
opts.c (default_options_optimization): Adjust max-combine-insns to 2 for -Og.
2014-09-03 Richard Biener <rguenther@suse.de>
* opts.c (default_options_optimization): Adjust
max-combine-insns to 2 for -Og.
From-SVN: r214879
Martin Jambor [Wed, 3 Sep 2014 14:26:38 +0000 (16:26 +0200)]
re PR ipa/62015 (ipa-cp-clone uses a clone that is too specialized for the call context)
2014-09-03 Martin Jambor <mjambor@suse.cz>
PR ipa/62015
* ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
pass-trough jump functions correctly.
testsuite/
* g++.dg/ipa/pr62015.C: New test.
From-SVN: r214878
Martin Jambor [Wed, 3 Sep 2014 14:16:54 +0000 (16:16 +0200)]
re PR ipa/61986 (ICE on valid code at -O3 on x86_64-linux-gnu indecide_about_value, at ipa-cp.c:3480)
2014-09-03 Martin Jambor <mjambor@suse.cz>
PR ipa/61986
* ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
created replacements in ascending order of offsets.
(known_aggs_to_agg_replacement_list): Likewise.
gcc/testsuite/
* gcc.dg/ipa/pr61986.c: New test.
From-SVN: r214877
Marek Polacek [Wed, 3 Sep 2014 13:20:43 +0000 (13:20 +0000)]
re PR c/62294 (Missing "passing argument [...] from incompatible pointer type" warning.)
PR c/62294
* gcc.dg/pr62294.c: New test.
* gcc.dg/pr62294.h: New file.
From-SVN: r214876
Martin Liska [Wed, 3 Sep 2014 12:42:01 +0000 (14:42 +0200)]
Fix for tree-ssa-pre
* tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
is set to preserve uninitialized value for vnresult.
From-SVN: r214873
Kaz Kojima [Wed, 3 Sep 2014 12:27:52 +0000 (12:27 +0000)]
pr39228.c: Use dg-add-options instead of dg-options.
* gcc.c-torture/execute/pr39228.c: Use dg-add-options instead
of dg-options. Add "inline" keyword to test functions.
From-SVN: r214872
Marek Polacek [Wed, 3 Sep 2014 11:16:29 +0000 (11:16 +0000)]
re PR c/62024 (__atomic_always_lock_free is not a constant expression)
PR c/62024
* c-parser.c (c_parser_static_assert_declaration_no_semi): Strip no-op
conversions.
* g++.dg/cpp0x/pr62024.C: New test.
* gcc.dg/pr62024.c: New test.
From-SVN: r214871
Chung-Ju Wu [Wed, 3 Sep 2014 10:19:39 +0000 (10:19 +0000)]
[NDS32] No need to take padding into consideration in Andes ABI2 because we can...
[NDS32] No need to take padding into consideration in Andes ABI2 because
we can pass arguments in registers for variadic function.
-- By default GCC uses must_pass_in_stack_var_size_or_pad for TARGET_MUST_PASS_IN_STACK.
For Andes ABI2, the data layout in memory will be incorrect when calling variadic function
under big-endian configuration.
* config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
for TARGET_MUST_PASS_IN_STACK.
From-SVN: r214869
Chung-Ju Wu [Wed, 3 Sep 2014 10:15:06 +0000 (10:15 +0000)]
[NDS32] Provide TARGET_ARG_PARTIAL_BYTES so that we can have structure argument
partially in registers and stack.
-- This is needed if we would like to pass variadic arguments via registers
that are pused on the stack by callee. So that va_arg() can access
arguments continously in memory.
* config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
for TARGET_ARG_PARTIAL_BYTES.
From-SVN: r214868
Chung-Ju Wu [Wed, 3 Sep 2014 10:09:14 +0000 (10:09 +0000)]
[NDS32] Emit stack push instructions for varargs at prologue stage and emit...
[NDS32] Emit stack push instructions for varargs at prologue stage and
emit stack adjustment instructions for varargs at epilogue stage.
-- Note that we do not need to handle it in v3push/v3pop prologue/epilogue
expanding because we do not apply v3push/v3pop for variadic function.
* config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
instructions for varargs implementation.
(nds32_expand_epilogue): Emit stack adjustment instructions for
varargs implementation.
From-SVN: r214867
Chung-Ju Wu [Wed, 3 Sep 2014 10:01:54 +0000 (10:01 +0000)]
[NDS32] Since we are going to provide new heuristic for fp-as-gp optimization,
we better not to set cfun->machine->fp_as_gp_p at prologue expanding.
* config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
optimization detection.
From-SVN: r214866
Chung-Ju Wu [Wed, 3 Sep 2014 09:55:28 +0000 (09:55 +0000)]
[NDS32] Deal with nameless arguments in nds32_function_arg and nds32_function_arg_advance.
1. We have caller prepare nameless arguments in the way of calling a normal function.
e.g. Assume a function: void va_test (int n, ...);
When calling "va_test (6, 11, 22, 33, 44, 55, 66);",
r0 <- 6
r1 <- 11
r2 <- 22
r3 <- 33
r4 <- 44
r5 <- 55
[sp + 0] <- 66
2. Note that we DO NOT handle it for TARGET_HARD_FLOAT case.
The TARGET_HARD_FLOAT should push all the nameless arguments into
stack and GCC is able to take care of them itself.
In addition, we have not implemented hard float on trunk yet.
* config/nds32/nds32.c (nds32_function_arg): Deal with nameless
arguments.
(nds32_function_arg_advance): Deal with nameless arguments.
* config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
(NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
(NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
From-SVN: r214865
Richard Biener [Wed, 3 Sep 2014 09:50:24 +0000 (09:50 +0000)]
tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
2014-09-03 Richard Biener <rguenther@suse.de>
* tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
(struct bb_bitmap_sets): Remove deferred member.
(BB_DEFERRED): Remove.
(defer_or_phi_translate_block): Remove.
(compute_antic_aux): Remove deferring of blocks, assert
proper iteration order.
(compute_antic): Do not set BB_DEFERRED.
(eliminate): Allocate el_avail of proper size initially.
From-SVN: r214864
Chung-Ju Wu [Wed, 3 Sep 2014 09:44:49 +0000 (09:44 +0000)]
[NDS32] Since argument pointer must be 8-byte alignment...
[NDS32] Since argument pointer must be 8-byte alignment, our first parameter may
require 4-byte offset if pushed varargs is not 8-byte aligned.
* config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
according to the value of crtl->args.pretend_args_size.
From-SVN: r214863
Chung-Ju Wu [Wed, 3 Sep 2014 09:37:36 +0000 (09:37 +0000)]
[NDS32] Prepare necessary varargs information in compute_stack_frame().
* config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
varargs information.
From-SVN: r214862
Chung-Ju Wu [Wed, 3 Sep 2014 09:32:08 +0000 (09:32 +0000)]
[NDS32] Implement TARGET_SETUP_INCOMING_VARARGS target hook.
* config/nds32/nds32.c (nds32_setup_incoming_varargs): New
implementation for TARGET_SETUP_INCOMING_VARARGS.
(nds32_strict_argument_naming): Refine comment.
* config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
Define for future implementation.
From-SVN: r214861
Ilya Tocar [Wed, 3 Sep 2014 09:24:34 +0000 (09:24 +0000)]
adxintrin.h (_subborrow_u32): New.
gcc/
2014-09-02 Ilya Tocar <ilya.tocar@intel.com>
* config/i386/adxintrin.h (_subborrow_u32): New.
(_addcarry_u32): Ditto.
(_subborrow_u64): Ditto.
(_addcarry_u64): Ditto.
* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
IX86_BUILTIN_SBB64.
(ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
__builtin_ia32_sbb_u64
testsuite/
2014-09-02 Ilya Tocar <ilya.tocar@intel.com>
* gcc.target/i386/adx-addcarryx32-1.c: Test addcarry, subborrow.
* gcc.target/i386/adx-addcarryx32-2.c: Ditto.
* gcc.target/i386/adx-addcarryx32-3.c: Ditto.
* gcc.target/i386/adx-addcarryx64-1.c: Ditto.
* gcc.target/i386/adx-addcarryx64-2.c: Ditto.
* gcc.target/i386/adx-addcarryx64-3.c: Ditto.
From-SVN: r214860
Chung-Ju Wu [Wed, 3 Sep 2014 09:16:51 +0000 (09:16 +0000)]
[NDS32] Define and rename some GPR-specific stuff.
* config/nds32/nds32.c (nds32_function_arg): Define and rename some
GPR-specific stuff.
(nds32_function_arg_advance): Likewise.
(nds32_init_cumulative_args): Likewise.
* config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
(NDS32_FIRST_GPR_REGNUM): Define.
(NDS32_LAST_GPR_REGNUM): Define.
(NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
(NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
(FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
(machine_function): Use GRP-specific stuff.
From-SVN: r214859
Chung-Ju Wu [Wed, 3 Sep 2014 09:09:56 +0000 (09:09 +0000)]
[NDS32] Remove unused variables.
* config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
(nds32_expand_epilogue): Likewise.
(nds32_expand_prologue_v3push): Likewise.
(nds32_expand_epilogue_v3pop): Likewise.
From-SVN: r214858
Chung-Ju Wu [Wed, 3 Sep 2014 09:04:46 +0000 (09:04 +0000)]
[NDS32] We need to make sure it is NOT a variadic function so that some v3push/v3pop preparation can be applied.
-- The rationale of such avoidance is that the 'pop25' instruction also
contains return behavior and we have no chance to further adjust stack
pointer before returning to caller, which is very important to
variadic function.
-- So we do not setup v3push/v3pop (push25/pop25) information for a
variadic function. It will use normal stack push/pop instead.
* config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
v3push/v3pop for variadic function.
* config/nds32/nds32.md (prologue, epilogue): Likewise.
From-SVN: r214857
Chung-Ju Wu [Wed, 3 Sep 2014 08:57:02 +0000 (08:57 +0000)]
[NDS32] Consider varargs situation when creating stack operation assembly code.
-- In fact, we only need to take care of 'push.s' situation,
because we have to push all the nameless arguments into stack.
-- We do not have to use 'pop.s' to restore them back to registers,
because we can just adjust stack pointer to set frame location.
This operation should be done in epilogue expanding.
-- Because 'pop25' instruction also performs return operation, we will
not use v3push/v3pop on isr and vararg functions.
Therefore, their instruction length should be 4 bytes.
* config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
Check rtx for varargs implementation.
(nds32_output_stack_pop): Likewise.
* config/nds32/nds32-protos.h: Have a rtx argument for
nds32_output_stack_push and nds32_output_stack_pop.
* config/nds32/nds32.md: Likewise.
From-SVN: r214856
Chung-Ju Wu [Wed, 3 Sep 2014 08:50:14 +0000 (08:50 +0000)]
[NDS32] Add a function to indentify if FUNC is an interrupt service routine.
* config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
to check if FUNC is an interrupt service routine.
* config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
From-SVN: r214855
Chung-Ju Wu [Wed, 3 Sep 2014 08:40:40 +0000 (08:40 +0000)]
[NDS32] Preparation in nds32.h of using registers to save varargs.
-- The varargs area may also need padding bytes so that we can ensure
that argument pointer is 8-byte alignment.
* config/nds32/nds32.h (machine_function): Add some fields for variadic
arguments implementation.
From-SVN: r214854
Chung-Ju Wu [Wed, 3 Sep 2014 08:28:02 +0000 (08:28 +0000)]
[NDS32] In nds32_valid_stack_push_pop_p(), we look into OP rtx to see if we indeed save $fp/$gp/$lp registers.
* config/nds32/nds32-predicates.c
(nds32_valid_stack_push_pop): Rename to ...
(nds32_valid_stack_push_pop_p): ... this.
* config/nds32/nds32-protos.h: Likewise.
* config/nds32/predicates.md: Likewise.
From-SVN: r214853
Chung-Ju Wu [Wed, 3 Sep 2014 08:20:49 +0000 (08:20 +0000)]
[NDS32] Refine the implementation and consider CFA restore information for stack v3push/v3pop.
* config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
(nds32_emit_stack_v3push): ... this.
(nds32_gen_stack_v3pop): Rename to ...
(nds32_emit_stack_v3pop): ... this and consider CFA restore
information.
From-SVN: r214852
Chung-Ju Wu [Wed, 3 Sep 2014 08:17:00 +0000 (08:17 +0000)]
[NDS32] Refine the implementation and consider CFA restore information for stack push/pop multiple.
* config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
(nds32_emit_stack_push_multiple): ... this.
(nds32_gen_stack_pop_multiple): Rename to ...
(nds32_emit_stack_pop_multiple): ... this and consider CFA restore
information.
From-SVN: r214851
Andreas Krebbel [Wed, 3 Sep 2014 08:06:09 +0000 (08:06 +0000)]
re PR bootstrap/61078 (ESA mode bootstrap failure since r209897)
2014-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
PR target/61078
* config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
and add a second splitter to handle the remaining cases.
2014-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
PR target/61078
* gcc.target/s390/pr61078.c: New testcase.
From-SVN: r214850
Chung-Ju Wu [Wed, 3 Sep 2014 08:02:37 +0000 (08:02 +0000)]
[NDS32] Define PIC_OFFSET_TABLE_REGNUM to $gp register.
* config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
From-SVN: r214849
Uros Bizjak [Wed, 3 Sep 2014 07:58:17 +0000 (09:58 +0200)]
20111227-2.c: Compile only for x86 targets.
* gcc.dg/
20111227-2.c: Compile only for x86 targets.
* gcc.dg/
20111227-3.c: Ditto.
From-SVN: r214848
Max Ostapenko [Wed, 3 Sep 2014 07:16:30 +0000 (10:16 +0300)]
gcc-dg.exp (set-target-env-var): Change env to ::env.
gcc/testsuite/ChangeLog:
2014-09-03 Max Ostapenko <m.ostapenko@partner.samsung.com>
* lib/gcc-dg.exp (set-target-env-var): Change env to ::env.
From-SVN: r214846
Tobias Burnus [Wed, 3 Sep 2014 06:41:37 +0000 (08:41 +0200)]
Missed that file in r213079 of 2014-07-26
2014-09-03 Tobias Burnus <burnus@net-b.de>
PR fortran/61881
PR fortran/61888
PR fortran/57305
* gfortran.dg/sizeof_4.f90: New.
From-SVN: r214843
Trevor Saunders [Wed, 3 Sep 2014 00:53:29 +0000 (00:53 +0000)]
use rtx_code_label in lab_rtx_for_bb hash map
gcc/ChangeLog:
* cfgexpand.c (label_rtx_for_bb): Change type to
hash_map<basic_block, rtx_code_label *> *.
(expand_gimple_basic_block): Adjust.
(pass_expand::execute): Likewise.
From-SVN: r214842
Trevor Saunders [Wed, 3 Sep 2014 00:52:11 +0000 (00:52 +0000)]
use rtx_code_label more
gcc/
* asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
of rtx.
From-SVN: r214841
Nathan Sidwell [Wed, 3 Sep 2014 00:43:00 +0000 (00:43 +0000)]
libgcov-interface.c (STRONG_ALIAS): New.
* libgcov-interface.c (STRONG_ALIAS): New.
(__gcov_flush): Call __gcov_reset_int.
(__gcov_reset): Strong alias for ...
(__gcov_reset_ing): ... this renamed hidden version.
* libgcov.h (__gcov_reset_int): New declaration.
From-SVN: r214840
GCC Administrator [Wed, 3 Sep 2014 00:16:57 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r214839
Trevor Saunders [Tue, 2 Sep 2014 22:46:00 +0000 (22:46 +0000)]
support ggc hash_map and hash_set
gcc/ChangeLog:
* alloc-pool.c: Include coretypes.h.
* cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
hash_set instead of htab.
* ggc-page.c (in_gc): New variable.
(ggc_free): Do nothing if a collection is taking place.
(ggc_collect): Set in_gc appropriately.
* ggc.h (gt_ggc_mx(const char *)): New function.
(gt_pch_nx(const char *)): Likewise.
(gt_ggc_mx(int)): Likewise.
(gt_pch_nx(int)): Likewise.
* hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
(hash_map::hash_entry::pch_nx): Likewise.
(hash_map::hash_entry::pch_nx_helper): Likewise.
(hash_map::hash_map): Adjust.
(hash_map::create_ggc): New function.
(gt_ggc_mx): Likewise.
(gt_pch_nx): Likewise.
* hash-set.h (default_hashset_traits::ggc_mx): Likewise.
(default_hashset_traits::pch_nx): Likewise.
(hash_set::hash_entry::ggc_mx): Likewise.
(hash_set::hash_entry::pch_nx): Likewise.
(hash_set::hash_entry::pch_nx_helper): Likewise.
(hash_set::hash_set): Adjust.
(hash_set::create_ggc): New function.
(hash_set::elements): Likewise.
(gt_ggc_mx): Likewise.
(gt_pch_nx): Likewise.
* hash-table.h (hash_table::hash_table): Adjust.
(hash_table::m_ggc): New member.
(hash_table::~hash_table): Adjust.
(hash_table::expand): Likewise.
(hash_table::empty): Likewise.
(gt_ggc_mx): New function.
(hashtab_entry_note_pointers): Likewise.
(gt_pch_nx): Likewise.
From-SVN: r214834
Bill Schmidt [Tue, 2 Sep 2014 19:31:47 +0000 (19:31 +0000)]
rs6000-builtin.def (XVCVSXDDP_SCALE): New built-in definition.
[gcc]
2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New
built-in definition.
(XVCVUXDDP_SCALE): Likewise.
(XVCVDPSXDS_SCALE): Likewise.
(XVCVDPUXDS_SCALE): Likewise.
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
VSX_BUILTIN_XVCVDPUXDS_SCALE.
* config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
prototype.
* config/rs6000/rs6000.c (real.h): New include.
(rs6000_scale_v2df): New function.
* config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
(UNSPEC_VSX_XVCVUXDDP): Likewise.
(UNSPEC_VSX_XVCVDPSXDS): Likewise.
(UNSPEC_VSX_XVCVDPUXDS): Likewise.
(vsx_xvcvsxddp_scale): New define_expand.
(vsx_xvcvsxddp): New define_insn.
(vsx_xvcvuxddp_scale): New define_expand.
(vsx_xvcvuxddp): New define_insn.
(vsx_xvcvdpsxds_scale): New define_expand.
(vsx_xvcvdpsxds): New define_insn.
(vsx_xvcvdpuxds_scale): New define_expand.
(vsx_xvcvdpuxds): New define_insn.
* doc/extend.texi (vec_ctf): Add new prototypes.
(vec_cts): Likewise.
(vec_ctu): Likewise.
(vec_splat): Likewise.
(vec_div): Likewise.
(vec_mul): Likewise.
[gcc/testsuite]
2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.target/powerpc/builtins-1.c: Add tests for vec_ctf,
vec_cts, and vec_ctu.
* gcc.target/powerpc/builtins-2.c: Likewise.
From-SVN: r214831
Hans-Peter Nilsson [Tue, 2 Sep 2014 17:00:28 +0000 (17:00 +0000)]
badalloc1.C (arena_size): Scale according to target pointer size.
* g++.old-deja/g++.eh/badalloc1.C [!STACK_SIZE && !__FreeBSD__]
[!__sun__ && !__hpux__] (arena_size): Scale according to
target pointer size.
From-SVN: r214828
Marek Polacek [Tue, 2 Sep 2014 16:08:05 +0000 (16:08 +0000)]
re PR fortran/62270 (-Wlogical-not-parentheses warnings)
PR fortran/62270
* interface.c (compare_parameter): Fix condition.
* trans-expr.c (gfc_conv_procedure_call): Likewise.
* gfortran.dg/pointer_intent_7.f90: Adjust dg-error.
From-SVN: r214827
Kyrylo Tkachov [Tue, 2 Sep 2014 16:00:01 +0000 (16:00 +0000)]
[2/2] Vectorise lroundf, lfloorf, lceilf using the new ARMv8-A vcvt* instructions.
PR target/62275
* config/arm/neon.md
(neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
<v_cmp_result>): New pattern.
* config/arm/iterators.md (NEON_VCVT): New int iterator.
* config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
* config/arm/arm.c (arm_builtin_vectorized_function): Handle
BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
PR target/62275
* gcc.target/arm/vect-lceilf_1.c: New test.
* gcc.target/arm/vect-lfloorf_1.c: Likewise.
* gcc.target/arm/vect-lroundf_1.c: Likewise.
From-SVN: r214826
Kyrylo Tkachov [Tue, 2 Sep 2014 15:57:56 +0000 (15:57 +0000)]
[ARM][1/2] Implement lceil, lfloor, lround optabs with new ARMv8-A instructions.
PR target/62275
* config/arm/iterators.md (FIXUORS): New code iterator.
(VCVT): New int iterator.
(su_optab): New code attribute.
(su): Likewise.
* config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
PR target/62275
* gcc.target/arm/lceil-vcvt_1.c: New test.
* gcc.target/arm/lfloor-vcvt_1.c: Likewise.
* gcc.target/arm/lround-vcvt_1.c: Likewise.
From-SVN: r214825
Kyrylo Tkachov [Tue, 2 Sep 2014 15:53:08 +0000 (15:53 +0000)]
[AArch64] Use CC_Z and CC_NZ with csinc and similar instructions.
* config/aarch64/predicates.md (aarch64_comparison_operation):
New special predicate.
* config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
aarch64_comparison_operation instead of matching an operator.
Update operand numbers.
(csinc3<mode>_insn): Likewise.
(*csinv3<mode>_insn): Likewise.
(*csneg3<mode>_insn): Likewise.
(ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
* config/aarch64/aarch64.c (aarch64_get_condition_code):
Return -1 instead of aborting on invalid condition codes.
(aarch64_print_operand): Update aarch64_get_condition_code callsites
to assert that the returned condition code is valid.
* config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
From-SVN: r214824
Paolo Carlini [Tue, 2 Sep 2014 15:38:38 +0000 (15:38 +0000)]
DR 1453
/cp
2014-09-02 Paolo Carlini <paolo.carlini@oracle.com>
DR 1453
* class.c (check_field_decls): A class of literal type cannot have
volatile non-static data members and base classes.
(explain_non_literal_class): Update.
/testsuite
2014-09-02 Paolo Carlini <paolo.carlini@oracle.com>
DR 1453
* g++.dg/cpp0x/constexpr-volatile.C: New.
* g++.dg/ext/is_literal_type2.C: Likewise.
From-SVN: r214823
Aldy Hernandez [Tue, 2 Sep 2014 15:09:54 +0000 (15:09 +0000)]
Makefile.in (TAGS): Handle constructs in common.opt, rtl.def, tree.def, and gimple.def
* Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
tree.def, and gimple.def
From-SVN: r214822
Jakub Jelinek [Tue, 2 Sep 2014 12:52:29 +0000 (14:52 +0200)]
cilk-builtins.def (__cilkrts_cilk_for_32): New.
gcc/
* cilk-builtins.def (__cilkrts_cilk_for_32): New.
(__cilkrts_cilk_for_64): Likewise.
* cilk-common.c (declare_cilk_for_builtin): New function.
(cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
__cilkrts_cilk_for_64 bultins.
* cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
CILK_TI_F_LOOP_64.
(cilk_for_32_fndecl): New define.
(cilk_for_64_fndecl): Likewise.
* gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
* gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
GF_OMP_FOR_COMBINED_INTO.
* gimplify.c (gimplify_scan_omp_clauses): Added
OMP_CLAUSE__CILK_FOR_COUNT_ case.
(gimplify_adjust_omp_clauses): Ditto.
(gimplify_omp_for): Added CILK_FOR case.
(gimplify_expr): Ditto.
* omp-low.c: Include cilk.h.
(extract_omp_for_data): Set appropriate kind for
GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
(scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
(create_omp_child_function_name): Added second argument to handle
cilk_for case.
(cilk_for_check_loop_diff_type): New function.
(expand_cilk_for_call): Likewise.
(expand_cilk_for): Likewise.
(create_omp_child_function): Set cilk_for_count; handle the cases when
it is true; call create_omp_child_function_name with second argument.
(expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
(expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
* tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
* tree-nested.c (convert_nonlocal_omp_clauses): Added
OMP_CLAUSE__CILK_FOR_COUNT_ case.
(convert_local_omp_clauses): Ditto.
* tree-pretty-print.c (dump_omp_clause): Added
OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
(dump_generic_node): Added CILK_FOR case.
* tree.c (omp_clause_num_ops): New element
OMP_CLAUSE__CILK_FOR_COUNT_ (1).
(omp_clause_code_name): New element _Cilk_for_count_.
(walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
* tree.def: Add tree code for CILK_FOR.
gcc/c/
* c-parser.c (c_parser_cilk_for): New function.
(c_parser_cilk_grainsize): Likewise.
(c_get_temp_regvar): Likewise.
(c_parser_statement_after_labels): Added RID_CILK_FOR case.
(c_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
(c_parser_omp_for_loop): Added CILK_FOR and CILK_SIMD checks.
* c-typeck.c (c_finish_omp_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_
case.
gcc/cp/
* cp-cilkplus.c (cpp_validate_cilk_plus_loop_aux): Loc definition
simplified.
* parser.c (cp_parser_cilk_for): New function.
(cp_parser_cilk_grainsize): Likewise.
(cp_parser_statement): Added RID_CILK_FOR case.
(cp_parser_omp_for_cond): Added CILK_FOR check.
(cp_parser_omp_for_loop_init): Change function argument to accept
tree_code instead just a bool flag; change the check to use that
tree_code; check for initialization declaration in case of Cilk_for.
(cp_parser_omp_for_loop): Added checks for CILK_FOR and RID_CILK_FOR;
changed call to cp_parser_omp_for_loop_init according new arguments'
list.
(cp_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
* pt.c (tsubst_expr): Added CILK_FOR case.
* semantics.c: Include convert.h.
(finish_omp_clauses): Properly handle OMP_CLAUSE_SCHEDULE_CILKFOR
case; added OMP_CLAUSE__CILK_FOR_COUNT_.
(handle_omp_for_class_iterator): New argument lastp and its usage;
added NE_EXPR case.
(finish_omp_for): Changed call to handle_omp_for_class_iterator
according new arguments' list; in case of Cilk_for save very first
decl and create empty stmt_list block; use block to build correct
statement tree.
gcc/c-family/
* c-cilkplus.c (cilk_for_number_of_iterations): New function.
* c-common.c (c_common_reswords): Added _Cilk_for.
* c-common.h (enum rid): Added RID_CILK_FOR.
(cilk_for_number_of_iterations): Add declaration.
* c-omp.c (c_finish_omp_for): Added checks for CILK_SIMD and
CILK_FOR.
* c-pragma.c (init_pragma): Register "grainsize" pragma.
* c-pragma.h (enum pragma_kind): Add PRAGMA_CILK_GRAINSIZE.
gcc/testsuite/
* c-c++-common/cilk-plus/CK/cilk-fors.c: New test.
* c-c++-common/cilk-plus/CK/cilk-for-2.c: New test.
* c-c++-common/cilk-plus/CK/cilk-for-3.c: New test.
* c-c++-common/cilk-plus/CK/cilk_for_errors.c: New test.
* c-c++-common/cilk-plus/CK/cilk_for_grain.c: New test.
* c-c++-common/cilk-plus/CK/cilk_for_grain_errors.c: New test.
* c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c: New test.
* c-c++-common/cilk-plus/CK/nested_cilk_for.c: New test.
* g++.dg/cilk-plus/CK/cf3.cc: New test.
* g++.dg/cilk-plus/CK/cilk-for-tplt.cc: New test.
* g++.dg/cilk-plus/CK/for1.cc: New test.
* g++.dg/cilk-plus/CK/stl_iter.cc: New test.
* g++.dg/cilk-plus/CK/stl_rev_iter.cc: New test.
* g++.dg/cilk-plus/CK/stl_test.cc: New test.
Co-Authored-By: Balaji V. Iyer <balaji.v.iyer@intel.com>
Co-Authored-By: Igor Zamyatin <igor.zamyatin@intel.com>
From-SVN: r214818
Segher Boessenkool [Tue, 2 Sep 2014 11:26:20 +0000 (13:26 +0200)]
40x.md (ppc403-integer): Move "exts" to "no dot".
2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
(ppc403-compare): Add "exts with dot" case.
* config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
* config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
* config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
* config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
* config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
* config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
* config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
* config/rs6000/cell.md (cell-integer, cell-fast-cmp,
cell-cmp-microcoded): Similarly.
* config/rs6000/
e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
* config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
* config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
* config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
* config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
* config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
* config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
* config/rs6000/power6.md (power6-exts): Add "no dot" condition.
(power6-compare): Add "exts with dot" case.
* config/rs6000/power7.md (power7-integer, power7-compare): As before.
* config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
* config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
* config/rs6000/predicates.md (lwa_operand): Don't allow memory
if avoiding Cell microcode.
* config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
(is_cracked_insn): Ditto.
(insn_must_be_first_in_group): Ditto.
* config/rs6000/rs6000.md (dot): Adjust comment.
(cell_micro): Handle exts+dot.
(extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
*extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
(extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
*extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
*extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
From-SVN: r214816
Segher Boessenkool [Tue, 2 Sep 2014 11:23:20 +0000 (13:23 +0200)]
rs6000.md (QHSI): Delete.
2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/rs6000.md (QHSI): Delete.
(EXTQI, EXTHI, EXTSI): New mode iterators.
(zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
*zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
*zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
9 anonymous instructions, and 8 splitters): Delete.
(zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
*zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
*zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
*zero_extendsi<mode>2_dot2): New.
From-SVN: r214815
Segher Boessenkool [Tue, 2 Sep 2014 11:21:09 +0000 (13:21 +0200)]
rs6000.md (any_extend): New code iterator.
2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/rs6000.md (any_extend): New code iterator.
(u, su): New code attributes.
(dmode, DMODE): New mode attributes.
(<su>mul<mode>3_highpart): New.
(*<su>mul<mode>3_highpart): New.
(<su>mulsi3_highpart_le): New.
(<su>muldi3_highpart_le): New.
(<su>mulsi3_highpart_64): New.
(<u>mul<mode><dmode>3): New.
(mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
splitters): Delete.
(mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
splitters): Delete.
From-SVN: r214814
Segher Boessenkool [Tue, 2 Sep 2014 11:19:44 +0000 (13:19 +0200)]
2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
*mulsi3_internal2, and two splitters): Delete.
(muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
Delete.
(mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
From-SVN: r214813
Richard Biener [Tue, 2 Sep 2014 08:22:33 +0000 (08:22 +0000)]
re PR middle-end/62695 (internal compiler error: in get_constraint_for_component_ref, at tree-ssa-structalias.c:3189)
2014-09-02 Richard Biener <rguenther@suse.de>
PR tree-optimization/62695
* tree-ssa-structalias.c (find_func_clobbers): Add missing
vector truncate.
* gfortran.dg/pr62695.f90: New testcase.
From-SVN: r214810
GCC Administrator [Tue, 2 Sep 2014 00:17:06 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r214808
Oleg Endo [Mon, 1 Sep 2014 22:25:09 +0000 (22:25 +0000)]
re PR target/62312 ([SH] Invalid operands for opcode div0s)
gcc/
PR target/62312
* config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
gcc/testsuite/
PR target/62312
* gcc.c-torture/compile/pr62312.c: New.
From-SVN: r214804
Andi Kleen [Mon, 1 Sep 2014 16:41:28 +0000 (16:41 +0000)]
Support slim LTO bootstrap
Change the bootstrap-lto config file to use slim (non fat) LTO..
Speeds up the LTO bootstrap by ~18% on a 4 core system.
This requires using gcc-ar/ranlib in post stage 1 builds, so these
are passed to all sub builds.
config/:
2014-09-01 Andi Kleen <ak@linux.intel.com>
* bootstrap-lto.mk: Implement slim bootstrap.
/:
2014-09-01 Andi Kleen <ak@linux.intel.com>
* Makefile.tpl (POSTSTAGE1_HOST_EXPORTS): Add LTO_EXPORTS.
POSTSTAGE1_FLAGS_TO_PASS): Add LTO_FLAGS_TO_PASS.
* Makefile.in: Regenerate.
From-SVN: r214801