* config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
[official-gcc.git] / gcc / ChangeLog
blobbd2e72f12d234a4fc594364831211d033e635420
1 2015-08-25  Nathan Sidwell  <nathan@acm.org>
3         * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
4         (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
6 2015-08-25  Richard Biener  <rguenther@suse.de>
8         PR middle-end/67306
9         * genmatch.c (expr::gen_transform): Verify the result of
10         builtin_decl_implicit.
11         (dt_simplify::gen_1): Likewise.
13 2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15         * config/arm/constraints.md: Also list Cs and US ARM-specific
16         constraints as used.
18 2015-08-24  Kaz Kojima  <kkojima@gcc.gnu.org>
20         PR target/66609
21         * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
22         UNSPEC_PCREL.
23         (nonpic_symbol_mentioned_p): Likewise.
24         (sh_delegitimize_address): Likewise.
25         (sh_function_ok_for_sibcall): Take into account weak symbols.
26         (sh_expand_sym_label2reg): New.
27         * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
28         * config/sh/sh.md (UNSPEC_PCREL): New enum.
29         (call_pcrel): Use sh_expand_sym_label2reg.
30         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
31         (symPCREL_label2reg) New expand.
33 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
35         * graphite-poly.c: Change type of region from void* to sese.
36         * graphite-poly.h (struct scop): Changing the type of scop::region
37         from void* to sese. Change accessor macro accordingly.
38         * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
40 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
42         * graphite-scop-detection.c (stmt_simple_for_scop_p):
43         Constrain only on INTEGER_TYPE.
45 2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
47         PR target/67211
48         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
49         -mefficient-unaligned-vsx on ISA 2.7.
51         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
52         option to a masked option.
54         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
55         logic for -mefficient-unaligned-vsx so that it is set via an arch
56         ISA option, instead of being set if -mtune=power8 is set. Move
57         -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
58         near other default option handling.
60 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
62         * genflags.c (gen_macro): Delete.
63         (gen_proto): Don't create GEN.*CALL.* macros.
64         * gensupport.h (get_file_location): Declare.
65         * gensupport.c (rtx_locs): New variable.
66         (read_md_rtx): Record rtx locations.
67         (get_file_location): New function.
68         * target-insns.def (call, call_pop, call_value, call_value_pop)
69         (sibcall, sibcall_value): New patterns.
70         * gentarget-def.c (parse_argument): New function.
71         (def_target_insn): Use it.  Handle optional operands.  Raise an
72         error if an .md pattern has the wrong number of operands for the
73         pattern name.  Remove the names of unused operands from the prototype.
74         * builtins.c (expand_builtin_apply): Use targetm functions
75         instead of HAVE_call_value and GEN_CALL_VALUE.
76         * calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
77         and sibcall_value_pop.
78         * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
79         of GEN_CALL.
80         * config/alpha/alpha.md (untyped_call): Likewise.
81         * config/iq2000/iq2000.md (untyped_call): Likewise.
82         * config/m68k/m68k.md (untyped_call): Likewise.
83         * config/mips/mips.md (untyped_call): Likewise.
84         * config/pa/pa.md (untyped_call): Likewise.
85         * config/rs6000/rs6000.md (untyped_call): Likewise.
86         * config/sparc/sparc.md (untyped_call): Likewise.
87         * config/tilegx/tilegx.md (untyped_call): Likewise.
88         * config/tilepro/tilepro.md (untyped_call): Likewise.
89         * config/visium/visium.md (untyped_call): Likewise.
90         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
91         gen_call_value instead of GEN_CALL_VALUE.
92         * config/arm/arm.md (untyped_call): Likewise.
93         * config/cr16/cr16.c (cr16_function_arg): Remove reference to
94         GEN_CALL.
96 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
98         * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
99         (have_cbranchcc4): New variable.
100         (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
101         (noce_get_condition): Use it instead of HAVE_cbranchcc4.
102         (if_convert): Initialize have_cbranchcc4.
104 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
106         * builtins.c (expand_cmpstrn): Rename to...
107         (expand_cmpstrn_or_cmpmem): ...this.
108         (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
109         (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
110         Remove mode argument.
111         (expand_builtin): Update accordingly.
113 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
115         * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
116         (expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
117         references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
118         * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
119         Add predicates for operands 0 and 3.
120         * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
121         operand.
122         * config/sh/sh.md (cmpstrnsi): Change the length predicate from
123         immediate_operand to nonmemory_operand.
125 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
127         * df-scan.c (df_insn_info_init_fields): New function, split out
128         from...
129         (df_insn_create_insn_record): ...here.
130         (df_insn_info_free_fields): New function, split out from...
131         (df_insn_info_delete): ...here.
132         (df_insn_rescan): Use the new functions instead of freeing and
133         reallocating the df_insn_info.
135 2015-08-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
137         * doc/install.texi (Binaries): Remove links no longer valid.
139 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
141         * config/nvptx/mkoffload.c (process): Replace
142         GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
144 2015-08-24  H.J. Lu  <hongjiu.lu@intel.com>
146         PR target/67329
147         * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
149 2015-08-24  Renlin Li  <renlin.li@arm.com>
151         * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
152         * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
153         * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
154         * config/arm/constraints.md ("j"): Add check for high code.
156 2015-08-24  Tom de Vries  <tom@codesourcery.com>
158         PR tree-optimization/65468
159         * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
160         chunk_size is one.
162 2015-08-24  Nathan Sidwell  <nathan@acm.org>
164         * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
165         change to nvptx_type_from_mode call. Use arg_promotion for both
166         split and non-split args.
168 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
170         * target-insns.def (movstr): New pattern.
171         * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
172         (expand_movstr): Use targetm rather than HAVE_movstr/
173         CODE_FOR_movstr.
175 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
177         * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
178         cast syntax.
180 2015-08-24  Andrew Pinski  <apinski@cavium.com>
182         * config/aarch64/aarch64-tuning-flags.def: Remove all index to
183         AARCH64_EXTRA_TUNING_OPTION.
184         * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index): New enum.
185         (aarch64_extra_tuning_flags): Base the shifted value on the index instead
186         of the argument to AARCH64_EXTRA_TUNING_OPTION.
187         * config/aarch64/aarch64.c: Remove the last argument to
188         AARCH64_EXTRA_TUNING_OPTION.
190 2015-08-23  Nathan Sidwell  <nathan@acm.org>
192         * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
193         decls.
194         (nvptx_declare_function_name): Insert formatting tabs for
195         consistency.
197 2015-08-23  Tom de Vries  <tom@codesourcery.com>
199         * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
200         parm_decl, rather than generating a dummy default def in cfun.
201         * tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
202         ssa_name from cfun and child_fn do not share a stmt as def stmt.
203         (move_stmt_op): Handle PARM_DECl.
204         (gather_ssa_name_hash_map_from): New function.
205         (move_sese_region_to_fn): Add default defs for function params, and add
206         them to vars_map.  Release copied ssa names.
207         * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
209 2015-08-23  Tom de Vries  <tom@codesourcery.com>
211         * doc/sourcebuild.texi: Rename vect_no_int_max with
212         vect_no_int_min_max.  Update description.
214 2015-08-22  Andrew Pinski  <apinski@cavium.com>
216          * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
217         * config/aarch64/aarch64-protos.h
218         (aarch64_fusion_pairs_index): New enum.
219         (aarch64_fusion_pairs): Base the shifted value on the index instead
220         Rewrite AARCH64_FUSE_ALL to be based on the end index.
221         of the argument to AARCH64_FUSION_PAIR.
222         * config/aarch64/aarch64.c: Remove the last argument to
223         AARCH64_FUSION_PAIR.
225 2015-08-22  Mikhail Maltsev <maltsevm@gmail.com>
227         * dominance.c (new_zero_array): Define.
228         (dom_info): Redefine as class with proper encapsulation.
229         (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
230         Add new members.
231         (dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
232         allocations/deallocations.  Pass function as parameter (instead of
233         using cfun).
234         (dom_info::get_idom): Define accessor method.
235         (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
236         link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
237         (calculate_dominance_info): Adjust to use dom_info class.
238         (verify_dominators): Likewise.
240 2015-08-21  Alexandre Oliva <aoliva@redhat.com>
242         * print-rtl.c (print_rtx): Check the correct range for
243         flag_dump_unnumbered_links to behave as documented.
245         PR rtl-optimization/67227
246         PR rtl-optimization/64164
247         * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
248         (nonoverlapping_memrefs_p): Test offsets and sizes when given
249         identical gimple_reg exprs.
251 2015-08-21  Nathan Sidwell  <nathan@acm.org>
253         * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
254         expansion.
255         * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
256         crtl->stack_alignment_needed to determine alignment.
257         (nvptx_get_drap_rtx): New.
258         (TARGET_GET_DRAP_RTX): Override.
259         * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
261 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
263         * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
265 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
267         * configure.ac: Remove uwin* cases.
268         * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
269         i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
270         i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
271         i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
272         * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
273         i[34567]86-*-uwin*, powerpc-*-beos*.
275 2015-08-21  Richard Sandiford  <richard.sandiford@arm.com>
277         * gencodes.c (gencodes): Print the comma for the preceding
278         enum value rather than the current one.  Use aliased enum values
279         rather than #defines for compiled-out patterns.
280         (main): Update accordingly.  Replace LAST_INSN_CODE with
281         NUM_INSN_CODES.
282         * lra.c (insn_code_data): Update accordingly.
283         (finish_insn_code_data_once, get_static_insn_data): Likewise.
284         * recog.h (target_recog): Likewise.
285         (preprocess_insn_constraints): Change parameter to unsigned int.
286         * recog.c (preprocess_insn_constraints): Likewise.
287         (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
288         * tree-vect-stmts.c (vectorizable_operation): Simplify.
290 2015-08-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
292         PR rtl-optimization/61657
293         * loop-iv.c (iv_number_of_iterations): Declare up and down as
294         unsigned.  Remove superflous uint64_t cast.
296 2014-08-21  Felix Yang  <felix.yang@huawei.com>
297             Jiji Jiang  <jiangjiji@huawei.com>
299         * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL argument
300         and get builtin function code directly from CALL.
301         (gimple_stringop_fixed_value): Modified accordingly.
302         (gimple_stringops_transform, gimple_stringops_values_to_profile): Modified
303         accordingly and only accept BUILT_IN_NORMAL string operations.
305 2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>
307         * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
309 2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
311         * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
312         to match.pd.
313         Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
314         Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
315         Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
316         Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
317         Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
318         Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
319         Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
320         Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
321         Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
322         Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
324         * match.pd (SIN ) : New Operator.
325         (TAN) : New Operator.
326         (mult (SQRT@1 @0) @1) : New simplifier.
327         (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
328         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
329         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
330         (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
331         (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
332         (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
333         (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
334         (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
335         (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
336         (rdiv @0 (POW:s @1 @2)) : New simplifier.
338 2015-08-21  Bin Cheng  <bin.cheng@arm.com>
340         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
341         loop if EXPR is simplified to const value.
343 2015-08-21  Yury Gribov  <y.gribov@samsung.com>
345         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
346         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
348 2015-08-21  Richard Biener  <rguenther@suse.de>
350         PR middle-end/67285
351         * gimple-fold.c (replace_stmt_with_simplification): Assert
352         seq is empty when replacing a call with itself but different
353         arguments.
354         * gimple-match-head.c (maybe_push_res_to_seq): When pushing
355         a call require that it is const.
357 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
359         * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
360         * builtins.c (get_object_alignment_2): Adjust.
361         * varasm.c (align_variable): Likewise.
362         (get_variable_align): Likewise.
363         (build_constant_desc): Likewise.
364         (force_const_mem): Likewise.
365         * doc/tm.texi.in: Likewise.
366         * doc/tm.texi: Regenerate.
368 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
370         * genconfig.c (main): Always define HAVE_cc0.
371         * recog.c (rest_of_handle_peephole2): Adjust.
373 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
375         * reorg.c (relax_delay_slots): Don't use #if to check value of
376         HAVE_cc0.
378 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
380         * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
381         * targhooks.c (default_have_conditional_execution): Adjust.
383 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
385         * rtl.h (rtvec_all_equal_p): Declare.
386         (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
387         * rtl.c (rtvec_all_equal_p): New function.
388         * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
389         * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
390         (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
391         * config/arm/arm.c (neon_vdup_constant): Likewise.
392         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
393         * config/tilegx/constraints.md (W, Y): Likewise.
394         * config/tilepro/constraints.md (W, Y): Likewise.
395         * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
396         (classify_immediate): Use unwrap_const_vec_duplicate.
397         * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
398         (reg_or_v2s8bit_operand): Likewise.
399         * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
400         (reg_or_v4s8bit_operand): Likewise.
402 2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
404         * config/rs6000/altivec.h (vec_pmsum_be): New #define.
405         (vec_shasigma_be): New #define.
406         * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
407         (VPMSUMH): Likewise.
408         (VPMSUMW): Likewise.
409         (VPMSUMD): Likewise.
410         (VPMSUM): New BU_P8V_OVERLOAD_2.
411         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
412         entries for VEC_MADD and VEC_VPMSUM.
414 2015-08-20  Georg-Johann Lay  <avr@gjlay.de>
416         * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
417         Multiply argument avr_n_flash by 64 to match unit of "KiB".
418         (avr_pgm_check_var_decl): Same.
420 2015-08-20  Alan Lawrence  <alan.lawrence@arm.com>
422         * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
423         initialization of HFmode scalar type (float16_t) to...
424         (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
425         code.
427         (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
429         * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
430         having an -mfp16-format.
432 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
434         * config/i386/predicates.md (vector_all_ones_operand): Use
435         CONSTM1_RTX to simplify definition.
437 2015-08-20  Richard Biener  <rguenther@suse.de>
439         * toplev.c (compile_file): Remove loop calling late_global_decl
440         on all symbols.
441         * varpool.c (varpool_node::assemble_decl): Call late_global_decl
442         on decls we assembled.
444 2015-08-20  James Greenhalgh  <james.greenhalgh@arm.com>
446         * common/config/aarch64/aarch64-common.c
447         (AARCH64_CPU_NAME_LENGTH): Delete.
448         (aarch64_option_extension): New.
449         (all_extensions): Likewise.
450         (processor_name_to_arch): Likewise.
451         (arch_to_arch_name): Likewise.
452         (all_cores): New.
453         (all_architectures): Likewise.
454         (aarch64_get_extension_string_for_isa_flags): Likewise.
455         (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
456         architecture names.
457         * config/aarch64/aarch64-protos.h
458         (aarch64_get_extension_string_for_isa_flags): New.
459         * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
460         (aarch64_option_print): Get the string to print from
461         aarch64_get_extension_string_for_isa_flags.
462         (aarch64_declare_function_name): Likewise.
463         * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
464         (MCPU_TO_MARCH_SPEC): This.
465         (ASM_CPU_SPEC): Use it.
466         (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
467         (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
468         (EXTRA_SPEC_FUNCTIONS): Use it.
470 2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>
472         * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
473         expansion when !ISA_HAS_LWL_LWR.
474         (mips_block_move_straight): Update the size of elements copied to
475         account for alignment when !ISA_HAS_LWL_LWR.
476         * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
478 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
480         * expr.c (expand_expr_real_2): Check gimple statement during
481         LSHIFT_EXPR expand.
483 2015-08-19  Magnus Granberg  <zorry@gentoo.org>
485         * common.opt (fstack-protector): Initialize to -1.
486         (fstack-protector-all): Likewise.
487         (fstack-protector-strong): Likewise.
488         (fstack-protector-explicit): Likewise.
489         * configure.ac: Add --enable-default-ssp.
490         * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
491         * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
492         -1.
493         * doc/install.texi: Document --enable-default-ssp.
494         * config.in: Regenerated.
495         * configure: Likewise.
497 2015-08-19  Alexandre Oliva <aoliva@redhat.com>
499         PR rtl-optimization/64164
500         * cfgexpand.c (parm_maybe_byref_p): Renamed to...
501         (parm_in_stack_slot_p): ... this.  Disregard mode, what
502         matters is whether the parm will live in a pseudo or a stack
503         slot.
504         (expand_one_ssa_partition): Deal with params without a default
505         def.  Disregard mode.
506         * cfgexpand.h: Renamed function declaration.
507         * tree-ssa-coalesce.c: Adjust.
508         * function.c (split_complex_args): Allocate stack slot for
509         unassigned parms before splitting.
510         (parm_in_unassigned_mem_p): New.  Use it instead of
511         parm_maybe_byref_p throughout this file.
512         (assign_parm_setup_block): Use it.  Accept pseudos in the
513         expand-assigned rtl.
514         (assign_parm_setup_reg): Drop BLKmode requirement.
515         (assign_parm_setup_stack): Allocate and fill in the address of
516         unassigned MEM parms.
518 2015-08-19  David Sherwood  <david.sherwood@arm.com>
520         * genmodes.c (emit_mode_unit_size_inline): New function.
521         (emit_mode_unit_precision_inline): New function.
522         (emit_insn_modes_h): Emit new #define.  Emit new functions.
523         (emit_mode_unit_size): New function.
524         (emit_mode_unit_precision): New function.
525         (emit_mode_adjustments): Add mode_unit_size adjustments.
526         (emit_insn_modes_c): Emit new arrays.
527         * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
528         use new inline methods.
530 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
532         * config/aarch64/aarch64.c (bit_count): Delete prototype
533         and definition.
534         (aarch64_print_operand): Use popcount_hwi instead of the above.
536 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
538         * config/aarch64/aarch64-option-extensions.def: Delete obsolete
539         comment.
541 2015-08-19  Marek Polacek  <polacek@redhat.com>
543         PR middle-end/67133
544         * gimple-ssa-isolate-paths.c
545         (insert_trap_and_remove_trailing_statements): Rename to ...
546         (insert_trap): ... this.  Don't remove trailing statements; split
547         block instead.
548         (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
550 2015-08-19  Mikael Morin  <mikael@gcc.gnu.org>
552         PR other/67042
553         * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
554         conditionalize the whole on __GNUC__.  Add fallback code
555         depending neither on undefined nor implementation-defined behaviour.
557 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
559         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
560         whitespaces with tab.
562 2015-08-19  Florian Weimer  <fweimer@redhat.com>
564         * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
565         Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
566         * prj-proc.adb (Process.Process_Expression_Variable_Decl):
567         Move Name_Ids instantiation to the Prj.Proc package, to avoid
568         trampolines.
570 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
572         * config/arm/arm.c (bounds_check): Use %wd print format
573         for HOST_WIDE_INT arguments.
575 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
577         * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
578         dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
579         mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
580         signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
581         tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
582         tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
583         tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
584         tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
585         tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
586         typedefs.
588 2015-08-18  trevor Saunders  <tbsaunde@tbsaunde.org>
590         * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
591         function.c, graphite-scop-detection.c, haifa-sched.c,
592         ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
593         tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
594         varasm.c: Remove typedefs of structs.
596 2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
598         * config/rs6000/altivec.h (vec_adde): New define.
599         (vec_addec): Likewise.
600         (vec_double): Likewise.
601         (vec_bperm): Likewise.
602         (vec_gb): Likewise.
603         * config/rs6000/rs6000-builtin.def (ADDE): New
604         BU_ALTIVEC_OVERLOAD_3.
605         (ADDEC): Likewise.
606         (DOUBLE): New BU_VSX_OVERLOAD_1.
607         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
608         entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
609         ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
610         VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
611         ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
612         ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
613         ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
614         P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
615         and P8V_BUILTIN_VEC_VBPERMQ.
617 2015-08-18  Jason Merrill  <jason@redhat.com>
619         * print-tree.c (print_node): Handle TREE_BINFO.
621 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
623         PR middle-end/36757
624         * builtins.c (expand_builtin_signbit): Add asserts to make sure
625         we can expand BUILT_IN_SIGNBIT inline.
626         * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
627         * doc/extend.texi: Document the type-generic __builtin_signbit.
629 2015-08-18  Richard Sandiford  <richard.sandiford@arm.com>
631         PR rtl-optimization/67218
632         * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
633         (simplify_unary_operation_1): Use it.
635 2015-08-18  Marek Polacek  <polacek@redhat.com>
637         PR middle-end/67222
638         * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
639         if the call isn't valid.
640         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
641         gimple_call_builtin_p.
642         (call_may_clobber_ref_p_1): Likewise.
643         (stmt_kills_ref_p): Likewise.
645 2015-08-18  Robert Suchanek  <robert.suchanek@imgtec.com>
647         * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
648         * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
649         (mips_hard_regno_scratch_ok): Likewise.
650         (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
651         * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
653 2015-08-18  Bin Cheng  <bin.cheng@arm.com>
655         * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
656         (determine_value_range): Call refine_value_range_using_guard for
657         each loop initial condition to improve value range.
659 2015-08-17  Aldy Hernandez  <aldyh@redhat.com>
661         * config/i386/i386.c: Remove include of fibheap.h.
663 2015-08-17  Richard Biener  <rguenther@suse.de>
665         PR tree-optimization/67221
666         * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
667         (sccvn_dom_walker::before_dom_children): Mark backedges of
668         non-executable blocks as not executable.
670 2015-08-17  David Sherwood  <david.sherwood@arm.com>
672         * config/arm/arm.c (neon_element_bits): Replace call to
673         GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
674         * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
675         (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
676         (neon_vdup_lane<mode>): Likewise.
677         * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
678         (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
679         (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
680         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
681         * config/spu/spu.c (arith_immediate_p): Likewise.
682         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
683         * expr.c (expand_expr_real_2): Likewise.
684         * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
685         * simplify-rtx.c (simplify_immed_subreg): Likewise.
686         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
687         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
688         New variable.
689         * fold-const.c (fold_binary_loc): Replace call to
690         GET_MODE_PRECISION (GET_MODE_INNER (m)) with
691         GET_MODE_UNIT_PRECISION (m).
693 2015-08-17  Mike Stump  <mikestump@comcast.net>
695         * config/arm/arm.c (arm_block_move_unaligned_straight):
696         Emit normal move instead of unaligned load when source or destination
697         are appropriately aligned.
699 2015-08-17  Richard Biener  <rguenther@suse.de>
700             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
702         PR middle-end/16107
703         * match.pd (div (coss (op @0) : New simplifier.
705 2015-08-14  Alexandre Oliva <aoliva@redhat.com>
707         PR rtl-optimization/64164
708         PR bootstrap/66978
709         PR middle-end/66983
710         PR rtl-optimization/67000
711         PR middle-end/67034
712         PR middle-end/67035
713         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
714         * tree-ssa-copyrename.c: Removed.
715         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
716         -ftree-coalesce-vars.
717         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
718         * common.opt (ftree-copyrename): Ignore.
719         (ftree-coalesce-inlined-vars): Likewise.
720         * doc/invoke.texi: Remove the ignored options above.
721         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
722         * tree-ssa-coalesce.h: ... here.
723         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
724         headers required by it.
725         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
726         across variables when flag_tree_coalesce_vars.  Check register
727         use and promoted modes to allow coalescing.  Do not coalesce
728         maybe-byref parms with SSA_NAMEs of other variables, or
729         anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
730         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
731         with its member functions to tree-ssa-coalesce.c.
732         (var_map_base_init): Likewise.  Renamed to
733         compute_samebase_partition_bases.
734         (partition_view_normal): Drop want_bases parameter.
735         (partition_view_bitmap): Likewise.
736         * tree-ssa-live.h: Adjust declarations.
737         * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
738         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
739         default defs at the entry point.
740         (dump_part_var_map): New.
741         (compute_optimized_partition_bases): New, called by...
742         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
743         of compute_samebase_partition_bases.  Adjust.
744         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
745         * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
746         (ssa_default_def_partition): New.
747         (get_rtl_for_parm_ssa_default_def): New.
748         (align_local_variable, add_stack_var): Support anonymous SSA
749         names.
750         (defer_stack_allocation): Likewise.  Declare earlier.
751         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
752         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
753         Do no record deferred-allocation marker in
754         SA.partition_to_pseudo.
755         (expand_stack_vars): Adjust check for the marker in it.
756         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
757         redundant MEM attr setting.
758         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
759         from...
760         (expand_one_stack_var): ... this.  New wrapper to check and
761         skip already expanded SSA partitions.
762         (record_alignment_for_reg_var): New, factored out of...
763         (expand_one_var): ... this.
764         (expand_one_ssa_partition): New.
765         (adjust_one_expanded_partition_var): New.
766         (expand_one_register_var): Check and skip already expanded SSA
767         partitions.
768         (expand_used_vars): Don't create DECLs for anonymous SSA
769         names.  Expand all SSA partitions, then adjust all SSA names.
770         (pass::execute): Replace the loops that set
771         SA.partition_to_pseudo from partition leaders and cleared
772         DECL_RTL for multi-location variables, and that which used to
773         rename vars and set attrs, with one that clears DECL_RTL and
774         checks that PARMs and RESULTs default_defs match DECL_RTL.
775         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
776         * emit-rtl.c: Include stor-layout.h.
777         (set_reg_attrs_for_parm): Handle NULL decl.
778         (set_reg_attrs_for_decl_rtl): Take mode from expression if
779         it's not a DECL.
780         * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
781         rather than its possibly-NULL DECL.
782         * explow.c (promote_ssa_mode): New.
783         * explow.h (promote_ssa_mode): Declare.
784         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
785         (read_complex_part): Export.
786         * expr.h (read_complex_part): Declare.
787         * cfgexpand.h (parm_maybe_byref_p): Declare.
788         * function.c: Include cfgexpand.h.
789         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
790         (use_register_for_parm_decl): Wrapper for the above to
791         special-case the result_ptr.
792         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
793         (split_complex_args): Take assign_parm_data_all argument.
794         Pass it to rtl_for_parm.  Set up rtl and context for split
795         args.  Reset complex parm before fetching its default decl
796         rtl.
797         (assign_parms_unsplit_complex): Use the default-def complex
798         parm rtl if it matches the components.
799         (assign_parms_augmented_arg_list): Adjust.
800         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
801         multiple locations.  Recognize split complex args.
802         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
803         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
804         (assign_parm_setup_block): Prefer SSA-assigned location, and
805         fill in its address if the memory location of a maybe-byref
806         parm was not assigned by cfgexpand.
807         (assign_parm_setup_reg): Likewise.  Adjust its mode as
808         needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
809         sure passed_pointer parms don't need conversion.  Copy address
810         or value as needed.
811         (assign_parm_setup_stack): Prefer SSA-assigned location.
812         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
813         rtl before testing for pointer bounds.  Special-case result_ptr.
814         (expand_function_start): Maybe reset DECL_RTL of result.
815         Prefer SSA-assigned location for result and static chain.
816         Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
817         to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
818         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
819         anonymous SSA names.  Use promote_ssa_mode.
820         (get_temp_reg): Likewise.
821         (remove_ssa_form): Adjust.
822         * stor-layout.c (layout_decl): Don't set mem attributes of
823         non-MEMs.
824         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
825         and get its reg_usage for reg invalidation.
826         (compute_bb_dataflow): Pass it insn.
827         (emit_notes_in_bb): Likewise.
829 2015-08-14  Marek Polacek  <polacek@redhat.com>
831         * tree-core.h (tree_base): Fix typo.
833 2015-08-14  Marek Polacek  <polacek@redhat.com>
835         PR middle-end/67133
836         * gimple.c (infer_nonnull_range_by_attribute): Check that the
837         nonnull argument position is not outside function arguments.
839 2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
841         PR target/67143
842         * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
843         'lconst_atomic' with 'const_atomic'.
844         (atomic_fetch_<optab><mode>): Likewise.
845         (atomic_<optab>_fetch<mode>): Likewise.
846         * config/aarch64/iterators.md (lconst-atomic): Move below
847         'const_atomic'.
848         (const_atomic): New.
850 2015-08-14  Thomas Schwinge  <thomas@codesourcery.com>
851             Bernd Schmidt  <bernds@codesourcery.com>
853         * config/nvptx/nvptx.c (nvptx_option_override): Don't override
854         debug options.
855         * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
856         (DWARF2_DEBUGGING_INFO): Don't define.
857         * debug.h (dwarf2_lineno_debug_hooks): Declare.
858         * toplev.c (process_options): Add a case for it.
859         * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
860         (dwarf2out_init): Skip most initializations if
861         DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
862         case.
863         * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
864         DWARF2_LINENO_DEBUGGING_INFO.
865         * opts.c (set_debug_level): Likewise.
867 2015-08-14  James Greenhalgh  <james.greenhalgh@arm.com>
869         * config/arm/types.md (is_neon_type): Add missing types.
871 2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
873         * config/i386/driver-i386.c (host_detect_local_cpu): Add support
874         for skylake.
875         * config/i386/i386.c (PTA_SKYLAKE): New macros.
876         (processor_alias_table): Add skylake description.
877         (enum processor_model): Add skylake processor.
878         (arch_names_table): Add skylake record.
879         * doc/invoke.texi: Add skylake item.
881 2015-08-13  Andrew MacLeod  <amacleod@redhat.com>
883         * ira-int.h: Include recog.h.
884         * ira-build.c: Don't include recog.h.
885         * ira-color.c: Likewise.
886         * ira-conflicts.c: Likewise.
887         * ira-costs.c: Likewise.
888         * ira-emit.c: Likewise.
889         * ira-lives.c: Likewise.
890         * ira.c: Likewise.
891         * sched-deps.c: Likewise.
892         * sel-sched.c: Likewise.
893         * target-globals.c: Likewise.
895 2015-08-13  Richard Sandiford  <richard.sandiford@arm.com>
897         PR bootstrap/55035
898         * reload1.c (elimination_costs_in_insn): Make it obvious to the
899         compiler that the n_dups and n_operands loop bounds are invariant.
901 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
903         * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
904         expressions in A and B.
906 2015-08-13  Richard Biener  <rguenther@suse.de>
908         * tree.c (nonnull_arg_p): Move from ...
909         * tree-vrp.c (nonnull_arg_p): ... here.
910         * tree.h (nonnull_arg_p): Declare.
911         * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
912         here, register ptr != 0 for nonnull_arg_p pointer arguments.
913         Properly initialize static chain and by-reference result pointer.
914         (run_scc_vn): Adjust.
916 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
918         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
919         TUNE_I6400.
921 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
923         * config/aarch64/aarch64-protos.h
924         (aarch64_gen_atomic_cas): Declare.
925         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
926         Choose appropriate instruction pattern for the target.
927         (aarch64_gen_atomic_cas): New.
928         * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
929         (atomic_compare_and_swap<mode>_1): Rename to
930         aarch64_compare_and_swap<mode>.  Fix some indentation.
931         (aarch64_compare_and_swap<mode>_lse): New.
932         (aarch64_atomic_cas<mode>): New.
934 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
936         * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
937         (TARGET_LSE): New.
939 2015-08-13  Richard Biener  <rguenther@suse.de>
941         PR tree-optimization/67191
942         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
943         assert we value-numbered last stmts operand because it can validly
944         trigger for unreachable code.
946 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
948         PR rtl-optimization/67103
949         * ifcvt.c (noce_try_store_flag_constants): Move
950         x = (-(test != 0) & (b - a)) + a transformation to...
951         (noce_try_cmove): ... Here.  Try it if normal conditional
952         move fails.
954 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
956         * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
957         pseudo-processors.
958         * config/mips/mips.md (processor): Remove w32 and w64.
960 2015-08-13  Richard Biener  <rguenther@suse.de>
962         PR tree-optimization/66502
963         PR tree-optimization/67167
964         * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
965         backedge arguments.
966         (vn_phi_lookup): Adjust.
967         (vn_phi_insert): Likewise.
968         (visit_phi): Prefer to value-number to another PHI node
969         over value-numbering to a PHI argument.
970         (init_scc_vn): Mark DFS back edges.
972 2015-08-13  Richard Biener  <rguenther@suse.de>
974         * gimple.h (gcall::code_): New constant static member.
975         (gcond::code_): Likewise.
976         * gimple.c (gcall::code_): Define.
977         (gcond::code_): Likewise.
978         (is_a_helper <const gcond *>): Add.
979         (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
980         and forward to a new gcall overload with less checking and a
981         cheaper way to access the operand.
982         (gimple_call_lhs_ptr): Likewise.
983         (gimple_call_set_lhs): Likewise.
984         (gimple_call_internal_p): Likewise.
985         (gimple_call_with_bounds_p): Likewise.
986         (gimple_call_set_with_bounds): Likewise.
987         (gimple_call_internal_fn): Likewise.
988         (gimple_call_set_ctrl_altering): Likewise.
989         (gimple_call_ctrl_altering_p): Likewise.
990         (gimple_call_fntype): Likewise.
991         (gimple_call_fn): Likewise.
992         (gimple_call_fn_ptr): Likewise.
993         (gimple_call_set_fndecl): Likewise.
994         (gimple_call_fndecl): Likewise.
995         (gimple_call_chain): Likewise.
996         (gimple_call_num_args): Likewise.
997         (gimple_call_arg): Likewise.
998         (gimple_call_arg_ptr): Likewise.
999         (gimple_call_set_arg): Likewise.
1000         (gimple_call_noreturn_p): Likewise.
1001         (gimple_cond_code): Likewise.
1002         (gimple_cond_lhs): Likewise.
1003         (gimple_cond_rhs): Likewise.
1004         (gimple_has_lhs): Reduce checking.
1006 2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
1008         PR middle-end/25529
1009         * match.pd (div (mult @0 @1) @1) : New simplifier.
1011 2015-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
1013         PR target/67071
1014         * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
1015         predicate to allow construction of vector constants using the
1016         VSLDOI vector shift instruction.
1018         * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
1019         declaration.
1021         * config/rs6000/rs6000.c (vspltis_shifted): New function to return
1022         the number of bytes to be shifted left and filled in with either
1023         all zero or all one bits.
1024         (gen_easy_altivec_constant): Call vsplitis_shifted if no other
1025         methods exist.
1026         (output_vec_const_move): On power8, generate XXLORC to generate
1027         a vector constant with all 1's. Do a split if we need to use a
1028         VSLDOI instruction.
1030         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
1031         properly test for the MSB.
1033         * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
1034         vector constants that can be created with VSLDOI.
1036 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
1038         revert:
1039         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
1040         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
1041         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
1042         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
1043         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
1044         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
1045         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
1046         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
1047         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
1049 2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>
1051         * config/xtensa/constraints.md (define_constraint "Y"): New
1052         constraint.
1053         * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
1054         * config/xtensa/linux.h (ASM_SPEC): Likewise.
1055         * config/xtensa/predicates.md (move_operand): Match constants
1056         and symbols in the presence of TARGET_AUTO_LITPOOLS.
1057         * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
1058         immediate references to TLS data.
1059         (xtensa_emit_move_sequence): Don't force constants to memory in
1060         the presence of TARGET_AUTO_LITPOOLS.
1061         (print_operand): Add 'y' format, same as default, but capable of
1062         printing SF mode constants as well.
1063         * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
1064         (movsf_internal): Add movi pattern that loads literal.
1065         (movsf, movdf): Don't force constants to memory in the presence
1066         of TARGET_AUTO_LITPOOLS.
1067         (movdf_internal): Add 'Y' constraint.
1068         * config/xtensa/xtensa.opt (mauto-litpools): New option.
1069         * doc/invoke.text (Xtensa options): Document -mauto-litpools.
1071 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
1073         * config/arm/arm-fpus.def: Replace booleans with feature flags.
1074         Update comment.
1075         * config/arm/arm.c (ARM_FPU): Update macro.
1076         * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
1077         (TARGET_FP16): Likewise.
1078         (TARGET_CRYPTO): Likewise.
1079         (TARGET_NEON): Likewise.
1080         (struct arm_fpu_desc): Remove fields neon, fp16 and crypto.  Add
1081         field features.
1083 2015-08-12  Tom de Vries  <tom@codesourcery.com>
1085         PR other/67092
1086         PR other/67098
1087         * doc/install.texi: Remove --with_host_libstdcxx item.  Update
1088         --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
1089         accordingly.  Mention default for --with-stage1-ldflags.
1091 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
1093         * config/arm/arm.h (arm_fpu_feature_set): New.
1094         (ARM_FPU_FSET_HAS): New.
1095         (FPU_FL_NONE): New.
1096         (FPU_FL_NEON): New.
1097         (FPU_FL_FP16): New.
1098         (FPU_FL_CRYPTO): New.
1100 2015-08-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1102         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
1103         after -mcmodel=large -fPIC sorry.
1105 2015-08-12  Richard Biener  <rguenther@suse.de>
1107         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
1108         comparison operand order and commutative ternary op operand order.
1109         (sccvn_dom_walker::cond_stack): New state to track temporary
1110         expressions.
1111         (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
1112         no longer valid.
1113         (sccvn_dom_walker::record_cond): Add a single temporary conditional
1114         expression.
1115         (sccvn_dom_walker::record_conds): Add a temporary conditional
1116         expressions and all related expressions also true/false.
1117         (sccvn_dom_walker::before_dom_children): Record temporary
1118         expressions based on the controlling condition of a single
1119         predecessor.  When trying to simplify a conditional statement
1120         lookup expressions we might have inserted earlier.
1122 2015-08-12  Yvan Roux  <yvan.roux@linaro.org>
1124         PR target/67127
1125         * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
1126         to ARM core registers.
1128 2015-08-12  Nathan Sidwell  <nathan@acm.org>
1130         * tree-vrp.c (simplify_min_or_max_using_ranges): New.
1131         (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
1133 2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>
1135         * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
1136         line with comments.
1137         * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
1139 2015-08-12  Richard Biener  <rguenther@suse.de>
1141         * gimple.h (remove_pointer): New trait.
1142         (GIMPLE_CHECK2): New inline template function.
1143         (gassign::code_): New constant static member.
1144         (is_a_helper<const gassign *>): Add.
1145         (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
1146         and forward to a new gassign overload with less checking and a
1147         cheaper way to access the operand.
1148         (gimple_assign_lhs_ptr): Likewise.
1149         (gimple_assign_set_lhs): Likewise.
1150         (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
1151         Likewise.
1152         (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
1153         Likewise.
1154         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
1155         Likewise.
1156         (gimple_assign_rhs_code): Likewise.
1157         * gimple.c (gassign::code_): Define.
1159 2015-08-12  Richard Biener  <rguenther@suse.de>
1161         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1162         Eliminate edges marked as not executable by SCCVN.
1163         * tree-ssa-sccvn.c: Include gimple-iterator.h.
1164         (cond_dom_walker): Rename to sccvn_dom_walker.
1165         (sccvn_dom_walker::before_dom_children): Value-number defs
1166         of all stmts.
1167         (run_scc_vn): Remove loop value-numbering all SSA names.
1168         Drop not visited SSA names to varying.
1170 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
1172         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
1173         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
1174         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
1175         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
1176         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
1177         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
1178         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
1179         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
1180         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
1182 2015-08-11  Uros Bizjak  <ubizjak@gmail.com>
1184         PR target/66954
1185         * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
1186         to enum feature_priority and feature_list.
1187         (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
1188         and isa_names_table.
1190 2015-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
1192         * tree-vect-stmts.c (vectorizable_shift): Add missed test on
1193         vect_induction_def.
1195 2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1197         PR c/66098
1198         PR c/66711
1199         * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
1200         account when deciding what was the command-line status.
1202 2015-08-11  Nathan Sidwell  <nathan@acm.org>
1204         * tree-vrp.c (simplify_abs_using_ranges): Simplify.
1206         * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
1207         we're not the only contributor to target phi.
1209 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
1211         * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
1212         FIXED_REG0.
1214 2015-08-11  Tom de Vries  <tom@codesourcery.com>
1216         * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
1218 2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>
1220         * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
1221         with CPU_SLM.
1222         * config/i386/i386.md (cpu): Remove knl.
1224 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
1226         PR libgomp/65742
1227         PR middle-end/66332
1228         * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
1229         open-coded sequence.
1230         * omp-low.c (oacc_process_reduction_data): Remove handline of
1231         GOMP_DEVICE_HOST_NONSHM.
1233         * lto-streamer-in.c (lto_input_mode_table): Adjust to
1234         GET_MODE_INNER changes.
1236 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
1237             Ilya Verbin  <ilya.verbin@intel.com>
1239         * lto-streamer-in.c (lto_input_mode_table): Correctly advance
1240         iterator.
1242 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1244         * doc/options.texi (EnabledBy): Document that the argument must be
1245         a Common option.
1246         * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
1247         Not enabled by -Wall.
1248         * optc-gen.awk: Give nicer error messages. Detect if the argument
1249         of EnabledBy is not a Common option.
1250         * common.opt (Wnull-dereference): Not enabled by -Wall.
1251         * opt-functions.awk (lang_enabled_by): Nicer error messages.
1253 2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>
1255         * config/i386/driver-i386.c (host_detect_local_cpu): Treat
1256         model == 0x4f as Broadwell.
1258 2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
1260         PR rtl-optimization/67028
1261         * combine.c (simplify_comparison): Fix comment.  Rearrange code.
1262         Add test to see if a const_int fits in the new mode.
1264 2015-08-07  DJ Delorie  <dj@redhat.com>
1266         * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
1267         
1268 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
1270         PR rtl-optimization/67029
1271         * ira-color.c: Include "recog.h" before including "ira-int.h".
1272         * target-globals.c: Likewise.
1273         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
1274         adds an alternative_mask argument and use it instead of
1275         preferred_alternatives.
1276         * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
1277         * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
1278         * sched-deps.c: Include "ira-int.h" after including "ira.h".
1279         (sched_analyze_insn): Update call to
1280         ira_implicitly_set_insn_hard_regs.
1281         * sel-sched.c: Include "ira-int.h" after including "ira.h".
1282         (implicit_clobber_conflict_p): Update call to
1283         ira_implicitly_set_insn_hard_regs.
1285 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
1287         * Makefile.in (.INTERMEDIATE): Add gpl.pod.
1289 2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>
1291         PR target/67002
1292         * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
1293         currently_expanding_to_rtl is set.
1295 2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>
1297         * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
1298         * configure: Regenerate.
1300 2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1301             Jiong Wang  <jiong.wang@arm.com>
1303         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
1304         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
1305         (REG_CLASS_NAMES): Likewise.
1306         (REG_CLASS_CONTENTS): Likewise.
1307         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
1308         (aarch64_register_move_cost): Likewise.
1309         (aarch64_load_symref_appropriately): Invoke the new added pattern if
1310         possible.
1311         * config/aarch64/constraints.md (Uc0): New constraint.
1313 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
1315         * config/aarch64/constraints.md (Usf): Add the test of
1316         aarch64_is_noplt_call_p.
1318 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
1320         * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
1321         declaration.
1322         * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
1323         * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
1324         (call_symbol): Likewise.
1326 2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
1328         * tree-vect-patterns.c (vect_recog_mult_pattern): New function
1329         for vectorizing multiplication patterns.
1330         * tree-vectorizer.h: Adjust the number of patterns.
1332 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
1334         * config/i386/sse.md (*vec_concatv2df): Declare added
1335         alternatives as sselog type.
1337 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1339         * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
1340         all GPRs.
1342 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1344         * config/s390/s390.c (s390_expand_tbegin): Expand either
1345         tbegin_1_z13 or tbegin_1 depending on VX flag.
1346         * config/s390/s390.md ("tbegin_1_z13"): New expander.
1348 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1350         * config/s390/s390.opt: Clarify description for -mzvector
1351         * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
1352         -mzvector.
1354 2015-08-06  Richard Biener  <rguenther@suse.de>
1356         * gimple.h (gimple_call_set_fn): Access op member directly.
1357         (gimple_call_chain_ptr): Likewise.
1358         (gimple_call_set_chain): Likewise.
1359         (gimple_cond_lhs_ptr): Likewise.
1360         (gimple_cond_set_lhs): Likewise.
1361         (gimple_cond_rhs_ptr): Likewise.
1362         (gimple_cond_set_rhs): Likewise.
1363         (gimple_cond_true_label): Likewise.
1364         (gimple_cond_set_true_label): Likewise.
1365         (gimple_cond_set_false_label): Likewise.
1366         (gimple_cond_false_label): Likewise.
1367         (gimple_label_label): Likewise.
1368         (gimple_label_set_label): Likewise.
1369         (gimple_goto_set_dest): Likewise.
1370         (gimple_asm_input_op): Likewise.
1371         (gimple_asm_input_op_ptr): Likewise.
1372         (gimple_asm_set_input_op): Likewise.
1373         (gimple_asm_output_op): Likewise.
1374         (gimple_asm_output_op_ptr): Likewise.
1375         (gimple_asm_set_output_op): Likewise.
1376         (gimple_asm_clobber_op): Likewise.
1377         (gimple_asm_set_clobber_op): Likewise.
1378         (gimple_asm_label_op): Likewise.
1379         (gimple_asm_set_label_op): Likewise.
1380         (gimple_switch_index): Likewise.
1381         (gimple_switch_index_ptr): Likewise.
1382         (gimple_return_retval_ptr): Likewise.
1383         (gimple_return_retval): Likewise.
1384         (gimple_return_set_retval): Likewise.
1385         (gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
1386         (gimple_switch_label): Likewise.
1387         (gimple_switch_set_label): Likewise.
1389 2015-08-06  Richard Biener  <rguenther@suse.de>
1391         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
1392         bool comparison canonicalization and restrict to integers.
1394 2015-08-05  Andrew MacLeod  <amacleod@redhat.com>
1396         * coretypes.h (enum symbol_visibility): Relocate here.
1397         * flag-types.h (enum symbol_visibility): Remove.
1398         * tree-core.h (enum symbol_visibility): Remove.
1400 2015-08-05  Lynn Boger  <laboger@linux.vnet.ibm.com>
1402         PR target/66870
1403         * gcc/config/rs6000/rs6000.c (rs6000_emit_prologue): Check
1404         for no_split_stack function attribute along with
1405         flag_split_stack.
1406         (rs6000_expand_split_stack_prologue): Likewise.
1408 2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1409             Jeff Law  <law@redhat.com>
1411         PR c/16351
1412         * doc/invoke.texi (Wnull-dereference): New.
1413         * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
1414         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
1415         Warn for potential NULL dereferences.
1416         (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
1417         * ubsan.c (instrument_nonnull_arg): Call
1418         infer_nonnull_range_by_attribute.
1419         (instrument_nonnull_return): Likewise.
1420         * common.opt (Wnull-dereference); New.
1421         * gimple.c (infer_nonnull_range): Remove bool arguments.
1422         (infer_nonnull_range_by_dereference): New.
1423         (infer_nonnull_range_by_attribute): New.
1424         * gimple.h: Update declarations.
1426 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
1428         * gensupport.c (sequence_num): Replace with...
1429         (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
1430         ...these new variables.
1431         (init_rtx_reader_args_cb): Update accordingly.
1432         (get_num_code_insns): Likewise.
1433         (read_md_rtx): Rework to use a while loop and get_c_test.
1434         Use the new counters.  Remove redundant DEFINE_SUBST case.
1435         * genoutput.c (gen_split): Delete.
1436         (main): Don't call it.
1438 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
1440         * gensupport.h (get_c_test): Declare.
1441         * gensupport.c (get_c_test): New function.
1442         * genconditions.c (main): Use it.
1443         * genrecog.c (validate_pattern): Likewise.
1444         (match_pattern_1): Likewise.  Remove c_test argument.
1445         (match_pattern): Update accordingly and remove c_test argument.
1446         (main): Update accordingly.
1448 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
1450         * gensupport.h (get_num_insn_codes): Declare.
1451         * gensupport.c (get_num_insn_codes): New function.
1452         * genattrtab.c (optimize_attrs): Rename max_insn_code to
1453         num_insn_codes.
1454         (main): Likewise.  Use get_num_insn_codes.
1455         * gencodes.c (main): Remove "last" and use get_num_insn_codes.
1457 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
1459         PR middle-end/66311
1460         * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
1461         is zero- rather than sign-extended.
1463 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
1465         * target-insns.def (can_extend): Delete.
1467 2015-08-05  Richard Biener  <rguenther@suse.de>
1469         PR tree-optimization/67121
1470         * tree-if-conv.c (combine_blocks): Clear range-info produced
1471         by stmts no longer executed conditionally.
1473 2015-08-05  Nick Clifton  <nickc@redhat.com>
1475         * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
1476         to allow identical far pointers to remain.
1478 2015-08-05  Richard Biener  <rguenther@suse.de>
1480         PR middle-end/67120
1481         * match.pd: Compare address bases with == if they are decls
1482         or SSA names, not operand_equal_p.  Otherwise fail.
1484 2015-08-05  Richard Biener  <rguenther@suse.de>
1486         PR tree-optimization/67055
1487         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
1488         NULL gimple_block.
1490         * g++.dg/torture/pr67055.C: New testcase.
1492 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
1494         * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
1495         noavx512vl.
1496         (define_attr "enabled"): Handle avx521vl and noavx512vl.
1497         * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
1498         AVX-512 alternative out of SSE.
1499         (define_insn "*vec_concatv2df"): Ditto.
1501 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
1503         * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
1504         CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
1505         CODE_FOR_avx_ptestv4di.
1506         * config/i386/sse.md (define_mode_iterator V_AVX): New.
1507         (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
1508         (define_insn "avx_ptest256"): Merge this ...
1509         (define_insn "sse4_1_ptest"): And this ...
1510         (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
1512 2015-08-05  Richard Biener  <rguenther@suse.de>
1514         PR tree-optimization/67109
1515         * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
1516         against too big groups.  Print whether this is a load or store
1517         group.  Rename from ...
1518         (vect_analyze_group_access): ... this which is now a wrapper
1519         dissolving an invalid group.
1520         (vect_analyze_data_ref_accesses): Print whether this is a load
1521         or store group.
1523 2015-08-05  Richard Biener  <rguenther@suse.de>
1525         PR middle-end/67107
1526         * match.pd: Guard const_binop result checking against NULL_TREE
1527         result.
1529 2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
1531         * cse.c (cse_insn): Restoring old behaviour for src_eqv
1532          when dest and value in the REG_EQUAL are same and dest
1533          is STRICT_LOW_PART.
1535 2015-08-04  Anatoly Sokolov  <aesok@post.ru>
1537         * config/moxie/moxie.h (PRINT_OPERAND,
1538           PRINT_OPERAND_ADDRESS): Remove macros.
1539         * config/moxie/moxie-protos.h (moxie_print_operand,
1540           moxie_print_operand_address): Remove declaration.
1541         * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
1542           TARGET_PRINT_OPERAND_ADDRESS): Define.
1543           (moxie_print_operand, moxie_print_operand_address): Make static.
1545 2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
1547         PR target/66731
1548         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
1549         (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
1551 2015-08-04  Richard Biener  <rguenther@suse.de>
1553         * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
1554         generated code.
1555         (dt_operand::gen_gimple_expr): Adjust.
1557 2015-08-04  Richard Biener  <rguenther@suse.de>
1559         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
1560         bool compares on RHS.
1561         * match.pd: Add X ==/!= !X is false/true pattern.
1563 2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>
1565         * config/aarch64/aarch64.c: Change inner loop statement cost
1566         to be consistent with other targets.
1568 2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>
1570         * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
1571         targets.
1573 2015-08-04  Nathan Sidwell  <nathan@codesourcery.com>
1575         * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
1576         (machine_function): Remove pseudos field.
1578 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1580         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
1581         Exit early and use target_option_current_node if processing current
1582         pragma.
1584 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1586         * doc/extend.texi (AArch64 Function Attributes): New node.
1587         (AArch64 Pragmas): Likewise.
1589 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1591         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
1592         Initialize simd builtins if TARGET_SIMD.
1593         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
1594         Make sure that the builtins are initialized only once no matter how
1595         many times the function is called.
1596         (aarch64_init_builtins): Unconditionally initialize crc builtins.
1597         (aarch64_relayout_simd_param): New function.
1598         (aarch64_simd_expand_args): Use above during argument expansion.
1599         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
1600         simd builtins if TARGET_SIMD.
1601         * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
1602         prototype.
1603         (aarch64_relayout_simd_types): Likewise.
1605 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1607         * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
1608         * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
1609         (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
1610         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
1611         static keyword.
1612         (aarch64_reset_previous_fndecl): New function.
1613         (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
1614         the string.
1615         * config/aarch64/aarch64-c.c: New file.
1616         * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
1617         Push and pop options at beginning and end.  Remove ifdef
1618         __ARM_FEATURE_CRC32.
1619         * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
1620         Add pragma +nothing+simd and +nothing+crypto where appropriate.
1621         * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
1622         * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
1623         Define prototype.
1624         (aarch64_register_pragmas): Likewise.
1625         (aarch64_reset_previous_fndecl): Likewise.
1626         (aarch64_process_target_attr): Likewise.
1627         (aarch64_override_options_internal): Likewise.
1629 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1631         * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
1632         New function.
1633         (aarch64_can_inline_p): Likewise.
1634         (TARGET_CAN_INLINE_P): Define.
1636 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1638         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
1639         Remove static.  Handle OPT_mgeneral_regs_only,
1640         OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
1641         OPT_momit_leaf_frame_pointer.
1642         * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
1643         (aarch64_attr_opt_type): New enum.
1644         (aarch64_attribute_info): New struct.
1645         (aarch64_handle_attr_arch): New function.
1646         (aarch64_handle_attr_cpu): Likewise.
1647         (aarch64_handle_attr_tune): Likewise.
1648         (aarch64_handle_attr_isa_flags): Likewise.
1649         (aarch64_attributes): New table.
1650         (aarch64_process_one_target_attr): New function.
1651         (num_occurences_in_str): Likewise.
1652         (aarch64_process_target_attr): Likewise.
1653         (aarch64_option_valid_attribute_p): Likewise.
1654         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
1655         * config/aarch64/aarch64-protos.h: Include input.h
1656         (aarch64_handle_option): Declare prototype.
1658 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1660         * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
1661         * config/aarch64/aarch64.c: Include target-globals.h
1662         (aarch64_previous_fndecl): New variable.
1663         (aarch64_set_current_function): New function.
1664         (TARGET_SET_CURRENT_FUNCTION): Define.
1666 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1668         * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
1669         (explicit_arch): Likewise.
1670         (x_aarch64_isa_flags): Likewise.
1671         (mgeneral-regs-only): Mark as Save.
1672         (mfix-cortex-a53-835769): Likewise.
1673         (mcmodel=): Likewise.
1674         (mstrict-align): Likewise.
1675         (momit-leaf-frame-pointer): Likewise.
1676         (mtls-dialect): Likewise.
1677         (master=): Likewise.
1678         * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
1679         (aarch64_isa_flags): Remove extern declaration.
1680         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
1681         to indicate success or failure.
1682         (aarch64_validate_march): Likewise.
1683         (aarch64_validate_mtune): Likewise.
1684         (aarch64_isa_flags): Delete.
1685         (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
1686         instead of aarch64_isa_flags.
1687         (aarch64_get_tune_cpu): New function.
1688         (aarch64_get_arch): Likewise.
1689         (aarch64_override_options): Use above and set up explicit_tune_core
1690         and explicit_arch.
1691         (aarch64_print_extension): Move earlier in file.  Add isa_flags
1692         argument and use that instead of the global aarch64_isa_flags.
1693         (aarch64_option_save): New function.
1694         (aarch64_option_restore): Likewise.
1695         (aarch64_option_print): Likewise.
1696         (aarch64_declare_function_name): Likewise.
1697         (aarch64_start_file): Delete.
1698         (TARGET_ASM_FILE_START): Do not define.
1699         (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
1700         * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
1701         Declare prototype.
1703 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1705         * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
1706         flag_omit_leaf_frame_pointer to 2.
1708 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1710         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
1711         define to 0 or 1.
1712         (TARGET_FIX_ERR_A53_835769): New macro.
1713         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
1714         handling of opts->x_aarch64_fix_a53_err835769.
1715         (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
1716         than aarch64_fix_a53_err835769.
1717         * config/aarch64/aarch64-elf-raw.h: Update for above changes.
1718         * config/aarch64/aarch64-linux.h: Likewise.
1720 2015-08-04  Uros Bizjak  <ubizjak@gmail.com>
1722         * config/i386/i386.c (ix86_expand_int_movcc): Check result of
1723         ix86_expand_int_movcc as boolean.
1725 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1727         * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
1728         (aarch64_cpu_string): Likewise.
1729         (aarch64_tune_string): Likewise.
1730         * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
1731         (aarch64_parse_extension): Return aarch64_parse_opt_result.
1732         Add extra argument to put result into.
1733         (aarch64_parse_arch): Likewise.  Do not set selected_cpu.
1734         (aarch64_parse_cpu): Add arguments to put results into. Return
1735         aarch64_parse_opt_result.
1736         (aarch64_parse_tune): Likewise.
1737         (aarch64_override_options_after_change_1): New function.
1738         (aarch64_override_options_internal): New function.
1739         (aarch64_validate_mcpu): Likewise.
1740         (aarch64_validate_march): Likewise.
1741         (aarch64_validate_mtune): Likewise.
1742         (aarch64_override_options): Update to reflect above changes.
1743         Move some logic into aarch64_override_options_internal.
1744         Initialize target_option_default_node and target_option_current_node.
1745         (aarch64_override_options_after_change): Move logic into
1746         aarch64_override_options_after_change_1 and call it with global_options.
1747         (initialize_aarch64_code_model): Take a gcc_options pointer and use the
1748         flag values from that.
1750 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1752         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
1753         __ARM_ARCH_8A directly rather than with cpp_define_formatted.
1754         * config/aarch64/aarch64.c (struct processor): Add arch field.
1755         (all_architectures): Handle above, move above all_cores.
1756         (all_cores): Handle above.
1757         (aarch64_parse_arch): Handle above changes.
1758         * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
1759         above.  Update comments.
1760         (armv8.1-a): Likewise.
1761         * config/aarch64/aarch64-cores.def: Update according to above.
1762         * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
1763         * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
1764         aarch64_arch_driver_info.
1766 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1768         * config/aarch64/aarch64.c (struct processor): Add ident field.
1769         Rename core sched_core.
1770         (all_cores): Handle above changes.
1771         (all_architectures): Likewise.
1772         (aarch64_parse_arch): Likewise.
1773         (aarch64_override_options): Likewise.
1775 2015-08-04  Richard Biener  <rguenther@suse.de>
1777         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
1778         dispatching to fold_binary for GIMPLE_BINARY_RHS and for
1779         comparisons embedded in [VEC_]COND_EXPRs.
1781 2015-08-03  Abe Skolnik  <a.skolnik@samsung.com>
1783         * tree-if-conv.c: Fix various typos in comments.
1784         * tree-vect-stmts.c: Likewise.
1786 2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1788         PR tree-optimization/67043
1789         * loop-invariant.c (move_invariant_reg): Recompute luids in loop
1790         preheader after hoisting invariant in it.
1791         (find_defs): Force recomputation of all luids.
1793 2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>
1795         * config/rs6000/htm.md (tabort.): Restrict the source operand to
1796         using a base register.
1798 2015-08-03  David Malcolm  <dmalcolm@redhat.com>
1800         * main.c (main): Pass in NULL for toplev's external_timer.
1801         * timevar.c: Include coretypes.h.
1802         (class timer::named_items): New.
1803         (timer::named_items::named_items): New.
1804         (timer::named_items::~named_items): New.
1805         (timer::named_items::push): New.
1806         (timer::named_items::pop): New.
1807         (timer::named_items::print): New.
1808         (timer::timer): Initialize field "m_jit_client_items".
1809         (timer::~timer): New.
1810         (timer::push): Move bulk of implementation to...
1811         (timer::push_internal): ...here.  New function.
1812         (timer::pop): Move bulk of implementation to...
1813         (timer::pop_internal): ...here.  New function.
1814         (timer::push_client_item): New.
1815         (timer::pop_client_item): New.
1816         (timer::print_row): New function, taken from timer::print.
1817         (timer::print): Print "GCC items" header if we also have client
1818         items.  Move row-printing to timer::print_row.  Print any client
1819         items.
1820         (timer::get_topmost_item_name): New method.
1821         * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
1822         (TV_JIT_CLIENT_CODE): New.
1823         * timevar.h (timer::push_client_item): New declaration.
1824         (timer::pop_client_item): New declaration.
1825         (timer::get_topmost_item_name): New method.
1826         (timer::push_internal): New declaration.
1827         (timer::pop_internal): New declaration.
1828         (timer::print_row): New declaration.
1829         (timer::named_items): New declaration.
1830         (timer::m_jit_client_items): New field.
1831         (timer): Add friend class named_items.
1832         (auto_timevar::auto_timevar): Add timer param.
1833         (auto_timevar::~auto_timevar): Use field "m_timer".
1834         (auto_timevar::m_timer): New field.
1835         * toplev.c (initialize_rtl): Add g_timer as param when
1836         constructing auto_timevar instance.
1837         (toplev::toplev): Add "external_timer" param, and use it to
1838         initialize the "g_timer" global if non-NULL.
1839         (toplev::~toplev): If this created "g_timer", delete it.
1840         * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
1841         with "external_timer" timer *.
1843 2015-08-03  Alexander Basov <coohpt@gmail.com>
1845         PR middle-end/64744
1846         PR middle-end/48470
1847         PR middle-end/43404
1848         * cfgexpand.c (expand_one_var): Add check if stack is going to
1849         be used in naked function.
1850         * expr.c (expand_expr_addr_expr_1): Remove excess checking
1851         whether expression should not reside in MEM.
1852         * function.c (use_register_for_decl): Do not use registers for
1853         non-register things (volatile, float, BLKMode) in naked functions.
1855 2015-08-03  John David Anglin  <danglin@gcc.gnu.org>
1857         PR target/67060
1858         * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
1859         Adjust splits to match new pattern.
1861 2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
1863         * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
1864         (VEC_M): Likewise.
1865         (VEC_N): Likewise.
1866         (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
1867         point in VSX registers.
1869         * config/rs6000/constraints.md (wb constraint): Document unused
1870         w<x> constraint.
1871         (we constraint): Likewise.
1872         (wo constraint): Likewise.
1873         (wp constraint): New constraint for IEEE 128-bit floating point in
1874         VSX registers.
1875         (wq constraint): Likewise.
1877         * config/rs6000/predicates.md (easy_fp_constant): Add support for
1878         IEEE 128-bit floating point in VSX registers.
1879         (easy_scalar_constant): Likewise.
1881         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
1882         constraints (wp, wq) for IEEE 128-bit floating point in VSX
1883         registers.
1884         (rs6000_init_hard_regno_mode_ok): Likewise.
1886         * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
1887         floating point in VSX registers.
1888         (VSX_L): Likewise.
1889         (VSX_M): Likewise.
1890         (VSX_M2): Likewise.
1891         (VSm): Likewise.
1892         (VSs): Likewise.
1893         (VSr): Likewise.
1894         (VSa): Likewise.
1895         (VSv): Likewise.
1896         (vsx_le_permute_<mode>): Add support to properly swap bytes for
1897         IEEE 128-bit floating point in VSX registers on little endian.
1898         (vsx_le_undo_permute_<mode>): Likewise.
1899         (vsx_le_perm_load_<mode>): Likewise.
1900         (vsx_le_perm_store_<mode>): Likewise.
1901         (splitters for IEEE 128-bit fp moves): Likewise.
1903         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
1904         wq constraints.
1906         * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
1907         floating point in VSX registers.
1908         (VM2): Likewise.
1910         * doc/md.text (Machine Constraints): Document wp and wq
1911         constraints on PowerPC.
1913 2015-08-03  Jeff Law  <law@redhat.com>
1915         PR middle-end/66314
1916         PR gcov-profile/66899
1917         * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
1918         iterate over the jump threading paths when an element in the
1919         jump threading paths array is eliminated.
1921 2015-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
1923         * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
1925 2015-08-03  Patrick Palka  <ppalka@gcc.gnu.org>
1927         * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
1928         is_use_properly_guarded the variable def_preds.  Free its
1929         contents before returning.
1930         (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
1931         (is_use_properly_guarded): Replace local variable def_preds with
1932         a parameter.  Adjust accordingly.  Only update *def_preds if it's
1933         the empty vector.
1935 2015-08-03  Richard Biener  <rguenther@suse.de>
1937         * genmatch.c (simplify::for_subst_vec): New member.
1938         (binary_ok): New helper for for lowering.
1939         (lower_for): Delay substituting operators into result expressions
1940         if we can merge the results eventually again.
1941         (capture_info::walk_result): Adjust for user_id appearing as
1942         result expression operator.
1943         (expr::gen_transform): Likewise.
1944         (dt_simplify::gen_1): Likewise.
1945         (dt_simplify::gen): Pass not substituted operators to tail
1946         functions or initialize local variable with it.
1947         (decision_tree::gen): Adjust function signature.
1948         * match.pd: Fix tests against global code and add default
1949         cases to switch stmts.
1951 2015-08-03  Richard Biener  <rguenther@suse.de>
1953         * genmatch.c (dt_simplify::gen): Create captures array
1954         with an initializer.
1956 2015-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1958         * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
1959         the host compiler is affected by placement new aliasing bug.
1960         * configure: Regenerate.
1961         * Makefile.in (ALIASING_FLAGS): New variable.
1962         (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
1964 2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
1966         PR target/66731
1967         * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
1968         (negmulsf3_vfp): Likewise.
1969         (muldf3negdf_vfp): Disable for -frounding-math.
1970         (mulsf3negsf_vfp): Likewise.
1971         * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
1972         fix MULT cost with -frounding-math.
1974 2015-08-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1976         * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
1977         when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
1978         explicit.  Prefer to add the flag whenever possible.
1979         (noce_process_if_block): Try noce_try_store_flag_constants before
1980         noce_try_cmove.
1982 2015-08-03  Richard Biener  <rguenther@suse.de>
1984         * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
1985         New hash-map to record equivalent transforms.
1986         (dt_node::analyze): Populate the equivalent transforms hash-map.
1987         (dt_simplify::info): Add reference to hash-map entry.
1988         (dt_simplify::gen): If we have split out a function for the
1989         transform, generate a call to it.
1990         (sinfo_hashmap_traits::hash): New function.
1991         (compare_op): New helper function for ...
1992         (sinfo_hashmap_traits::equal_keys): ... this new function.
1993         (decision_tree::gen): Split out common equivalent transforms
1994         into functions.
1996 2015-08-03  Richard Biener  <rguenther@suse.de>
1998         * gimple-fold.c (fold_gimple_assign): Remove folding of
1999         the comparison in COND_EXPRs.
2001 2015-08-03  Richard Biener  <rguenther@suse.de>
2003         * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
2004         on the rhs of assignments first simplify the embedded
2005         GENERIC condition.
2007 2015-08-03  Richard Biener  <rguenther@suse.de>
2009         PR tree-optimization/66917
2010         * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
2011         field.
2012         (DR_VECT_AUX): New macro.
2013         (set_dr_misalignment): Adjust.
2014         (dr_misalignment): Likewise.
2015         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
2016         Compute whether the base is at least element aligned.
2017         * tree-vect-stmts.c (ensure_base_align): Adjust.
2018         (vectorizable_store): If the base is not element aligned
2019         preserve alignment of the original access if misalignment is unknown.
2020         (vectorizable_load): Likewise.
2022 2015-08-02  Martin Sebor  <msebor@redhat.com>
2024         * c-family/c.opt (-Wframe-address): New warning option.
2025         * doc/invoke.texi (Wframe-address): Document it.
2026         * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
2027         Clarify possible effects of calling the functions with non-zero
2028         arguments and mention -Wframe-address.
2029         * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
2031 2015-08-01  Michael Collison  <michael.collison@linaro.org
2032             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2034         * gcc/config/arm/arm.md (*arm_smin_cmp): New pattern.
2035         (*arm_umin_cmp): Likewise.
2037 2015-08-01  Caroline Tice  <cmtice@google.com>
2039         PR 66521
2040         * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
2041         global variables.
2042         (vtbl_find_mangled_name):  New function.
2043         (vtbl_register_mangled_name):  New function.
2044         (vtbl_map_get_node):  If DECL_ASSEMBLER_NAME is "<anon>", look up
2045         mangled name in mangled name vectors.
2046         (find_or_create_vtbl_map_node):  Ditto.
2047         (var_is_used_for_virtual_call_p):  Add recursion_depth parameter;
2048         update recursion_depth on function entry; pass it to every recursive
2049         call; automatically exit if depth > 25 (give up looking at that point).
2050         (verify_bb_vtables):  Initialize recursion_depth and pass it to
2051         var_is_used_for_virtual_call_p.
2052         * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
2053         global variable decls.
2054         (vtbl_register_mangled_name): New extern function decl.
2056 2015-08-01  Tom de Vries  <tom@codesourcery.com>
2058         * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
2059         function.
2060         * tree.h (operation_can_overflow, operation_no_trapping_overflow):
2061         Declare.
2062         * tree-vect-loop.c (vect_is_simple_reduction_1): Use
2063         operation_no_trapping_overflow.  Allow non-overflow operations.
2064         * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
2065         operations.
2067 2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
2069         PR target/67049
2070         * config/sh/sh.md (GOTaddr2picreg): Fix typo.
2072 2015-07-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2074         * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
2075         Enable for TARGET_32BIT.
2076         (*if_move_neg): Likewise.
2078 2015-07-31  Nick Clifton  <nickc@redhat.com>
2080         * config/m32r/m32r.c (m32r_attribute_identifier): New function.
2081         Returns true for __model__.
2082         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
2084 2015-07-31  Alan Modra  <amodra@gmail.com>
2086         PR target/66870
2087         * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
2088         (rs6000_emit_prologue): Set it.
2089         (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
2091 2015-07-31  Richard Biener  <rguenther@suse.de>
2093         * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
2094         -> X == (C1 ^ C2) which is already implemented in match.pd.
2095         Remove redundant dispatching to fold_relational_const.
2096         Move unordered self and NaN compares ...
2097         * match.pd: ... as patterns here.  Remove some stray captures
2098         and add a comment.
2100 2015-07-31  Petr Murzin  <petr.murzin@intel.com>
2102         * config/i386/i386.c
2103         (bdesc_special_args): Convert mask type from signed to unsigned for
2104         masked builtins.
2105         (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
2106         UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
2107         V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
2108         V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
2109         V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
2110         V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
2111         V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
2112         V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
2113         V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
2114         HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
2115         V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
2116         V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
2117         V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
2118         V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
2119         V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
2120         V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
2121         V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
2122         V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
2123         V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
2124         V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
2125         V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
2126         HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
2127         VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
2128         V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
2129         * config/i386/i386-builtin-types.def
2130         (V16QI_FTYPE_V16SI): Remove.
2131         (V8DF_FTYPE_V8SI): Ditto.
2132         (V8HI_FTYPE_V8DI): Ditto.
2133         (V8SI_FTYPE_V8DI): Ditto.
2134         (V8SF_FTYPE_V8DF): Ditto.
2135         (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
2136         (V16HI_FTYPE_V16SI): Ditto.
2137         (V16SF_FTYPE_V16HI): Ditto.
2138         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
2139         (V16SF_FTYPE_V16SI): Ditto.
2140         (V4DI_FTYPE_V4DI): Ditto.
2141         (V16SI_FTYPE_V16SF): Ditto.
2142         (V16SF_FTYPE_FLOAT): Ditto.
2143         (V8DF_FTYPE_DOUBLE): Ditto.
2144         (V8DI_FTYPE_INT64): Ditto.
2145         (V8DI_FTYPE_V4DI): Ditto.
2146         (V16QI_FTYPE_V8DI): Ditto.
2147         (UINT_FTYPE_V4SF): Ditto.
2148         (UINT64_FTYPE_V4SF): Ditto.
2149         (UINT_FTYPE_V2DF): Ditto.
2150         (UINT64_FTYPE_V2DF): Ditto.
2151         (V16SI_FTYPE_V16SI): Ditto.
2152         (V8DI_FTYPE_V8DI): Ditto.
2153         (V16SI_FTYPE_PV4SI): Ditto.
2154         (V16SF_FTYPE_PV4SF): Ditto.
2155         (V8DI_FTYPE_PV2DI): Ditto.
2156         (V8DF_FTYPE_PV2DF): Ditto.
2157         (V4DI_FTYPE_PV2DI): Ditto.
2158         (V4DF_FTYPE_PV2DF): Ditto.
2159         (V16SI_FTYPE_PV2SI): Ditto.
2160         (V16SF_FTYPE_PV2SF): Ditto.
2161         (V8DI_FTYPE_PV4DI): Ditto.
2162         (V8DF_FTYPE_PV4DF): Ditto.
2163         (V8SF_FTYPE_FLOAT): Ditto.
2164         (V4SF_FTYPE_FLOAT): Ditto.
2165         (V4DF_FTYPE_DOUBLE): Ditto.
2166         (V8SF_FTYPE_PV4SF): Ditto.
2167         (V8SI_FTYPE_PV4SI): Ditto.
2168         (V4SI_FTYPE_PV2SI): Ditto.
2169         (V8SF_FTYPE_PV2SF): Ditto.
2170         (V8SI_FTYPE_PV2SI): Ditto.
2171         (V16SF_FTYPE_PV8SF): Ditto.
2172         (V16SI_FTYPE_PV8SI): Ditto.
2173         (V8DI_FTYPE_V8SF): Ditto.
2174         (V4DI_FTYPE_V4SF): Ditto.
2175         (V2DI_FTYPE_V4SF): Ditto.
2176         (V64QI_FTYPE_QI): Ditto.
2177         (V32HI_FTYPE_HI): Ditto.
2178         (V8UHI_FTYPE_V8UHI): Ditto.
2179         (V16UHI_FTYPE_V16UHI): Ditto.
2180         (V32UHI_FTYPE_V32UHI): Ditto.
2181         (V2UDI_FTYPE_V2UDI): Ditto.
2182         (V4UDI_FTYPE_V4UDI): Ditto.
2183         (V8UDI_FTYPE_V8UDI): Ditto.
2184         (V4USI_FTYPE_V4USI): Ditto.
2185         (V8USI_FTYPE_V8USI): Ditto.
2186         (V16USI_FTYPE_V16USI): Ditto.
2187         (V2DF_FTYPE_V2DF_UINT64): Ditto.
2188         (V2DI_FTYPE_V2DF_V2DF): Ditto.
2189         (V2UDI_FTYPE_V4USI_V4USI): Ditto.
2190         (V8DF_FTYPE_V8DF_V8DI): Ditto.
2191         (V4SF_FTYPE_V4SF_UINT64): Ditto.
2192         (V4SI_FTYPE_V4SF_V4SF): Ditto.
2193         (V16SF_FTYPE_V16SF_V16SI): Ditto.
2194         (V64QI_FTYPE_V32HI_V32HI): Ditto.
2195         (V32HI_FTYPE_V16SI_V16SI): Ditto.
2196         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
2197         (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
2198         (V32HI_FTYPE_V64QI_V64QI): Ditto.
2199         (V32HI_FTYPE_V32HI_V32HI): Ditto.
2200         (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
2201         (V16SI_FTYPE_V16SI_V4SI): Ditto.
2202         (V16SI_FTYPE_V16SI_V16SI): Ditto.
2203         (V16SI_FTYPE_V32HI_V32HI): Ditto.
2204         (V16SI_FTYPE_V16SI_SI): Ditto.
2205         (V8DI_FTYPE_V8DI_V8DI): Ditto.
2206         (V4UDI_FTYPE_V8USI_V8USI): Ditto.
2207         (V8DI_FTYPE_V16SI_V16SI): Ditto.
2208         (V8DI_FTYPE_V8DI_V2DI): Ditto.
2209         (QI_FTYPE_QI): Ditto.
2210         (SI_FTYPE_SI): Ditto.
2211         (DI_FTYPE_DI): Ditto.
2212         (QI_FTYPE_QI_QI): Ditto.
2213         (QI_FTYPE_QI_INT): Ditto.
2214         (HI_FTYPE_HI_INT): Ditto.
2215         (SI_FTYPE_SI_INT): Ditto.
2216         (DI_FTYPE_DI_INT): Ditto.
2217         (HI_FTYPE_V16QI_V16QI): Ditto.
2218         (SI_FTYPE_V32QI_V32QI): Ditto.
2219         (DI_FTYPE_V64QI_V64QI): Ditto.
2220         (QI_FTYPE_V8HI_V8HI): Ditto.
2221         (HI_FTYPE_V16HI_V16HI): Ditto.
2222         (SI_FTYPE_V32HI_V32HI): Ditto.
2223         (QI_FTYPE_V4SI_V4SI): Ditto.
2224         (QI_FTYPE_V8SI_V8SI): Ditto.
2225         (QI_FTYPE_V2DI_V2DI): Ditto.
2226         (QI_FTYPE_V4DI_V4DI): Ditto.
2227         (QI_FTYPE_V8DI_V8DI): Ditto.
2228         (HI_FTYPE_V16SI_V16SI): Ditto.
2229         (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
2230         (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
2231         (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
2232         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
2233         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
2234         (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
2235         (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
2236         (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
2237         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
2238         (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
2239         (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
2240         (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
2241         (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
2242         (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
2243         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
2244         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
2245         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
2246         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
2247         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
2248         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
2249         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
2250         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
2251         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
2252         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
2253         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
2254         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
2255         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
2256         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
2257         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
2258         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
2259         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
2260         (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
2261         (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
2262         (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
2263         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
2264         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
2265         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
2266         (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
2267         (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
2268         (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
2269         (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
2270         (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
2271         (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
2272         (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
2273         (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
2274         (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
2275         (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
2276         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
2277         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
2278         (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
2279         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
2280         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
2281         (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
2282         (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
2283         (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
2284         (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
2285         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
2286         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
2287         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
2288         (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
2289         (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
2290         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
2291         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
2292         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
2293         (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
2294         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
2295         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
2296         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
2297         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
2298         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
2299         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
2300         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
2301         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
2302         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
2303         (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
2304         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
2305         (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
2306         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
2307         (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
2308         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
2309         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
2310         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
2311         (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
2312         (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
2313         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
2314         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
2315         (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
2316         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
2317         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
2318         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
2319         (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
2320         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
2321         (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
2322         (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
2323         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
2324         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
2325         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
2326         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
2327         (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
2328         (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
2329         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
2330         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
2331         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
2332         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
2333         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
2334         (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
2335         (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
2336         (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
2337         (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
2338         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
2339         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
2340         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
2341         (HI_FTYPE_HI): Ditto.
2342         (HI_FTYPE_V16QI): Ditto.
2343         (SI_FTYPE_V32QI): Ditto.
2344         (DI_FTYPE_V64QI): Ditto.
2345         (QI_FTYPE_V8HI): Ditto.
2346         (HI_FTYPE_V16HI): Ditto.
2347         (SI_FTYPE_V32HI): Ditto.
2348         (QI_FTYPE_V4SI): Ditto.
2349         (QI_FTYPE_V8SI): Ditto.
2350         (HI_FTYPE_V16SI): Ditto.
2351         (QI_FTYPE_V2DI): Ditto.
2352         (QI_FTYPE_V4DI): Ditto.
2353         (QI_FTYPE_V8DI): Ditto.
2354         (V16QI_FTYPE_HI): Ditto.
2355         (V32QI_FTYPE_SI): Ditto.
2356         (V64QI_FTYPE_DI): Ditto.
2357         (V8HI_FTYPE_QI): Ditto.
2358         (V16HI_FTYPE_HI): Ditto.
2359         (V32HI_FTYPE_SI): Ditto.
2360         (V4SI_FTYPE_QI): Ditto.
2361         (V4SI_FTYPE_HI): Ditto.
2362         (V8SI_FTYPE_QI): Ditto.
2363         (V8SI_FTYPE_HI): Ditto.
2364         (V2DI_FTYPE_QI): Ditto.
2365         (V4DI_FTYPE_QI): Ditto.
2366         (HI_FTYPE_HI_HI): Ditto.
2367         (SI_FTYPE_SI_SI): Ditto.
2368         (DI_FTYPE_DI_DI): Ditto.
2369         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
2370         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
2371         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
2372         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
2373         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
2374         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
2375         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
2376         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
2377         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
2378         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
2379         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
2380         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
2381         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
2382         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
2383         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
2384         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
2385         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
2386         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
2387         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
2388         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
2389         (QI_FTYPE_V8DI_V8DI_QI): Ditto.
2390         (HI_FTYPE_V16SI_V16SI_HI): Ditto.
2391         (QI_FTYPE_V8DI_V8DI_INT): Ditto.
2392         (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
2393         (HI_FTYPE_V16SI_V16SI_INT): Ditto.
2394         (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
2395         (QI_FTYPE_V8DF_V8DF_INT): Ditto.
2396         (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
2397         (HI_FTYPE_V16SF_V16SF_INT): Ditto.
2398         (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
2399         (QI_FTYPE_V2DF_V2DF_INT): Ditto.
2400         (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
2401         (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
2402         (QI_FTYPE_V4SF_V4SF_INT): Ditto.
2403         (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
2404         (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
2405         (V16SI_FTYPE_HI): Ditto.
2406         (V8DI_FTYPE_QI): Ditto.
2407         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
2408         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
2409         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
2410         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
2411         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
2412         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
2413         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
2414         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
2415         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
2416         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
2417         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
2418         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
2419         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
2420         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
2421         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
2422         (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
2423         (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
2424         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
2425         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
2426         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
2427         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
2428         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
2429         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
2430         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
2431         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
2432         (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
2433         (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
2434         (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
2435         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
2436         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
2437         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
2438         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
2439         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
2440         (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
2441         (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
2442         (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
2443         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
2444         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
2445         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
2446         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
2447         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
2448         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
2449         (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
2450         (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
2451         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
2452         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
2453         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
2454         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
2455         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
2456         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
2457         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
2458         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
2459         (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
2460         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
2461         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
2462         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
2463         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
2464         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
2465         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
2466         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
2467         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
2468         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
2469         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
2470         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
2471         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
2472         (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
2473         (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
2474         (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
2475         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
2476         (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
2477         (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
2478         (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
2479         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
2480         (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
2481         (V16SI_FTYPE_SI_V16SI_HI): Ditto.
2482         (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
2483         (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
2484         (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
2485         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
2486         (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
2487         (V8DI_FTYPE_DI_V8DI_QI): Ditto.
2488         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
2489         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
2490         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
2491         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
2492         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
2493         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
2494         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
2495         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
2496         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
2497         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
2498         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
2499         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
2500         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
2501         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
2502         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
2503         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
2504         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
2505         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
2506         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
2507         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
2508         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
2509         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
2510         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
2511         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
2512         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
2513         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
2514         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
2515         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
2516         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
2517         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
2518         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
2519         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
2520         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
2521         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
2522         (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
2523         (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
2524         (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
2525         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
2526         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
2527         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
2528         (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
2529         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
2530         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
2531         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
2532         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
2533         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
2534         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
2535         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
2536         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
2537         (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
2538         (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
2539         (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
2540         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
2541         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
2542         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
2543         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
2544         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
2545         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
2546         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
2547         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
2548         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
2549         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
2550         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
2551         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
2552         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
2553         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
2554         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
2555         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
2556         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
2557         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
2558         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
2559         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
2560         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
2561         (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
2562         (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
2563         (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
2564         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
2565         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
2566         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
2567         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
2568         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
2569         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
2570         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
2571         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
2572         (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
2573         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
2574         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
2575         (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
2576         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
2577         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
2578         (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
2579         (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
2580         (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
2581         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
2582         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
2583         (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
2584         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
2585         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
2586         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
2587         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
2588         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
2589         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
2590         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
2591         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
2592         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
2593         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
2594         (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
2595         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
2596         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
2597         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
2598         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
2599         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
2600         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
2601         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
2602         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
2603         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
2604         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
2605         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
2606         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
2607         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
2608         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
2609         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
2610         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
2611         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
2612         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
2613         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
2614         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
2615         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
2616         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
2617         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
2618         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
2619         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
2620         (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
2621         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
2622         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
2623         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
2624         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
2625         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
2626         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
2627         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
2628         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
2629         (QI_FTYPE_V8DF_INT_QI): Ditto.
2630         (QI_FTYPE_V4DF_INT_QI): Ditto.
2631         (QI_FTYPE_V2DF_INT_QI): Ditto.
2632         (HI_FTYPE_V16SF_INT_HI): Ditto.
2633         (QI_FTYPE_V8SF_INT_QI): Ditto.
2634         (QI_FTYPE_V4SF_INT_QI): Ditto.
2635         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
2637 2015-07-31  Richard Biener  <rguenther@suse.de>
2639         * gimple-fold.c (fold_gimple_assign): Remove folding of
2640         GIMPLE_BINARY_RHS.
2642 2015-07-31  Tom de Vries  <tom@codesourcery.com>
2644         PR tree-optimization/66846
2645         * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
2646         verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
2647         (expand_omp_target) [ENABLE_CHECKING]: Same.
2648         (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
2649         cfun if !LOOPS_NEED_FIXUP.
2650         (expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
2651         that omp_for already has its own loop struct.
2652         * tree-parloops.c (create_phi_for_local_result)
2653         (create_call_for_reduction): Handle simple latch bb.
2654         (create_parallel_loop): Add simple latch bb to preserve
2655         LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
2656         (gen_parallel_loop): Remove call to cancel_loop_tree.
2657         (parallelize_loops): Skip loops that are inner loops of parallelized
2658         loops.
2659         (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
2660         verify_loop_structure.
2662 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
2664         * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
2665         * config/v850/v850.md (RV_REGNUM): New constants.
2666         * config/v850/v850.c (v850_libcall_value): New functions.
2667         (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
2668         (TARGET_LIBCALL_VALUE): Define.
2670 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
2672         * rtl.h (lowpart_subreg): Move in file.
2673         * loop-iv.c (lowpart_subreg): Move to...
2674         * simplify-rtx.c (lowpart_subreg): ...here.
2675           (simplify_binary_operation_1): Use lowpart_subreg instead of
2676           simplify_gen_subreg.
2677         * expr.c (expand_expr_real_2): Ditto.
2678         * emit-rtl.c (gen_lowpart_common): Ditto.
2679         * combine.c (gen_lowpart_for_combine): Ditto.
2680         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
2681           expand_debug_source_expr): Ditto.
2683 2015-07-30  Richard Sandiford  <richard.sandiford@arm.com>
2685         * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
2686         (expand_builtin_atomic_clear): Remove support for atomic_clear
2687         pattern.
2689 2015-07-30  Richard Biener  <rguenther@suse.de>
2691         * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
2692         binaries.  Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
2693         (fold_stmt_1): ... here and work on GIMPLE directly.  Remove
2694         redundant operand canonicalization.
2696 2015-07-30  David Sherwood  <david.sherwood@arm.com>
2698         * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
2699         GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
2700         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
2701         * config/arm/arm.c (neon_valid_immediate): Likewise.
2702         * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
2703         (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
2704         (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
2705         (expand_vec_perm_vpshufb2_vpermq): Likewise.
2706         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
2707         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
2708         * config/i386/sse.md
2709         (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
2710         (*ssse3_palignr<mode>_perm): Likewise.
2711         * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
2712         * config/spu/spu.c (arith_immediate_p): Likewise.
2713         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
2714         (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
2716 2015-07-30  Richard Biener  <rguenther@suse.de>
2718         * genmatch.c (decision_tree::gen_gimple): Merge with ...
2719         (decision_tree::gen_generic): ... this into ...
2720         (decision_tree::gen): ... this.
2721         (main): Adjust callers.
2723 2015-07-30  Richard Biener  <rguenther@suse.de>
2725         * genmatch.c (verbose): New global.
2726         (warning_at): Add overload with source_location.
2727         (capture_info::capture_info): Add bool whether generating gimple
2728         or generic.  Add gimple member.
2729         (capture_info::cinfo): Add capture member.
2730         (capture_info::walk_match): Record capture.  Warn on
2731         non-captured leafs.
2732         (capture_info::walk_c_expr): Add more fragments captures cannot
2733         escape through.  Warn on escaped captures.
2734         (dt_simplify::gen_1): Warn on operands we force to have no
2735         side-effects.
2736         (main): Initialize verbose.
2737         * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
2739 2015-07-30  Richard Biener  <rguenther@suse.de>
2741         PR middle-end/67053
2742         * match.pd: Allow both operands to independently have conversion
2743         when simplifying compares of addresses.
2745 2015-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
2747         PR target/66217
2748         PR target/67045
2749         * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
2750         around those cases that need one.
2752 2015-07-29  Aditya Kumar  <hiraditya@msn.com>
2754         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
2756 2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>
2758         * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
2759         New.  Copied from config/i386/gnu-user.h.
2760         (ASM_COMMENT_START): Likewise.
2761         (DBX_REGISTER_NUMBER): Likewise.
2763 2015-07-29  Richard Biener  <rguenther@suse.de>
2765         * gimple-fold.c (fold_gimple_cond): Remove.
2766         (fold_stmt_1): Do not call it.
2768 2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>
2770         * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
2771         (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
2773         * config/aarch64/aarch64-modes.def: Add HFmode.
2775         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
2776         __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
2778         * config/aarch64/aarch64.c (aarch64_init_libfuncs,
2779         aarch64_promoted_type): New.
2781         (aarch64_float_const_representable_p): Disable HFmode.
2782         (aarch64_mangle_type): Mangle half-precision floats to "Dh".
2783         (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
2784         (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
2786         * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
2787         (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
2789         * config/aarch64/iterators.md (GPF_F16): New.
2791 2015-07-29  Richard Biener  <rguenther@suse.de>
2793         * match.pd: Merge address comparison patterns and make them
2794         handle some more cases.
2796 2015-07-29  Richard Biener  <rguenther@suse.de>
2798         * genmatch.c (c_expr::gen_transform): Error on unknown captures.
2799         (parser::parse_capture): Add bool argument on whether to reject
2800         unknown captures.
2801         (parser::parse_expr): Adjust.
2802         (parser::parse_op): Likewise.
2803         (parser::parse_pattern): Likewise.
2805 2015-07-29  Richard Biener  <rguenther@suse.de>
2807         * gimple-fold.c (has_use_on_stmt): New function.
2808         (replace_stmt_with_simplification): Use it to allow
2809         abnormals originally referenced in the stmt.
2810         (fold_stmt_1): Canonicalize operand order.
2812 2015-07-28  David Sherwood  <david.sherwood@arm.com>
2814         * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
2815         GET_MODE_INNER unconditionally.
2816         * config/spu/spu.c (arith_immediate_p): Likewise.
2817         * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
2818         * expmed.c (synth_mult): Remove check for VOIDmode result from
2819         GET_MODE_INNER.
2820         (expand_mult_const): Likewise.
2821         * fold-const.c (fold_binary_loc): Replace call to element_precision
2822         with call to GET_MODE_PRECISION.
2823         * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
2824         m->name.
2825         (emit_mode_inner): Likewise.
2826         * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
2827         result check.
2828         * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
2829         (GET_MODE_UNIT_PRECISION): Likewise.
2830         * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
2831         * simplify-rtx.c (simplify_immed_subreg): Likewise.
2832         * stor-layout.c (bitwise_type_for_mode): Update assert.
2833         (element_precision): Remove.
2835 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
2837         * target-insns.def (reload_load_address): New targetm instruction
2838         pattern.
2839         * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
2841 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
2843         * target-insns.def (atomic_test_and_set): New targetm instruction
2844         pattern.
2845         * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
2846         HAVE_*/gen_* interface.
2848 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
2850         * target-insns.def (can_extend, ptr_extend): New targetm instruction
2851         patterns.
2852         * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
2853         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
2854         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
2855         * rtlanal.c (nonzero_bits1): Likewise.
2856         (num_sign_bit_copies1): Likewise.
2858 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
2860         * target-insns.def (eh_return): New targetm instruction pattern.
2861         * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
2862         interface.
2863         * function.c (thread_prologue_and_epilogue_insns): Remove
2864         preprocessor condition.
2866 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
2868         * target-insns.def (indirect_jump): New targetm instruction pattern.
2869         * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
2870         interface.
2872 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
2874         * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
2875         instead of nonimmediate_operand.  Remove C condiition.
2877 2015-07-28  Richard Biener  <rguenther@suse.de>
2879         * match.pd: Add more simplification of address comparisons.
2881 2015-07-28  Richard Biener  <rguenther@suse.de>
2883         * match.pd: Re-order two cases in comparison with max/min
2884         value simplification to make it apply for bools.
2886 2015-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2888         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
2889         Handle simple SIGN_EXTEND or ZERO_EXTEND.
2890         (aarch64_rtx_costs): Properly strip extend or extract before
2891         passing down to rtx costs again.
2893 2015-07-28  Nick Clifton  <nickc@redhat.com>
2895         * config/rl78/rl78.c (rl78_addsi3_internal): New function.
2896         Optimizes the case where -mes0 is active and a constant symbolic
2897         address is used.
2898         * config/rl78/rl78-protos.h: Prototype the new function.
2899         * config/rl78/rl78.md (addsi3_internal_real): Call new function.
2901 2015-07-28  Tom de Vries  <tom@codesourcery.com>
2903         * tree-parloops.c (reduc_stmt_res): New function.
2904         (initialize_reductions, add_field_for_reduction)
2905         (create_phi_for_local_result, create_loads_for_reductions)
2906         (create_stores_for_reduction, build_new_reduction): Handle case that
2907         reduc_stmt is a phi.
2908         (gather_scalar_reductions): Allow double_reduc reductions.
2910 2015-07-28  Richard Biener  <rguenther@suse.de>
2912         * fold-const.c (fold_comparison): Remove equality folding
2913         of decl addresses ...
2914         * match.pd: ... here and merge with existing pattern.
2916 2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2918         PR tree-optimization/66828
2919         * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
2920         from int64_t to uint64_t.
2922 2015-07-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2924         * opts-common.c (read_cmdline_option): List DriverOnly enum values
2925         as valid only in the error message of the driver, not in the
2926         messages of the language compilers.
2928 2015-07-27  Tom de Vries  <tom@codesourcery.com>
2930         * tree-parloops.c (gather_scalar_reductions): Simplify function
2931         structure.
2933 2015-07-27  Marek Polacek  <polacek@redhat.com>
2935         * ipa-devirt.c (types_same_for_odr): Fix typo.
2937 2015-07-27  Jason Merrill  <jason@redhat.com>
2939         PR debug/66468
2940         * dwarf2out.c (gen_inlined_subroutine_die): Check
2941         cgraph_function_possibly_inlined_p.
2943 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
2945         * gcc/config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
2946         Place integer variant first.
2947         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
2949 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
2951         PR/63870
2952         * config/arm/arm-builtins.c (enum arm_builtins):
2953         Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
2954         (ARM_BUILTIN_NEON_BASE): Rename macro to....
2955         (ARM_BUILTIN_NEON_PATTERN_START): ...this.
2956         (arm_init_neon_builtins): Register __builtin_arm_lane_check.
2957         (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
2959 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
2961         PR/63870
2962         * config/arm/arm-builtins.c (enum arm_type_qualifiers):
2963         Add qualifier_lane_index.
2964         (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
2965         (arm_getlane_qualifiers): Use qualifier_lane_index.
2966         (arm_lanemac_qualifiers): Rename to...
2967         (arm_mac_n_qualifiers): ...this.
2968         (LANEMAC_QUALIFIERS): Rename to...
2969         (MAC_N_QUALIFIERS): ...this.
2970         (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
2971         (arm_setlane_qualifiers): Use qualifier_lane_index.
2972         (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
2973         (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
2974         (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
2975         (arm_expand_neon_builtin): Handle qualifier_lane_index.
2977         * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
2978         * config/arm/arm.c (bounds_check): Likewise, improve error message.
2979         (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
2980         * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
2981         vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
2982         vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
2983         vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
2984         (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
2985         qualifiers to TERNOP_IMM.
2986         (vdup_lane): Change qualifiers to GETLANE.
2987         (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
2988         vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
2989         (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
2990         vqdmlsl_n): Change qualifiers to MAC_N.
2992         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
2993         neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
2994         neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
2995         neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
2996         neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
2997         neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
2998         neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
2999         neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
3000         neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
3001         Remove call to neon_lane_bounds.
3003 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
3005         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
3006         Place integer variant first.
3008 2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>
3010         * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
3011         and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
3012         * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
3013         for armv6kz targets.
3014         * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
3015         * config/arm/arm-protos.h (FL_ARCH6KZ): New.
3016         (FL_FOR_ARCH6ZK): Remove.
3017         (FL_FOR_ARCH6KZ): New.
3018         (arm_arch6zk): New declaration.
3019         * config/arm/arm-tables.opt: Regenerate.
3020         * config/arm/arm.c (arm_arch6kz): New.
3021         (arm_option_override): Set arm_arch6kz.
3022         * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
3023         * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
3024         * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
3026 2015-07-27  Marek Polacek  <polacek@redhat.com>
3028         PR c++/66555
3029         PR c/54979
3030         * doc/invoke.texi: Document -Wtautological-compare.
3032 2015-07-27  Richard Biener  <rguenther@suse.de>
3034         * genmatch.c (decision_tree::gen_gimple): Split out large
3035         subtrees into separate functions.
3036         (decision_tree::gen_generic): Likewise.
3038 2015-07-26  Uros Bizjak  <ubizjak@gmail.com>
3040         * config/alpha/alpha.c: Use SUBREG_P predicate.
3041         * config/alpha/predicates.md: Ditto.
3043 2015-07-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3045         * config.host (s390*-*-*): Include driver-native.c only when
3046         building with s390* as host *and* target.
3048 2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
3050         PR target/66930
3051         * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
3052         T bit register modified_between_p check.
3054 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
3056         * config/i386/i386.c: Use SUBREG_P predicate.
3057         * config/i386/i386.md: Ditto.
3058         * config/i386/sse.md: Ditto.
3059         * config/i386/predicates.md: Ditto.
3061 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
3063         PR target/67004
3064         * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
3065         predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
3067 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
3069         * Makefile.in: Remove use of TREEBROWSER.
3070         * config.in: Regenerated.
3071         * configure: Regenerated.
3072         * configure.ac: Remove definition of TREEBROWSER.
3073         * tree-browser.c: Removed.
3074         * tree-browser.def: Removed.
3076 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
3078         * graphite-scop-detection.c: Include gimple-pretty-print.h.
3079         (stmt_simple_for_scop_p): Print when a stmt is not handled in
3080         Graphite.
3081         (scopdet_basic_block_info): Print when a loop or bb cannot be
3082         represented in Graphite.
3084 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
3086         PR target/66648
3087         * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
3088         execution guard when min_size is less than size_needed.
3090 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
3092         * doc/install.texi: Document supported versions of ISL.
3094 2015-07-25  Jeff Law  <law@redhat.com>
3096         Revert:
3097         PR lto/66752
3098         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
3099         unable to find X NE 0 in the tables, return X as the simplified
3100         condition.
3101         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
3102         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
3103         to VISISTED_BBS.  */
3104         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
3105         after removing the control flow statement and unnecessary edges.
3107 2015-07-25  David Edelsohn  <dje.gcc@gmail.com>
3109         Revert:
3110         2015-07-23  Alexandre Oliva <aoliva@redhat.com>
3112         PR rtl-optimization/64164
3113         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
3114         * tree-ssa-copyrename.c: Removed.
3115         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
3116         -ftree-coalesce-vars.
3117         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
3118         * common.opt (ftree-copyrename): Ignore.
3119         (ftree-coalesce-inlined-vars): Likewise.
3120         * doc/invoke.texi: Remove the ignored options above.
3121         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
3122         * tree-ssa-coalesce.h: ... here.
3123         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
3124         headers required by it.
3125         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
3126         across variables when flag_tree_coalesce_vars.  Check register
3127         use and promoted modes to allow coalescing.  Moved to
3128         tree-ssa-coalesce.c.
3129         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
3130         with its member functions to tree-ssa-coalesce.c.
3131         (var_map_base_init): Likewise.  Renamed to
3132         compute_samebase_partition_bases.
3133         (partition_view_normal): Drop want_bases parameter.
3134         (partition_view_bitmap): Likewise.
3135         * tree-ssa-live.h: Adjust declarations.
3136         * tree-ssa-coalesce.c: Include explow.h.
3137         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
3138         default defs at the entry point.
3139         (dump_part_var_map): New.
3140         (compute_optimized_partition_bases): New, called by...
3141         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
3142         of compute_samebase_partition_bases.  Adjust.
3143         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
3144         * cfgexpand.c (leader_merge): New.
3145         (get_rtl_for_parm_ssa_default_def): New.
3146         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
3147         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
3148         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
3149         redundant MEM attr setting.
3150         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
3151         from...
3152         (expand_one_stack_var): ... this.  New wrapper to check and
3153         skip already expanded SSA partitions.
3154         (record_alignment_for_reg_var): New, factored out of...
3155         (expand_one_var): ... this.
3156         (expand_one_ssa_partition): New.
3157         (adjust_one_expanded_partition_var): New.
3158         (expand_one_register_var): Check and skip already expanded SSA
3159         partitions.
3160         (expand_used_vars): Don't create DECLs for anonymous SSA
3161         names.  Expand all SSA partitions, then adjust all SSA names.
3162         (pass::execute): Replace the loops that set
3163         SA.partition_to_pseudo from partition leaders and cleared
3164         DECL_RTL for multi-location variables, and that which used to
3165         rename vars and set attrs, with one that clears DECL_RTL and
3166         checks that PARMs and RESULTs default_defs match DECL_RTL.
3167         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
3168         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
3169         * explow.c (promote_ssa_mode): New.
3170         * explow.h (promote_ssa_mode): Declare.
3171         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
3172         * function.c: Include cfgexpand.h.
3173         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
3174         (use_register_for_parm_decl): Wrapper for the above to
3175         special-case the result_ptr.
3176         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
3177         (split_complex_args): Take assign_parm_data_all argument.
3178         Pass it to rtl_for_parm.  Set up rtl and context for split
3179         args.
3180         (assign_parms_augmented_arg_list): Adjust.
3181         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
3182         multiple locations.  Recognize split complex args.
3183         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
3184         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
3185         (assign_parm_setup_block): Prefer SSA-assigned location.
3186         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
3187         if stack_parm is NULL.
3188         (assign_parm_setup_stack): Prefer SSA-assigned location.
3189         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
3190         rtl before testing for pointer bounds.  Special-case result_ptr.
3191         (expand_function_start): Maybe reset DECL_RTL of result.
3192         Prefer SSA-assigned location for result and static chain.
3193         Factor out DECL_RESULT and SET_DECL_RTL.
3194         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
3195         anonymous SSA names.  Use promote_ssa_mode.
3196         (get_temp_reg): Likewise.
3197         (remove_ssa_form): Adjust.
3198         * stor-layout.c (layout_decl): Don't set mem attributes of
3199         non-MEMs.
3200         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
3201         and get its reg_usage for reg invalidation.
3202         (compute_bb_dataflow): Pass it insn.
3203         (emit_notes_in_bb): Likewise.
3205 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
3207         * config/i386/i386.c (ix86_va_start): Remove
3208         unneeded !TARGET_64BIT check.
3209         (ix86_gimplify_va_arg): Ditto.
3211 2015-07-24  Tom de Vries  <tom@codesourcery.com>
3213         * graphite-sese-to-poly.c (build_poly_scop): Always call
3214         rewrite_commutative_reductions_out_of_ssa.
3216 2015-07-24  Tom de Vries  <tom@codesourcery.com>
3218         * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
3219         flag_associative_math to FLOAT_TYPE_P.  Honour
3220         TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
3222 2015-07-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3224         PR c++/64079
3225         * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
3226         and "%qD" in warning_at instead of "%q+D" in warning.
3228 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
3230         * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
3231         (ix86_function_abi): Cleanup.
3233 2015-07-24  Michael Darling  <darlingm@gmail.com>
3235         PR other/66259
3236         * acinclude.m4: Reflects renaming of configure.in to configure.ac
3237         * configure: Likewise
3238         * configure.ac: Likewise
3239         * doc/install.texi: Likewise
3240         * doc/tm.texi: Likewise
3241         * doc/tm.texi.in: Likewise
3243 2015-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3245         * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
3246         manually swapping values.
3247         * cse.c (fold_rtx): Likewise.
3248         * lra-eliminations.c (form_sum): Likewise.
3250 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
3252         PR target/64003
3253         * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
3254         * config/i386/i386.md (maybe_prefix_bnd): New attribute.
3255         (*jcc_1, *jcc_2, jump, simple_return_internal)
3256         (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
3257         Set length_nobnd attribute instead of length attribute.
3258         (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
3259         (length_nobnd): Remove attribute.
3260         (length): Remove length_nobnd processing.
3262 2015-07-24  Nathan Sidwell  <nathan@codesourcery.com>
3264         * gimplify.c (omp_default_clause): New function.  Reorganize flow
3265         for clarity. Broken out of ...
3266         (omp_notice_variable): ... here.
3268 2015-07-24  Gary Funck  <gary@intrepid.com>
3270         PR middle-end/66984
3271         * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
3272         fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
3274 2015-07-24  Tom de Vries  <tom@codesourcery.com>
3276         * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
3277         exit-first loop transform.
3279 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
3281         PR 66714
3282         * tree-cfg.c (struct replace_decls_d): New struct.
3283         (replace_block_vars_by_duplicates_1): New function.
3284         (replace_block_vars_by_duplicates): Use it to replace the decls
3285         in the value exprs by duplicates.
3287 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3289         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
3290         -shared, -symbolic, -rdynamic.
3292 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3294         PR target/65711
3295         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
3296         -dynamic-linker within %{!static %{!shared, and -rdynamic within
3297         %{!static.
3299 2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
3301         PR ipa/66566
3302         * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
3303         edge summary is available.
3305 2015-07-24  Richard Biener  <rguenther@suse.de>
3307         * genmatch.c (struct dt_node): Add statistic fields.
3308         (dt_node::analyze): New method.
3309         (decision_tree::gen_gimple): Call analyze on the root node
3310         and print statistics to stderr.
3311         (decision_tree::gen_generic): Likewise.
3313 2015-07-24  Richard Biener  <rguenther@suse.de>
3315         * fold-const.c (fold_binary_loc): Move simplifying of comparisons
3316         against the highest or lowest possible integer ...
3317         * match.pd: ... as patterns here.
3319 2015-07-24  Richard Biener  <rguenther@suse.de>
3321         * genmatch.c (struct capture_info): Add same_as field.
3322         (capture_info::capture_info): Initialize same_as.
3323         (capture_info::walk_match): Compute same_as.
3324         (capture_info::walk_result): Compute stuff for the leader.
3325         (capture_info::walk_c_expr): Likewise.
3326         (dt_simplify::gen_1): Only look at leaders when deciding
3327         to force no side-effects or emit side-effects of omitted operands.
3329 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3331         * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
3332         reg note to the GPR -> FPR save instructions.
3334 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3336         * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
3337         cheaper.
3338         (s390_expand_insv): Don't generate risbg pattern for constant zero
3339         sources.
3340         * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
3341         ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
3342         splitters.
3344 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3346         * config/s390/s390.c (s390_reorg): Clean up handling of processors
3347         with
3348         -mtune=
3349         (s390_issue_rate): Likewise.
3350         (s390_sched_reorder): Likewise.
3351         (s390_sched_variable_issue): Likewise.
3352         (s390_loop_unroll_adjust): Likewise.
3353         (s390_option_override):  Likewise.
3355 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3357         * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
3358         processor capabilities with -march=native.
3359         * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
3360         (DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
3361         (S390_TARGET_BITS_STRING): Macro to simplify specs.
3363 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3365         * config/s390/s390.c (s390_issue_rate): Handle
3366         PROCESSOR_2094_Z9_EC.
3367         (s390_option_override): Likewise.
3368         (s390_adjust_priority): Likewise.
3370 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3372         * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
3373         when cross compiling.
3375 2015-07-24  Richard Biener  <rguenther@suse.de>
3377         * fold-const.c (maybe_canonicalize_comparison_1): Move
3378         A code CST canonicalization ...
3379         * match.pd: ... to a pattern here.
3381 2015-07-24  Jiong Wang  <jiong.wang@arm.com>
3383         Revert:
3384         2015-07-22  Jiong Wang  <jiong.wang@arm.com>
3385         PR target/63521
3386         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
3387         (HONOR_REG_ALLOC_ORDER): Define.
3389 2015-07-24  Richard Biener  <rguenther@suse.de>
3391         * genmatch.c (add_operator): Allow SSA_NAME as predicate.
3392         * fold-const.c (fold_comparison): Move parameter does not
3393         alias &local simplification ...
3394         * match.pd: ... as a pattern here.
3396 2015-07-24  Richard Biener  <rguenther@suse.de>
3398         * gimple-fold.c (replace_stmt_with_simplification): Special-case
3399         valueizing call operands.
3400         * gimple-match-head.c (maybe_push_res_to_seq): Take
3401         number of call arguments from ops array.
3402         (do_valueize): New function.
3403         (gimple_simplify): Return true if valueization changed
3404         any operand even if the result didn't simplify further.
3406 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
3408         PR middle-end/25530
3409         * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
3411 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
3413         PR middle-end/25529
3414         * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
3416 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
3418         * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
3419         instruction.
3421 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
3423         * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
3424         clean up.
3426 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
3428         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
3429         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
3430         targets here.
3431         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
3432         ms_va_list_type_node initialization.
3434 2015-07-23  Jeff Law  <law@redhat.com>
3436         PR lto/66752
3437         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
3438         unable to find X NE 0 in the tables, return X as the simplified
3439         condition.
3440         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
3441         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
3442         to VISISTED_BBS.  */
3443         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
3444         after removing the control flow statement and unnecessary edges.
3446 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3448         * tree-pass.h (get_current_pass_name): Removed.
3450 2015-07-23  Alexandre Oliva <aoliva@redhat.com>
3452         PR rtl-optimization/64164
3453         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
3454         * tree-ssa-copyrename.c: Removed.
3455         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
3456         -ftree-coalesce-vars.
3457         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
3458         * common.opt (ftree-copyrename): Ignore.
3459         (ftree-coalesce-inlined-vars): Likewise.
3460         * doc/invoke.texi: Remove the ignored options above.
3461         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
3462         * tree-ssa-coalesce.h: ... here.
3463         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
3464         headers required by it.
3465         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
3466         across variables when flag_tree_coalesce_vars.  Check register
3467         use and promoted modes to allow coalescing.  Moved to
3468         tree-ssa-coalesce.c.
3469         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
3470         with its member functions to tree-ssa-coalesce.c.
3471         (var_map_base_init): Likewise.  Renamed to
3472         compute_samebase_partition_bases.
3473         (partition_view_normal): Drop want_bases parameter.
3474         (partition_view_bitmap): Likewise.
3475         * tree-ssa-live.h: Adjust declarations.
3476         * tree-ssa-coalesce.c: Include explow.h.
3477         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
3478         default defs at the entry point.
3479         (dump_part_var_map): New.
3480         (compute_optimized_partition_bases): New, called by...
3481         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
3482         of compute_samebase_partition_bases.  Adjust.
3483         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
3484         * cfgexpand.c (leader_merge): New.
3485         (get_rtl_for_parm_ssa_default_def): New.
3486         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
3487         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
3488         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
3489         redundant MEM attr setting.
3490         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
3491         from...
3492         (expand_one_stack_var): ... this.  New wrapper to check and
3493         skip already expanded SSA partitions.
3494         (record_alignment_for_reg_var): New, factored out of...
3495         (expand_one_var): ... this.
3496         (expand_one_ssa_partition): New.
3497         (adjust_one_expanded_partition_var): New.
3498         (expand_one_register_var): Check and skip already expanded SSA
3499         partitions.
3500         (expand_used_vars): Don't create DECLs for anonymous SSA
3501         names.  Expand all SSA partitions, then adjust all SSA names.
3502         (pass::execute): Replace the loops that set
3503         SA.partition_to_pseudo from partition leaders and cleared
3504         DECL_RTL for multi-location variables, and that which used to
3505         rename vars and set attrs, with one that clears DECL_RTL and
3506         checks that PARMs and RESULTs default_defs match DECL_RTL.
3507         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
3508         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
3509         * explow.c (promote_ssa_mode): New.
3510         * explow.h (promote_ssa_mode): Declare.
3511         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
3512         * function.c: Include cfgexpand.h.
3513         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
3514         (use_register_for_parm_decl): Wrapper for the above to
3515         special-case the result_ptr.
3516         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
3517         (split_complex_args): Take assign_parm_data_all argument.
3518         Pass it to rtl_for_parm.  Set up rtl and context for split
3519         args.
3520         (assign_parms_augmented_arg_list): Adjust.
3521         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
3522         multiple locations.  Recognize split complex args.
3523         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
3524         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
3525         (assign_parm_setup_block): Prefer SSA-assigned location.
3526         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
3527         if stack_parm is NULL.
3528         (assign_parm_setup_stack): Prefer SSA-assigned location.
3529         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
3530         rtl before testing for pointer bounds.  Special-case result_ptr.
3531         (expand_function_start): Maybe reset DECL_RTL of result.
3532         Prefer SSA-assigned location for result and static chain.
3533         Factor out DECL_RESULT and SET_DECL_RTL.
3534         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
3535         anonymous SSA names.  Use promote_ssa_mode.
3536         (get_temp_reg): Likewise.
3537         (remove_ssa_form): Adjust.
3538         * stor-layout.c (layout_decl): Don't set mem attributes of
3539         non-MEMs.
3540         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
3541         and get its reg_usage for reg invalidation.
3542         (compute_bb_dataflow): Pass it insn.
3543         (emit_notes_in_bb): Likewise.
3545 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
3547         PR target/66217
3548         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
3549         prototype.
3550         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
3551         (rs6000_emit_2insn_and): Handle dot forms.
3552         * config/rs6000/rs6000.md (and<mode>3): Adjust.
3553         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
3554         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
3556 2015-07-23  Richard Biener  <rguenther@suse.de>
3558         * generic-match-head.c: Include cgraph.h.
3559         * gimple-match-head.c: Likewise.
3560         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
3561         SSA names.
3562         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
3563         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
3564         pattern.
3566 2015-07-23  Richard Biener  <rguenther@suse.de>
3568         * gimple-fold.c (fold_gimple_cond): Do not require folding
3569         results to pass valid_gimple_rhs_p.
3570         * tree-cfg.h (fold_cond_expr_cond): Remove.
3571         * tree-cfg.c (fold_cond_expr_cond): Likewise.
3572         (make_edges): Do not call it.
3573         * tree-inline.c (tree_function_versioning): Likewise.
3575 2015-07-23  Tom de Vries  <tom@codesourcery.com>
3577         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
3578         vect_force_simple_reduction.
3579         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
3580         (vect_is_simple_reduction_1): Add and handle
3581         need_wrapping_integral_overflow parameter.
3582         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
3583         need_wrapping_integral_overflow parameter.
3584         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
3585         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
3586         decl.
3588 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
3590         PR tree-optimization/66926,66951
3591         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
3592         INNER_LOOP and fix up condition for renaming virtual operands.
3594 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3596         * combine.c (try_combine): Use std::swap instead of manually
3597         swapping.
3599 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
3601         * config/mips/i6400.md: New file.
3602         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
3603         (mips64r6): Likewise.
3604         (i6400): Define.
3605         * config/mips/mips-tables.opt: Regenerate.
3606         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
3607         (mips_issue_rate): Add support for i6400.
3608         (mips_multipass_dfa_lookahead): Likewise.
3609         * config/mips/mips.h (TUNE_I6400): Define.
3610         * config/mips/mips.md: Include i6400.md.
3611         (processor): Add i6400.
3612         * doc/invoke.texi (-march=@var{arch}): Add i6400.
3614 2015-07-23  Richard Biener  <rguenther@suse.de>
3616         PR middle-end/66916
3617         * match.pd: Guard widen and sign-change comparison simplification
3618         with single_use.
3620 2015-07-23  Richard Biener  <rguenther@suse.de>
3622         PR tree-optimization/66945
3623         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
3624         ::before_dom_children): Force the propagators idea of
3625         non-executable edges to materialize, not what the folder
3626         chooses.
3628 2015-07-23  Richard Biener  <rguenther@suse.de>
3630         * gimple.h (gimple_cond_make_false): Use 0 != 0.
3631         (gimple_cond_make_true): Use 1 != 0.
3633 2015-07-22  DJ Delorie  <dj@redhat.com>
3635         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
3636         slashes.
3638         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
3639         (ashrhi3): Likewise.
3640         (lshrhi3): Likewise.
3641         (movhi): Take advantage of zero-extend to load small constants.
3642         (movpsi): Likewise.
3643         (and<mode>3): Likewise.
3644         (zero_extendqihi2): Likewise.
3645         (zero_extendqisi2): New.
3646         * config/msp430/constraints.md (N,O): New.
3647         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
3649 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
3651         PR target/66954
3652         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
3653         to enum feature_priority and feature_list.
3654         (fold_builtin_cpu): Add F_AES to enum processor_features
3655         and isa_names_table.
3657 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
3659         PR driver/66737
3660         * config/i386/linux-common.h (MPX_SPEC): Use linker option
3661         for 64bit target only.
3663 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
3665         * config/nvptx/nvptx.c: Expand some comments.
3667 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
3669         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
3670         (cortex_a53_advsimd): ...This.
3672 2015-07-22  Richard Biener  <rguenther@suse.de>
3674         * genmatch.c (expr::gen_transform): Clarify error message
3675         and display location.
3677 2015-07-22  Richard Biener  <rguenther@suse.de>
3679         * genmatch.c (struct operand): Add location member.
3680         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
3681         constructors.
3682         (struct simplify): Remove match_location and result_location
3683         members.
3684         (elsehwere): Adjust.
3686 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
3688         * config/mips/m5100.md: New file.
3689         * config/mips/mips-cpus.def (m5100, m5101): Define.
3690         * config/mips/mips-tables.opt: Regenerate.
3691         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
3692         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
3693         -march=m5101 to -mips32r5.
3694         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
3695         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
3696         !-msoft-float.
3697         * config/mips/mips.md: Include m5100.md.
3698         (processor): Add m5100.
3699         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
3701 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
3703         * config/mips/mips-cpus.def (interaptiv): Define.
3704         * config/mips/mips-tables.opt: Regenerate.
3705         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
3706         -mips32r2.
3707         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
3708         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
3710 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
3712         PR target/63521
3713         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
3714         (HONOR_REG_ALLOC_ORDER): Define.
3716 2015-07-22  Richard Biener  <rguenther@suse.de>
3718         PR tree-optimization/66952
3719         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
3720         blocks we end up executing unconditionally reset all SSA
3721         info such as range and alignment.
3722         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
3723         * tree-ssanames.c (reset_flow_sensitive_info): New function.
3725 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
3727         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
3728         typo in attribute.
3730 2015-07-22  Richard Biener  <rguenther@suse.de>
3732         * genmatch.c (parser::parse_result): Properly handle
3733         match with result operands and conditions.
3735 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
3737         PR target/63870
3738         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
3739         Add qualifier_struct_load_store_lane_index.
3740         (aarch64_types_loadstruct_lane_qualifiers): Use
3741         qualifier_struct_load_store_lane_index for lane index argument for
3742         last argument.
3743         (aarch64_types_storestruct_lane_qualifiers): Ditto.
3744         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
3745         (aarch64_simd_expand_args): Add new argument describing mode of
3746         builtin. Check lane bounds for arguments with
3747         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
3748         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
3749         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
3750         (aarch64_simd_expand_builtin): Handle arguments with
3751         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
3752         aarch64_simd_expand_args.
3753         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
3754         vst[234]_lane with BUILTIN_VALLDIF.
3755         * config/aarch64/aarch64-simd.md:
3756         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
3757         endianness reversal on lane index.
3758         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
3759         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
3760         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
3761         (vec_store_lanesci_lane<mode>): Ditto.
3762         (vec_store_lanesxi_lane<mode>): Ditto.
3763         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
3764         reversal of lane index.
3765         (aarch64_ld3_lane<mode>): Ditto.
3766         (aarch64_ld4_lane<mode>): Ditto.
3767         (aarch64_st2_lane<mode>): Ditto.
3768         (aarch64_st3_lane<mode>): Ditto.
3769         (aarch64_st4_lane<mode>): Ditto.
3770         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
3771         to qmode. Add new mode parameter. Update uses.
3772         (__LD3_LANE_FUNC): Ditto.
3773         (__LD4_LANE_FUNC): Ditto.
3774         (__ST2_LANE_FUNC): Ditto.
3775         (__ST3_LANE_FUNC): Ditto.
3776         (__ST4_LANE_FUNC): Ditto.
3778 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
3780         * doc/invoke.texi (Language Independent Options): Rename node to
3781         Diagnostic Message Formatting Options.
3783 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
3785         PR ipa/66424.
3786         * lra-remat.c (operand_to_remat): Prevent using insns with input
3787         subregs processed separately by IRA.
3789 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
3791         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
3792         straight loops.
3793         (single_imm_use): Check for iterator node.
3794         (num_imm_uses): Likewise.
3795         * tree-ssa-operands.c (has_zero_uses_1): Delete.
3796         (single_imm_use_1): Check for iterator node.
3798 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
3799             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3801         * configure.ac: Add check for new options in isl-0.15.
3802         * config.in, configure: Rebuilt.
3803         * graphite-blocking.c: Include <isl/constraint.h>
3804         * graphite-interchange.c,  graphite-poly.c: Likewise.
3805         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
3806         * graphite.c: Likewise.
3807         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
3808         <isl/union_set.h>.
3809         * graphite-dependences.c: Include <isl/constraint.h>.
3810         (max_number_of_out_dimensions): Returns isl_stat.
3811         (extend_schedule_1): Likewise
3812         (extend_schedule): Corresponding changes.
3813         * graphite-optimize-isl.c: Include <isl/constraint.h> and
3814         <isl/union_set.h>.
3815         (getSingleMap): Change return type of isl_stat.
3816         (optimize_isl): Conditionally use
3817         isl_options_set_schedule_serialize_sccs.
3818         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
3819         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
3821 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
3823         PR target/66956
3824         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
3825         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
3827 2015-07-21  Richard Biener  <rguenther@suse.de>
3829         PR tree-optimization/66948
3830         * genmatch.c (capture_info::walk_match): Also recurse to
3831         captures.  Properly compute expr state from captures of
3832         captures.
3833         * match.pd: Add single-use guards to
3834         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
3836 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
3838         * config/nvptx/mkoffload.c (process): Add static destructor call.
3840 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3842         PR middle-end/66915
3843         * match.pd (A - B -> A + (-B)): Don't allow folding
3844         when type if a fixed-point type.
3846 2015-07-20  DJ Delorie  <dj@redhat.com>
3848         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
3849         (iorqi3_real): Likewise for set1.
3851 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
3853         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
3854         for !TARGET_64BIT.
3856 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
3858         * graphite-isl-ast-to-gimple.c:
3859         Refactor so that each function can access 'region'. This will help
3860         maintain a parameter rename_map within a region.
3862 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
3864         * config/rs6000/rs6000.md (*lt0_disi): New.
3866 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
3868         PR target/66217
3869         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
3870         "available letters" comment.
3871         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
3872         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
3873         and_2rld_operand):  Delete.
3874         (and_operand): Adjust.
3875         (rotate_mask_operator): New.
3876         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
3877         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
3878         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
3879         extract_ME): Delete.
3880         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
3881         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
3882         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
3883         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
3884         rs6000_emit_2insn_and): New.
3885         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
3886         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
3887         includes_rldic_lshift_p, includes_rldicr_lshift_p,
3888         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
3889         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
3890         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
3891         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
3892         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
3893         rs6000_emit_2insn_and): New.
3894         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
3895         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
3896         handling.
3897         <NOT>: Don't fall through to next case.
3898         <AND>: Handle the various rotate-and-mask cases directly.
3899         <IOR>: Always cost as one insn.
3900         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
3901         (and<mode>3): Adjust expander for the new patterns.
3902         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
3903         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
3904         (*and<mode>3_imm_dot_shifted): New.
3905         (*and<mode>3_mask): Delete, rewrite as ...
3906         (and<mode>3_mask): ... New.
3907         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
3908         (andsi3_internal0_nomc): Delete.
3909         (*andsi3_internal6): Delete.
3910         (*and<mode>3_2insn): New.
3911         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
3912         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
3913         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
3914         *insvdi_internal3): Delete.
3915         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
3916         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
3917         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
3918         *ior<mode>_mask): New.
3919         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
3920         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
3921         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
3922         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
3923         Delete.
3924         (ashr<mode>3): Delete expander.
3925         (*ashr<mode>3): Rename to ...
3926         (ashr<mode>3): ... This.
3927         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
3928         (*rotldi3_internal4, *rotldi3_internal5 and split,
3929         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
3930         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
3931         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
3932         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
3933         (splitter for loading a mask): Adjust.
3934         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
3936 2015-07-20  Marek Polacek  <polacek@redhat.com>
3938         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
3939         output_add_clobbers, output_added_clobbers_hard_reg_p,
3940         gen_rtx_scratch): Remove declarations.
3942 2015-07-20  Marek Polacek  <polacek@redhat.com>
3944         PR c++/55095
3945         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
3947 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3949         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
3950         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
3952 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3954         * combine.c (combine_simplify_rtx): Move simplification step
3955         before various transformations/substitutions.
3957 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
3959         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
3960         (struct int_traits): Likewise.
3962 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3964         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
3965         function to vmsdbgout_function_decl.
3967 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
3969         PR target/66922
3970         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
3971         from misaligned positions.
3972         (ix86_expand_pinsr): Reject insertions to misaligned positions.
3974 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
3976         PR middle-end/46851
3977         PR middle-end/60340
3978         * Makefile.in: Removed omega.o.
3979         * common.opt: Document flag fcheck-data-deps as deprecated.
3980         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
3981         its associated params: omega-max-vars, omega-max-geqs,
3982         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
3983         omega-max-keys, omega-eliminate-redundant-constraints.
3984         * doc/loop.texi: Remove all the section on Omega.
3985         * graphite-blocking.c: Include missing params.h: it used to be
3986         included through tree-data-ref.h and omega.h.
3987         * graphite-isl-ast-to-gimple.c: Same.
3988         * graphite-optimize-isl.c: Same.
3989         * graphite-sese-to-poly.c: Same.
3990         * graphite.c: Same.
3991         * omega.c: Remove.
3992         * omega.h: Remove.
3993         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
3994         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
3995         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
3996         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
3997         * passes.def: Remove pass_check_data_deps.
3998         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
3999         (dump_conflict_function): Same.
4000         (dump_subscript): Same.
4001         (print_direction_vector): Same.
4002         (print_dir_vectors): Same.
4003         (print_lambda_vector): Same.
4004         (print_dist_vectors): Same.
4005         (dump_data_dependence_relation): Same.
4006         (dump_data_dependence_relations): Same.
4007         (dump_dist_dir_vectors): Same.
4008         (dump_ddrs): Same.
4009         (init_omega_eq_with_af): Removed.
4010         (omega_extract_distance_vectors): Removed.
4011         (omega_setup_subscript): Removed.
4012         (init_omega_for_ddr_1): Removed.
4013         (init_omega_for_ddr): Removed.
4014         (ddr_consistent_p): Removed.
4015         (compute_affine_dependence): Do not use omega to check data
4016         dependences.
4017         (compute_data_dependences_for_bb): Removed.
4018         (analyze_all_data_dependences): Removed.
4019         (tree_check_data_deps): Removed.
4020         * tree-data-ref.h: Do not include omega.h.
4021         (compute_data_dependences_for_bb): Removed.
4022         (tree_check_data_deps): Removed.
4023         * tree-ssa-loop.c (pass_check_data_deps): Removed.
4024         (make_pass_check_data_deps): Removed.
4025         * tree-ssa-phiopt.c: Include params.h.
4026         * tree-vect-data-refs.c: Same.
4027         * tree-vect-slp.c: Same.
4029 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
4031         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
4032         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
4033         (mem->fpreg splitters): Ditto.
4034         (general_operand->nonimmediate_operand splitter): Use explicit modes.
4035         Disable DFmode for TARGET_64BIT.
4037 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
4039         PR target/66906
4040         * config/i386/i386.c (ix86_expand_prologue): Replicate static
4041         chain on the stack.
4043 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
4045         * config/nvptx/mkoffload.c (process): Constify host data.
4046         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
4047         Constify host data.
4048         (generate_host_descr_file): Likewise.
4050 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
4051             Sebastian Pop  <s.pop@samsung.com>
4053         PR middle-end/61929
4054         * graphite-dependences.c (add_pdr_constraints): Renamed
4055         pdr->extent to pdr->subscript_sizes.
4056         * graphite-interchange.c (build_linearized_memory_access): Add
4057         back all gcc_assert's that the "isl_int to isl_val conversion"
4058         patch has removed.  Refactored.
4059         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
4060         * graphite-poly.c (new_poly_dr): Same.
4061         (free_poly_dr): Same.
4062         * graphite-poly.h (struct poly_dr): Same.
4063         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
4064         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
4065         * graphite-scop-detection.h: Fix space.
4066         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
4067         back all gcc_assert's removed by a previous patch.
4068         (wrap): Remove the_isl_ctx global variable that the same patch has
4069         added.
4070         (build_loop_iteration_domains): Same.
4071         (add_param_constraints): Same.
4072         (pdr_add_data_dimensions): Same.  Refactored.
4073         (build_poly_dr): Renamed extent to subscript_sizes.
4075 2015-07-17  Marek Polacek  <polacek@redhat.com>
4077         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
4078         * match.pd: ... here.
4080 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
4082         * config/nvptx/mkoffload.c (process): Constify target data.
4083         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
4084         Constify target data.
4085         (generate_target_offloadend_file): Likewise.
4087 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
4089         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
4090         to allow renaming of PHI arguments on edges incoming from outer
4091         loop header, add corresponding check before start PHI iterator.
4092         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
4093         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
4094         with true force_vectorize.  Set-up dominator for outer loop too.
4095         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
4096         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
4097         was marked with force_vectorize and has restricted cfg.
4098         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
4099         inner loop.
4100         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
4101         do peeling for outer loops.
4103 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
4104             Matthias Klose  <doko@ubuntu.com>
4106         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
4107         build-sysroot, sysroot from the `Miscenalleous configure options' to
4108         the `Directories' section and strip trailing `/' from with_sysroot.
4109         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
4110         * configure: Regenerated.
4112 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
4114         PR target/66824
4115         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
4116         (TARGET_HARD_DF_REGS): Ditto.
4117         (TARGET_HARD_XF_REGS): Ditto.
4118         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
4119         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
4120         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
4121         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
4122         (*movsf_internal): Add alternatives 16 and 17. Enable
4123         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
4125 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
4127         PR rtl-optimization/66891
4128         * calls.c (expand_call): Wrap precompute_register_parameters with
4129         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
4131 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
4133         * config/nvptx/mkoffload.c (process): Constify mapping variables.
4134         Define target data struct and initialize it.
4136 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
4138         PR rtl-optimization/66626
4139         * ira.h (emit-rtl.h): Include.
4140         (non_spilled_static_chain_regno_p): New.
4141         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
4142         unless it is non spilled static chain pseudo.
4143         (assign_hard_rego): Spill memory profitable allocno unless it is
4144         non spilled static chain pseudo.
4145         (allocno_spill_priority_compare): Put non spilled static chain
4146         pseudo at the end of sorted array.
4147         (improve_allocation): Do nothing if we have static chain and
4148         non-local goto.
4149         (allocno__priority_compare_func): Put non spilled static chain
4150         pseudo at the beginning of sorted array.
4151         (move_spill_restore): Ignore non spilled static chain pseudo.
4152         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
4153         to non spilled static chain pseudo.
4154         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
4155         pseudo at the beginning of sorted array.
4156         (spill_for): Spill non spilled static chain pseudo last.
4157         * lra-constraints.c (lra_constraints): Remove static chain pseudo
4158         check for equivalence.
4160 2015-07-16  Martin Liska  <mliska@suse.cz>
4162         PR ipa/66896.
4163         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
4164         dst_ctx if it does not exist.
4166 2015-07-16  Martin Liska  <mliska@suse.cz>
4168         * hash-set.h (remove): New function.
4169         (iterator): New iteration class for hash_set.
4171 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
4173         * genattrtab.c (make_canonical): Add a file_location parameter.
4174         Use fatal_at rather than fatal.
4175         (get_attr_value): Likewise.  Update call to make_canonical.
4176         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
4177         (make_internal_attr): Update calls accordingly.
4179 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
4181         * read-md.h (message_with_line, error_with_line): Delete.
4182         * read-md.c (message_with_line, error_with_line): Delete.
4183         * gensupport.h: Include read-md.h.
4184         (md_rtx_info): New structure.
4185         (read_md_rtx): Use it.  Return a bool success value.
4186         * gensupport.c (read_md_rtx): Likewise.
4187         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
4188         (main): Update after interface changes.
4189         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
4190         (main): Update after interface changes.
4191         * genattrtab.c (insn_code_number): Delete.
4192         (optimize_attrs): Add a max_insn_code parameter and use it instead
4193         of insn_code_number.
4194         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
4195         Use *_at rather than *_with_line functions.
4196         (gen_insn): Likewise.
4197         (gen_delay): Likewise.
4198         (gen_insn_reserv): Likewise.
4199         (gen_bypass): Take an md_rtx_info rather than an rtx.
4200         (main): Update after interface changes.  Use a local max_insn_code
4201         variable instead of insn_code_number.
4202         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
4203         an rtx.  Use fatal_at rather than fatal.
4204         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
4205         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
4206         (gen_absence_set, gen_final_absence_set, gen_automaton)
4207         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
4208         (main): Update after interface changes.
4209         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
4210         and code number.
4211         (main): Update after interface changes.
4212         * genconditions.c (main): Use new read_md_rtx interface.
4213         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
4214         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
4215         (main): Update after interface changes.
4216         * genemit.c (insn_code_number, insn_index_number): Delete.
4217         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
4218         Use fatal_at rather than fatal.
4219         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
4220         rather than fatal.
4221         (gen_split): Likewise.
4222         (main): Update after interface changes.
4223         * genextract.c (line_no): Delete.
4224         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
4225         Update call to walk_rtx.
4226         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
4227         rather than message_with_line.
4228         (walk_rtx): Add an md_rtx_info argument.  Update call to
4229         VEC_safe_set_locstr.
4230         (main): Update after interface changes.
4231         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
4232         and lineno.  Use error_at rather than separate message_with_line
4233         calls and have_error assignments.
4234         (main): Update after interface changes.
4235         * genmddump.c (main): Use new read_md_rtx interface.
4236         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
4237         (main): Update after interface changes.
4238         * genoutput.c (next_code_number): Delete.
4239         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
4240         (gen_peephole, gen_expand, gen_split): Likewise.
4241         (note_constraint): Likewise.  Use *_at rather than *_with_line
4242         functions.
4243         (main): Update after interface changes.
4244         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
4245         rtx and lineno.
4246         (main): Update after interface changes.
4247         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
4248         than an rtx and lineno.
4249         (process_define_constraint): Likewise.
4250         (process_define_register_constraint): Likewise.
4251         (main): Update after interface changes.
4252         * genrecog.c (next_insn_code, pattern_lineno): Delete.
4253         (validate_pattern): Replace top-level rtx with an md_rtx_info.
4254         Use *_at rather than *_with_line functions.
4255         (match_pattern_2): Likewise.
4256         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
4257         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
4258         Use *_at rather than *_with_line functions.
4259         * gentarget-def.c (add_insn): New function.
4260         (main): Use it.  Use new read_md_rtx interface.
4262 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
4264         * gensupport.h (compute_test_codes): Take a file_location rather
4265         than a line number.
4266         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
4267         rather than *_with_line functions.
4268         (process_define_predicate): Update call to compute_test_codes.
4269         * genpreds.c (validate_exp): Take a file_location rather than a
4270         line number.  Use *_at functions rather than *_with_line functions.
4271         (process_define_predicate): Update call to validate_exp.
4272         (constraint_data): Replace lineno field with a file_location.
4273         (add_constraint): Take a file_location rather than a line number.
4274         Use *_at functions rather than *_with_line functions.  Fix error
4275         message for address constraints.  Update after changes to
4276         validate_exp, constraint_data and compute_test_codes.
4277         (process_define_constraint): Update accordingly.
4278         (process_define_register_constraint): Likewise.
4280 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
4282         * genoutput.c (data): Use a file_location to record the source
4283         position.
4284         (nothing): Delete.
4285         (idata, idata_end): Remove initialization.
4286         (constraint_data): Replace lineno with a file_location.
4287         (output_insn_data): Update after changes to data.
4288         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
4289         (scan_operands): Likewise, using *_at rather than *_with_line
4290         functions.
4291         (process_template): Likewise.
4292         (validate_insn_alternatives): Likewise.
4293         (validate_insn_operands): Likewise.
4294         (validate_optab_operands): Likewise.
4295         (init_insn_for_nothing): Initialize idata and idata_end.
4296         (note_constraint): Update after changes to constraint_data,
4297         using at rather than with_line functions.
4298         (mdep_constraint_len): Take a file_location rather than a
4299         line number.  Use at rather than with_line functions.
4301 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
4303         * read-md.h (fatal_at): Declare.
4304         * read-md.c (fatal_at): New function.
4305         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
4306         to record the source position.
4307         (check_attr_test): Take a file_location instead of a line number.
4308         Use fatal_at instead of fatal.
4309         (check_attr_value): Update after above changes, using "at"
4310         rather than "with_line" reporting functions.
4311         (convert_set_attr_alternative): Likewise.
4312         (gen_attr): Likewise.
4313         (check_defs): Likewise.  Don't assign to read_md_filename.
4314         (gen_insn): Update initialization after above changes.
4315         (gen_delay): Likewise.
4316         (write_insn_cases): Print the filename for a define_peephole.
4317         (gen_insn_reserv): Take a line number as argument and update
4318         the call to check_attr_test.
4319         (main): Pass a line number to gen_insn_reserv.
4321 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
4323         * read-md.h (file_location): New structure.
4324         (directive_handler_t): Take a file_location rather than a line number.
4325         (message_at, error_at): Declare.
4326         (read_skip_construct): Delete.
4327         * read-md.c (message_with_line_1): Replace with...
4328         (message_at_1): ...this new function.
4329         (message_at, error_at): New functions.
4330         (message_with_line, error_with_line): Update to use message_at_1.
4331         (handle_enum): Take a file_location rather than a line number
4332         and use error_at for error reporting.
4333         (handle_include): Likewise.
4334         (read_skip_construct): Likewise.  Make static.
4335         (handle_file): Update after above changes.  Pass a file_location
4336         rather than a line number to handle_directive.
4337         * gensupport.c (queue_elem): Replace separate filename and lineno
4338         with a file_location.
4339         (queue_pattern): Replace filename and lineno arguments with a
4340         file_location.  Update after change to queue_elem.
4341         (process_define_predicate): Replace lineno argument with a
4342         file_location and use error_at for error reporting.  Update
4343         after above changes.
4344         (process_rtx): Likewise.
4345         (subst_pattern_match): Likewise.
4346         (get_alternatives_number): Likewise.
4347         (alter_predicate_for_insn): Likewise.
4348         (rtx_handle_directive): Likewise.
4349         (is_predicable): Update after above changes, using error_at rather
4350         than error_with_line.
4351         (has_subst_attribute): Likewise.
4352         (identify_predicable_attribute): Likewise.
4353         (alter_attrs_for_subst_insn): Likewise.
4354         (process_one_cond_exec): Likewise.
4355         (process_substs_on_one_elem): Likewise.
4356         (process_define_subst): Likewise.
4357         (check_define_attr_duplicates): Likewise.
4358         (read_md_rtx): Update after change to queue_elem.
4360 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
4362         * genoutput.c (next_index_number): Delete.
4363         (data): Remove index_number.
4364         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
4365         (main): Remove manipulation of next_index_number.
4367 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
4369         * genattrtab.c (check_attr_value): Remove handling of null attrs.
4370         (make_canonical): Likewise.
4372 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
4374         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
4375         instead of adjust_address_nv.
4376         (restore_stack_nonlocal): Likewise.
4377         (nonlocal_goto): Likewise.
4379 2015-07-16  Tom de Vries  <tom@codesourcery.com>
4381         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
4382         not have a corresponding loop header phi.
4384 2015-07-16  Tom de Vries  <tom@codesourcery.com>
4386         * tree-parloops.c (create_loads_for_reductions): Handle case that
4387         reduction is unused.
4389 2015-07-16  Richard Biener  <rguenther@suse.de>
4391         PR tree-optimization/66894
4392         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
4393         about deriving NE_EXPR from truncated values.
4395 2015-07-16  Martin Liska  <mliska@suse.cz>
4397         * alloc-pool.h
4398         (object_allocator): Add new class.
4399         (pool_allocator::initialize): Use the underlying class.
4400         (pool_allocator::allocate): Likewise.
4401         (pool_allocator::remove): Likewise.
4402         (operator new): A new generic allocator.
4403         * asan.c (struct asan_mem_ref): Remove unused members.
4404         (asan_mem_ref_new): Replace new operator with
4405         object_allocator::allocate.
4406         (free_mem_ref_resources): Change deallocation.
4407         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
4408         with object_allocator.
4409         * config/sh/sh.c (add_constant): Replace new operator with
4410         object_allocator::allocate.
4411         (sh_reorg): Change call to a release method.
4412         * cselib.c (struct elt_list): Remove unused members.
4413         (new_elt_list): Replace new operator with
4414         object_allocator::allocate.
4415         (new_elt_loc_list): Likewise.
4416         (new_cselib_val): Likewise.
4417         (unchain_one_elt_list): Change delete operator with remove method.
4418         (unchain_one_elt_loc_list): Likewise.
4419         (unchain_one_value): Likewise.
4420         (cselib_finish): Release newly added static allocators.
4421         * cselib.h (struct cselib_val): Remove unused members.
4422         (struct elt_loc_list): Likewise.
4423         * df-problems.c (df_chain_alloc): Replace pool_allocator with
4424         object_allocator.
4425         * df-scan.c (struct df_scan_problem_data): Likewise.
4426         (df_scan_alloc): Likewise.
4427         * df.h (struct dataflow): Likewise.
4428         * dse.c (struct read_info_type): Likewise.
4429         (struct insn_info_type): Likewise.
4430         (struct dse_bb_info_type): Likewise.
4431         (struct group_info): Likewise.
4432         (struct deferred_change): Likewise.
4433         (get_group_info): Likewise.
4434         (delete_dead_store_insn): Likewise.
4435         (free_read_records): Likewise.
4436         (replace_read): Likewise.
4437         (check_mem_read_rtx): Likewise.
4438         (scan_insn): Likewise.
4439         (dse_step1): Likewise.
4440         (dse_step7): Likewise.
4441         * et-forest.c (struct et_occ): Remove unused members.
4442         (et_new_occ): Use allocate instead of new operator.
4443         (et_new_tree): Likewise.
4444         (et_free_tree): Call release method explicitly.
4445         (et_free_tree_force): Likewise.
4446         (et_free_pools): Likewise.
4447         (et_split): Use remove instead of delete operator.
4448         * et-forest.h (struct et_node): Remove unused members.
4449         * ipa-cp.c: Change pool_allocator to object_allocator.
4450         * ipa-inline-analysis.c: Likewise.
4451         * ipa-profile.c: Likewise.
4452         * ipa-prop.c: Likewise.
4453         * ipa-prop.h: Likewise.
4454         * ira-build.c (initiate_cost_vectors): Cast return value.
4455         (ira_allocate_cost_vector): Likewise.
4456         * ira-color.c (struct update_cost_record): Remove unused members.
4457         * lra-int.h (struct lra_live_range): Likewise.
4458         (struct lra_copy): Likewise.
4459         (struct lra_insn_reg): Likewise.
4460         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
4461         * lra.c (new_insn_reg): Replace new operator with allocate method.
4462         (free_insn_regs): Same for operator delete.
4463         (finish_insn_regs): Release new static allocator.
4464         (finish_insn_recog_data): Likewise.
4465         (lra_free_copies): Replace delete operator with remove method.
4466         (lra_create_copy): Replace operator new with allocate method.
4467         (invalidate_insn_data_regno_info): Same for remove method.
4468         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
4469         (free_debug_insn_changes): Replace delete operator with remove method.
4470         (replace_oldest_value_reg): Replace operator new with allocate method.
4471         (pass_cprop_hardreg::execute): Release new static variable.
4472         * sched-deps.c (sched_deps_init): Change pool_allocator to
4473         object_allocator.
4474         * sel-sched-ir.c: Likewise.
4475         * sel-sched-ir.h: Likewise.
4476         * stmt.c (expand_case): Likewise.
4477         (expand_sjlj_dispatch_table): Likewise.
4478         * tree-sra.c (struct access): Remove unused members.
4479         (struct assign_link): Likewise.
4480         (sra_deinitialize): Release newly added static pools.
4481         (create_access_1):Replace operator new with allocate method.
4482         (build_accesses_from_assign): Likewise.
4483         (create_artificial_child_access): Likewise.
4484         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
4485         pool_allocator to object_allocator.
4486         * tree-ssa-pre.c: Likewise.
4487         * tree-ssa-reassoc.c: Likewise.
4488         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
4489         * tree-ssa-strlen.c: Likewise.
4490         * tree-ssa-structalias.c: Likewise.
4491         * var-tracking.c (onepart_pool_allocate): New function.
4492         (unshare_variable): Use the newly added function.
4493         (variable_merge_over_cur): Likewise.
4494         (variable_from_dropped): Likewise.
4495         (variable_was_changed): Likewise.
4496         (set_slot_part): Likewise.
4497         (emit_notes_for_differences_1): Likewise.
4498         (vt_finalize): Release newly added static pools.
4500 2015-07-16  Martin Jambor  <mjambor@suse.cz>
4502         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
4503         all uses.  Fix two typos in its general comment.
4504         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
4506 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
4508         * config/i386/linux-common.h (LINK_MPX): New.
4509         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
4510         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
4511         indicating '-z bndplt' support by linker.
4512         * configure: Regenerate.
4513         * config.in: Regenerate.
4515 2015-07-16  Richard Biener  <rguenther@suse.de>
4517         * fold-const.c (fold_widened_comparison): Remove.
4518         (fold_sign_changed_comparison): Likewise.
4519         (fold_comparison): Move widened and sign-changed comparison
4520         simplification ...
4521         * match.pd: ... to patterns here.
4522         * generic-match-head.c: Include target.h.
4523         * gimple-match-head.c: Likewise.
4525 2015-07-16  Richard Biener  <rguenther@suse.de>
4527         * tree-ssa-dom.c (dom_valueize): New function.
4528         (record_temporary_equivalences): Also record equivalences
4529         for dominating stmts that have uses of equivalences we are
4530         about to record.
4532 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
4534         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
4535         add_autoinc_candidates.
4536         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
4537         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
4538         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
4539         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
4540         Call new function.
4541         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
4542         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
4543         Remove parameter struct iv*.  Call add_autoinc_candidates here.
4544         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
4545         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
4546         Call new function.
4547         (find_iv_candidates): Call new functions.
4549 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
4551         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
4552         uninitialized-variable warning.
4554 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
4556         PR target/65249
4557         * config/sh/sh.md (movdi): Split simple reg move to two movsi
4558         when the destination is R0.
4560 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
4562         PR target/66866
4563         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
4564         * config/i386/i386.c (ix86_expand_pextr): New function.
4565         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
4566         for non-lowpart subregs.
4567         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
4568         (insv<mode>): Use SWI248 mode iterator.
4569         (insv<mode>_1): Ditto.
4571 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
4572             Sebastian Pop  <s.pop@samsung.com>
4574         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
4575         iterator to use_stmt.
4577 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
4578             Sebastian Pop <s.pop@samsung.com>
4580         * graphite-scop-detection.c (build_scops_1): Discard scops for
4581         which entry==exit.
4583 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
4584             Sebastian Pop <s.pop@samsung.com>
4586         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
4587         case of a return statement in scop.
4589 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
4590             Sebastian Pop <s.pop@samsung.com>
4592         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
4593         INTEGER_TYPE parameters.
4594         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
4595         VECTOR_CST in scan_tree_for_params.
4596         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
4598 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
4600         * gimple-pretty-print.h: Don't include pretty-print.h.
4601         * tree-streamer.h: Don't include lto-streamer.h.
4602         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
4603         * gimple-streamer-in.c: Remove redundant includes.
4604         * gimple-streamer-out.c: Likewise.
4605         * ipa-devirt.c: Likewise.
4606         * ipa-icf.c: Likewise.
4607         * ipa-inline-analysis.c: Likewise.
4608         * ipa-polymorphic-call.c: Likewise.
4609         * ipa-profile.c: Likewise.
4610         * ipa-prop.c: Likewise.
4611         * ipa-pure-const.c: Likewise.
4612         * lto-cgraph.c: Likewise.
4613         * lto-streamer-in.c: Likewise.
4614         * lto-streamer-out.c: Likewise.
4615         * lto-streamer.c: Likewise.
4616         * tree-streamer-in.c: Likewise.
4617         * tree-streamer-out.c: Likewise.
4618         * tree-streamer.c: Likewise.
4620 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
4622         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
4623         include input.h.
4624         * opts.c: Remove multiline #include comment.
4626 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
4628         * config/nvptx/mkoffload.c (process): Add C++ protection to
4629         emitted code.
4631 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4633         PR target/66854
4634         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
4635         null before IEEE 128-bit floating point support patch.
4637 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4639         * simplify-rtx.c (simplify_ternary_operation): Add simplification
4640         for (!c) != {0,...,0} ? a : b for vector modes.
4642 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
4643             Martin Jambor  <mjambor@suse.cz>
4645         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
4646         struct func_body_info* instead of struct ipa_node_params*, expecting
4647         fbi->info to be filled in.  Replace throughout.  Adjust call to
4648         ipa_load_from_parm_agg.
4649         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
4650         instead of struct ipa_node_params*.  Adjust calls to other functions
4651         so that they pass either fbi or fbi->info.
4652         (set_switch_stmt_execution_predicate): Likewise.
4653         (will_be_nonconstant_predicate): Likewise.
4654         (compute_bb_predicates): Likewise.
4655         (estimate_function_body_sizes): Move asserts earlier.  Fill in
4656         struct func_body_info, replace parms_info with fbi.info.  Adjust
4657         calls to functions that now accept struct func_body_info.
4658         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
4659         (struct func_body_info): Likewise.
4660         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
4661         remove static.  Adjust callers.
4662         (ipa_load_from_parm_agg): Remove.
4663         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
4664         (func_body_info): Likewise.
4665         (ipa_load_from_parm_agg): Adjust prototype.
4667 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4669         * gensupport.c (rtx_handle_directive): Adjust.
4670         * read-rtl.c (apply_iterators): Take vector to add rtxs to
4671         instead of expr list rtx.
4672         (add_define_attr_for_define_subst): Likewise.
4673         (add_define_subst_attr): Likewise.
4674         (read_subst_mapping): Likewise.
4675         (read_rtx): Likewise.
4676         * rtl.h (read_rtx): Adjust.
4678 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4680         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
4682 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
4684         PR target/58066
4685         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
4686         (*tls_local_dynamic_base_64_<mode>): Ditto.
4687         (*tls_local_dynamic_base_64_largepic): Ditto.
4688         (tls_global_dynamic_64_<mode>): Update expander pattern.
4689         (tls_local_dynamic_base_64_<mode>): Ditto.
4691 2015-07-15  Richard Biener  <rguenther@suse.de>
4693         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
4694         and bool_var == 1 -> bool_var simplifications ...
4695         * match.pd: ... to patterns here.  Factor out negate_expr_p
4696         cases from the A - B -> A + (-B) patterns as negate_expr_p
4697         predicate and add a -(A + B) -> (-B) - A pattern.
4699 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
4701         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
4703 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
4704             Robert Suchanek  <robert.suchanek@imgtec.com>
4706         * config/mips/mips.c (mips_int_mask): New enum.
4707         (mips_shadow_set): Likewise.
4708         (int_mask): New variable.
4709         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
4710         (machine_function): Add int_mask and use_shadow_register_set.
4711         (mips_attribute_table): Add attribute handlers for interrupt and
4712         use_shadow_register_set.
4713         (mips_interrupt_mask): New static function.
4714         (mips_handle_interrupt_attr): Likewise.
4715         (mips_handle_use_shadow_register_set_attr): Likewise.
4716         (mips_use_shadow_register_set): Change return type to enum
4717         mips_shadow_set.  Add argument handling for use_shadow_register_set
4718         attribute.
4719         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
4720         compare with mips_shadow_set enum.
4721         (mips_compute_frame_info): Add interrupt mask and
4722         use_shadow_register_set to per-function information structure.
4723         Add a stack slot for EPC unconditionally.
4724         (mips_expand_prologue): Compare use_shadow_register_set value
4725         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
4726         masked interrupt register but in EIC mode use K0 and save Cause in K0.
4727         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
4728         copying the stack pointer from the shadow register set.
4729         * config/mips/mips.h (SR_IM0): New define.
4730         * config/mips/mips.md (mips_rdpgpr): Rename to...
4731         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
4732         * doc/extend.texi (Declaring Attributes of Functions): Document
4733         optional arguments for interrupt and use_shadow_register_set
4734         attributes.
4736 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
4738         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
4739         interrupt attribute.
4740         (mips_expand_prologue): Disable the floating point unit in an ISR.
4741         * config/mips/mips.h (SR_COP1): New define.
4743 2015-07-15  Richard Biener  <rguenther@suse.de>
4745         * genmatch.c (parser::peek, parser::peek_ident): Add argument
4746         to tell how many tokens to peek ahead (default 1).
4747         (parser::eat_token, parser::eat_ident): Return token consumed.
4748         (parser::parse_result): Parse new switch statement.
4749         * match.pd: Use case statements where appropriate.
4751 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
4753         PR rtl-optimization/58066
4754         * calls.c (expand_call): Precompute register parameters before stack
4755         alignment is performed.
4757 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
4759         PR rtl-optimization/66838
4760         * postreload.c (reload_cse_move2add): Also process
4761         CALL_INSN_FUNCTION_USAGE when resetting information of
4762         call-clobbered registers.
4764 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
4765             Cesar Philippidis  <cesar@codesourcery.com>
4766             Chung-Lin Tang  <cltang@codesourcery.com>
4768         * config/nios2/constraints.md (U, v): New constraints.
4769         * config/nios2/predicates.md (rdprs_dcache_operand): New.
4770         (ldstex_memory_operand): New.
4771         * config/nios2/sync.md: New file.
4772         * config/nios2/nios2.md (unspecv): Add new builtin function
4773         UNSPECV codes.
4774         (rdprs, flushd, flushda, wrpie, eni): New patterns.
4775         (top-level): Include sync.md.
4776         * config/nios2/nios2.c (N2_FTYPES): Add function types for
4777         new builtins.
4778         (N2_BUILTINS): Add arch field setting, add new builtins.
4779         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
4780         for arch field.
4781         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
4782         Also handle ldex/stex/ldsex/stsex builtins.
4783         (nios2_expand_rdprs_builtin): New function.
4784         (nios2_expand_cache_builtin): New function.
4785         (nios2_expand_wrpie_builtin): New function.
4786         (nios2_expand_eni_builtin): New function.
4787         (nios2_expand_builtin): Add arch field handling and new builtin
4788         cases.
4789         * doc/extend.texi (Altera Nios II Built-in Functions): Document
4790         new builtins.
4791         * doc/md.texi (Machine Constraints): Document U and v constraints.
4793 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
4794             Cesar Philippidis  <cesar@codesourcery.com>
4795             Chung-Lin Tang  <cltang@codesourcery.com>
4797         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
4798         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
4799         callee_save_reg_size and uses_anonymous_args fields.
4800         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
4801         (nios2_create_cfa_notes): New function.
4802         (nios2_adjust_stack): New function for adjusting stack.
4803         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
4804         Use nios2_adjust_stack.
4805         (nios2_expand_epilogue): Likewise.
4806         (nios2_expand_return): New function.
4807         (nios2_can_use_return_insn): Update for CDX pop.n usage.
4808         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
4809         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
4810         * config/nios2/nios2.md (return): Use nios2_expand_return.
4812 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
4813             Cesar Philippidis  <cesar@codesourcery.com>
4814             Chung-Lin Tang  <cltang@codesourcery.com>
4816         * config/nios2/predicates.md (pop_operation): New.
4817         (ldwm_operation, stwm_operation): New.
4818         (nios2_hard_register_operand): New.
4819         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
4820         (ldstwm_operation_p): Declare.
4821         (gen_ldstwm_peep): Declare.
4822         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
4823         (base_reg_adjustment_p): New.
4824         (pop_operation_p): New.
4825         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
4826         (nios2_ldstwm_regset_p): New.
4827         (ldstwm_operation_p): New.
4828         (gen_ldst): New.
4829         (nios2_ldst_parallel): New.
4830         (struct ldswm_operand): Declare.
4831         (compare_ldstwm_operands): New.
4832         (can_use_cdx_ldstw): New.
4833         (gen_ldstwm_peep): New.
4834         * config/nios2/nios2-ldstwm.sml: New.
4835         * config/nios2/nios2.md: Include ldstwm.md.
4836         * config/nios2/ldstwm.md: Generated.
4838 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
4839             Cesar Philippidis  <cesar@codesourcery.com>
4840             Chung-Lin Tang  <cltang@codesourcery.com>
4842         * config/nios2/nios2.h (LABEL_ALIGN): Define.
4843         (REG_ALLOC_ORDER): Define.
4844         (ADJUST_REG_ALLOC_ORDER): Define.
4845         (HONOR_REG_ALLOC_ORDER): Define.
4846         (CDX_REG_P): Define.
4847         (ANDCLEAR_INT): Define.
4848         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
4849         (nios2_label_align): Declare.
4850         (nios2_cdx_narrow_form_p): Declare.
4851         (nios2_adjust_reg_alloc_order): Declare.
4852         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
4853         operation.
4854         (nios2_large_unspec_reloc_p): New function, split from...
4855         (nios2_legitimate_pic_operand_p): ...here.
4856         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
4857         (nios2_print_operand_punct_valid_p): New.
4858         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
4859         (split_mem_address): New.
4860         (split_alu_insn): New.
4861         (cdxreg): New.
4862         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
4863         (enum nios2_add_insn_kind): New.
4864         (nios2_add_insn_names, nios2_add_insn_narrow): New.
4865         (nios2_add_insn_classify): New.
4866         (nios2_add_insn_asm): New.
4867         (nios2_cdx_narrow_form_p): New.
4868         (label_align, min_labelno, max_labelno): New.
4869         (nios2_reorg): New.
4870         (nios2_label_align): New.
4871         (nios2_adjust_reg_alloc_order): New.
4872         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
4873         (TARGET_MACHINE_DEPENDENT_REORG): Define.
4874         * config/nios2/constraints.md (P): New constraint.
4875         * config/nios2/predicates.md (const_and_operand): New.
4876         (and_operand): New.
4877         (stack_memory_operand): New.
4878         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
4879         (length): Update to use nios2_cdx_narrow_form_p().
4880         (type): Add new insn type values.
4881         (control, alu, st, ld, shift): Update insn reservations with
4882         new insn type values.
4883         (*high, *lo_sum): Define new insn patterns for constant generation.
4884         (movqi_internal, movhi_internal, movsi_internal): Reduce
4885         alternatives, update asm template to handle CDX variants, update
4886         type attributes.
4887         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
4888         template, update type attributes.
4889         (extendhisi2, extendqi<mode>2): Likewise.
4890         (addsi3): Change to use function for asm string.
4891         (subsi3): Add CDX notation to asm template, update type attributes.
4892         (negsi3, one_cmplsi3): Likewise.
4893         (andsi3): New pattern, specialized from logical patterns.
4894         (<code>si3): Remove and case, combine alternatives, update asm
4895         template.
4896         (<shift_op>si3): Add CDX notation, update type attributes.
4897         (rotrsi3): Update type attribute.
4898         (*merge, extzv, insv): New insn patterns.
4899         (return): Change to define_expand.
4900         (simple_return): Add CDX notation, update type attributes.
4901         (indirect_jump): Add CDX notation.
4902         (jump): Update asm cases, update length attribute expression.
4903         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
4904         (nios2_cbranch): Update asm cases and length attribute expression
4905         to handle CDX variants.
4906         (nios2_cmp<code>): Update asm template.
4907         (nop): Add CDX notation, update type attributes.
4908         (trap): Add CDX notation.
4909         (ctrapsi4): Update asm cases and length attribute expression to
4910         handle CDX variant.
4911         * doc/md.texi (Machine Constraints): Document P constraint.
4913 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
4914             Cesar Philippidis  <cesar@codesourcery.com>
4915             Chung-Lin Tang  <cltang@codesourcery.com>
4917         * config/nios2/nios2.h (SMALL_INT12): New macro.
4918         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
4919         (nios2_valid_addr_expr_p): Use it.
4920         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
4921         with implicit "io" instructions on R2.
4922         * config/nios2/constraints.md (w): New constraint.
4923         * config/nios2/predicates.md (ldstio_memory_operand): New.
4924         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
4925         operand predicate and constraint.
4926         (ld<bh>io_signed, st<bhw>io>): Likewise.
4927         * doc/md.texi (Machine Constraints): Document w constraint.
4929 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
4930             Cesar Philippidis  <cesar@codesourcery.com>
4931             Chung-Lin Tang  <cltang@codesourcery.com>
4933         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
4934         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
4935         Nios II architecture level.
4936         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
4937         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
4938         (OPTION_DEFAULT_SPECS): Define.
4939         (ASM_SPEC): Add -march= spec strings.
4940         * config/nios2/nios2.c (nios2_option_override): Check for
4941         conflicts involving new options.
4942         * config.gcc (nios2*-*-*): Support --with-arch=.
4943         * doc/invoke.texi (Option Summary, Nios II Options): Document
4944         -march=, -mbmx, and -mcdx.
4946 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
4948         PR rtl-optimization/66626
4949         * lra-constraints.c (lra_constraints): Prevent equivalence
4950         substitution for static chain pseudo in functions with nonlocal
4951         goto.
4953 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
4955         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
4956         (nios2_emit_stack_limit_check): Add size parameter.  Handle
4957         -fstack-limit-symbol as well as -fstack-limit-register.
4958         (nios2_expand_prologue): Emit only a single stack limit check,
4959         even if multiple stack adjustments are required.
4960         (nios2_option_override): Diagnose unsupported combination of -fpic
4961         and -stack-limit-symbol.
4963 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
4965         * Makefile.in (top_srcdir): New.
4966         * configure.ac: Use AM_ZLIB.
4967         * configure: Regeneated.
4969 2015-07-14  Matthias Klose  <doko@ubuntu.com>
4971         PR target/66840
4972         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
4974 2015-07-14  Richard Biener  <rguenther@suse.de>
4976         PR tree-optimization/66863
4977         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
4978         what we record for conversion use stmt lhs inequalities.
4980 2015-07-14  Richard Biener  <rguenther@suse.de>
4982         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
4983         (decision_tree::gen_gimple): Likewise.
4985 2015-07-14  Tom de Vries  <tom@codesourcery.com>
4987         * gcc.c (greater_than_spec_func): Declare forward.
4988         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
4989         -ftree-parallelize-loops={0,1}.
4990         (static_spec_functions): Add greater_than_spec_func function with name
4991         "gt".
4992         (greater_than_spec_func): New function.
4994 2015-07-14  Richard Biener  <rguenther@suse.de>
4996         * tree-ssa-dom.c (record_temporary_equivalences): Merge
4997         wideing type conversion case from record_equivalences_from_incoming_edge
4998         and use record_equality to record equivalences.
4999         (record_equivalences_from_incoming_edge): Call
5000         record_temporary_equivalences.
5002 2015-07-14  Richard Biener  <rguenther@suse.de>
5004         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
5005         (struct if_expr): New.
5006         (struct with_expr): Likewise.
5007         (is_a_helper): Add helpers for if_expr and with_expr.
5008         (struct simplify): Add simplify_kind enum and member.  Remove
5009         ifexpr_vec member.
5010         (simplify::simplify): Adjust.
5011         (lower_commutative): Adjust.
5012         (lower_opt_convert): Likewise.
5013         (lower_cond): Likewise.
5014         (replace_id): Handle with_expr and if_expr.
5015         (lower_for): Adjust.
5016         (dt_simplify::gen_1): New recursive worker, split out from ...
5017         (dt_simplify::gen): ... here.  Deal with if and with expansion
5018         recursively.
5019         (capture_info::capture_info): Take context argument
5020         (capture_info::walk_result): Only analyze specific result.
5021         (parser::parse_result): New function.
5022         (parser::parse_simplify): Adjust to parse ifs with then end
5023         else case.
5024         (parser::parse_if): Simplify.
5025         (parser::parse_pattern): Pass down simplify kind.
5026         * match.pd: Convert if structure to new syntax.
5028 2015-07-13  Marek Polacek  <polacek@redhat.com>
5030         * rtl.c (rtx_equal_p_cb): Fix typo.
5032 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
5034         * omega.h: Don't include config.h, don't include params.h again if
5035         omega.h has already been included.
5036         * graphite-poly.h: Include sese.h.
5037         * graphite.c: Don't include sese.h, remove needless includes and
5038         minimize includes outside #ifdef HAVE_isl block.
5039         * graphite-blocking.c: Don't include sese.h, remove needless includes,
5040         and wrap entire file in #ifdef HAVE_isl
5041         * graphite-dependences.c: Likewise.
5042         * graphite-interchange.c: Likewise.
5043         * graphite-isl-ast-to-gimple.c: Likewise.
5044         * graphite-optimize-isl.c: Likewise.
5045         * graphite-poly.c: Likewise.
5046         * graphite-scop-detection.c: Likewise.
5047         * graphite-sese-to-poly.c: Likewise.
5049 2015-07-13  Tom de Vries  <tom@codesourcery.com>
5051         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
5053 2015-07-13  Renlin Li  <renlin.li@arm.com>
5055         PR rtl/66556
5056         * simplify-rtx.c (simplify_const_relational_operation): Add
5057         side_effects_p checks.
5059 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
5061         * bitmap.h: Fix double word typos.
5062         * builtins.c: Same.
5063         * calls.c: Same.
5064         * cfgloopmanip.c: Same.
5065         * cgraph.c: Same.
5066         * cgraph.h: Same.
5067         * cgraphclones.c: Same.
5068         * combine.c: Same.
5069         * config/aarch64/aarch64-protos.h: Same.
5070         * config/aarch64/aarch64.c: Same.
5071         * config/aarch64/aarch64.md: Same.
5072         * config/arm/arm.md: Same.
5073         * config/arm/arm1020e.md: Same.
5074         * config/arm/arm1026ejs.md: Same.
5075         * config/arm/arm926ejs.md: Same.
5076         * config/arm/fa526.md: Same.
5077         * config/arm/fa606te.md: Same.
5078         * config/arm/fa626te.md: Same.
5079         * config/arm/fa726te.md: Same.
5080         * config/arm/fmp626.md: Same.
5081         * config/darwin.c: Same.
5082         * config/epiphany/epiphany.c: Same.
5083         * config/frv/frv.c: Same.
5084         * config/ft32/ft32.c: Same.
5085         * config/gnu-user.h: Same.
5086         * config/h8300/constraints.md: Same.
5087         * config/i386/i386.c: Same.
5088         * config/i386/i386.md: Same.
5089         * config/iq2000/iq2000.md: Same.
5090         * config/mips/mips.c: Same.
5091         * config/mmix/mmix.md: Same.
5092         * config/moxie/moxie.c: Same.
5093         * config/nds32/nds32.md: Same.
5094         * config/pa/pa.h: Same.
5095         * config/rs6000/aix.h: Same.
5096         * config/rs6000/rs6000.h: Same.
5097         * config/sh/sh.c: Same.
5098         * config/tilegx/tilegx.md: Same.
5099         * config/tilepro/gen-mul-tables.cc: Same.
5100         * cse.c: Same.
5101         * dbxout.c: Same.
5102         * doc/invoke.texi: Same.
5103         * dse.c: Same.
5104         * dwarf2out.c: Same.
5105         * final.c: Same.
5106         * gcc.c: Same.
5107         * genmatch.c: Same.
5108         * gimplify.c: Same.
5109         * hash-table.h: Same.
5110         * internal-fn.c: Same.
5111         * ipa-cp.c: Same.
5112         * ipa-devirt.c: Same.
5113         * ipa-icf.c: Same.
5114         * ipa-icf.h: Same.
5115         * ipa-profile.c: Same.
5116         * ipa-prop.c: Same.
5117         * ipa-prop.h: Same.
5118         * ira.c: Same.
5119         * omp-low.c: Same.
5120         * reg-stack.c: Same.
5121         * regcprop.c: Same.
5122         * reorg.c: Same.
5123         * rtl.h: Same.
5124         * sbitmap.h: Same.
5125         * tree-eh.c: Same.
5126         * tree-inline.c: Same.
5127         * tree-sra.c: Same.
5128         * tree-ssa-dom.c: Same.
5129         * tree-ssa-loop-ivopts.c: Same.
5130         * tree-ssa-structalias.c: Same.
5131         * tree-ssa-tail-merge.c: Same.
5132         * tree-ssa-ter.c: Same.
5133         * tree-ssa-threadupdate.c: Same.
5134         * tree-ssa-uninit.c: Same.
5135         * tree-ssanames.c: Same.
5136         * tree-vect-loop-manip.c: Same.
5137         * tree-vrp.c: Same.
5138         * tree.c: Same.
5139         * valtrack.c: Same.
5140         * vec.h: Same.
5142 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
5144         PR middle-end/66726
5145         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
5146         tree_ssa_phiopt_worker): Call it.
5148 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
5150         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
5151         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
5152         REG_EQUAL note.
5154 2015-07-11  Marek Polacek  <polacek@redhat.com>
5156         PR middle-end/66353
5157         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
5158         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
5159         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
5160         rather than bb_has_abnormal_call_pred.
5161         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
5162         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
5163         rather than bb_has_abnormal_call_pred.
5165 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
5167         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
5168         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
5169         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
5170         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
5171         v850_legitimate_address_p): New functions.
5172         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
5174 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
5176         PR target/66819
5177         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
5178         indirect sibcall with register arguments if register available
5179         for argument passing.
5180         (init_cumulative_args): Set cfun->machine->arg_reg_available
5181         to (cum->nregs > 0) or to true if function has a variable
5182         argument list.
5183         (function_arg_advance_32): Set cfun->machine->arg_reg_available
5184         to false if cum->nregs <= 0.
5185         * config/i386/i386.h (machine_function): Add arg_reg_available.
5187 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
5189         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
5190         and gen_higpart instead of gen_rtx_SUBREG.
5191         * config/i386/i386.md
5192         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
5193         (read-modify peephole2): Use gen_lowpart instead of
5194         gen_rtx_SUBREG for operand 5.
5196 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
5198         * config/tilepro/gen-mul-tables.cc (main): Change include list for
5199         generated files.
5200         * config/tilepro/mul-tables.c: Regenerate.
5201         * config/tilegx/mul-tables.c: Regenerate.
5203 2015-07-10  Richard Biener  <rguenther@suse.de>
5205         * fold-const.c (distribute_bit_expr): Remove.
5206         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
5207         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
5208         to A & (B | C) and simplifying A << C1 << C2 to ...
5209         * match.pd: ... patterns here.
5211 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
5213         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
5214         Mark mem as READONLY and NOTRAP for PIC symbol.
5216 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
5218         * gimple-predict.h: New file.
5219         (gimple_predict_predictor, gimple_predict_set_predictor,
5220         gimple_predict_outcome, gimple_predict_set_outcome,
5221         gimple_build_predict): Relocate here.
5222         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
5223         gimple_predict_outcome, gimple_predict_set_outcome): Move to
5224         gimple-predict.h.
5225         * gimple.c (gimple_build_predict): Move to gimple-predict.h
5226         * basic-block.h: Don't include cfghooks.h.
5227         * backend.h: Don't include predict.h.
5228         * cfghooks.h: Include predict.h.
5229         * gimple-pretty-print.c: Include gimple-predict.h.
5230         * gimplify.c: Likwise.
5231         * predict.c: Adjust includes.
5232         * tree-inline.c: Likewise.
5233         * asan.c: Likewise.
5234         * auto-inc-dec.c: Likewise.
5235         * auto-profile.c: Likewise.
5236         * bb-reorder.c: Likewise.
5237         * builtins.c: Likewise.
5238         * caller-save.c: Likewise.
5239         * calls.c: Likewise.
5240         * cfganal.c: Likewise.
5241         * cfgbuild.c: Likewise.
5242         * cfg.c: Likewise.
5243         * cfgcleanup.c: Likewise.
5244         * cfgexpand.c: Likewise.
5245         * cfghooks.c: Likewise.
5246         * cfgloopanal.c: Likewise.
5247         * cfgloop.c: Likewise.
5248         * cfgloopmanip.c: Likewise.
5249         * cfgrtl.c: Likewise.
5250         * cgraph.c: Likewise.
5251         * cgraphunit.c: Likewise.
5252         * combine.c: Likewise.
5253         * cprop.c: Likewise.
5254         * cse.c: Likewise.
5255         * dce.c: Likewise.
5256         * dojump.c: Likewise.
5257         * dse.c: Likewise.
5258         * except.c: Likewise.
5259         * expmed.c: Likewise.
5260         * expr.c: Likewise.
5261         * final.c: Likewise.
5262         * fold-const.c: Likewise.
5263         * function.c: Likewise.
5264         * fwprop.c: Likewise.
5265         * gcc-plugin.h: Likewise.
5266         * gcse.c: Likewise.
5267         * genattrtab.c: Likewise.
5268         * genemit.c: Likewise.
5269         * gengtype.c: Likewise.
5270         * genopinit.c: Likewise.
5271         * genoutput.c: Likewise.
5272         * genpreds.c: Likewise.
5273         * genrecog.c: Likewise.
5274         * gimple-fold.c: Likewise.
5275         * gimple-iterator.c: Likewise.
5276         * gimple-ssa-isolate-paths.c: Likewise.
5277         * gimple-ssa-strength-reduction.c: Likewise.
5278         * graph.c: Likewise.
5279         * graphite-blocking.c: Likewise.
5280         * graphite.c: Likewise.
5281         * graphite-dependences.c: Likewise.
5282         * graphite-interchange.c: Likewise.
5283         * graphite-isl-ast-to-gimple.c: Likewise.
5284         * graphite-optimize-isl.c: Likewise.
5285         * graphite-poly.c: Likewise.
5286         * graphite-scop-detection.c: Likewise.
5287         * graphite-sese-to-poly.c: Likewise.
5288         * haifa-sched.c: Likewise.
5289         * ifcvt.c: Likewise.
5290         * internal-fn.c: Likewise.
5291         * ipa-cp.c: Likewise.
5292         * ipa-profile.c: Likewise.
5293         * ipa-split.c: Likewise.
5294         * ipa-utils.c: Likewise.
5295         * ira-build.c: Likewise.
5296         * ira-color.c: Likewise.
5297         * ira-conflicts.c: Likewise.
5298         * ira-costs.c: Likewise.
5299         * ira-emit.c: Likewise.
5300         * ira-lives.c: Likewise.
5301         * jump.c: Likewise.
5302         * loop-doloop.c: Likewise.
5303         * loop-init.c: Likewise.
5304         * loop-invariant.c: Likewise.
5305         * loop-unroll.c: Likewise.
5306         * lower-subreg.c: Likewise.
5307         * lra-assigns.c: Likewise.
5308         * lra.c: Likewise.
5309         * lra-coalesce.c: Likewise.
5310         * lra-constraints.c: Likewise.
5311         * lra-lives.c: Likewise.
5312         * lto-cgraph.c: Likewise.
5313         * lto-streamer-in.c: Likewise.
5314         * mode-switching.c: Likewise.
5315         * modulo-sched.c: Likewise.
5316         * omp-low.c: Likewise.
5317         * optabs.c: Likewise.
5318         * passes.c: Likewise.
5319         * postreload.c: Likewise.
5320         * postreload-gcse.c: Likewise.
5321         * profile.c: Likewise.
5322         * recog.c: Likewise.
5323         * regstat.c: Likewise.
5324         * reload1.c: Likewise.
5325         * reorg.c: Likewise.
5326         * rtlanal.c: Likewise.
5327         * sched-ebb.c: Likewise.
5328         * sel-sched-ir.c: Likewise.
5329         * sese.c: Likewise.
5330         * shrink-wrap.c: Likewise.
5331         * simplify-rtx.c: Likewise.
5332         * stmt.c: Likewise.
5333         * store-motion.c: Likewise.
5334         * tracer.c: Likewise.
5335         * trans-mem.c: Likewise.
5336         * tree-call-cdce.c: Likewise.
5337         * tree-cfg.c: Likewise.
5338         * tree-cfgcleanup.c: Likewise.
5339         * tree-chkp.c: Likewise.
5340         * tree-complex.c: Likewise.
5341         * tree-eh.c: Likewise.
5342         * tree-if-conv.c: Likewise.
5343         * tree-loop-distribution.c: Likewise.
5344         * tree-outof-ssa.c: Likewise.
5345         * tree-parloops.c: Likewise.
5346         * tree-predcom.c: Likewise.
5347         * tree-pretty-print.c: Likewise.
5348         * tree-profile.c: Likewise.
5349         * tree-sra.c: Likewise.
5350         * tree-ssa.c: Likewise.
5351         * tree-ssa-coalesce.c: Likewise.
5352         * tree-ssa-dce.c: Likewise.
5353         * tree-ssa-dom.c: Likewise.
5354         * tree-ssa-forwprop.c: Likewise.
5355         * tree-ssa-ifcombine.c: Likewise.
5356         * tree-ssa-loop-ch.c: Likewise.
5357         * tree-ssa-loop-im.c: Likewise.
5358         * tree-ssa-loop-ivcanon.c: Likewise.
5359         * tree-ssa-loop-ivopts.c: Likewise.
5360         * tree-ssa-loop-manip.c: Likewise.
5361         * tree-ssa-loop-prefetch.c: Likewise.
5362         * tree-ssa-loop-unswitch.c: Likewise.
5363         * tree-ssa-math-opts.c: Likewise.
5364         * tree-ssa-phiopt.c: Likewise.
5365         * tree-ssa-pre.c: Likewise.
5366         * tree-ssa-reassoc.c: Likewise.
5367         * tree-ssa-sink.c: Likewise.
5368         * tree-ssa-tail-merge.c: Likewise.
5369         * tree-ssa-threadedge.c: Likewise.
5370         * tree-ssa-threadupdate.c: Likewise.
5371         * tree-switch-conversion.c: Likewise.
5372         * tree-tailcall.c: Likewise.
5373         * tree-vect-data-refs.c: Likewise.
5374         * tree-vect-loop.c: Likewise.
5375         * tree-vect-loop-manip.c: Likewise.
5376         * tree-vectorizer.c: Likewise.
5377         * tree-vrp.c: Likewise.
5378         * ubsan.c: Likewise.
5379         * value-prof.c: Likewise.
5380         * varasm.c: Likewise.
5381         * var-tracking.c: Likewise.
5382         * config/aarch64/aarch64-builtins.c: Likewise.
5383         * config/aarch64/aarch64.c: Likewise.
5384         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
5385         * config/alpha/alpha.c: Likewise.
5386         * config/arc/arc.c: Likewise.
5387         * config/arm/arm.c: Likewise.
5388         * config/avr/avr.c: Likewise.
5389         * config/bfin/bfin.c: Likewise.
5390         * config/c6x/c6x.c: Likewise.
5391         * config/cr16/cr16.c: Likewise.
5392         * config/cris/cris.c: Likewise.
5393         * config/darwin.c: Likewise.
5394         * config/darwin-c.c: Likewise.
5395         * config/epiphany/epiphany.c: Likewise.
5396         * config/epiphany/mode-switch-use.c: Likewise.
5397         * config/epiphany/resolve-sw-modes.c: Likewise.
5398         * config/fr30/fr30.c: Likewise.
5399         * config/frv/frv.c: Likewise.
5400         * config/ft32/ft32.c: Likewise.
5401         * config/h8300/h8300.c: Likewise.
5402         * config/i386/i386.c: Likewise.
5403         * config/i386/winnt.c: Likewise.
5404         * config/ia64/ia64.c: Likewise.
5405         * config/iq2000/iq2000.c: Likewise.
5406         * config/lm32/lm32.c: Likewise.
5407         * config/m32c/m32c.c: Likewise.
5408         * config/m32r/m32r.c: Likewise.
5409         * config/m68k/m68k.c: Likewise.
5410         * config/mcore/mcore.c: Likewise.
5411         * config/mep/mep.c: Likewise.
5412         * config/microblaze/microblaze.c: Likewise.
5413         * config/mips/mips.c: Likewise.
5414         * config/mmix/mmix.c: Likewise.
5415         * config/mn10300/mn10300.c: Likewise.
5416         * config/moxie/moxie.c: Likewise.
5417         * config/msp430/msp430.c: Likewise.
5418         * config/nds32/nds32.c: Likewise.
5419         * config/nds32/nds32-cost.c: Likewise.
5420         * config/nds32/nds32-fp-as-gp.c: Likewise.
5421         * config/nds32/nds32-intrinsic.c: Likewise.
5422         * config/nds32/nds32-isr.c: Likewise.
5423         * config/nds32/nds32-md-auxiliary.c: Likewise.
5424         * config/nds32/nds32-memory-manipulation.c: Likewise.
5425         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
5426         * config/nds32/nds32-predicates.c: Likewise.
5427         * config/nios2/nios2.c: Likewise.
5428         * config/nvptx/nvptx.c: Likewise.
5429         * config/pa/pa.c: Likewise.
5430         * config/pdp11/pdp11.c: Likewise.
5431         * config/rl78/rl78.c: Likewise.
5432         * config/rs6000/rs6000.c: Likewise.
5433         * config/rx/rx.c: Likewise.
5434         * config/s390/s390.c: Likewise.
5435         * config/sh/sh.c: Likewise.
5436         * config/sh/sh-mem.cc: Likewise.
5437         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
5438         * config/sh/sh_treg_combine.cc: Likewise.
5439         * config/sparc/sparc.c: Likewise.
5440         * config/spu/spu.c: Likewise.
5441         * config/stormy16/stormy16.c: Likewise.
5442         * config/tilegx/tilegx.c: Likewise.
5443         * config/tilepro/tilepro.c: Likewise.
5444         * config/v850/v850.c: Likewise.
5445         * config/vax/vax.c: Likewise.
5446         * config/visium/visium.c: Likewise.
5447         * config/xtensa/xtensa.c: Likewise.
5449 2015-07-10  Richard Biener  <rguenther@suse.de>
5451         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
5452         (decision_tree::gen_gimple): Likewise.
5453         (decision_tree::gen_generic): Likewise.
5455 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
5457         PR target/66813
5458         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
5459         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
5461 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
5463         PR middle-end/66820
5464         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
5465         or ORT_TASK contexts.
5466         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
5467         is non-zero.
5469 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5471         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
5472         above function.
5474 2015-07-10  Tom de Vries  <tom@codesourcery.com>
5476         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
5477         insert nit + 1 bound.
5479 2015-07-10  Richard Biener  <rguenther@suse.de>
5481         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
5482         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
5483         (if_convertible_loop_p_1): For this always compute bb predicates.
5484         (if_convertible_loop_p): And free them.
5486 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5488         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
5489         in dump message.
5491 2015-07-10  Richard Biener  <rguenther@suse.de>
5493         PR tree-optimization/66823
5494         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
5495         inverted predicate.
5497 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
5499         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
5500         to handle mips[32|64]r3 and mips[32|64]r5.
5502 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
5504         PR middle-end/66633
5505         * tree-nested.c (get_static_chain): Or in a flag into
5506         info->static_chain_added.
5507         (get_frame_field, get_nonlocal_debug_decl): Likewise.
5508         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
5509         2015-07-01 changes.
5510         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
5511         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
5512         add it to clauses.
5514         PR tree-optimization/66718
5515         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
5516         field.
5517         (vect_simd_lane_linear): New function.
5518         (vectorizable_simd_clone_call): Support using linear arguments for
5519         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
5521 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
5523         PR target/66821
5524         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
5526 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
5528         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
5529         Use machine mode, not enum machine_mode in the prototype.
5531         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
5532         classify 128-bit floating point support.
5533         (FLOAT128_IBM_P): Likewise.
5534         (FLOAT128_VECTOR_P): Likewise.
5535         (FLOAT128_2REG_P): Likewise.
5536         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
5537         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
5538         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
5539         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
5541         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
5542         tests against TFmode/TDmode, since those modes do not use VSX
5543         addresses.
5544         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
5545         support.
5546         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
5547         tests against TFmode, etc.
5548         (invalid_e500_subreg): Add tests against IFmode/KFmode.
5549         (reg_offset_addressing_ok_p): Likewise.
5550         (rs6000_legitimate_offset_address_p): Likewise.
5551         (rs6000_legitimize_address): Likewise.
5552         (rs6000_legitimize_reload_address): Likewise.
5553         (rs6000_legitimate_address_p): Clean up tests against TFmode and
5554         TDmode to use the new helper macros, which will include IFmode and
5555         KFmode.
5556         (rs6000_emit_move): Likewise.
5557         (rs6000_darwin64_record_arg_recurse): Likewise.
5558         (print_operand): Likewise.
5559         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
5560         that uses a single vector register as a vector and not as a
5561         floating point register in terms of the calling sequence.
5562         (rs6000_discover_homogeneous_aggregate): Likewise.
5563         (rs6000_return_in_memory): Likewise.
5564         (init_cumulative_args): Likewise.
5565         (rs6000_function_arg_boundary): Likewise.
5566         (rs6000_function_arg_advance_1): Likewise.
5567         (rs6000_function_arg): Likewise.
5568         (rs6000_pass_by_reference): Likewise.
5569         (rs6000_gimplify_va_arg): Likewise.
5570         (rs6000_secondary_reload_memory): Use machine_mode not enum
5571         machine mode.
5572         (rs6000_split_multireg_move): Use new helper macros.
5573         (spe_func_has_64bit_regs_p): Likewise.
5574         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
5575         (output_toc): Use new helper macros.
5576         (rs6000_register_move_cost): Likewise.
5577         (rs6000_function_value): Add IEEE 128-bit floating point calling
5578         sequence support.
5579         (rs6000_libcall_value): Likewise.
5580         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
5581         floating point support.
5582         (rs6000_vector_mode_supported_p): Likewise.
5584 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
5586         PR rtl-optimization/66782
5587         * lra-int.h (struct lra_insn_recog_data): Add comment about
5588         clobbered hard regs for arg_hard_regs.
5589         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
5590         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
5591         Add condition for processing used hard regs.
5592         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
5593         Process clobbered hard regs.
5595 2015-07-09  Michael Matz  <matz@suse.de>
5597         * genmatch.c (fprintf_indent): New function.
5598         (operand::gen_transform): Add indent parameter.
5599         (expr::gen_transform, c_expr::gen_transform,
5600         capture::gen_transform): Ditto and use fprintf_indent.
5601         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
5602         (dt_operand::gen, dt_operand::gen_predicate,
5603         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
5604         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
5605         (decision_tree::gen_gimple): Adjust calls and indent generated
5606         code.
5607         (decision_tree::gen_generic): Ditto.
5608         (write_predicate): Ditto.
5610 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
5612         PR target/66814
5613         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
5614         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
5615         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
5616         {GENERAL,SSE,MMX}_REG_P where appropriate.
5618 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
5620         * lto-streamer.h: Don't include target.h and alloc-pool.h.
5621         * builtins.c: Adjust includes.
5622         * gimple.c: Likewise.
5623         * ipa-icf.c: Likewise.
5624         * lto-opts.c: Likewise.
5625         * ipa-reference.c: Likewise.
5626         * lto-section-out.c: Likewise.
5627         * lto-streamer-in.c: Likewise.
5628         * lto-streamer-out.c: Likewise.
5629         * opts-global.c: Likewise.
5630         * symtab.c: Likewise.
5631         * tree-chkp.c: Likewise.
5632         * tree-ssa-live.c: Likewise.
5633         * tree-streamer-in.c: Likewise.
5634         * tree-streamer-out.c: Likewise.
5635         * config/darwin.c: Likewise.
5636         * config/i386/winnt.c: Likewise.
5638 2015-07-09  Richard Biener  <rguenther@suse.de>
5640         * genmatch.c (struct expr): Add force_single_use flag.
5641         (expr::expr): Add copy constructor.
5642         (capture_info::walk_match): Gather force_single_use captures.
5643         (expr::gen_transform): Use possibly NULLified sequence.
5644         (dt_simplify::gen): Apply single-use restrictions by NULLifying
5645         seq if any constrained expr is not single-use.
5646         (parser::parse_expr): Refactor to allow multiple flags.  Handle
5647         's' flag to force an expression have a single-use if the pattern
5648         simplifies to more than one statement.
5649         * match.pd: Convert most single_use conditionals to :s flags.
5651 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
5653         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
5654         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
5655         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
5657 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
5659         * flags.h: Don't include flag-types.h or options.h.
5660         * opts-common.c: Adjust includes.
5661         * opts-global.c: Likewise.
5662         * common/config/epiphany/epiphany-common.c: Likewise.
5664 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
5666         PR target/66818
5667         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
5668         for IA MCU.
5670 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
5672         PR target/66817
5673         * config/i386/i386.c (ix86_return_in_memory): Return true
5674         if int_size_in_bytes returns negative for IA MCU.
5676 2015-07-09  Marek Polacek  <polacek@redhat.com>
5678         PR tree-optimization/66718
5679         * Makefile.in (OBJS): Add gimple-laddress.o.
5680         * passes.def: Schedule pass_laddress.
5681         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
5682         * tree-pass.h (make_pass_laddress): Declare.
5683         * gimple-laddress.c: New file.
5685 2015-07-09  Richard Biener  <rguenther@suse.de>
5687         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
5689 2015-07-09  Richard Biener  <rguenther@suse.de>
5691         PR tree-optimization/66807
5692         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
5694 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
5696         * function.c (stack_protect_epilogue): Use if rather than switch for
5697         check targetm.have_stack_protect_test.
5699 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5701         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
5702         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
5703         * config/arc/arc.h: Likewise.
5704         * config/arm/arm.h: Likewise.
5705         * config/bfin/bfin.h: Likewise.
5706         * config/epiphany/epiphany.h: Likewise.
5707         * config/frv/frv.h: Likewise.
5708         * config/ia64/ia64.h: Likewise.
5709         * config/iq2000/iq2000.h: Likewise.
5710         * config/lm32/lm32.h: Likewise.
5711         * config/m32r/m32r.h: Likewise.
5712         * config/mcore/mcore.h: Likewise.
5713         * config/mep/mep.h: Likewise.
5714         * config/microblaze/microblaze.h: Likewise.
5715         * config/mips/mips.h: Likewise.
5716         * config/mmix/mmix.h: Likewise.
5717         * config/mn10300/mn10300.h: Likewise.
5718         * config/nds32/nds32.h: Likewise.
5719         * config/nios2/nios2.h: Likewise.
5720         * config/pa/pa.h: Likewise.
5721         * config/rl78/rl78.h: Likewise.
5722         * config/sh/sh.h: Likewise.
5723         * config/sparc/sparc.h: Likewise.
5724         * config/stormy16/stormy16.h: Likewise.
5725         * config/tilegx/tilegx.h: Likewise.
5726         * config/tilepro/tilepro.h: Likewise.
5727         * config/v850/v850.h: Likewise.
5728         * config/xtensa/xtensa.h: Likewise.
5729         * doc/tm.texi: Regenerate.
5730         * doc/tm.texi.in: Adjust.
5731         * combine.c (simplify_set): Likewise.
5732         (simplify_comparison): Likewise.
5733         * expr.c (store_constructor): Likewise.
5734         * internal-fn.c (expand_arith_overflow): Likewise.
5735         * reload.c (push_reload): Likewise.
5736         (find_reloads): Likewise.
5737         (find_reloads_subreg_address): Likewise.
5738         * reload1.c (eliminate_regs_1): Likewise.
5739         * rtlanal.c (nonzero_bits1): Likewise.
5740         (num_sign_bit_copies1): Likewise.
5741         * simplify-rtx.c (simplify_truncation): Likewise.
5743 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5745         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
5746         of AUTO_INC_DEC with the preprocessor.
5747         * combine.c (combine_instructions): Likewise.
5748         (can_combine_p): Likewise.
5749         (try_combine): Likewise.
5750         * emit-rtl.c (try_split): Likewise.
5751         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
5752         * lower-subreg.c (resolve_simple_move): Likewise.
5753         * lra.c (update_inc_notes): Likewise.
5754         * recog.c (asm_operand_ok): Likewise.
5755         (constrain_operands): Likewise.
5756         * regrename.c (scan_rtx_address): Likewise.
5757         * reload.c (update_auto_inc_notes): Likewise.
5758         (reg_inc_found_and_valid_p): Likewise.
5759         * reload1.c (reload): Likewise.
5760         (emit_input_reload_insns): Likewise.
5761         (delete_output_reload): Likewise.
5762         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
5763         * valtrack.c (cleanup_auto_inc_dec): Likewise.
5765 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5767         * rtl.h: Always define AUTO_INC_DEC.
5768         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
5769         * combine.c (combine_instructions): Likewise.
5770         (can_combine_p): Likewise.
5771         (try_combine): Likewise.
5772         * emit-rtl.c (try_split): Likewise.
5773         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
5774         * lower-subreg.c (resolve_simple_move): Likewise.
5775         * lra.c (update_inc_notes): Likewise.
5776         * recog.c (asm_operand_ok): Likewise.
5777         (constrain_operands): Likewise.
5778         * regrename.c (scan_rtx_address): Likewise.
5779         * reload.c (update_auto_inc_notes): Likewise.
5780         (find_equiv_reg): Likewise.
5781         * reload1.c (reload): Likewise.
5782         (reload_as_needed): Likewise.
5783         (choose_reload_regs): Likewise.
5784         (emit_input_reload_insns): Likewise.
5785         (delete_output_reload): Likewise.
5786         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
5787         * valtrack.c (cleanup_auto_inc_dec): Likewise.
5789 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5791         * combine.c (can_combine_def_p): Don't check the value of
5792         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
5793         (combinable_i3pat): Likewise.
5794         (mark_used_regs_combine): Likewise.
5795         * regrename.c (rename_chains): Likewise.
5796         * reload.c (find_reloads_address): Likewise.
5797         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
5799 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5801         * combine.c (update_rsp_from_reg_equal): Don't check if
5802         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
5803         (reg_nonzero_bits_for_combine): Likewise.
5804         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
5805         1.
5806         * config/frv/frv.h: Likewise.
5807         * config/lm32/lm32.h: Likewise.
5808         * config/mep/mep.h: Likewise.
5809         * config/mips/mips.h: Likewise.
5810         * config/rs6000/rs6000.h: Likewise.
5811         * config/sh/sh.h: Likewise.
5812         * config/tilegx/tilegx.h (enum reg_class): Likewise.
5813         * config/tilepro/tilepro.h: Likewise.
5814         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
5815         * doc/tm.texi: Regenerate.
5816         * doc/tm.texi.in: Adjust.
5817         * rtlanal.c (nonzero_bits1): Likewise.
5819 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5821         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
5822         with the preprocessor.
5823         (combine_instructions): Likewise.
5824         (try_combine): Likewise.
5825         (subst): Likewise.
5826         (distribute_notes): Likewise.
5828 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5830         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
5831         defined.
5832         (simplify_set): Likewise.
5833         * cse.c (cse_insn): Likewise.
5834         * fold-const.c (fold_single_bit_test): Likewise.
5835         (fold_unary_loc): Likewise.
5836         * postreload.c (reload_cse_simplify_set): Likewise.
5837         (reload_cse_simplify_operands): Likewise.
5839 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
5841         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
5842         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
5844 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
5846         PR target/66746
5847         * config/i386/x86intrin.h: Include <adxintrin.h> even if
5848         __iamcu__ is defined.
5850 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
5852         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
5854 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
5856         PR target/66523
5857         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
5858         names from preservation.
5860 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
5862         PR target/66806
5863         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
5864         change for IAMCU.
5865         (function_arg_advance_32): Don't pass vectors in registers for
5866         IAMCU.
5867         (function_arg_32): Likewise.
5868         (ix86_return_in_memory): Don't return vectors in registers for
5869         IAMCU.
5871 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
5873         PR middle-end/66334
5874         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
5875         hard regno live at the start of BB with incoming abnormal edges.
5876         * lra-lives.c (process_bb_lives): Ditto.
5878 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
5880         PR libgomp/65099
5881         * config/nvptx/mkoffload.c (main): Create an offload image only in
5882         64-bit configurations.
5884 2015-07-08  Martin Liska  <mliska@suse.cz>
5886         PR bootstrap/66744
5887         * tree-sra.c (create_access_1): Call ctor without brackets.
5888         (create_artificial_child_access): Likewise.
5890 2015-07-08  Richard Biener  <rguenther@suse.de>
5892         PR tree-optimization/66793
5893         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
5894         Properly split the block after stmts ending it.
5896 2015-07-08  Richard Biener  <rguenther@suse.de>
5898         PR tree-optimization/66794
5899         * passes.c (execute_function_todo): Assert that post-dominators
5900         are not computed.
5901         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
5902         Free post-dominators.
5904 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5906         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
5907         with early exit.
5909 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
5911         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
5912         more than or equal 8 and less than 32 when optimizing for size.
5914 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5916         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
5917         COSTS_N_INSNS (1) and increment it appropriately throughout the
5918         function.
5920 2015-07-08  Richard Biener  <rguenther@suse.de>
5922         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
5924 2015-07-08  Alan Modra  <amodra@gmail.com>
5926         * target.def (rtx_costs): Remove "code" param, add "mode".
5927         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
5928         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
5929         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
5930         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
5931         call.  Track mode when given in rtx.
5932         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
5933         (default_address_cost): Pass Pmode to rtx_cost.
5934         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
5935         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
5936         with NULL set.
5937         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
5938         (notreg_cost): Add mode param.  Use it.
5939         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
5940         mode param and pass to set_src_cost.  Update all calls.
5941         (hash_scan_set): Formatting.
5942         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
5943         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
5944         * hooks.h: Ditto.
5945         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
5946         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
5947         emit_store_flag): Update set_src_cost and rtx_cost calls.
5948         * auto-inc-dec.c (attempt_change): Likewise.
5949         * calls.c (precompute_register_parameters): Likewise.
5950         * combine.c (expand_compound_operation, make_extraction,
5951         force_to_mode, distribute_and_simplify_rtx): Likewise.
5952         * dojump.c (prefer_and_bit_test): Likewise.
5953         * dse.c (find_shift_sequence): Likewise.
5954         * expr.c (compress_float_constant): Likewise.
5955         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
5956         * ifcvt.c (noce_try_sign_mask): Likewise.
5957         * loop-doloop.c (doloop_optimize): Likewise.
5958         * loop-invariant.c (create_new_invariant): Likewise.
5959         * lower-subreg.c (shift_cost, compute_costs): Likewise.
5960         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
5961         lshift_cheap_p): Likewise.
5962         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
5963         try_replace_in_use, reload_cse_move2add): Likewise.
5964         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
5965         Likewise.
5966         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5967         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
5968         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
5969         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
5970         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
5971         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
5972         to rtx_cost calls.
5973         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
5974         * config/arc/arc.c (arc_rtx_costs): Likewise.
5975         * config/arm/arm.c (arm_rtx_costs): Likewise.
5976         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
5977         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
5978         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
5979         * config/cris/cris.c (cris_rtx_costs): Likewise.
5980         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
5981         * config/frv/frv.c (frv_rtx_costs): Likewise.
5982         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
5983         * config/i386/i386.c (ix86_rtx_costs): Likewise.
5984         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
5985         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
5986         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
5987         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
5988         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
5989         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
5990         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
5991         * config/mep/mep.c (mep_rtx_cost): Likewise.
5992         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
5993         * config/mips/mips.c (mips_rtx_costs): Likewise.
5994         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
5995         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
5996         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
5997         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
5998         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
5999         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
6000         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
6001         * config/pa/pa.c (hppa_rtx_costs): Likewise.
6002         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
6003         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
6004         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
6005         * config/s390/s390.c (s390_rtx_costs): Likewise.
6006         * config/sh/sh.c (sh_rtx_costs): Likewise.
6007         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
6008         * config/spu/spu.c (spu_rtx_costs): Likewise.
6009         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
6010         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
6011         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
6012         * config/v850/v850.c (v850_rtx_costs): Likewise.
6013         * config/vax/vax.c (vax_rtx_costs): Likewise.
6014         * config/visium/visium.c (visium_rtx_costs): Likewise.
6015         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
6016         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
6017         "code" param, and pass as outer_code to first rtx_cost call.  Pass
6018         mode to rtx_cost calls.
6019         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
6020         calls.
6021         (aarch64_rtx_costs_wrapper): Update.
6022         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
6023         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
6024         rtx_cost calls.
6025         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
6026         and rtx_cost calls.
6027         (avr_operand_rtx_cost): Similarly.
6028         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
6029         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
6030         * config/mips/mips.c (mips_stack_address_p): Comment typo.
6031         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
6032         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
6033         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
6034         rtx_cost.
6035         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
6036         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
6037         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
6038         * doc/tm.texi: Regenerate.
6040 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
6042         * tree-core.h: Include symtab.h.
6043         * rtl.h: Include hard-reg-set.h but not flags.h.
6044         (HARD_CONST): Remove condition compilation involving HARD_CONST since
6045         hard-reg-set.h is always included.
6046         * regs.h: Don't include hard-reg-set.h or rtl.h.
6047         * cfg.h: Include dominance.h.
6048         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
6049         * backend.h: New.  Aggregate commonly used backend header files.
6050         * gimple-ssa.h: Don't include tree-hasher.h.
6051         * ssa.h: New.  Aggregate commonly used SSA header files.
6052         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
6053         * sel-sched-ir.h: Flatten includes.
6054         * lra-int.h: Flatten completely.
6055         * sel-sched-dump.h: Flatten includes.
6056         * ira-int.h: Flatten includes.
6057         * gimple-streamer.h: Remove all includes.
6058         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
6059         * resource.h: Flatten hard-reg-set.h and df.h.
6060         * sched-int.h: Flatten insn-arrt.h and df.h.
6061         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
6062         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
6063         * genattrtab.c (write_header): Adjust generated includes.
6064         * genautomata.c (main): Likewise.
6065         * genconditions.c (write-header): Likewise.
6066         * genemit.c (main): Likewise.
6067         * gengtype.c (open_base_files): Likewise.
6068         * genopinit.c (main): Likewise.
6069         * genoutput.c (output_prologue): Likewise.
6070         * genpeep.c (main): Likewise.
6071         * genpreds.c (write_insn_preds_c): Likewise.
6072         * genrecog.c (write_header): Likewise.
6073         * alias.c: Adjust includes.
6074         * asan.c: Likewise.
6075         * attribs.c: Likewise.
6076         * auto-inc-dec.c: Likewise.
6077         * auto-profile.c: Likewise.
6078         * bb-reorder.c: Likewise.
6079         * bt-load.c: Likewise.
6080         * builtins.c: Likewise.
6081         * caller-save.c: Likewise.
6082         * calls.c: Likewise.
6083         * ccmp.c: Likewise.
6084         * cfg.c: Likewise.
6085         * cfganal.c: Likewise.
6086         * cfgbuild.c: Likewise.
6087         * cfgcleanup.c: Likewise.
6088         * cfgexpand.c: Likewise.
6089         * cfghooks.c: Likewise.
6090         * cfgloop.c: Likewise.
6091         * cfgloopanal.c: Likewise.
6092         * cfgloopmanip.c: Likewise.
6093         * cfgrtl.c: Likewise.
6094         * cgraph.c: Likewise.
6095         * cgraphbuild.c: Likewise.
6096         * cgraphclones.c: Likewise.
6097         * cgraphunit.c: Likewise.
6098         * cilk-common.c: Likewise.
6099         * combine-stack-adj.c: Likewise.
6100         * combine.c: Likewise.
6101         * compare-elim.c: Likewise.
6102         * convert.c: Likewise.
6103         * coverage.c: Likewise.
6104         * cppbuiltin.c: Likewise.
6105         * cprop.c: Likewise.
6106         * cse.c: Likewise.
6107         * cselib.c: Likewise.
6108         * data-streamer-in.c: Likewise.
6109         * data-streamer-out.c: Likewise.
6110         * data-streamer.c: Likewise.
6111         * dbxout.c: Likewise.
6112         * dce.c: Likewise.
6113         * ddg.c: Likewise.
6114         * debug.c: Likewise.
6115         * df-core.c: Likewise.
6116         * df-problems.c: Likewise.
6117         * df-scan.c: Likewise.
6118         * dfp.c: Likewise.
6119         * dojump.c: Likewise.
6120         * dominance.c: Likewise.
6121         * domwalk.c: Likewise.
6122         * double-int.c: Likewise.
6123         * dse.c: Likewise.
6124         * dumpfile.c: Likewise.
6125         * dwarf2asm.c: Likewise.
6126         * dwarf2cfi.c: Likewise.
6127         * dwarf2out.c: Likewise.
6128         * emit-rtl.c: Likewise.
6129         * et-forest.c: Likewise.
6130         * except.c: Likewise.
6131         * explow.c: Likewise.
6132         * expmed.c: Likewise.
6133         * expr.c: Likewise.
6134         * final.c: Likewise.
6135         * fixed-value.c: Likewise.
6136         * fold-const.c: Likewise.
6137         * function.c: Likewise.
6138         * fwprop.c: Likewise.
6139         * gcc-plugin.h: Likewise.
6140         * gcse-common.c: Likewise.
6141         * gcse.c: Likewise.
6142         * generic-match-head.c: Likewise.
6143         * ggc-page.c: Likewise.
6144         * gimple-builder.c: Likewise.
6145         * gimple-expr.c: Likewise.
6146         * gimple-fold.c: Likewise.
6147         * gimple-iterator.c: Likewise.
6148         * gimple-low.c: Likewise.
6149         * gimple-match-head.c: Likewise.
6150         * gimple-pretty-print.c: Likewise.
6151         * gimple-ssa-isolate-paths.c: Likewise.
6152         * gimple-ssa-strength-reduction.c: Likewise.
6153         * gimple-streamer-in.c: Likewise.
6154         * gimple-streamer-out.c: Likewise.
6155         * gimple-walk.c: Likewise.
6156         * gimple.c: Likewise.
6157         * gimplify-me.c: Likewise.
6158         * gimplify.c: Likewise.
6159         * godump.c: Likewise.
6160         * graph.c: Likewise.
6161         * graphite-blocking.c: Likewise.
6162         * graphite-dependences.c: Likewise.
6163         * graphite-interchange.c: Likewise.
6164         * graphite-isl-ast-to-gimple.c: Likewise.
6165         * graphite-optimize-isl.c: Likewise.
6166         * graphite-poly.c: Likewise.
6167         * graphite-scop-detection.c: Likewise.
6168         * graphite-sese-to-poly.c: Likewise.
6169         * graphite.c: Likewise.
6170         * haifa-sched.c: Likewise.
6171         * hw-doloop.c: Likewise.
6172         * ifcvt.c: Likewise.
6173         * init-regs.c: Likewise.
6174         * internal-fn.c: Likewise.
6175         * ipa-chkp.c: Likewise.
6176         * ipa-comdats.c: Likewise.
6177         * ipa-cp.c: Likewise.
6178         * ipa-devirt.c: Likewise.
6179         * ipa-icf-gimple.c: Likewise.
6180         * ipa-icf.c: Likewise.
6181         * ipa-inline-analysis.c: Likewise.
6182         * ipa-inline-transform.c: Likewise.
6183         * ipa-inline.c: Likewise.
6184         * ipa-polymorphic-call.c: Likewise.
6185         * ipa-profile.c: Likewise.
6186         * ipa-prop.c: Likewise.
6187         * ipa-pure-const.c: Likewise.
6188         * ipa-ref.c: Likewise.
6189         * ipa-reference.c: Likewise.
6190         * ipa-split.c: Likewise.
6191         * ipa-utils.c: Likewise.
6192         * ipa-visibility.c: Likewise.
6193         * ipa.c: Likewise.
6194         * ira-build.c: Likewise.
6195         * ira-color.c: Likewise.
6196         * ira-conflicts.c: Likewise.
6197         * ira-costs.c: Likewise.
6198         * ira-emit.c: Likewise.
6199         * ira-lives.c: Likewise.
6200         * ira.c: Likewise.
6201         * jump.c: Likewise.
6202         * langhooks.c: Likewise.
6203         * lcm.c: Likewise.
6204         * loop-doloop.c: Likewise.
6205         * loop-init.c: Likewise.
6206         * loop-invariant.c: Likewise.
6207         * loop-iv.c: Likewise.
6208         * loop-unroll.c: Likewise.
6209         * lower-subreg.c: Likewise.
6210         * lra-assigns.c: Likewise.
6211         * lra-coalesce.c: Likewise.
6212         * lra-constraints.c: Likewise.
6213         * lra-eliminations.c: Likewise.
6214         * lra-lives.c: Likewise.
6215         * lra-remat.c: Likewise.
6216         * lra-spills.c: Likewise.
6217         * lra.c: Likewise.
6218         * lto-cgraph.c: Likewise.
6219         * lto-compress.c: Likewise.
6220         * lto-opts.c: Likewise.
6221         * lto-section-in.c: Likewise.
6222         * lto-section-out.c: Likewise.
6223         * lto-streamer-in.c: Likewise.
6224         * lto-streamer-out.c: Likewise.
6225         * lto-streamer.c: Likewise.
6226         * mcf.c: Likewise.
6227         * mode-switching.c: Likewise.
6228         * modulo-sched.c: Likewise.
6229         * omega.c: Likewise.
6230         * omp-low.c: Likewise.
6231         * optabs.c: Likewise.
6232         * opts-global.c: Likewise.
6233         * passes.c: Likewise.
6234         * plugin.c: Likewise.
6235         * postreload-gcse.c: Likewise.
6236         * postreload.c: Likewise.
6237         * predict.c: Likewise.
6238         * print-rtl.c: Likewise.
6239         * print-tree.c: Likewise.
6240         * profile.c: Likewise.
6241         * real.c: Likewise.
6242         * realmpfr.c: Likewise.
6243         * recog.c: Likewise.
6244         * ree.c: Likewise.
6245         * reg-stack.c: Likewise.
6246         * regcprop.c: Likewise.
6247         * reginfo.c: Likewise.
6248         * regrename.c: Likewise.
6249         * regstat.c: Likewise.
6250         * reload.c: Likewise.
6251         * reload1.c: Likewise.
6252         * reorg.c: Likewise.
6253         * resource.c: Likewise.
6254         * rtl-chkp.c: Likewise.
6255         * rtlanal.c: Likewise.
6256         * rtlhooks.c: Likewise.
6257         * sanopt.c: Likewise.
6258         * sched-deps.c: Likewise.
6259         * sched-ebb.c: Likewise.
6260         * sched-rgn.c: Likewise.
6261         * sched-vis.c: Likewise.
6262         * sdbout.c: Likewise.
6263         * sel-sched-dump.c: Likewise.
6264         * sel-sched-ir.c: Likewise.
6265         * sel-sched.c: Likewise.
6266         * sese.c: Likewise.
6267         * shrink-wrap.c: Likewise.
6268         * simplify-rtx.c: Likewise.
6269         * stack-ptr-mod.c: Likewise.
6270         * stmt.c: Likewise.
6271         * stor-layout.c: Likewise.
6272         * store-motion.c: Likewise.
6273         * stringpool.c: Likewise.
6274         * symtab.c: Likewise.
6275         * target-globals.c: Likewise.
6276         * targhooks.c: Likewise.
6277         * toplev.c: Likewise.
6278         * tracer.c: Likewise.
6279         * trans-mem.c: Likewise.
6280         * tree-affine.c: Likewise.
6281         * tree-browser.c: Likewise.
6282         * tree-call-cdce.c: Likewise.
6283         * tree-cfg.c: Likewise.
6284         * tree-cfgcleanup.c: Likewise.
6285         * tree-chkp-opt.c: Likewise.
6286         * tree-chkp.c: Likewise.
6287         * tree-chrec.c: Likewise.
6288         * tree-complex.c: Likewise.
6289         * tree-data-ref.c: Likewise.
6290         * tree-dfa.c: Likewise.
6291         * tree-diagnostic.c: Likewise.
6292         * tree-dump.c: Likewise.
6293         * tree-eh.c: Likewise.
6294         * tree-emutls.c: Likewise.
6295         * tree-if-conv.c: Likewise.
6296         * tree-inline.c: Likewise.
6297         * tree-into-ssa.c: Likewise.
6298         * tree-iterator.c: Likewise.
6299         * tree-loop-distribution.c: Likewise.
6300         * tree-nested.c: Likewise.
6301         * tree-nrv.c: Likewise.
6302         * tree-object-size.c: Likewise.
6303         * tree-outof-ssa.c: Likewise.
6304         * tree-parloops.c: Likewise.
6305         * tree-phinodes.c: Likewise.
6306         * tree-predcom.c: Likewise.
6307         * tree-pretty-print.c: Likewise.
6308         * tree-profile.c: Likewise.
6309         * tree-scalar-evolution.c: Likewise.
6310         * tree-sra.c: Likewise.
6311         * tree-ssa-address.c: Likewise.
6312         * tree-ssa-alias.c: Likewise.
6313         * tree-ssa-ccp.c: Likewise.
6314         * tree-ssa-coalesce.c: Likewise.
6315         * tree-ssa-copy.c: Likewise.
6316         * tree-ssa-copyrename.c: Likewise.
6317         * tree-ssa-dce.c: Likewise.
6318         * tree-ssa-dom.c: Likewise.
6319         * tree-ssa-dse.c: Likewise.
6320         * tree-ssa-forwprop.c: Likewise.
6321         * tree-ssa-ifcombine.c: Likewise.
6322         * tree-ssa-live.c: Likewise.
6323         * tree-ssa-loop-ch.c: Likewise.
6324         * tree-ssa-loop-im.c: Likewise.
6325         * tree-ssa-loop-ivcanon.c: Likewise.
6326         * tree-ssa-loop-ivopts.c: Likewise.
6327         * tree-ssa-loop-manip.c: Likewise.
6328         * tree-ssa-loop-niter.c: Likewise.
6329         * tree-ssa-loop-prefetch.c: Likewise.
6330         * tree-ssa-loop-unswitch.c: Likewise.
6331         * tree-ssa-loop.c: Likewise.
6332         * tree-ssa-math-opts.c: Likewise.
6333         * tree-ssa-operands.c: Likewise.
6334         * tree-ssa-phiopt.c: Likewise.
6335         * tree-ssa-phiprop.c: Likewise.
6336         * tree-ssa-pre.c: Likewise.
6337         * tree-ssa-propagate.c: Likewise.
6338         * tree-ssa-reassoc.c: Likewise.
6339         * tree-ssa-sccvn.c: Likewise.
6340         * tree-ssa-scopedtables.c: Likewise.
6341         * tree-ssa-sink.c: Likewise.
6342         * tree-ssa-strlen.c: Likewise.
6343         * tree-ssa-structalias.c: Likewise.
6344         * tree-ssa-tail-merge.c: Likewise.
6345         * tree-ssa-ter.c: Likewise.
6346         * tree-ssa-threadedge.c: Likewise.
6347         * tree-ssa-threadupdate.c: Likewise.
6348         * tree-ssa-uncprop.c: Likewise.
6349         * tree-ssa-uninit.c: Likewise.
6350         * tree-ssa.c: Likewise.
6351         * tree-ssanames.c: Likewise.
6352         * tree-stdarg.c: Likewise.
6353         * tree-streamer-in.c: Likewise.
6354         * tree-streamer-out.c: Likewise.
6355         * tree-streamer.c: Likewise.
6356         * tree-switch-conversion.c: Likewise.
6357         * tree-tailcall.c: Likewise.
6358         * tree-vect-data-refs.c: Likewise.
6359         * tree-vect-generic.c: Likewise.
6360         * tree-vect-loop-manip.c: Likewise.
6361         * tree-vect-loop.c: Likewise.
6362         * tree-vect-patterns.c: Likewise.
6363         * tree-vect-slp.c: Likewise.
6364         * tree-vect-stmts.c: Likewise.
6365         * tree-vectorizer.c: Likewise.
6366         * tree-vrp.c: Likewise.
6367         * tree.c: Likewise.
6368         * tsan.c: Likewise.
6369         * ubsan.c: Likewise.
6370         * valtrack.c: Likewise.
6371         * value-prof.c: Likewise.
6372         * var-tracking.c: Likewise.
6373         * varasm.c: Likewise.
6374         * varpool.c: Likewise.
6375         * vmsdbgout.c: Likewise.
6376         * vtable-verify.c: Likewise.
6377         * web.c: Likewise.
6378         * wide-int.cc: Likewise.
6379         * xcoffout.c: Likewise.
6380         * config/aarch64/aarch64-builtins.c: Likewise.
6381         * config/aarch64/aarch64.c: Likewise.
6382         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
6383         * config/alpha/alpha.c: Likewise.
6384         * config/arc/arc.c: Likewise.
6385         * config/arm/aarch-common.c: Likewise.
6386         * config/arm/arm-builtins.c: Likewise.
6387         * config/arm/arm-c.c: Likewise.
6388         * config/arm/arm.c: Likewise.
6389         * config/avr/avr-c.c: Likewise.
6390         * config/avr/avr-log.c: Likewise.
6391         * config/avr/avr.c: Likewise.
6392         * config/bfin/bfin.c: Likewise.
6393         * config/c6x/c6x.c: Likewise.
6394         * config/cr16/cr16.c: Likewise.
6395         * config/cris/cris.c: Likewise.
6396         * config/darwin-c.c: Likewise.
6397         * config/darwin.c: Likewise.
6398         * config/epiphany/epiphany.c: Likewise.
6399         * config/epiphany/mode-switch-use.c: Likewise.
6400         * config/epiphany/resolve-sw-modes.c: Likewise.
6401         * config/fr30/fr30.c: Likewise.
6402         * config/frv/frv.c: Likewise.
6403         * config/ft32/ft32.c: Likewise.
6404         * config/h8300/h8300.c: Likewise.
6405         * config/i386/i386-c.c: Likewise.
6406         * config/i386/i386.c: Likewise.
6407         * config/i386/msformat-c.c: Likewise.
6408         * config/i386/winnt-cxx.c: Likewise.
6409         * config/i386/winnt-stubs.c: Likewise.
6410         * config/i386/winnt.c: Likewise.
6411         * config/ia64/ia64-c.c: Likewise.
6412         * config/ia64/ia64.c: Likewise.
6413         * config/iq2000/iq2000.c: Likewise.
6414         * config/lm32/lm32.c: Likewise.
6415         * config/m32c/m32c-pragma.c: Likewise.
6416         * config/m32c/m32c.c: Likewise.
6417         * config/m32r/m32r.c: Likewise.
6418         * config/m68k/m68k.c: Likewise.
6419         * config/mcore/mcore.c: Likewise.
6420         * config/mep/mep-pragma.c: Likewise.
6421         * config/mep/mep.c: Likewise.
6422         * config/microblaze/microblaze-c.c: Likewise.
6423         * config/microblaze/microblaze.c: Likewise.
6424         * config/mips/mips.c: Likewise.
6425         * config/mmix/mmix.c: Likewise.
6426         * config/mn10300/mn10300.c: Likewise.
6427         * config/moxie/moxie.c: Likewise.
6428         * config/msp430/msp430-c.c: Likewise.
6429         * config/msp430/msp430.c: Likewise.
6430         * config/nds32/nds32-cost.c: Likewise.
6431         * config/nds32/nds32-fp-as-gp.c: Likewise.
6432         * config/nds32/nds32-intrinsic.c: Likewise.
6433         * config/nds32/nds32-isr.c: Likewise.
6434         * config/nds32/nds32-md-auxiliary.c: Likewise.
6435         * config/nds32/nds32-memory-manipulation.c: Likewise.
6436         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
6437         * config/nds32/nds32-predicates.c: Likewise.
6438         * config/nds32/nds32.c: Likewise.
6439         * config/nios2/nios2.c: Likewise.
6440         * config/nvptx/nvptx.c: Likewise.
6441         * config/pa/pa.c: Likewise.
6442         * config/pdp11/pdp11.c: Likewise.
6443         * config/rl78/rl78-c.c: Likewise.
6444         * config/rl78/rl78.c: Likewise.
6445         * config/rs6000/rs6000-c.c: Likewise.
6446         * config/rs6000/rs6000.c: Likewise.
6447         * config/rx/rx.c: Likewise.
6448         * config/s390/s390-c.c: Likewise.
6449         * config/s390/s390.c: Likewise.
6450         * config/sh/sh-c.c: Likewise.
6451         * config/sh/sh-mem.cc: Likewise.
6452         * config/sh/sh.c: Likewise.
6453         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
6454         * config/sh/sh_treg_combine.cc: Likewise.
6455         * config/sol2-c.c: Likewise.
6456         * config/sol2-cxx.c: Likewise.
6457         * config/sol2-stubs.c: Likewise.
6458         * config/sol2.c: Likewise.
6459         * config/sparc/sparc-c.c: Likewise.
6460         * config/sparc/sparc.c: Likewise.
6461         * config/spu/spu-c.c: Likewise.
6462         * config/spu/spu.c: Likewise.
6463         * config/stormy16/stormy16.c: Likewise.
6464         * config/tilegx/mul-tables.c: Likewise.
6465         * config/tilegx/tilegx-c.c: Likewise.
6466         * config/tilegx/tilegx.c: Likewise.
6467         * config/tilepro/mul-tables.c: Likewise.
6468         * config/tilepro/tilepro-c.c: Likewise.
6469         * config/tilepro/tilepro.c: Likewise.
6470         * config/v850/v850-c.c: Likewise.
6471         * config/v850/v850.c: Likewise.
6472         * config/vax/vax.c: Likewise.
6473         * config/visium/visium.c: Likewise.
6474         * config/vms/vms-c.c: Likewise.
6475         * config/vms/vms.c: Likewise.
6476         * config/vxworks.c: Likewise.
6477         * config/xtensa/xtensa.c: Likewise.
6479 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
6481         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
6482         Remove operand constraints.  Change operand 2 predicate to
6483         nonmemory operand.  Limit const_int values to mode bitsize.  Only
6484         allow const_int values less than 32 when optimizing for size.
6485         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
6486         Remove operand constraints.
6487         (*bt<mode>): Use SImode for const_int values less than 32.
6488         (regmode): Remove mode attribute.
6490 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
6492         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
6493         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
6494           moxie_legitimate_address_p): New functions.
6495           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
6497 2015-07-07  Tom de Vries  <tom@codesourcery.com>
6499         PR tree-optimization/66642
6500         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
6501         header comment.  Rename split_edge variable to edge_at_split.  Split
6502         exit edge to create new loop exit bb.  Insert loop exit phis in new
6503         loop exit bb.
6505 2015-07-07  Tom de Vries  <tom@codesourcery.com>
6507         * tree-cfg.c (get_virtual_phi): New function.
6508         * tree-cfg.h (get_virtual_phi): Declare.
6509         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
6510         (rewrite_virtuals_into_loop_closed_ssa): New function.
6511         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
6512         Declare.
6513         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
6514         (transform_to_exit_first_loop_alt): Use
6515         rewrite_virtuals_into_loop_closed_ssa.
6517 2015-07-07  Richard Biener  <rguenther@suse.de>
6519         * fold-const.c (fold_binary_loc): Move
6520         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
6521         * match.pd: ... here.
6522         Add (X * C1) % C2 -> 0 simplification pattern derived from
6523         extract_muldiv_1.
6525 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
6527         PR target/66780
6528         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
6529         change for target/65249.
6531 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
6533         * symtab.c (address_matters_1): Fix typo in comment above.
6534         (can_increase_alignment_p): Likewise.
6536 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
6538         * function.c (free_after_compilation): Clear PROP_cfg in
6539         f->curr_properties.
6541 2015-07-07  Richard Biener  <rguenther@suse.de>
6543         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
6544         add which use to.
6545         (add_control_edge): Remove excessive vertical space in dumping.
6546         (process_ssa_edge_worklist): Simulate at most one statement and
6547         return whether we did.  Do not simulate PHIs if they are in a
6548         BB not yet simulated.
6549         (ssa_propagate): Adjust to always drain the BB worklist whenever
6550         a BB is available there, likewise the VARYING edges list before
6551         the interesting edge list.
6553 2015-07-07  Christian Bruel  <christian.bruel@st.com>
6555         PR target/52144
6556         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
6558 2015-07-07  Richard Biener  <rguenther@suse.de>
6560         PR middle-end/66739
6561         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
6562         A - B.
6564 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
6566         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
6567         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
6568         Copy operand 0 to a temporary if !ext_register_operand.  Remove
6569         ancient extract_bit_field workaround.
6570         (insv<mode>_1): Rename from mov<mode>_insv_1.
6571         (*insvqi): Rename from *movqi_insv_2.
6572         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
6573         for renamed insvsi_1.
6574         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
6576 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
6578         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
6579         call to nvptx_reorg_subreg.
6581 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
6583         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
6584         * graphite-dependencies.c, graphite-interchange.c,
6585         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
6586         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
6587         Likewise.
6589 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
6591         * match.pd: Remove element_mode inside HONOR_*.
6592         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
6593         (~X | X -> -1, ~X ^ X -> -1): Merge.
6594         * tree.c (build_each_one_cst): New function.
6595         * tree.h (build_each_one_cst): Likewise.
6597 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
6599         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
6600         PROCESSOR_IAMCU.
6602 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
6604         * config.gcc <mips*-*-*>: Add fused-madd.opt.
6605         * config/mips/mips.opt (mfused-madd): Remove.
6606         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
6607         * config/mips/mips.h (TARGET_MIPS8000): New.
6608         (ISA_HAS_FP_MADD4_MSUB4): Remove.
6609         (ISA_HAS_FP_MADDF_MSUBF): Remove.
6610         (ISA_HAS_FP_MADD3_MSUB3): Remove.
6611         (ISA_HAS_NMADD4_NMSUB4): Remove.
6612         (ISA_HAS_NMADD3_NMSUB3): Remove.
6613         (ISA_HAS_FUSED_MADD4): New.
6614         (ISA_HAS_UNFUSED_MADD4): New.
6615         (ISA_HAS_FUSED_MADDF): New.
6616         (ISA_HAS_FUSED_MADD3): New.
6617         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
6618         (*fma<mode>4_madd3) New.
6619         (*fma<mode>4_madd4) New.
6620         (*fma<mode>4_maddf) New.
6621         (fms<mode>4) New.
6622         (*fms<mode>4_msub3) New.
6623         (*fms<mode>4_msub4) New.
6624         (fnma<mode>4) New.
6625         (*fnma<mode>4_nmadd3) New.
6626         (*fnma<mode>4_nmadd4) New.
6627         (fnms<mode>4) New.
6628         (*fnms<mode>4_nmsub3) New.
6629         (*fnms<mode>4_nmsub4) New.
6630         (*madd4<mode>) Modify to be unfused only.
6631         (*msub4<mode>) Modify to be unfused only.
6632         (*nmadd4<mode>) Modify to be unfused only.
6633         (*nmsub4<mode>) Modify to be unfused only.
6634         (*madd3<mode>) Remove.
6635         (*msub3<mode>) Remove.
6636         (*nmadd3<mode>) Remove.
6637         (*nmsub3<mode>) Remove.
6638         (*nmadd3<mode>_fastmath) Remove.
6639         (*nmsub3<mode>_fastmath) Remove.
6640         (*nmadd4<mode>_fastmath) Update condition.
6641         (*nmsub4<mode>_fastmath) Update condition.
6643 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
6645         PR target/65956
6646         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
6647         alignment attribute, exploring one level down for records and arrays.
6649 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
6651         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
6652         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
6653         Copy operand 1 to a temporary if !ext_register_operand.  Remove
6654         ancient extract_bit_field workaround.
6655         (*extv<mode>): Rename from *mov<mode>_extv_1.
6656         (*extvqi): Rename from *movqi_extv_1.
6657         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
6658         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
6659         to a temporary if !ext_register_operand.  Remove ancient
6660         extract_bit_field workaround.
6661         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
6662         (*extzvqi): Rename from *movqi_extzv_2.
6663         (*testqi_ext_3): Remove modes from const_int_operand predicated
6664         operands.  Add "n" constraint.
6665         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
6666         operand.  Add "J" constraint.
6667         (*btsq, *btrq, *btcq peephole2s): Remove mode from
6668         const_0_to_63 predicated operand.
6669         (regmode): New insn attribute.
6670         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
6671         to nonmemory_operand.  Use regmode insn attribute.
6672         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
6673         (*jcc_bt<mode>_mask): Remove mode from operand 3.
6674         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
6675         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
6676         operands.  Use "N" constraint instead of "n".
6678 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
6680         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
6682 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
6684         PR target/66749
6685         * config/i386/i386.c (iamcu_cost): New.
6686         (m_IAMCU): Likewise.
6687         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
6688         (processor_target_table): Add an entry for "iamcu".
6689         (processor_alias_table): Likewise.
6690         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
6691         (ix86_adjust_cost): Likewise.
6692         (ia32_multipass_dfa_lookahead): Likewise.
6693         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
6694         * config/i386/x86-tune.def: Updated for m_IAMCU.
6696 2015-07-06  Richard Biener  <rguenther@suse.de>
6698         PR tree-optimization/66772
6699         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
6700         values are available in the PHI node BB when there are
6701         still unexecutable edges.
6703 2015-07-06  Richard Biener  <rguenther@suse.de>
6705         PR tree-optimization/66767
6706         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
6707         Make sure to build the alignment test on a SSA name without
6708         final alignment info valid only if the alignment test
6709         evaluates to true.
6711 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
6713         PR target/66620
6714         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
6715         loop start when inserting LSETUP.
6717 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
6719         PR target/53383
6720         * config/i386/i386.c (ix86_option_override_internal): Allow
6721         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
6723 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6725         * read-md.c (decimal_string): Rename to ...
6726         (md_decimal_string): ... this.
6727         (handle_enum): Reflect this.
6729 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
6731         PR target/66731
6732         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
6734 2015-07-06  Richard Biener  <rguenther@suse.de>
6736         PR middle-end/66759
6737         * match.pd: Add missing constraint of y to REAL_CST in
6738         REAL_CST - x CMP y to y - CST CMP x simplification.
6740 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
6742         PR tree-optimization/66757
6743         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
6745 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
6746             Sandra Loosemore <sandra@codesourcery.com>
6748         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
6749         Delete extern declaration.
6750         (gprel_constant_p): Add extern declaration.
6751         * config/nios2/constraints.md ("S"): Use gprel_constant_p
6752         instead of nios2_symbol_ref_in_small_data_p.
6753         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
6754         (nios2_symbol_ref_in_small_data_p): Make static.
6755         (gprel_constant_p): Make non-static.
6757 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
6759         * doc/fragments.texi (Target Fragment): Convert debian.org
6760         link to use https.
6761         * doc/install.texi (Configuration): Ditto.
6763 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
6765         PR tree-optimization/66718
6766         * tree-vect-stmts.c (vectorizable_call): Replace uses of
6767         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
6769         PR tree-optimization/66718
6770         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
6771         vectorizable_load, vectorizable_condition): Move vectype,
6772         nunits, ncopies computation after checking what kind of statement
6773         stmt is.
6775 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
6777         * target-insns.def (extv, extzv, insv): New targetm instruction
6778         patterns.
6779         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
6780         interface.
6781         * recog.c (simplify_while_replacing): Likewise.
6783 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
6785         * target-insns.def (doloop_begin, doloop_end): New targetm
6786         instruction patterns.
6787         * loop-init.c: Include target.h.
6788         (pass_loop2::gate): Use the new targetm patterns instead of
6789         HAVE_*/gen_* interface.
6790         (pass_rtl_doloop::gate): Likewise.
6791         (pass_rtl_doloop::execute): Remove preprocessor condition.
6792         * hw-doloop.c: Build unconditionally.
6793         * loop-doloop.c: Likewise.
6794         (doloop_optimize): Use the new targetm patterns instead of
6795         HAVE_*/gen_* interface.
6796         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
6797         * modulo-sched.c (doloop_register_get): Likewise.
6799 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
6801         * target-insns.def (clear_cache): New targetm instruction pattern.
6802         * builtins.c (expand_builtin___clear_cache): Use it instead of
6803         HAVE_*/gen_* interface.
6805 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
6807         * target-insns.def (allocate_stack, check_stack, probe_stack)
6808         (probe_stack_address, split_stack_prologue, split_stack_space_check):
6809         New targetm instruction patterns.
6810         * explow.c (allocate_dynamic_stack_space): Use them instead of
6811         HAVE_*/gen_* interface.
6812         (emit_stack_probe): Likewise.
6813         (probe_stack_range): Likewise.
6814         * function.c (thread_prologue_and_epilogue_insns): Likewise.
6816 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
6818         * target-insns.def (stack_protect_set, stack_protect_test): New
6819         targetm instruction patterns.
6820         * cfgexpand.c (stack_protect_prologue): Use them instead of
6821         HAVE_*/gen_* interface.
6822         * function.c (stack_protect_epilogue): Likewise.
6824 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
6826         * expr.h (gen_move_insn_uncast): Delete.
6827         * expr.c (gen_move_insn_uncast): Delete.
6829 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
6831         * target-insns.def (restore_stack_block, restore_stack_function)
6832         (restore_stack_nonlocal, save_stack_block, save_stack_function)
6833         (save_stack_nonlocal): New targetm instruction patterns.
6834         * builtins.c (expand_builtin_apply): Use them instead of
6835         HAVE_*/gen_* interface.
6836         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
6838 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
6840         * target-insns.def (trap): New targetm instruction pattern.
6841         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
6842         interface.
6843         * explow.c (allocate_dynamic_stack_space): Likewise.
6844         * ifcvt.c (find_if_header): Likewise.
6846 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
6848         * target-insns.def (prefetch): New targetm instruction pattern.
6849         * tree-ssa-loop-prefetch.c: Include targeth.
6850         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
6851         of HAVE_*/gen_* interface.
6852         * builtins.c (expand_builtin_prefetch): Likewise.
6853         * toplev.c (process_options): Likewise.
6855 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
6857         * target-insns.def (untyped_call, untyped_return): New targetm
6858         instruction patterns.
6859         * builtins.c (expand_builtin_apply): Use them instead of
6860         HAVE_*/gen_* interface.
6861         (result_vector): Define unconditionally.
6863 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
6865         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
6866         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
6867         (nonlocal_goto_receiver): New targetm instruction patterns.
6868         * builtins.c (expand_builtin_setjmp_setup): Use them instead
6869         of HAVE_*/gen_* interface.
6870         (expand_builtin_setjmp_receiver): Likewise.
6871         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
6872         * except.c (expand_dw2_landing_pad_for_region): Likewise.
6874 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
6876         * target.def: Add code_for_* hooks.
6877         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
6878         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
6879         * target-insns.def (casesi, tablejump): New targetm instruction
6880         patterns.
6881         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
6882         (do_tablejump): Likewise.
6883         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
6884         (expand_sjlj_dispatch_table): Likewise.
6885         * targhooks.c (default_case_values_threshold): Likewise.
6887 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
6889         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
6890         Use rtx_insn * instead of rtx.
6891         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
6892         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
6893         (nios2_call_tls_get_addr): Likewise.
6894         (nios2_emit_expensive_div): Likewise.
6895         (nios2_emit_move_sequence): Change return type to bool.
6896         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
6897         Change return type to bool.
6899 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6901         PR target/66747
6902         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
6904 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
6906         PR target/66114
6907         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
6908         of register_operand.  Remove constraint.
6910 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
6912         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
6913         the first argument.
6915 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
6917         * attribs.c (decl_attributes): Guard inform with the return value
6918         of the preceding warning.
6920 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
6922         * doc/invoke.texi (moverride): Move to correct section.
6924 2015-07-03  Richard Biener  <rguenther@suse.de>
6926         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
6927         Copy from tree.c
6928         (dt_operand::gen_gimple_expr): After valueizing operands
6929         re-canonicalize operand order for commutative tree codes.
6931 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
6933         PR target/66746.
6934         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
6935         is defined.
6936         (__crc32w): Likewise.
6937         (__crc32d): Likewise.
6938         (__rdpmc): Likewise.
6939         (__rdtscp): Likewise.
6940         (_rdpmc): Likewise.
6941         (_rdtscp): Likewise.
6942         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
6943         is defined.
6945 2015-07-03  Richard Biener  <rguenther@suse.de>
6947         * fold-const.c (fold_mathfn_compare): Remove.
6948         (fold_inf_compare): Likewise.
6949         (fold_comparison): Move floating point comparison simplifications...
6950         * match.pd: ... to patterns here.  Introduce simple_comparisons
6951         operator list and use it for patterns formerly in fold_comparison.
6953 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
6955         PR tree-optimization/66119
6956         * toplev.c (process_options): Don't set up default values for
6957         the sra_max_scalarization_size_{speed,size} parameters.
6958         * tree-sra (analyze_all_variable_accesses): If no values
6959         have been set for the sra_max_scalarization_size_{speed,size}
6960         parameters, call get_move_ratio to get target defaults.
6962 2015-07-03  Richard Biener  <rguenther@suse.de>
6964         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
6965         * match.pd: ... here.
6967 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
6969         PR target/37072
6970         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
6971         is not actually the default on FreeBSD.
6973 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6975         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
6976         definition.
6977         (CMPGE_8HI): Likewise.
6978         (CMPGE_4SI): Likewise.
6979         (CMPGE_2DI): Likewise.
6980         (CMPGE_U16QI): Likewise.
6981         (CMPGE_U8HI): Likewise.
6982         (CMPGE_U4SI): Likewise.
6983         (CMPGE_U2DI): Likewise.
6984         (CMPLE_16QI): Likewise.
6985         (CMPLE_8HI): Likewise.
6986         (CMPLE_4SI): Likewise.
6987         (CMPLE_2DI): Likewise.
6988         (CMPLE_U16QI): Likewise.
6989         (CMPLE_U8HI): Likewise.
6990         (CMPLE_U4SI): Likewise.
6991         (CMPLE_U2DI): Likewise.
6992         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6993         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
6994         ALTIVEC_BUILTIN_VEC_CMPLE.
6995         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
6996         floating-point vector modes.
6997         (vector_nlt<mode>): New define_expand.
6998         (vector_nltu<mode>): Likewise.
6999         (vector_ngt<mode>): Likewise.
7000         (vector_ngtu<mode>): Likewise.
7002 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
7004         PR rtl-optimization/66706
7005         * combine.c (make_compound_operation): If an AND of SUBREG of
7006         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
7008 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
7010         * tree-pass.h (make_pass_ch_vect): New.
7011         * passes.def: Add pass_ch_vect just before pass_if_conversion.
7013         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
7014         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
7015         make_pass_ch_vect): New.
7016         (pass_ch): Extend ch_base.
7018         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
7019         (ch_base::copy_headers): ...here.
7021 2015-07-02  Richard Biener  <rguenther@suse.de>
7023         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
7024         * fold-const.c (get_pointer_modulus_and_residue): Remove.
7025         (fold_binary_loc): Implement (T)ptr & CST in terms of
7026         get_pointer_alignment_1.
7027         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
7028         Make sure to build the alignment test on a SSA name without
7029         final alignment info valid only after the prologue.
7031 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
7033         * config/cris/cris.md ("epilogue"): Remove condition.
7034         ("prologue"): Ditto.
7036 2015-07-02  Richard Biener  <rguenther@suse.de>
7038         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
7039         parameter to record a condition that is false.
7040         (record_conditions): When recording an extra NE_EXPR that is
7041         true also record a EQ_EXPR that is false.
7043 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
7045         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
7046         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
7047         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
7048         (set_iv, find_interesting_uses_address, add_candidate_1): New
7049         argument to alloc_iv.
7050         (find_interesting_uses_op, find_interesting_uses_cond): Don't
7051         duplicate struct iv.
7052         (free_loop_data): Don't free struct iv explicitly.
7053         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
7055 2015-07-01  DJ Delorie  <dj@redhat.com>
7057         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
7058         (LIB_SPEC): Add.
7059         (SUPPORTS_DISCRIMINATOR): Define.
7061 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
7063         PR bootstrap/66685
7064         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
7065         there are no CALLs in the same pattern.
7067 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7069         PR rtl-optimization/61047
7070         * rtlanal.c (get_initial_register_offset): New function.
7071         (rtx_addr_can_trap_p_1): Check offsets of stack references.
7073 2015-07-01  Richard Biener  <rguenther@suse.de>
7075         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
7076         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
7077         ~X CMP C -> X CMP' ~C to ...
7078         * match.pd: ... patterns here.
7080 2015-07-01  Nick Clifton  <nickc@redhat.com>
7082         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
7083         a 16-bit value into a 20-bit memory slot.
7085 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
7087         * doc/sourcebuild.texi (AArch64-specific attributes): Document
7088         "aarch64_tiny", "aarch64_small", "aarch64_large",
7089         "aarch64_little_endian", "aarch64_big_endian".
7091 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
7093         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
7094         Document "aarch64_small_fpic".
7096 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
7098         * configure.ac: Add check for aarch64 assembler -fpic relocation
7099         modifier support.
7100         * configure: Regenerate.
7101         * config.in: Regenerate.
7102         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
7103         to -fPIC if not support of -fpic relocation modifier in assembler.
7105 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
7107         PR bootstrap/66685
7108         * rtl.c (classify_insn): Handle returns in PARALLELs.
7110 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
7112         PR middle-end/66633
7113         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
7114         to true if the function is nested and if not optimizing.
7115         (convert_local_omp_clauses): Initialize need_frame to true if the
7116         function contains nested functions and if not optimizing.
7118 2015-07-01  Richard Biener  <rguenther@suse.de>
7120         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
7121         (X & Y) ^ Y -> ~X & Y transforms to ...
7122         * match.pd: ... here.
7124 2015-07-01  Richard Biener <rguenther@suse.de>
7126         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
7127         of converts to avoid uninteresting noise from the conversion
7128         simplifying patterns.
7130 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
7132         * config/c6x/c6x.c (try_rename_operands): Do not depend on
7133         gcc_assert evaluating its argument for side-effect.
7135 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
7137         PR target/64833
7138         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
7139         flag_pic is set.
7141 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
7143         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
7144         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
7145         (hash_scc): Add this_ref_p and ref_p parameters and pass them
7146         to the inner DFS walk.
7148 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
7150         * target-insns.def (jump): New targetm instruction pattern.
7151         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
7152         instead of gen_jump.
7153         (fix_up_crossing_landing_pad): Likewise.
7154         (add_labels_and_missing_jumps): Likewise.
7155         (fix_crossing_conditional_branches): Likewise.
7156         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
7157         (force_nonfallthru_and_redirect): Likewise.
7158         * cse.c (cse_insn): Likewise.
7159         * expmed.c (expand_divmod): Likewise.
7160         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
7161         * haifa-sched.c (init_before_recovery): Likewise.
7162         (sched_create_recovery_edges): Likewise.
7163         * ifcvt.c (find_cond_trap): Likewise.
7164         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
7165         (expand_float, expand_fix): Likewise.
7166         * stmt.c (emit_jump): Likewise.
7168 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
7170         * defaults.h (HAVE_load_multiple, gen_load_multiple)
7171         (HAVE_store_multiple, gen_store_multiple): Delete.
7172         * target-insns.def (load_multiple, store_multiple): New targetm
7173         instruction patterns.
7174         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
7175         of HAVE_*/gen_* interface.
7177 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
7179         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
7180         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
7181         (gen_mem_signal_fence): Delete.
7182         * target-insns.def (mem_signal_fence, mem_thread_fence)
7183         (memory_barrier): New targetm instruction patterns.
7184         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
7185         interface.
7186         (expand_mem_signal_fence): Likewise.
7188 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
7190         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
7191         * target-insns.def (epilogue, prologue, sibcall_prologue): New
7192         targetm instruction patterns.
7193         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
7194         interface.
7195         * calls.c (expand_call): Likewise.
7196         * cfgrtl.c (cfg_layout_finalize): Likewise.
7197         * df-scan.c (df_get_entry_block_def_set): Likewise.
7198         (df_get_exit_block_use_set): Likewise.
7199         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
7200         * final.c (final_start_function): Likewise.
7201         * function.c (thread_prologue_and_epilogue_insns): Likewise.
7202         (reposition_prologue_and_epilogue_notes): Likewise.
7203         * reorg.c (find_end_label): Likewise.
7204         * toplev.c (process_options): Likewise.
7206 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
7208         * typed-splay-tree.h: New file.
7210 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
7212         PR debug/66691
7213         * lra-int.h (lra_substitute_pseudo): Add a parameter.
7214         (lra_substitute_pseudo_within_insn): Ditto.
7215         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
7216         of constant.
7217         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
7218         to lra_substitute_pseudo.
7219         * lra-lives.c (process_bb_lives): Add an argument to
7220         lra_substitute_pseudo_within_insn call.
7221         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
7222         argument to lra_substitute_pseudo and
7223         lra_substitute_pseudo_within_insn calls.
7224         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
7226 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
7228         * configure: Regenerated.
7230 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
7232         * config.gcc: Support i[34567]86-*-elfiamcu target.
7233         * config/i386/iamcu.h: New.
7234         * config/i386/i386.opt: Add -miamcu.
7235         * doc/invoke.texi: Document -miamcu.
7236         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
7237         off x87/MMX/SSE/AVX codegen for -miamcu.
7238         * config/i386/i386-c.c (ix86_target_macros_internal): Define
7239         __iamcu/__iamcu__ for -miamcu.
7240         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
7241         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
7242         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
7243         * config/i386/i386.c (ix86_option_override_internal): Ignore and
7244         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
7245         MCU by default.  Default long double to 64-bit for Intel MCU.
7246         Turn on -freg-struct-return for Intel MCU.  Issue an error when
7247         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
7248         AVX is turned on.
7249         (function_arg_advance_32): Pass value whose size is no larger
7250         than 8 bytes in registers for Intel MCU.
7251         (function_arg_32): Likewise.
7252         (ix86_return_in_memory): Return value whose size is no larger
7253         than 8 bytes in registers for Intel MCU.
7254         (iamcu_alignment): New function.
7255         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
7256         true.
7257         (ix86_local_alignment): Don't increase alignment for Intel MCU.
7258         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
7259         true.
7261 2015-06-30  Marek Polacek  <polacek@redhat.com>
7263         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
7264         both operands of the resulting expression.
7266         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
7267         the final expression with the operand's type and then convert
7268         it to the type of the expression.
7270 2015-06-30  Richard Biener  <rguenther@suse.de>
7272         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
7273         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
7274         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
7275         * match.pd: ... to patterns here.
7277 2015-06-30  Richard Biener  <rguenther@suse.de>
7279         PR tree-optimization/66704
7280         * tree-vect-data-refs.c (vect_setup_realignment): Use
7281         make_ssa_name for non-SSA name source.
7283 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
7285         PR middle-end/66702
7286         * omp-low.c (simd_clone_adjust): Handle addressable linear
7287         or uniform parameters or non-gimple type uniform parameters.
7289 2015-06-30  Richard Biener  <rguenther@suse.de>
7291         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
7292         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
7293         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
7294         * match.pd: ... here.
7295         Add a few cases of A - B -> A + (-B) when B "easily" negates.
7296         Move (x & y) | x -> x and friends before
7297         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
7299 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
7301         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
7302         -mfix-ut699 is not specified.
7303         (leon3_load): Rename into...
7304         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
7305         is specified.
7307 2015-06-30  Marek Polacek  <polacek@redhat.com>
7309         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
7310         * match.pd: ... here.
7312 2015-06-30  Richard Biener  <rguenther@suse.de>
7314         * target-insns.def (canonicalize_funcptr_for_compare): Add.
7315         * fold-const.c (build_range_check): Replace uses of
7316         HAVE_canonicalize_funcptr_for_compare.
7317         (fold_widened_comparison): Likewise.
7318         (fold_sign_changed_comparison): Likewise.
7319         * dojump.c: Include "target.h".
7320         (do_compare_and_jump): Replace uses of
7321         HAVE_canonicalize_funcptr_for_compare and
7322         gen_canonicalize_funcptr_for_compare.
7323         * expr.c (do_store_flag): Likewise.
7325 2015-06-30  Tom de Vries  <tom@codesourcery.com>
7327         PR tree-optimization/66652
7328         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
7329         max_loop_iterations to determine if nit + 1 overflows.
7331 2015-06-30  Richard Biener  <rguenther@suse.de>
7333         * tree-vrp.c (register_edge_assert_for_2): Also register
7334         asserts for dominating conversion results.
7336 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
7338         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
7339         field in struct iv.
7341 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
7343         PR target/66509
7344         * configure.ac: Fix filds and fildq test for 64-bit.
7345         * configure: Regenerated.
7347 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
7349         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
7350         (nvptx_reorg): Here.  Keep the non-subreg pieces.
7352 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
7354         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
7355         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
7357 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
7359         * config/i386/i386.md (*jcc_1): Use %! in asm template.
7360         Set attribute "length_nobnd" instead of "length".
7361         (*jcc_2): Ditto.
7362         (jump): Ditto.
7363         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
7365 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
7367         * config/nios2/nios2.c (nios2_delegitimize_address): Make
7368         assert less restrictive.
7370 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7372         PR fortran/66605
7373         * cgraphunit.c (cgraph_node::finalize_function): Do not call
7374         do_warn_unused_parameter.
7375         * function.c (do_warn_unused_parameter): Move from here.
7376         * function.h (do_warn_unused_parameter): Do not declare.
7378 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
7380         PR target/65697
7381         * gcc.target/arm/armv-sync-comp-swap.c: New.
7382         * gcc.target/arm/armv-sync-op-acquire.c: New.
7383         * gcc.target/arm/armv-sync-op-full.c: New.
7384         * gcc.target/arm/armv-sync-op-release.c: New.
7386 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
7388         PR target/65697
7389         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
7390         initial acquire barrier with final barrier.
7392 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
7394         PR target/65697
7395         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
7396         initial acquire barrier with final barrier.
7398 2015-06-29  Richard Henderson  <rth@redhat.com>
7400         * config/i386/constraints.md (Bf): New constraint.
7401         * config/i386/i386-c.c (ix86_target_macros): Define
7402         __GCC_ASM_FLAG_OUTPUTS__.
7403         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
7404         as flags outputs.
7405         * doc/extend.texi (FlagOutputOperands): Document them.
7407 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
7409         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
7410         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
7411         unspec name.
7412         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
7413         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
7414         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
7415         (aarch64_symbol_context): Ditto.
7416         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
7417         and use new pattern name.
7418         (aarch64_expand_mov_immediate): Ditto.
7419         (aarch64_print_operand): Ditto.
7420         (aarch64_classify_tls_symbol): Ditto.
7422 2015-06-29  Marek Polacek  <polacek@redhat.com>
7423             Marc Glisse  <marc.glisse@inria.fr>
7425         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
7426         * match.pd: ... pattern here.
7428 2015-06-29  Tom de Vries  <tom@codesourcery.com>
7430         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
7431         function structure.
7433 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
7435         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
7436         feature description, split out the native option, add a link to
7437         the feature documentation, rearrange and slightly rewrite text.
7438         (Aarch64 options, -mcpu): Likewise.
7439         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
7440         +rdma implies Adv. SIMD.
7442 2015-06-29  Marek Polacek  <polacek@redhat.com>
7444         PR c/66322
7445         * function.c (stack_protect_epilogue): Remove a cast to int.
7446         * doc/invoke.texi: Update -Wswitch-bool description.
7448 2015-06-29  Richard Biener  <rguenther@suse.de>
7450         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
7451         * fold-const.c (fold_binary_loc): Move &A - &B simplification
7452         via ptr_difference_const ...
7453         * match.pd: ... here.
7454         When matching (X ^ Y) == Y also match with swapped operands.
7456 2015-06-29  Richard Biener  <rguenther@suse.de>
7458         * lto-streamer.h (LTO_major_version): Bump to 5.
7460 2015-06-29  Richard Biener  <rguenther@suse.de>
7462         PR tree-optimization/66677
7463         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
7464         STMT_VINFO_VEC_STMT clobbering less strict.
7466 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
7468         PR middle-end/64130
7469         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
7470         division, compute max and min when value ranges for dividend and
7471         divisor are available.
7473 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
7474             Sandra Loosemore <sandra@codesourcery.com>
7476         * regrename.h (regrename_do_replace): Change to return bool.
7477         * regrename.c (rename_chains): Check return value of
7478         regname_do_replace.
7479         (regrename_do_replace): Re-validate the modified insns and
7480         return bool status.
7481         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
7482         Update to match rename_chains changes.
7483         * config/c6x/c6x.c (try_rename_operands): Assert that
7484         regrename_do_replace returns true.
7486 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
7488         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
7489         operand 2 here.  Use copy_addr_to_reg to copy non-index
7490         register operand 2 to a temporary.
7491         (<mode>_stx): Ditto for operand 1.
7492         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
7493         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
7494         (ix86_store_bounds): Ditto.
7496 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
7498         * print-tree.c (print_node) [TREE_VEC]: Print its length.
7500 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
7502         * gimple.c (gimple_call_set_fndecl): Remove.
7503         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
7504         build1_loc directly instead of build_fold_addr_expr_loc.
7506 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
7508         * hash-map.h (hash_map::traverse): Use the definition of the
7509         Key typedef rather than the typedef itself.
7511 2015-06-26  Martin Jambor  <mjambor@suse.cz>
7513         PR debug/66301
7514         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
7515         NULL instead of calling dump_enabled_p.
7517 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
7519         * config/aarch64/aarch64.opt: (override): New.
7520         * doc/invoke.texi (override): Document.
7521         * config/aarch64/aarch64.c (aarch64_flag_desc): New
7522         (aarch64_fusible_pairs): Likewise.
7523         (aarch64_tuning_flags): Likewise.
7524         (aarch64_tuning_override_function): Likewise.
7525         (aarch64_tuning_override_functions): Likewise.
7526         (aarch64_parse_one_option_token): Likewise.
7527         (aarch64_parse_boolean_options): Likewise.
7528         (aarch64_parse_fuse_string): Likewise.
7529         (aarch64_parse_tune_string): Likewise.
7530         (aarch64_parse_one_override_token): Likewise.
7531         (aarch64_parse_override_string): Likewise.
7532         (aarch64_override_options): Parse the -override string if it
7533         is present.
7535 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
7537         * config/aarch64/aarch64-protos.h (tune_params): Remove
7538         const from members.
7539         (aarch64_tune_params): Remove const, change to no longer be
7540         a pointer.
7541         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
7542         change to no longer be a pointer, initialize to generic_tunings.
7543         (aarch64_min_divisions_for_recip_mul): Change dereference of
7544         aarch64_tune_params to member access.
7545         (aarch64_reassociation_width): Likewise.
7546         (aarch64_rtx_mult_cost): Likewise.
7547         (aarch64_address_cost): Likewise.
7548         (aarch64_branch_cost): Likewise.
7549         (aarch64_rtx_costs): Likewise.
7550         (aarch64_register_move_cost): Likewise.
7551         (aarch64_memory_move_cost): Likewise.
7552         (aarch64_sched_issue_rate): Likewise.
7553         (aarch64_builtin_vectorization_cost): Likewise.
7554         (aarch64_override_options): Take a copy of the selected tuning
7555         struct in to aarch64_tune_params, rather than just setting
7556         a pointer, change dereferences of aarch64_tune_params to member
7557         accesses.
7558         (aarch64_override_options_after_change): Change dereferences of
7559         aarch64_tune_params to member access.
7560         (aarch64_macro_fusion_p): Likewise.
7561         (aarch_macro_fusion_pair_p): Likewise.
7562         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
7564 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
7566         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
7567         (aarch64_tune_flags): Likewise.
7568         (AARCH64_TUNE_FMA_STEERING): Likewise.
7569         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
7570         to AARCH64_FL_USE_FMA_STEERING_PASS.
7571         (cortex-a57.cortex-a53): Likewise.
7572         (cortex-a72): Use cortexa72_tunings.
7573         (cortex-a72.cortex-a53): Likewise.
7574         (exynos-m1): Likewise.
7575         * config/aarch64/aarch64-protos.h (tune_params): Add
7576         a field: extra_tuning_flags.
7577         * config/aarch64/aarch64-tuning-flags.def: New.
7578         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
7579         (aarch64_extra_tuning_flags): Likewise.
7580         (aarch64_tune_params): Declare here.
7581         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
7582         (cortexa53_tunings): Likewise.
7583         (cortexa57_tunings): Likewise.
7584         (thunderx_tunings): Likewise.
7585         (xgene1_tunings): Likewise.
7586         (cortexa72_tunings): New.
7587         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
7588          (gate): Check against aarch64_tune_params.
7589         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
7590         aarch64-protos.h.
7592 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
7594         * config/aarch64/aarch64-fusion-pairs.def: New.
7595         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
7596         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
7597         aarch64_fusion_pairs.
7598         (AARCH64_FUSE_MOV_MOVK): Likewise.
7599         (AARCH64_FUSE_ADRP_ADD): Likewise.
7600         (AARCH64_FUSE_MOVK_MOVK): Likewise.
7601         (AARCH64_FUSE_ADRP_LDR): Likewise.
7602         (AARCH64_FUSE_CMP_BRANCH): Likewise.
7604 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
7606         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
7607         SYMBOL_SMALL_GOT_28K.
7608         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
7609         relocation modifiers.
7610         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
7611         (ldr_got_small_28k_<mode>): New.
7612         (ldr_got_small_28k_sidi): New.
7613         * config/aarch64/iterators.md (got_modifier): New mode iterator.
7614         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
7615         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
7616         SYMBOL_SMALL_GOT_28K.
7617         (aarch64_rtx_costs): Add costs for new instruction sequences.
7618         (initialize_aarch64_code_model): Initialize new model.
7619         (aarch64_classify_symbol): Recognize new model and new symbol classification.
7620         (aarch64_asm_preferred_eh_data_format): Support new model.
7621         (aarch64_load_symref_appropriately): Generate new instruction
7622         sequences for -fpic.
7623         (TARGET_USE_PSEUDO_PIC_REG): New definition.
7624         (aarch64_use_pseudo_pic_reg): New function.
7626 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
7628         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
7629         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
7630         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
7631         (aarch64_expand_mov_immediate): Ditto.
7632         (aarch64_print_operand): Ditto.
7633         (aarch64_classify_symbol): Ditto.
7635 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
7637         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
7639 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
7641         PR bootstrap/66638
7642         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
7643         assertion failed.  Remove assertion itself.
7645 2015-06-26  Richard Biener  <rguenther@suse.de>
7647         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
7648         and -A CMP CST -> A CMP -CST which is redundant with a pattern
7649         in match.pd.
7650         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
7651         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
7652         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
7653         * match.pd: ... patterns here.
7655 2015-06-26  Marek Polacek  <polacek@redhat.com>
7657         * match.pd ((x | y) & ~(x & y) -> x ^ y,
7658         (x | y) & (~x ^ y) -> x & y): New patterns.
7660 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
7662         * rtl.h (emit): Add an optional boolean parameter to control
7663         whether barriers are emitted.
7664         * emit-rtl.c (emit): Likewise.
7665         * gensupport.c (get_emit_function): Return null rather than "emit".
7666         * genemit.c (gen_emit_seq): Handle the null return value.
7667         Don't emit barriers after the final instruction in the sequence.
7668         * gentarget-def.c (main): Don't emit barriers after the instruction.
7670 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7672         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
7673         TARGET_UNIFIED_ASM.
7675 2015-06-26  Richard Biener  <rguenther@suse.de>
7677         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
7679 2015-06-26  Richard Biener  <rguenther@suse.de>
7681         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
7682         irrespective on whether the inner operation has a single use
7683         of both off are constant.
7685 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
7686             Segher Boessenkool  <segher@kernel.crashing.org>
7688         PR target/66412
7689         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
7690         before doing PUT_MODE or PUT_CODE on operands to avoid
7691         in-place RTX modification.
7693 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
7695         * gentarget-def.c (def_target_insn): Cast return of strtol to
7696         unsigned int.
7698 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
7700         * gimple.h (gimple_call_set_fn): Move inline function.
7701         * gimple.c (gimple_call_set_fn): Relocate here.
7703 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
7705         PR target/65979
7706         PR target/66611
7707         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
7708         the replacement insn will work.
7710 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
7712         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
7713         by default.
7715 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
7717         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
7718         * cgraph.h: Include ipa-ref.h and plugin-api.h.
7719         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
7720         (symtab_node::address_can_be_compared_p): Move function.
7721         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
7722         definition here.
7723         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
7724         * auto-profile.c: Likewise.
7725         * bb-reorder.c: Likewise.
7726         * builtins.c: Likewise.
7727         * calls.c: Likewise.
7728         * cfgexpand.c: Likewise.
7729         * cgraphbuild.c: Likewise.
7730         * cgraphclones.c: Likewise.
7731         * cgraphunit.c: Likewise.
7732         * combine.c: Likewise.
7733         * coverage.c: Likewise.
7734         * data-streamer-in.c: Likewise.
7735         * data-streamer-out.c: Likewise.
7736         * data-streamer.c: Likewise.
7737         * dbxout.c: Likewise.
7738         * dwarf2out.c: Likewise.
7739         * except.c: Likewise.
7740         * expr.c: Likewise.
7741         * final.c: Likewise.
7742         * fold-const.c: Likewise.
7743         * ggc-page.c: Likewise.
7744         * gimple-fold.c: Likewise.
7745         * gimple-iterator.c: Likewise.
7746         * gimple-pretty-print.c: Likewise.
7747         * gimple-streamer-in.c: Likewise.
7748         * gimple-streamer-out.c: Likewise.
7749         * gimple.c: Likewise.
7750         * gimplify.c: Likewise.
7751         * ipa-chkp.c: Likewise.
7752         * ipa-comdats.c: Likewise.
7753         * ipa-cp.c: Likewise.
7754         * ipa-devirt.c: Likewise.
7755         * ipa-icf-gimple.c: Likewise.
7756         * ipa-icf.c: Likewise.
7757         * ipa-inline-analysis.c: Likewise.
7758         * ipa-inline-transform.c: Likewise.
7759         * ipa-inline.c: Likewise.
7760         * ipa-polymorphic-call.c: Likewise.
7761         * ipa-profile.c: Likewise.
7762         * ipa-prop.c: Likewise.
7763         * ipa-pure-const.c: Likewise.
7764         * ipa-ref.c: Likewise.
7765         * ipa-reference.c: Likewise.
7766         * ipa-split.c: Likewise.
7767         * ipa-utils.c: Likewise.
7768         * ipa-visibility.c: Likewise.
7769         * ipa.c: Likewise.
7770         * langhooks.c: Likewise.
7771         * lto-cgraph.c: Likewise.
7772         * lto-compress.c: Likewise.
7773         * lto-opts.c: Likewise.
7774         * lto-section-in.c: Likewise.
7775         * lto-section-out.c: Likewise.
7776         * lto-streamer-in.c: Likewise.
7777         * lto-streamer-out.c: Likewise.
7778         * lto-streamer.c: Likewise.
7779         * omp-low.c: Likewise.
7780         * opts-global.c: Likewise.
7781         * passes.c: Likewise.
7782         * predict.c: Likewise.
7783         * print-tree.c: Likewise.
7784         * profile.c: Likewise.
7785         * ree.c: Likewise.
7786         * sanopt.c: Likewise.
7787         * stor-layout.c: Likewise.
7788         * symtab.c: Likewise.
7789         * toplev.c: Likewise.
7790         * trans-mem.c: Likewise.
7791         * tree-cfg.c: Likewise.
7792         * tree-chkp.c: Likewise.
7793         * tree-eh.c: Likewise.
7794         * tree-emutls.c: Likewise.
7795         * tree-inline.c: Likewise.
7796         * tree-nested.c: Likewise.
7797         * tree-parloops.c: Likewise.
7798         * tree-pretty-print.c: Likewise.
7799         * tree-profile.c: Likewise.
7800         * tree-sra.c: Likewise.
7801         * tree-ssa-alias.c: Likewise.
7802         * tree-ssa-live.c: Likewise.
7803         * tree-ssa-loop-ivcanon.c: Likewise.
7804         * tree-ssa-loop-ivopts.c: Likewise.
7805         * tree-ssa-pre.c: Likewise.
7806         * tree-ssa-sccvn.c: Likewise.
7807         * tree-ssa-strlen.c: Likewise.
7808         * tree-ssa-structalias.c: Likewise.
7809         * tree-streamer-in.c: Likewise.
7810         * tree-streamer-out.c: Likewise.
7811         * tree-streamer.c: Likewise.
7812         * tree-switch-conversion.c: Likewise.
7813         * tree-tailcall.c: Likewise.
7814         * tree-vect-data-refs.c: Likewise.
7815         * tree-vect-stmts.c: Likewise.
7816         * tree-vectorizer.c: Likewise.
7817         * tree.c: Likewise.
7818         * tsan.c: Likewise.
7819         * ubsan.c: Likewise.
7820         * value-prof.c: Likewise.
7821         * varasm.c: Likewise.
7822         * varpool.c: Likewise.
7823         * config/arm/arm.c: Likewise.
7824         * config/bfin/bfin.c: Likewise.
7825         * config/c6x/c6x.c: Likewise.
7826         * config/cris/cris.c: Likewise.
7827         * config/darwin-c.c: Likewise.
7828         * config/darwin.c: Likewise.
7829         * config/i386/i386.c: Likewise.
7830         * config/i386/winnt.c: Likewise.
7831         * config/microblaze/microblaze.c: Likewise.
7832         * config/mips/mips.c: Likewise.
7833         * config/rs6000/rs6000.c: Likewise.
7834         * config/rx/rx.c: Likewise.
7835         * config/s390/s390.c: Likewise.
7836         * config/tilegx/mul-tables.c: Likewise.
7838 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
7840         * config/aarch64/aarch64.c, config/alpha/alpha.c,
7841         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
7842         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
7843         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
7844         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
7845         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
7846         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
7847         config/microblaze/microblaze.c, config/mips/mips.c,
7848         config/mmix/mmix.c, config/mn10300/mn10300.c,
7849         config/moxie/moxie.c, config/msp430/msp430.c,
7850         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
7851         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
7852         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
7853         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
7854         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
7855         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
7856         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
7857         target-def.h include.
7858         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
7860 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
7862         * Makefile.in (TARGET_DEF): Add target-insns.def.
7863         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
7864         (build/gentarget-def.o): New rule.
7865         (genprogrtl): Add target-def.
7866         * target-insns.def, gentarget-def.c: New files.
7867         * target.def: Add targetm.have_* and targetm.gen_* hooks,
7868         based on the contents of target-insns.def.
7869         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
7870         (HAVE_return, gen_return): Delete.
7871         * target-def.h: Include insn-target-def.h.
7872         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
7873         instead of direct calls.  Rely on them to do the appropriate assertions.
7874         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
7875         (convert_jumps_to_returns): Use targetm interface instead of
7876         direct calls.
7877         (thread_prologue_and_epilogue_insns): Likewise.
7878         * reorg.c (find_end_label, dbr_schedule): Likewise.
7879         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
7880         * shrink-wrap.c (convert_to_simple_return): Likewise.
7881         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
7883 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
7885         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
7886         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
7887         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
7888         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
7889         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
7890         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
7891         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
7892         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
7893         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
7894         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
7895         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
7896         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
7897         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
7898         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
7899         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
7900         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
7901         includes to end.
7903 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
7905         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
7906         (unbounded_int_hashmap_traits::key_type): Likewise.
7907         * hash-map.h (hash_map): Get the key type from the traits.
7908         * hash-traits.h (default_hash_traits): By default, inherit from the
7909         template parameter.
7910         * alias.c (alias_set_traits): Delete.
7911         (alias_set_entry_d::children): Use alias_set_hash as the first
7912         template parameter.
7913         (record_alias_subset): Update accordingly.
7914         * except.c (tree_hash_traits): Delete.
7915         (type_to_runtime_map): Use tree_hash as the first template parameter.
7916         (init_eh): Update accordingly.
7917         * genmatch.c (capture_id_map_hasher): Delete.
7918         (cid_map_t): Use nofree_string_hash as first template parameter.
7919         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
7920         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
7921         Use symbol_compare_hash as the first template parameter in
7922         subdivide_hash_map.
7923         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
7924         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
7925         template parameter.
7926         * passes.c (pass_registry_hasher): Delete.
7927         (name_to_pass_map): Use nofree_string_hash as the first template
7928         parameter.
7929         (register_pass_name): Update accordingly.
7930         * sanopt.c (sanopt_tree_map_traits): Delete.
7931         (sanopt_tree_triplet_map_traits): Delete.
7932         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
7933         template parameter.
7934         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
7935         the first template parameter.
7936         * sese.c (rename_map_hasher): Delete.
7937         (rename_map_type): Use tree_ssa_name_hash as the first template
7938         parameter.
7939         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
7940         (function_summary::m_map): Use map_hash as the first template
7941         parameter.
7942         (function_summary::release): Update accordingly.
7943         * tree-if-conv.c (phi_args_hash_traits): Delete.
7944         (predicate_scalar_phi): Use tree_operand_hash as the first template
7945         parameter to phi_arg_map.
7946         * tree-inline.h (dependence_hasher): Delete.
7947         (copy_body_data::dependence_map): Use dependence_hash as the first
7948         template parameter.
7949         * tree-inline.c (remap_dependence_clique): Update accordingly.
7950         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
7951         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
7952         parameter.
7953         (addr_stridxptr): Update accordingly.
7954         * value-prof.c (profile_id_traits): Delete.
7955         (cgraph_node_map): Use profile_id_hash as the first template
7956         parameter.
7957         (init_node_map): Update accordingly.
7958         * config/alpha/alpha.c (string_traits): Delete.
7959         (machine_function::links): Use nofree_string_hash as the first
7960         template parameter.
7961         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
7962         * config/m32c/m32c.c (pragma_traits): Delete.
7963         (pragma_htab): Use nofree_string_hash as the first template parameter.
7964         (m32c_note_pragma_address): Update accordingly.
7965         * config/mep/mep.c (pragma_traits): Delete.
7966         (pragma_htab): Use nofree_string_hash as the first template parameter.
7967         (mep_note_pragma_flag): Update accordingly.
7968         * config/mips/mips.c (mips16_flip_traits): Delete.
7969         (mflip_mips16_htab): Use nofree_string_hash as the first template
7970         parameter.
7971         (mflip_mips16_use_mips16_p): Update accordingly.
7972         (local_alias_traits): Delete.
7973         (mips16_local_aliases): Use nofree_string_hash as the first template
7974         parameter.
7975         (mips16_local_alias): Update accordingly.
7977 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
7979         * hash-map-traits.h (default_hashmap_traits): Delete.
7981 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
7983         * hash-map-traits.h (unbounded_hashmap_traits): New class.
7984         (unbounded_int_hashmap_traits): Likewise.
7985         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
7987 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
7989         * ipa-icf.h (symbol_compare_hash): New class.
7990         (symbol_compare_hashmap_traits): Use it.
7991         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
7992         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
7993         (mem_alloc_description::reverse_mem_map_t): Remove redundant
7994         default_hashmap_traits.
7995         * sanopt.c (sanopt_tree_triplet_hash): New class.
7996         (sanopt_tree_triplet_map_traits): Use it.
7998 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8000         * gengtype-parse.c (require_template_declaration): Allow '+' in
8001         template parameters.  Consolidate cases.
8002         * hash-traits.h (int_hash): New class.
8003         * alias.c (alias_set_hash): New structure.
8004         (alias_set_traits): Use it.
8005         * symbol-summary.h (function_summary::map_hash): New class.
8006         (function_summary::summary_hashmap_traits): Use it.
8007         * tree-inline.h (dependence_hash): New class.
8008         (dependence_hasher): Use it.
8009         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
8010         * value-prof.c (profile_id_hash): New class.
8011         (profile_id_traits): Use it.
8013 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8015         * config/mips/mips.c (mips16_flip_traits): Use it.
8016         (local_alias_traits, mips16_local_aliases): Convert from a map of
8017         rtxes to a map of symbol names.
8018         (mips16_local_alias): Update accordingly.
8020 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8022         * hash-traits.h (string_hash, nofree_string_hash): New classes.
8023         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
8024         * passes.c (pass_registry_hasher): Likewise.
8025         * config/alpha/alpha.c (string_traits): Likewise.
8026         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
8027         * config/m32c/m32c.c (pragma_traits): Likewise.
8028         * config/mep/mep.c (pragma_traits): Likewise.
8030 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8032         * tree-hash-traits.h (tree_hash): New class.
8033         * except.c: Include tree-hash-traits.h.
8034         (tree_hash_traits): Use tree_hash.
8036 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8038         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
8039         * sese.c: Include tree-hash-traits.h.
8040         (rename_map_hasher): Use tree_ssa_name_hasher.
8042 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8044         * tree-hash-traits.h (tree_decl_hash): New class.
8045         * tree-ssa-strlen.c: Include tree-hash-traits.h.
8046         (stridxlist_hash_traits): Use tree_decl_hash.
8048 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8050         * tree-hash-traits.h: New file.
8051         (tree_operand_hash): New class.
8052         * sanopt.c: Include tree-hash-traits.h.
8053         (sanopt_tree_map_traits): Use tree_operand_hash.
8054         * tree-if-conv.c: Include tree-hash-traits.h.
8055         (phi_args_hash_traits): Use tree_operand_hash.
8056         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
8057         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
8059 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8061         * hash-map-traits.h: Include hash-traits.h.
8062         (simple_hashmap_traits): New class.
8063         * mem-stats.h (hash_map): Change the default traits to
8064         simple_hashmap_traits<default_hash_traits<Key> >.
8066 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8068         * hash-table.h: Update comments.
8070 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8072         * hash-traits.h (default_hash_traits): New structure.
8073         * hash-set.h (default_hashset_traits): Delete.
8074         (hash_set): Use default_hash_traits<Key> instead of
8075         default_hashset_traits.  Delete hash_entry type and use Key directly.
8076         * ipa-devirt.c (pair_traits): Delete.
8077         (default_hash_traits <type_pair>): Override.
8078         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
8079         (odr_types_equivalent_p, add_type_duplicate): Likewise.
8081 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8083         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
8085 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8087         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
8088         (has_is_empty, is_empty_helper): Delete.
8089         (has_mark_deleted, mark_deleted_helper): Delete.
8090         (has_mark_empty, mark_empty_helper): Delete.
8091         (hash_table::is_deleted): Call the Descriptor unconditionally.
8092         (hash_table::is_empty): Likewise.
8093         (hash_table::mark_deleted): Likewise.
8094         (hash_table::mark_empty): Likewise.
8096 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8098         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
8099         redundant typedefs and members.
8100         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
8101         redundant typedefs.
8102         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
8103         * ipa-devirt.c (odr_name_hasher): Likewise.
8104         (polymorphic_call_target_hasher): Likewise.
8105         * ira-costs.c (cost_classes_hasher): Likewise.
8106         * statistics.c (stats_counter_hasher): Likewise.
8107         * trans-mem.c (log_entry_hasher): Likewise.
8108         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
8109         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
8110         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
8111         * var-tracking.c (variable_hasher): Likewise.
8112         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
8113         Remove redundant typedefs and members.
8115 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8117         * hash-traits.h (ggc_cache_hasher): Rename to...
8118         (ggc_cache_remove): ...this and remove typedefs.
8119         (ggc_cache_ptr_hash): New class.
8120         * hash-table.h: Update commentary.
8121         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
8122         rather than ggc_cache_hasher.
8123         (const_wide_int_hasher, reg_attr_hasher): Likewise.
8124         (const_double_hasher, const_fixed_hasher): Likewise.
8125         * function.c (insn_cache_hasher): Likewise.
8126         * trans-mem.c (tm_wrapper_hasher): Likewise.
8127         * tree.h (tree_decl_map_cache_hasher): Likewise.
8128         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
8129         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
8130         * ubsan.c (tree_type_map_cache_hasher): Likewise.
8131         * varasm.c (tm_clone_hasher): Likewise.
8132         * config/i386/i386.c (dllimport_hasher): Likewise.
8133         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
8134         (tree_hasher): Likewise.
8136 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8138         * hash-traits.h (ggc_hasher): Rename to...
8139         (ggc_remover): ...this and remove typedefs.
8140         (ggc_cache_hasher): Update accordingly.  Add typedefs.
8141         (ggc_ptr_hash): New class.
8142         * hash-table.h: Update comment.
8143         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
8144         ggc_hasher.
8145         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
8146         (tree_descriptor_hasher): Likewise.
8147         * cgraph.c (function_version_hasher): Likewise.
8148         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
8149         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
8150         (dw_loc_list_hasher, addr_hasher): Likewise.
8151         * function.h (used_type_hasher): Likewise.
8152         * function.c (temp_address_hasher): Likewise.
8153         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
8154         * libfuncs.h (libfunc_hasher): Likewise.
8155         * lto-streamer.h (decl_state_hasher): Likewise.
8156         * optabs.c (libfunc_decl_hasher): Likewise.
8157         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
8158         * varasm.c (section_hasher, object_block_hasher): Likewise.
8159         (const_rtx_desc_hasher): Likewise.
8160         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
8161         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
8163 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8165         * hash-traits.h (free_ptr_hash): New class.
8166         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
8167         rather than typed_free_remove.  Remove redudant typedefs.
8168         (external_ref_hasher): Likewise.
8169         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
8170         (ehspec_hasher): Likewise.
8171         * ggc-common.c (saving_hasher): Likewise.
8172         * gimplify.c (gimplify_hasher): Likewise.
8173         * haifa-sched.c (delay_i2_hasher): Likewise.
8174         * loop-invariant.c (invariant_expr_hasher): Likewise.
8175         * loop-iv.c (biv_entry_hasher): Likewise.
8176         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
8177         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
8178         * tree-cfg.c (locus_discrim_hasher): Likewise.
8179         * tree-eh.c (finally_tree_hasher): Likewise.
8180         * tree-into-ssa.c (var_info_hasher): Likewise.
8181         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
8182         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
8183         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
8184         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
8185         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
8186         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
8187         (shared_bitmap_hasher): Likewise.
8188         * tree-ssa-threadupdate.c (redirection_data): Likewise.
8189         * tree-vectorizer.h (peel_info_hasher): Likewise.
8190         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
8191         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
8193 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8195         * hash-table.h: Update comments.
8196         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
8197         (nofree_ptr_hash): New class.
8198         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
8199         than typed_noop_remove.  Remove redudant typedefs.
8200         * attribs.c (attribute_hasher): Likewise.
8201         * cfg.c (bb_copy_hasher): Likewise.
8202         * cselib.c (cselib_hasher): Likewise.
8203         * dse.c (invariant_group_base_hasher): Likewise.
8204         * dwarf2cfi.c (trace_info_hasher): Likewise.
8205         * dwarf2out.c (macinfo_entry_hasher): Likewise.
8206         (comdat_type_hasher, loc_list_hasher): Likewise.
8207         * gcse.c (pre_ldst_expr_hasher): Likewise.
8208         * genmatch.c (id_base): Likewise.
8209         * genrecog.c (test_pattern_hasher): Likewise.
8210         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
8211         * haifa-sched.c (delay_i1_hasher): Likewise.
8212         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
8213         * ipa-icf.h (congruence_class_group_hash): Likewise.
8214         * ipa-profile.c (histogram_hash): Likewise.
8215         * ira-color.c (allocno_hard_regs_hasher): Likewise.
8216         * lto-streamer.h (string_slot_hasher): Likewise.
8217         * lto-streamer.c (tree_entry_hasher): Likewise.
8218         * plugin.c (event_hasher): Likewise.
8219         * postreload-gcse.c (expr_hasher): Likewise.
8220         * store-motion.c (st_expr_hasher): Likewise.
8221         * tree-sra.c (uid_decl_hasher): Likewise.
8222         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
8223         (ssa_name_var_hash): Likewise.
8224         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
8225         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
8226         * tree-ssa-pre.c (pre_expr_d): Likewise.
8227         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
8228         * vtable-verify.h (registration_hasher): Likewise.
8229         * vtable-verify.c (vtbl_map_hasher): Likewise.
8230         * config/arm/arm.c (libcall_hasher): Likewise.
8231         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
8232         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
8233         * config/sol2.c (comdat_entry_hasher): Likewise.
8234         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
8235         (print_fold_checksum, fold_checksum_tree): Likewise.
8236         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
8237         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
8238         (fold_build_call_array_loc): Likewise.
8239         * tree-ssa-ccp.c (gimple_htab): Likewise.
8240         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
8241         rather than pointer_type.
8243 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8245         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
8246         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
8248 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8250         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
8251         (ggc_hasher::ggc_mx): Likewise.
8252         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
8253         that duplicate ggc_hasher ones.
8255 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8257         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
8258         (gt_cleare_cache): Check here for deleted and empty entries.
8259         Replace handle_cache_entry with a call to keep_cache_entry.
8260         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
8261         (ggc_cache_hasher::keep_cache_entry): New function.
8262         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
8263         (tm_wrapper_hasher::keep_cache_entry): New function.
8264         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
8265         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
8266         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
8267         (type_cache_hasher::keep_cache_entry): New function.
8268         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
8269         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
8270         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
8271         (tree_type_map_cache_hasher::keep_cache_entry): New function.
8272         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
8273         (tm_clone_hasher::keep_cache_entry): New function.
8274         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
8275         (dllimport_hasher::keep_cache_entry): New function.
8277 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8279         * hash-table.h: Include hash-traits.h.
8280         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
8281         (ggc_cache_hasher): Move to...
8282         * hash-traits.h: ...this new file.
8284 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
8286         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
8287         struct cl_optimization.
8288         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
8289         * tree.c (make_node_stat): Allocate cl_optimization struct.
8290         (copy_node_stat): Allocate and copy cl_optimization struct.
8292 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
8294         * function.h (struct incoming_args): Move struct.
8295         (pass_by_reference, reference_callee_copied): Remove prototypes.
8296         * emit-rtl.h (struct incoming_args): Relocate struct here.
8297         * calls.h (pass_by_reference, reference_callee_copied): Relocate
8298         prototypes here.
8299         * function.c (pass_by_reference, reference_callee_copied): Move.
8300         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
8301         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
8302         * ipa-chkp.c: Include calls.h.
8304 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
8306         * alias.h (alias_set_type): Move typedef.
8307         * coretypes.h (alias_set_type): Relocate typedef here.
8308         * rtl.h: Don't include alias.h.
8310 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
8312         * cgraph.h (cgraph_rtl_info): Move to rtl.h
8313         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
8314         and instance.
8315         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
8316         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
8317         doesn't exist.
8318         * calls.c: Include hard-reg-set.h before rtl.h.
8319         * ira.c: Likewise.
8321 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
8322             Vladimir Makarov  <vmakarov@redhat.com>
8324         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
8325         Add assert.
8327 2015-06-25  Richard Biener  <rguenther@suse.de>
8329         * fold-const.c (fold_binary_loc): Move simplification of
8330         (X <<>> C1) & C2 ...
8331         * match.pd: ... here.
8333 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
8335         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
8337 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
8339         * match.pd: Add patterns for vec_conds between 1 and 0.
8341 2015-06-25  Richard Biener  <rguenther@suse.de>
8343         * tree-vect-stmts.c (vectorizable_conversion): Do not set
8344         STMT_VINFO_VEC_STMT for SLP.
8345         (vectorizable_store): Likewise.
8346         (vectorizable_load): Likewise.
8347         (vect_transform_stmt): Catch SLP vectorization clobbering
8348         STMT_VINFO_VEC_STMT.
8350 2015-06-25  Richard Biener  <rguenther@suse.de>
8352         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
8353         dumping.
8354         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
8355         cleanup resulting dead code and parameters.
8356         (vect_transform_slp_perm_load): Adjust.
8358 2015-06-25  Nick Clifton  <nickc@redhat.com>
8360         * config/bfin/bfin.c (bfin_expand_prologue): Set
8361         current_function_static_stack_size if flag_stack_usage_info is set.
8362         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
8363         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
8364         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
8365         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
8367 2015-06-25  Tom de Vries  <tom@codesourcery.com>
8369         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
8370         comment that the generated IV is unsigned.
8372 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8374         PR target/29693
8375         * config/arm/arm.c (arm_dbx_register_number): Return
8376         DWARF_FRAME_REGISTERS by default.
8378 2015-06-25  Tom de Vries  <tom@codesourcery.com>
8380         * dominance.c (calculate_dominance_info): Fix verify_dominators call
8381         argument.  Call verify_dominator when reusing dominator info.
8383 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
8385         PR target/66563
8386         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
8387         an additional element of the unspec vector.  Modify indices
8388         of operands.
8389         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
8390         * config/sh/sh.c (prepare_move_operands): Pass incremented
8391         const_int to gen_GOTaddr2picreg.
8392         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
8394 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
8396         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
8397         Condition on TARGET_FLOAT.
8399 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
8401         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
8402         and (no)crypto.
8404 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
8406         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
8408         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
8409         aarch64_err_no_fpadvsimd.
8411         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
8412         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
8413         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
8414         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
8415         Turn error into assert, test TARGET_FLOAT.
8416         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
8417         TARGET_FLOAT.
8419 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
8421         PR debug/66482
8422         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
8424 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
8426         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
8428 2015-06-24 Renlin Li <renlin.li@arm.com>
8430         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
8431         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
8433 2015-06-24  Richard Biener  <rguenther@suse.de>
8435         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
8436         (main): Likewise.
8437         (lower_opt_convert): Support lowering of conditional view_convert.
8438         (parser::parse_operation): Likewise.
8439         (parser::parse_for): Likewise.
8441 2015-06-24  Renlin Li  <renlin.li@arm.com>
8443         * varasm.c (emit_local): Use unsigned int for align variable.
8445 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8447         PR target/63408
8448         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
8449         for negative numbers.
8451 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8453         PR rtl-optimization/66306
8454         * reload.c (find_reloads): Swap the match_dup info for
8455         commutative operands.
8457 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8459         * config/s390/vx-builtins.md
8460         ("vec_scatter_element<mode>_<non_vec_int>")
8461         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
8462         attribute with bhfgq.
8464 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8466         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
8468 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8470         * config/s390/s390-builtin-types.def: Add flag to indicate the
8471         options under which the function type is needed.
8472         * config/s390/s390-builtins.def: Add flag to indicate the options
8473         under which the builtin is enabled.
8474         * config/s390/s390-builtins.h: Add flags parameter to macro
8475         definitions.
8476         (bflags_for_builtin): New function.
8477         (flags_for_builtin): Renamed to ...
8478         (opflags_for_builtin): ... this.
8479         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
8480         flags_for_builtin to bflags_for_builtin and
8481         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
8482         * config/s390/s390.c: Add initialization of bflags_builtin and
8483         opflags_builtin arrays.
8484         Remove code for flags_builtin.
8485         (s390_init_builtins): Only create builtin function types if one of
8486         their flags is active.
8487         Only create builtins if all of their flags are active.
8488         (s390_expand_builtin): Rename flags_for_builtin to
8489         opflags_for_builtin.
8491 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8493         * config/s390/vecintrin.h: Remove internal builtins.
8495 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8497         * config/s390/s390.c (s390_secondary_reload): Fix check for
8498         GENERAL_REGS register class.
8500 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8502         * config/s390/s390.c (s390_support_vector_misalignment): Call
8503         default implementation for !TARGET_VX.
8505 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8507         * config/s390/s390.c (s390_legitimate_constant_p): Add
8508         TARGET_VX check.
8510 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8512         * config/s390/s390.c (s390_vector_abi): New variable definition.
8513         (s390_check_type_for_vector_abi): New function.
8514         (TARGET_ASM_FILE_END): New macro definition.
8515         (s390_asm_file_end): New function.
8516         (s390_function_arg): Call s390_check_type_for_vector_abi.
8517         (s390_gimplify_va_arg): Likewise.
8518         * configure: Regenerate.
8519         * configure.ac: Check for .gnu_attribute Binutils feature.
8521 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
8523         PR target/65803
8524         * config/bfin/bfin.c (hwloop_optimize): Initialize
8525         JUMP_LABEL for newly created jump.
8527 2015-06-23  Tristan Gingold  <gingold@adacore.com>
8529         * collect-utils.c (collect_wait): Unlink the response file here
8530         instead of...
8531         (do_wait): ...here.
8532         (utils_cleanup): ...and here.
8534 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
8536         * df-scan.c: Don't include target-def.h.
8537         * targhooks.c: Likewise.
8538         * config/arm/arm-c.c: Likewise.
8539         * config/i386/i386-c.c: Likewise.
8540         * config/nds32/nds32-cost.c: Likewise.
8541         * config/nds32/nds32-fp-as-gp.c: Likewise.
8542         * config/nds32/nds32-intrinsic.c: Likewise.
8543         * config/nds32/nds32-isr.c: Likewise.
8544         * config/nds32/nds32-md-auxiliary.c: Likewise.
8545         * config/nds32/nds32-memory-manipulation.c: Likewise.
8546         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
8547         * config/nds32/nds32-predicates.c: Likewise.
8549 2015-06-23  Richard Biener  <rguenther@suse.de>
8551         PR tree-optimization/66636
8552         * tree-vect-stmts.c (vectorizable_store): Properly compute the
8553         def type for further defs for strided stores.
8555 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
8557         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
8558         conditional selects.
8559         (setcc_int<mode>, setcc_float<mode>): Reformat.
8561 2015-06-23  Marek Polacek  <polacek@redhat.com>
8563         * match.pd ((x + y) - (x | y) -> x & y,
8564         (x + y) - (x & y) -> x | y): New patterns.
8566 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
8568         PR 65711
8569         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
8570         '-dynamic-linker' within %{!shared: ...}.
8572 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
8574         PR target/66560
8575         * config/i386/predicates.md (addsub_vm_operator): New predicate.
8576         (addsub_vs_operator): Ditto.
8577         (addsub_vs_parallel): Ditto.
8578         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
8579         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
8580         Put minus RTX before plus and adjust vec_merge selector.
8581         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
8582         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
8583         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
8584         (addsub vec_merge splitters): New combiner splitters.
8585         (addsub vec_select/vec_concat splitters): Ditto.
8587 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
8589         PR tree-optimization/66449
8590         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
8591         POINTER_PLUS_EXPR for pointers.
8593 2015-06-23  Alan Modra  <amodra@gmail.com>
8595         * rtlanal.c (commutative_operand_precedence): Correct comments.
8596         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
8597         declaration.  Return an int.  Distinguish REG,REG return from
8598         others.
8599         (struct simplify_plus_minus_op_data): Make local to function.
8600         (simplify_plus_minus): Don't set canonicalized if merely sorting
8601         registers.  Avoid packing ops if nothing changes.  White space fixes.
8603 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
8605         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
8606         -fdump-ada-spec is passed but not if -fsyntax-only is.
8608 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
8610         PR bootstrap/63740
8611         * lra-lives.c (process_bb_lives): Check insn copying the same
8612         reload pseudo and don't create a copy for it.
8614 2015-06-22  Tom de Vries  <tom@codesourcery.com>
8616         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
8617         for cond_stmt.
8619 2015-06-22  Tom de Vries  <tom@codesourcery.com>
8621         * builtins.def (DEF_GOMP_BUILTIN): Test
8622         'flag_tree_parallelize_loops > 1' instead of
8623         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
8625 2015-06-22  Tom de Vries  <tom@codesourcery.com>
8627         * dominance.c (calculate_dominance_info): Verify dominators if
8628         early-out.
8630 2015-06-22  Marek Polacek  <polacek@redhat.com>
8632         * match.pd ((x ^ y) ^ (x | y) -> x & y,
8633         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
8634         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
8635         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
8637 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
8639         PR target/65871
8640         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
8641         cost of embedded comparison.
8643 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8645         PR target/65914
8646         * config/rs6000/predicates.md (altivec_register_operand): Permit
8647         virtual stack registers.
8648         (vsx_register_operand): Likewise.
8649         (vfloat_operand): Likewise.
8650         (vint_operand): Likewise.
8651         (vlogical_operand): Likewise.
8653 2015-06-22  Richard Biener  <rguenther@suse.de>
8655         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
8656         and single_scalar_iteration_cost members.
8657         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
8658         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
8659         (vect_get_single_scalar_iteration_cost): Remove.
8660         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
8661         Use LOOP_VINFO_SCALAR_ITERATION_COST.
8662         * tree-vect-loop.c (destroy_loop_vec_info): Free
8663         scalar_cost_vec.
8664         (vect_get_single_scalar_iteration_cost): Compute result into
8665         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
8666         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
8667         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
8668         (vect_estimate_min_profitable_iters): Use them.
8670 2015-06-22  Christian Bruel  <christian.bruel@st.com>
8672         PR target/52144
8673         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
8674         (TARGET_INSERT_ATTRIBUTES): Define.
8675         (thumb_flipper): New var.
8676         * config/arm/arm.opt (-mflip-thumb): New switch.
8678 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
8679             Martin Liska  <mliska@suse.cz>
8681         PR ipa/65908
8682         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
8683         construction of arg_types.
8684         (sem_function::sem_function): Likewise.
8685         (sem_function::~sem_function): Remove destruction of arg_types.
8686         (sem_function::compatible_parm_types_p): New function.
8687         (sem_function::equals_wpa): Reorg matching of return values
8688         and parameter types.
8689         (sem_function::equals_private): Reorg mathcing of argument types.
8690         (sem_function::parse_tree_args): Remove.
8691         * ipa-icf.h (init_wpa): Do not call it.
8692         (parse_tree_args): Remove.
8693         (compatible_parm_types_p): Declare.
8694         (result_type): Remove.
8695         (arg_types): Remove.
8697 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
8699         PR ipa/66351
8700         * ipa-polymorphic-call.c
8701         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
8702         initializing alias oracle; fix formating; set base_alias_set if it
8703         is known.
8705 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
8707         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
8708         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
8709         (find_inc): Likewise.
8710         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
8711         swapping.
8712         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
8713         * df-scan.c (df_swap_refs): Remove.
8714         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
8715         * dominance.c (link_roots): Use std::swap instead of manually swapping.
8716         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
8717         * fold-const.c (fold_relational_const): Likewise.
8718         * genattrtab.c (simplify_test_exp): Likewise.
8719         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
8720         gimple_simplify): Likewise.
8721         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
8722         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
8723         * ipa-devirt.c (add_type_duplicate): Likewise.
8724         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
8725         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
8726         * lra.c (lra_create_copy): Likewise.
8727         * lto-streamer-out.c (DFS::DFS): Likewise.
8728         * modulo-sched.c (get_sched_window): Likewise.
8729         * omega.c (omega_pretty_print_problem): Likewise.
8730         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
8731         * reload1.c (reloads_unique_chain_p): Likewise.
8732         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
8733         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
8734         use std::swap.
8735         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
8736         manually swapping.
8737         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
8738         predicate_mem_writes): Likewise.
8739         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
8740         * tree-predcom.c (combine_chains): Likewise.
8741         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
8742         refs_may_alias_p_1): Likewise.
8743         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
8744         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
8745         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
8746         number_of_iterations_cond): Likewise.
8747         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
8748         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
8749         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
8750         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
8751         * tree-vrp.c (extract_range_from_binary_expr_1,
8752         extract_range_from_unary_expr_1): Likewise.
8754 2015-06-20  Marek Polacek  <polacek@redhat.com>
8756         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
8758 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
8760         PR target/66591
8761         * config/sh/sh.c (prepare_move_operands): Replace subreg
8762         index term with R0 for base and index addressing.
8764 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
8766         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
8767         op1 is an fp zero.
8768         (movsf_aarch64): Change condition from register_operand to
8769         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
8770         load1.  Change type for alternative 7 to store1.
8771         (movdf_aarch64): Likewise.
8773 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
8775         * config/vax/vax.md: Adjust sign/zero extend patterns to
8776         handle SUBREGs in operands[1].
8778 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8780         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
8781         of manually swapping.
8782         (expand_vec_perm_interleave2): Likewise.
8784 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
8786         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
8787         reuse bounds created for abnormal ssa names.
8789 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
8791         * config/nvptx/nvptx.md (allocate_stack): Rename to...
8792         (allocate_stack_<mode>): ... this, and add :P on both
8793         match_operand and unspec.
8794         (allocate_stack): New expander.
8796 2015-06-19  Christian Bruel  <christian.bruel@st.com>
8798         PR target/66541
8799         PR target/52144
8800         * config/arm/arm.c (arm_set_current_function): Handle
8801         explicit default options.
8803 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
8805         * config/i386/i386.md (*movsicc_noc_zext): New insn.
8806         (zero-extended cmove with mem peephole2): New pattern.
8807         (cmove with mem peephole2): Merge patterns.
8809 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
8811         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
8813 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
8815         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
8816         * config/mips/mips.md (*madd4<mode>): Ditto.
8817         (*nmadd3<mode>) Ditto.
8818         (*nmadd4<mode>_fastmath): Ditto.
8819         (*nmadd3<mode>_fastmath): Ditto.
8820         (*nmsub4<mode>): Ditto.
8821         (*nmsub3<mode>): Ditto.
8822         (*nmsub4<mode>_fastmath): Ditto.
8823         (*nmsub3<mode>_fastmath): Ditto.
8825 2015-06-18  Michael Matz  <matz@suse.de>
8827         PR middle-end/66253
8828         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
8829         grouped strided stores.
8830         (vectorizable_load): Don't use the DR from first_stmt in
8831         the non-SLP grouped strided case.
8833 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
8835         PR target/66569
8836         * function.c (assign_bounds): Add arguments assign_regs,
8837         assign_special, assign_bt.
8838         (assign_parms): For vararg functions handle bounds in BT
8839         and special slots after incoming vararg bounds.
8841 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
8843         PR middle-end/66568
8844         * cfgexpand.c (expand_return): Handle missing bounds.
8845         (expand_gimple_stmt_1): Likewise.
8846         * tree-chkp.c (chkp_expand_zero_bounds): New.
8847         * tree-chkp.h (chkp_expand_zero_bounds): New.
8849 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
8851         PR middle-end/66567
8852         * ipa-chkp.c (chkp_maybe_create_clone): Require
8853         functions to be instrumentable.
8854         * tree-chkp.c (chkp_replace_function_pointer): Use
8855         chkp_instrumentable_p instead of attribute check.
8857 2015-06-18  Richard Biener  <rguenther@suse.de>
8859         PR tree-optimization/66510
8860         * tree-vect-stmts.c (vectorizable_load): Properly compute the
8861         number of vector loads for SLP permuted loads.
8862         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
8863         check the stride for loop vectorization.
8864         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
8865         vectorization factor.
8866         (vect_analyze_group_access): If the group size is not a power
8867         of two require a epilogue loop.
8868         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
8869         compute and optimizing and alias test pruning after final
8870         vectorization factor computation.
8871         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
8872         vector alignment.
8873         (vect_transform_slp_perm_load): Properly compute the original
8874         number of vector load stmts.
8876 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
8878         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
8879         "unlikely character , in @var" warning.
8881 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
8883         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
8884         (ix86_function_arg_advance): Ditto.
8885         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
8887 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
8889         * function.h (struct rtl_data): Remove struct and accessor macros.
8890         * emit-rtl.h (struct rtl_data): Relocate to here.
8891         * Makefile.in (GTFILES): Add emit-rtl.h.
8892         * df-core.c: Include emit-rtl.h.
8893         * genattrtab.c: Likewise.
8894         * genconditions.c: Likewise.
8895         * genpreds.c: Likewise.
8896         * genrecog.c: Likewise.
8897         * regcprop.c: Likewise.
8898         * resource.c: Likewise.
8899         * sched-rgn.c: Likewise.
8900         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
8901         * config/i386/winnt.c: Likewise.
8903 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
8905         PR middle-end/66429
8906         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
8907         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
8908         and has_force_vectorize_loops flags from cfun into
8909         child_cfun.
8910         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
8911         if simduid is non-NULL.
8912         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
8913         * passes.def (pass_simduid_cleanup): Add new pass after loop
8914         passes.
8915         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
8916         indirection from htab argument's type.
8917         (shrink_simd_arrays): New function.
8918         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
8919         Don't call adjust_simduid_builtins if there are no loops.
8920         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
8921         (pass_simduid_cleanup::execute): New method.
8922         (make_pass_simduid_cleanup): New function.
8924 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
8926         * tree-core.h (tree_target_option): Make opts field a pointer to a
8927         cl_target_option instead of an instance of the struct.
8928         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
8929         the structure.
8930         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
8931         TARGET_OPTION_NODE.
8932         (copy_node_stat): Allocate and copy struct cl_target_option.
8934 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
8936         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
8937         Remove conditional exposure of prototypes.
8938         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
8939         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
8940         definitions in tree.h with functions.
8941         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
8942         anon_aggrname_p.
8943         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
8945 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
8947         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
8948         (*cmp<mode>_signed): ... this.
8949         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
8950         (*cmp<mode>_unsigned): ... this.  Remove %b.
8952 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
8954         * coretypes.h: Include input.h and as-a.h.
8955         * rtl.h: Include input.h and as-a.h for generator files.
8956         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
8957         * vec.c: Don't include diagnostic-core.h.
8958         * alias.c: Do not include input.h, line-map.h or is-a.h.
8959         * asan.c: Likewise.
8960         * attribs.c: Likewise.
8961         * auto-inc-dec.c: Likewise.
8962         * auto-profile.c: Likewise.
8963         * bb-reorder.c: Likewise.
8964         * bt-load.c: Likewise.
8965         * builtins.c: Likewise.
8966         * caller-save.c: Likewise.
8967         * calls.c: Likewise.
8968         * ccmp.c: Likewise.
8969         * cfg.c: Likewise.
8970         * cfganal.c: Likewise.
8971         * cfgbuild.c: Likewise.
8972         * cfgcleanup.c: Likewise.
8973         * cfgexpand.c: Likewise.
8974         * cfghooks.c: Likewise.
8975         * cfgloop.c: Likewise.
8976         * cfgloop.h: Likewise.
8977         * cfgloopanal.c: Likewise.
8978         * cfgloopmanip.c: Likewise.
8979         * cfgrtl.c: Likewise.
8980         * cgraph.c: Likewise.
8981         * cgraphbuild.c: Likewise.
8982         * cgraphclones.c: Likewise.
8983         * cgraphunit.c: Likewise.
8984         * cilk-common.c: Likewise.
8985         * combine-stack-adj.c: Likewise.
8986         * combine.c: Likewise.
8987         * compare-elim.c: Likewise.
8988         * convert.c: Likewise.
8989         * coverage.c: Likewise.
8990         * cppbuiltin.c: Likewise.
8991         * cprop.c: Likewise.
8992         * cse.c: Likewise.
8993         * cselib.c: Likewise.
8994         * data-streamer-in.c: Likewise.
8995         * data-streamer-out.c: Likewise.
8996         * data-streamer.c: Likewise.
8997         * dbxout.c: Likewise.
8998         * dce.c: Likewise.
8999         * ddg.c: Likewise.
9000         * debug.c: Likewise.
9001         * df-core.c: Likewise.
9002         * df-problems.c: Likewise.
9003         * df-scan.c: Likewise.
9004         * df.h: Likewise.
9005         * dfp.c: Likewise.
9006         * diagnostic-core.h: Likewise.
9007         * diagnostic.c: Likewise.
9008         * dojump.c: Likewise.
9009         * dominance.c: Likewise.
9010         * domwalk.c: Likewise.
9011         * double-int.c: Likewise.
9012         * dse.c: Likewise.
9013         * dumpfile.c: Likewise.
9014         * dumpfile.h: Likewise.
9015         * dwarf2asm.c: Likewise.
9016         * dwarf2cfi.c: Likewise.
9017         * dwarf2out.c: Likewise.
9018         * emit-rtl.c: Likewise.
9019         * et-forest.c: Likewise.
9020         * except.c: Likewise.
9021         * explow.c: Likewise.
9022         * expmed.c: Likewise.
9023         * expr.c: Likewise.
9024         * final.c: Likewise.
9025         * fixed-value.c: Likewise.
9026         * fold-const.c: Likewise.
9027         * function.c: Likewise.
9028         * fwprop.c: Likewise.
9029         * gcc-plugin.h: Likewise.
9030         * gcse.c: Likewise.
9031         * generic-match-head.c: Likewise.
9032         * ggc-page.c: Likewise.
9033         * gimple-builder.c: Likewise.
9034         * gimple-expr.c: Likewise.
9035         * gimple-fold.c: Likewise.
9036         * gimple-iterator.c: Likewise.
9037         * gimple-low.c: Likewise.
9038         * gimple-match-head.c: Likewise.
9039         * gimple-pretty-print.c: Likewise.
9040         * gimple-ssa-isolate-paths.c: Likewise.
9041         * gimple-ssa-strength-reduction.c: Likewise.
9042         * gimple-streamer-in.c: Likewise.
9043         * gimple-streamer-out.c: Likewise.
9044         * gimple-streamer.h: Likewise.
9045         * gimple-walk.c: Likewise.
9046         * gimple.c: Likewise.
9047         * gimplify-me.c: Likewise.
9048         * gimplify.c: Likewise.
9049         * godump.c: Likewise.
9050         * graph.c: Likewise.
9051         * graphite-blocking.c: Likewise.
9052         * graphite-dependences.c: Likewise.
9053         * graphite-interchange.c: Likewise.
9054         * graphite-isl-ast-to-gimple.c: Likewise.
9055         * graphite-optimize-isl.c: Likewise.
9056         * graphite-poly.c: Likewise.
9057         * graphite-scop-detection.c: Likewise.
9058         * graphite-sese-to-poly.c: Likewise.
9059         * graphite.c: Likewise.
9060         * haifa-sched.c: Likewise.
9061         * hw-doloop.c: Likewise.
9062         * ifcvt.c: Likewise.
9063         * init-regs.c: Likewise.
9064         * input.c: Likewise.
9065         * internal-fn.c: Likewise.
9066         * ipa-chkp.c: Likewise.
9067         * ipa-comdats.c: Likewise.
9068         * ipa-cp.c: Likewise.
9069         * ipa-devirt.c: Likewise.
9070         * ipa-icf-gimple.c: Likewise.
9071         * ipa-icf.c: Likewise.
9072         * ipa-inline-analysis.c: Likewise.
9073         * ipa-inline-transform.c: Likewise.
9074         * ipa-inline.c: Likewise.
9075         * ipa-polymorphic-call.c: Likewise.
9076         * ipa-profile.c: Likewise.
9077         * ipa-prop.c: Likewise.
9078         * ipa-pure-const.c: Likewise.
9079         * ipa-ref.c: Likewise.
9080         * ipa-reference.c: Likewise.
9081         * ipa-split.c: Likewise.
9082         * ipa-utils.c: Likewise.
9083         * ipa-visibility.c: Likewise.
9084         * ipa.c: Likewise.
9085         * ira-build.c: Likewise.
9086         * ira-color.c: Likewise.
9087         * ira-conflicts.c: Likewise.
9088         * ira-costs.c: Likewise.
9089         * ira-emit.c: Likewise.
9090         * ira-lives.c: Likewise.
9091         * ira.c: Likewise.
9092         * jump.c: Likewise.
9093         * langhooks.c: Likewise.
9094         * lcm.c: Likewise.
9095         * loop-doloop.c: Likewise.
9096         * loop-init.c: Likewise.
9097         * loop-invariant.c: Likewise.
9098         * loop-iv.c: Likewise.
9099         * loop-unroll.c: Likewise.
9100         * lower-subreg.c: Likewise.
9101         * lra-assigns.c: Likewise.
9102         * lra-coalesce.c: Likewise.
9103         * lra-constraints.c: Likewise.
9104         * lra-eliminations.c: Likewise.
9105         * lra-lives.c: Likewise.
9106         * lra-remat.c: Likewise.
9107         * lra-spills.c: Likewise.
9108         * lra.c: Likewise.
9109         * lto-cgraph.c: Likewise.
9110         * lto-compress.c: Likewise.
9111         * lto-opts.c: Likewise.
9112         * lto-section-in.c: Likewise.
9113         * lto-section-out.c: Likewise.
9114         * lto-streamer-in.c: Likewise.
9115         * lto-streamer-out.c: Likewise.
9116         * lto-streamer.c: Likewise.
9117         * mcf.c: Likewise.
9118         * mode-switching.c: Likewise.
9119         * modulo-sched.c: Likewise.
9120         * omega.c: Likewise.
9121         * omp-low.c: Likewise.
9122         * optabs.c: Likewise.
9123         * opts-global.c: Likewise.
9124         * opts.h: Likewise.
9125         * passes.c: Likewise.
9126         * plugin.c: Likewise.
9127         * postreload-gcse.c: Likewise.
9128         * postreload.c: Likewise.
9129         * predict.c: Likewise.
9130         * pretty-print.h: Likewise.
9131         * print-rtl.c: Likewise.
9132         * print-tree.c: Likewise.
9133         * profile.c: Likewise.
9134         * real.c: Likewise.
9135         * realmpfr.c: Likewise.
9136         * recog.c: Likewise.
9137         * ree.c: Likewise.
9138         * reg-stack.c: Likewise.
9139         * regcprop.c: Likewise.
9140         * reginfo.c: Likewise.
9141         * regrename.c: Likewise.
9142         * regstat.c: Likewise.
9143         * reload.c: Likewise.
9144         * reload1.c: Likewise.
9145         * reorg.c: Likewise.
9146         * resource.c: Likewise.
9147         * rtl-chkp.c: Likewise.
9148         * rtl-error.c: Likewise.
9149         * rtlanal.c: Likewise.
9150         * rtlhooks.c: Likewise.
9151         * sanopt.c: Likewise.
9152         * sched-deps.c: Likewise.
9153         * sched-ebb.c: Likewise.
9154         * sched-rgn.c: Likewise.
9155         * sched-vis.c: Likewise.
9156         * sdbout.c: Likewise.
9157         * sel-sched-dump.c: Likewise.
9158         * sel-sched-ir.c: Likewise.
9159         * sel-sched.c: Likewise.
9160         * sese.c: Likewise.
9161         * shrink-wrap.c: Likewise.
9162         * simplify-rtx.c: Likewise.
9163         * stack-ptr-mod.c: Likewise.
9164         * statistics.c: Likewise.
9165         * stmt.c: Likewise.
9166         * stor-layout.c: Likewise.
9167         * store-motion.c: Likewise.
9168         * streamer-hooks.c: Likewise.
9169         * stringpool.c: Likewise.
9170         * symtab.c: Likewise.
9171         * target-globals.c: Likewise.
9172         * targhooks.c: Likewise.
9173         * toplev.c: Likewise.
9174         * tracer.c: Likewise.
9175         * trans-mem.c: Likewise.
9176         * tree-affine.c: Likewise.
9177         * tree-browser.c: Likewise.
9178         * tree-call-cdce.c: Likewise.
9179         * tree-cfg.c: Likewise.
9180         * tree-cfgcleanup.c: Likewise.
9181         * tree-chkp-opt.c: Likewise.
9182         * tree-chkp.c: Likewise.
9183         * tree-chrec.c: Likewise.
9184         * tree-complex.c: Likewise.
9185         * tree-data-ref.c: Likewise.
9186         * tree-dfa.c: Likewise.
9187         * tree-diagnostic.c: Likewise.
9188         * tree-dump.c: Likewise.
9189         * tree-eh.c: Likewise.
9190         * tree-emutls.c: Likewise.
9191         * tree-if-conv.c: Likewise.
9192         * tree-inline.c: Likewise.
9193         * tree-into-ssa.c: Likewise.
9194         * tree-iterator.c: Likewise.
9195         * tree-loop-distribution.c: Likewise.
9196         * tree-nested.c: Likewise.
9197         * tree-nrv.c: Likewise.
9198         * tree-object-size.c: Likewise.
9199         * tree-outof-ssa.c: Likewise.
9200         * tree-parloops.c: Likewise.
9201         * tree-phinodes.c: Likewise.
9202         * tree-predcom.c: Likewise.
9203         * tree-pretty-print.c: Likewise.
9204         * tree-profile.c: Likewise.
9205         * tree-scalar-evolution.c: Likewise.
9206         * tree-sra.c: Likewise.
9207         * tree-ssa-address.c: Likewise.
9208         * tree-ssa-alias.c: Likewise.
9209         * tree-ssa-ccp.c: Likewise.
9210         * tree-ssa-coalesce.c: Likewise.
9211         * tree-ssa-copy.c: Likewise.
9212         * tree-ssa-copyrename.c: Likewise.
9213         * tree-ssa-dce.c: Likewise.
9214         * tree-ssa-dom.c: Likewise.
9215         * tree-ssa-dse.c: Likewise.
9216         * tree-ssa-forwprop.c: Likewise.
9217         * tree-ssa-ifcombine.c: Likewise.
9218         * tree-ssa-live.c: Likewise.
9219         * tree-ssa-loop-ch.c: Likewise.
9220         * tree-ssa-loop-im.c: Likewise.
9221         * tree-ssa-loop-ivcanon.c: Likewise.
9222         * tree-ssa-loop-ivopts.c: Likewise.
9223         * tree-ssa-loop-manip.c: Likewise.
9224         * tree-ssa-loop-niter.c: Likewise.
9225         * tree-ssa-loop-prefetch.c: Likewise.
9226         * tree-ssa-loop-unswitch.c: Likewise.
9227         * tree-ssa-loop.c: Likewise.
9228         * tree-ssa-math-opts.c: Likewise.
9229         * tree-ssa-operands.c: Likewise.
9230         * tree-ssa-phiopt.c: Likewise.
9231         * tree-ssa-phiprop.c: Likewise.
9232         * tree-ssa-pre.c: Likewise.
9233         * tree-ssa-propagate.c: Likewise.
9234         * tree-ssa-reassoc.c: Likewise.
9235         * tree-ssa-sccvn.c: Likewise.
9236         * tree-ssa-scopedtables.c: Likewise.
9237         * tree-ssa-sink.c: Likewise.
9238         * tree-ssa-strlen.c: Likewise.
9239         * tree-ssa-structalias.c: Likewise.
9240         * tree-ssa-tail-merge.c: Likewise.
9241         * tree-ssa-ter.c: Likewise.
9242         * tree-ssa-threadedge.c: Likewise.
9243         * tree-ssa-threadupdate.c: Likewise.
9244         * tree-ssa-uncprop.c: Likewise.
9245         * tree-ssa-uninit.c: Likewise.
9246         * tree-ssa.c: Likewise.
9247         * tree-ssanames.c: Likewise.
9248         * tree-stdarg.c: Likewise.
9249         * tree-streamer-in.c: Likewise.
9250         * tree-streamer-out.c: Likewise.
9251         * tree-streamer.c: Likewise.
9252         * tree-switch-conversion.c: Likewise.
9253         * tree-tailcall.c: Likewise.
9254         * tree-vect-data-refs.c: Likewise.
9255         * tree-vect-generic.c: Likewise.
9256         * tree-vect-loop-manip.c: Likewise.
9257         * tree-vect-loop.c: Likewise.
9258         * tree-vect-patterns.c: Likewise.
9259         * tree-vect-slp.c: Likewise.
9260         * tree-vect-stmts.c: Likewise.
9261         * tree-vectorizer.c: Likewise.
9262         * tree-vrp.c: Likewise.
9263         * tree.c: Likewise.
9264         * tsan.c: Likewise.
9265         * ubsan.c: Likewise.
9266         * valtrack.c: Likewise.
9267         * value-prof.c: Likewise.
9268         * var-tracking.c: Likewise.
9269         * varasm.c: Likewise.
9270         * varpool.c: Likewise.
9271         * vmsdbgout.c: Likewise.
9272         * vtable-verify.c: Likewise.
9273         * web.c: Likewise.
9274         * wide-int.cc: Likewise.
9275         * xcoffout.c: Likewise.
9276         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
9277         * common/common-targhooks.c: Likewise.
9278         * config/aarch64/aarch64-builtins.c: Likewise.
9279         * config/aarch64/aarch64.c: Likewise.
9280         * config/alpha/alpha.c: Likewise.
9281         * config/arc/arc.c: Likewise.
9282         * config/arm/aarch-common.c: Likewise.
9283         * config/arm/arm-builtins.c: Likewise.
9284         * config/arm/arm-c.c: Likewise.
9285         * config/arm/arm.c: Likewise.
9286         * config/avr/avr-c.c: Likewise.
9287         * config/avr/avr-log.c: Likewise.
9288         * config/avr/avr.c: Likewise.
9289         * config/bfin/bfin.c: Likewise.
9290         * config/c6x/c6x.c: Likewise.
9291         * config/cr16/cr16.c: Likewise.
9292         * config/cris/cris.c: Likewise.
9293         * config/darwin-c.c: Likewise.
9294         * config/darwin.c: Likewise.
9295         * config/default-c.c: Likewise.
9296         * config/epiphany/epiphany.c: Likewise.
9297         * config/epiphany/mode-switch-use.c: Likewise.
9298         * config/epiphany/resolve-sw-modes.c: Likewise.
9299         * config/fr30/fr30.c: Likewise.
9300         * config/frv/frv.c: Likewise.
9301         * config/ft32/ft32.c: Likewise.
9302         * config/glibc-c.c: Likewise.
9303         * config/h8300/h8300.c: Likewise.
9304         * config/i386/i386-c.c: Likewise.
9305         * config/i386/i386.c: Likewise.
9306         * config/i386/msformat-c.c: Likewise.
9307         * config/i386/winnt-cxx.c: Likewise.
9308         * config/i386/winnt-stubs.c: Likewise.
9309         * config/i386/winnt.c: Likewise.
9310         * config/ia64/ia64-c.c: Likewise.
9311         * config/ia64/ia64.c: Likewise.
9312         * config/iq2000/iq2000.c: Likewise.
9313         * config/lm32/lm32.c: Likewise.
9314         * config/m32c/m32c-pragma.c: Likewise.
9315         * config/m32c/m32c.c: Likewise.
9316         * config/m32r/m32r.c: Likewise.
9317         * config/m68k/m68k.c: Likewise.
9318         * config/mcore/mcore.c: Likewise.
9319         * config/mep/mep-pragma.c: Likewise.
9320         * config/mep/mep.c: Likewise.
9321         * config/microblaze/microblaze-c.c: Likewise.
9322         * config/microblaze/microblaze.c: Likewise.
9323         * config/mips/mips.c: Likewise.
9324         * config/mmix/mmix.c: Likewise.
9325         * config/mn10300/mn10300.c: Likewise.
9326         * config/moxie/moxie.c: Likewise.
9327         * config/msp430/msp430-c.c: Likewise.
9328         * config/msp430/msp430.c: Likewise.
9329         * config/nds32/nds32-cost.c: Likewise.
9330         * config/nds32/nds32-fp-as-gp.c: Likewise.
9331         * config/nds32/nds32-intrinsic.c: Likewise.
9332         * config/nds32/nds32-isr.c: Likewise.
9333         * config/nds32/nds32-md-auxiliary.c: Likewise.
9334         * config/nds32/nds32-memory-manipulation.c: Likewise.
9335         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
9336         * config/nds32/nds32-predicates.c: Likewise.
9337         * config/nds32/nds32.c: Likewise.
9338         * config/nios2/nios2.c: Likewise.
9339         * config/nvptx/nvptx.c: Likewise.
9340         * config/pa/pa.c: Likewise.
9341         * config/pdp11/pdp11.c: Likewise.
9342         * config/rl78/rl78-c.c: Likewise.
9343         * config/rl78/rl78.c: Likewise.
9344         * config/rs6000/rs6000-c.c: Likewise.
9345         * config/rs6000/rs6000.c: Likewise.
9346         * config/rx/rx.c: Likewise.
9347         * config/s390/s390-c.c: Likewise.
9348         * config/s390/s390.c: Likewise.
9349         * config/sh/sh-c.c: Likewise.
9350         * config/sh/sh-mem.cc: Likewise.
9351         * config/sh/sh.c: Likewise.
9352         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
9353         * config/sh/sh_treg_combine.cc: Likewise.
9354         * config/sol2-c.c: Likewise.
9355         * config/sol2-cxx.c: Likewise.
9356         * config/sol2-stubs.c: Likewise.
9357         * config/sol2.c: Likewise.
9358         * config/sparc/sparc-c.c: Likewise.
9359         * config/sparc/sparc.c: Likewise.
9360         * config/spu/spu-c.c: Likewise.
9361         * config/spu/spu.c: Likewise.
9362         * config/stormy16/stormy16.c: Likewise.
9363         * config/tilegx/mul-tables.c: Likewise.
9364         * config/tilegx/tilegx-c.c: Likewise.
9365         * config/tilegx/tilegx.c: Likewise.
9366         * config/tilepro/mul-tables.c: Likewise.
9367         * config/tilepro/tilepro-c.c: Likewise.
9368         * config/tilepro/tilepro.c: Likewise.
9369         * config/v850/v850-c.c: Likewise.
9370         * config/v850/v850.c: Likewise.
9371         * config/vax/vax.c: Likewise.
9372         * config/visium/visium.c: Likewise.
9373         * config/vms/vms-c.c: Likewise.
9374         * config/vms/vms.c: Likewise.
9375         * config/vxworks.c: Likewise.
9376         * config/winnt-c.c: Likewise.
9377         * config/xtensa/xtensa.c: Likewise.
9379 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
9381         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
9382         function.
9383         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
9385 2015-06-17  Richard Biener  <rguenther@suse.de>
9387         PR tree-optimization/66251
9388         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
9389         stmts for SLP strided stores.
9391         Revert
9392         2015-05-22  Richard Biener  <rguenther@suse.de>
9394         PR tree-optimization/66251
9395         * tree-vect-stmts.c (vectorizable_conversion): Properly
9396         set STMT_VINFO_VEC_STMT even for the SLP case.
9398         2015-05-26  Michael Matz  <matz@suse.de>
9400         PR middle-end/66251
9401         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
9402         STMT_VINFO_VEC_STMT, also with SLP.
9404 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
9406         PR target/56766
9407         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
9408         (*avx_addsubv4df3_1s): Ditto.
9409         (*sse3_addsubv2df3_1): Ditto.
9410         (*sse3_addsubv2df3_1s): Ditto.
9411         (*avx_addsubv8sf3_1): Ditto.
9412         (*avx_addsubv8sf3_1s): Ditto.
9413         (*sse3_addsubv4sf3_1): Ditto.
9414         (*sse3_addsubv4sf3_1s): Ditto.
9416 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
9418         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
9419         (SYSROOT_SUFFIX_SPEC): Update.
9420         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
9421         (STARTFILE_PREFIX_SPEC): Update.
9422         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
9423         (MULTILIB_REQUIRED): New.
9424         (MULTILIB_OSDIRNAMES): New.
9425         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
9426         (MULTILIB_REQUIRED): New.
9427         (MULTILIB_OSDIRNAMES): New.
9429 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
9431         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
9432         * config/aarch64/aarch64-options-extensions.def: Update "fP",
9433         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
9434         * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
9435         (AARCH64_FL_PAN): New.
9436         (AARCH64_FL_LOR): New.
9437         (AARCH64_FL_RDMA): New.
9438         (AARCH64_FL_FOR_ARCH8_1): New.
9439         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
9440         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
9442 2015-06-16  Martin Liska  <mliska@suse.cz>
9444         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
9445         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
9446         guard.
9448 2015-06-16  Richard Biener  <rguenther@suse.de>
9450         * tree-vect-stmts.c (vectorizable_store): Adjust.
9451         (vectorizable_load): Likewise.
9452         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
9453         Simplify.
9454         (vect_create_data_ref_ptr): Likewise.
9455         (bump_vector_ptr): Adjust.
9457 2015-06-16  Richard Biener  <rguenther@suse.de>
9459         * tree-vect-stmts.c (vectorizable_load): Properly start loads
9460         with the first element if this is grouped loads.
9462 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
9464         * config/arm/arm-protos.h (struct tune_params): Rename
9465         log_op_non_sc to log_op_non_short_circuit, and rename enum
9466         values to expand SC to SHORT_CIRCUIT.
9467         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
9468         to LOG_OP_NON_SHORT_CIRCUIT.
9469         (arm_fastmul_tune):Likewise
9470         (arm_strongarm_tune): Likewise.
9471         (arm_xscale_tune): Likewise.
9472         (arm_9e_tune): Likewise.
9473         (arm_marvell_pj4_tune): Likewise.
9474         (arm_v6t2_tune): Likewise.
9475         (arm_cortex_tune): Likewise.
9476         (arm_cortex_a8_tune): Likewise.
9477         (arm_cortex_a7_tune): Likewise.
9478         (arm_cortex_a15_tune): Likewise.
9479         (arm_cortex_a53_tune): Likewise.
9480         (arm_cortex_a57_tune): Likewise.
9481         (arm_xgene1_tune): Likewise.
9482         (arm_cortex_a5_tune): Likewise.
9483         (arm_cortex_a9_tune): Likewise.
9484         (arm_cortex_a12_tune): Likewise.
9485         (arm_v7m_tune): Likewise.
9486         (arm_cortex_m7_tune): Likewise.
9487         (arm_v6m_tune): Likewise.
9488         (arm_fa726te_tune): Likewise.
9490 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
9492         * altivec.md: Delete UNSPEC_VMLADDUHM.
9493         (mulv4si3_p8): New pattern.
9494         (mulv4si3): Use it for POWER8.
9495         (mulv8hi3): Use vmladduhm with zero addend.
9496         (altivec_vmladduhm): Descriptive RTL.
9498 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
9500         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
9501         to use neon_move instead of mov_imm.
9502         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
9503         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
9505         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
9506         aarch64_float_const_zero_rtx_p check before TFmode check.
9507         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
9508         an fp zero.
9509         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
9510         code and attributes to match.  Change condition from register_operand
9511         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
9512         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
9513         to store2.
9515 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
9517         PR debug/66535
9518         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
9519         there is no parent.
9521 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
9523         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
9524         HOST_WIDE_INT parameter.
9526 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
9528         PR ipa/66181
9529         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
9530         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
9531         TYPE_NO_FORCE_BLK.
9532         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
9534 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
9536         * rtl.h (classify_insn): Declare.
9537         * emit-rtl.c (classify_insn): Move to...
9538         * rtl.c: ...here and add generator support.
9539         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
9540         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
9541         * genemit.c (gen_emit_seq): New function.
9542         (gen_expand, gen_split): Use it.
9544 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
9546         * tree.c (make_vector_stat): Fix comment to state that the
9547         function returns a VECTOR_CST.
9549 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
9551         * gensupport.h (add_implicit_parallel): Declare.
9552         * genrecog.c (add_implicit_parallel): Move to...
9553         * gensupport.c (add_implicit_parallel): ...here.
9554         (process_one_cond_exec): Use it.
9555         * genemit.c (gen_insn): Likewise.
9557 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
9559         PR bootstrap/66448
9560         * passes.c (rest_of_decl_compilation): Do not register globals for
9561         early debug if they are declared in built-ins.
9563 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
9565         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
9567 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9569         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
9570         manually swapping.
9571         (noce_try_cmove_arith): Likewise.
9572         (noce_get_alt_condition): Likewise.
9574 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
9576         * common/config/i386/i386-common.c
9577         (OPTION_MASK_ISA_MWAITX_SET): New.
9578         (ix86_handle_option): Handle mwaitx.
9579         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
9580         (x86_64-*-*): Likewise.
9581         * config/i386/mwaitxintrin.h: New header.
9582         * config/i386/cpuid.h (bit_MWAITX):  Define.
9583         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
9584         MWAITX support.
9585         * config/i386/i386.opt (mwaitx): New.
9586         * config/i386/i386-builtin-types.def
9587         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
9588         * config/i386/i386-c.c: Define __MWAITX__ if needed.
9589         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
9590         (PTA_MWAITX): New.
9591         (ix86_option_override_internal): Handle new option.
9592         (processor_alias_table): Added PTA_MWAITX.
9593         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
9594         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
9595         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
9596         IX86_BUILTIN_MONITORX  built-ins.
9597         * config/i386/i386.h (TARGET_MWAITX): New.
9598         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
9599         UNSPEC_MONITORX.
9600         (mwaitx):  New pattern.
9601         (monitorx_<mode>): New pattern.
9602         * config/i386/x86intrin.h: Include mwaitxintrin.h.
9603         * doc/extend.texi: Document monitorx and mwaitx builtins.
9604         * doc/invoke.texi: Document -mmwaitx option.
9606 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
9608         * emit-rtl.c (need_atomic_barrier_p): Mask model with
9609         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
9611 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
9613         * dbxout.c (xcoff_debug_hooks): Provide a function for
9614         register_main_translation_unit hook.
9616 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
9618         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
9619         variants cases from switch.
9620         (rs6000_post_atomic_barrier): Same.
9621         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
9622         (rs6000_expand_atomic_exchange): Same.
9623         (rs6000_expand_atomic_op): Same.
9624         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
9625         SYNC variants cases from switch.
9626         (atomic_load): Same.
9627         (atomic_store): Same.
9629 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
9631         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
9632         CONST_INT for goto.
9634 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
9636         PR bootstrap/66448
9637         * dwarf2out.c (check_die): Check for common duplicate attributes.
9638         (add_location_or_const_value_attribute): Do not add duplicate
9639         attributes.
9640         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
9641         time around.
9642         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
9643         (gen_type_die_with_usage): Call check_die.
9644         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
9646 2015-06-11  Jason Merrill  <jason@redhat.com>
9648         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
9649         dies.
9651 2015-06-11  Marek Polacek  <polacek@redhat.com>
9653         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
9655 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
9657         PR bootstrap/66252
9658         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
9659         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
9660         (*addx_extend_sp32): Fix pasto.
9661         (*subx_extend): Rename into...
9662         (*subx_extend_sp32): ...this.
9663         (*adddi3_extend_sp32): Add earlyclobber.
9664         (*subdi3_insn_sp32): Likewise.
9665         (*subdi3_extend_sp32): Likewise.
9666         (*and_not_di_sp32): Likewise.
9667         (*or_not_di_sp32): Likewise.
9668         (*xor_not_di_sp32): Likewise.
9669         (*negdi2_sp32): Likewise.
9670         (*one_cmpldi2_sp32): Likewise.
9672 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
9674         * debug.h (struct gcc_debug_hooks): Add a
9675         register_main_translation_unit hook.
9676         * debug.c (do_nothing_debug_hooks): Provide a function for this
9677         new hook.
9678         * dbxout.c (dbx_debug_hooks): Likewise.
9679         * sdbout.c (sdb_debug_hooks): Likewise.
9680         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
9681         * dwarf2out.c (main_translation_unit): New global variable.
9682         (dwarf2out_register_main_translation_unit): New function
9683         implementing the new hook.
9684         (dwarf2_debug_hooks): Assign
9685         dwarf2out_register_main_translation_unit to this new hook.
9686         (dwarf2out_init): Associate any main translation unit to
9687         comp_unit_die ().
9689 2015-06-11  Marek Polacek  <polacek@redhat.com>
9691         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
9693 2015-06-11  Marek Polacek  <polacek@redhat.com>
9695         * match.pd: Use single_use throughout.
9697 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9699         * config/arm/arm.c (arm_option_params_internal): When optimising
9700         for speed set max_insns_skipped when arm_restrict_it.
9702 2015-06-11  Christian Bruel  <christian.bruel@st.com>
9704         PR target/52144
9705         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
9706          macros in ...
9707         (arm_cpu_builtins): New function.
9708         (arm_pragma_target_parse): Call arm_cpu_builtins.
9709         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
9710         (arm_register_target_pragmas): Likewise.
9711         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
9712          Call arm_register_target_pragmas.
9713         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
9714         (arm_pragma_target_parse): Likewise.
9716 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
9718         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
9719         of the second operand.
9721 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
9723         PR target/66473
9724         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
9725         to prepare mask operand for AVX512 modes.
9727 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
9729         PR target/66474
9730         * doc/md.texi (Machine Constraints): Document that on the PowerPC
9731         if you use a constraint that targets a VSX register, you must use
9732         %x<n> in the template.
9734 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
9736         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
9737         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
9738         (define_insn "trap"): New definition.
9740 2015-06-10  Richard Biener  <rguenther@suse.de>
9742         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
9743         out from ...
9744         (vect_supported_load_permutation_p): ... here.  Handle
9745         supportable permutations in reductions.
9746         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
9747         for vectorizing strided group loads.
9749 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
9751         PR target/66470
9752         * config/i386/i386.c (ix86_split_long_move): For collisions
9753         involving direct tls segment refs, move the UNSPEC_TP possibly
9754         wrapped in ZERO_EXTEND out of the address for lea, to each of
9755         the memory loads.
9757 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9759         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
9760         dmb sy. Adjust tabs.
9762 2015-06-10  Tom de Vries  <tom@codesourcery.com>
9764         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
9766 2015-06-10  Martin Liska  <mliska@suse.cz>
9768         PR bootstrap/66471
9769         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
9770         all enum values in mem_alloc_origin.
9771         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
9772         name.
9773         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
9774         * bitmap.c (bitmap_register): Likewise.
9775         (dump_bitmap_statistics): Likewise.
9776         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
9777         (ggc_record_overhead): Likewise.
9778         * hash-map.h: Likewise.
9779         * hash-set.h: Likewise.
9780         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
9781         * hash-table.h: Likewise.
9782         * vec.c (vec_prefix::register_overhead): Likewise.
9783         (vec_prefix::release_overhead): Likewise.
9784         (dump_vec_loc_statistics): Likewise.
9786 2015-06-09  Christian Bruel  <christian.bruel@st.com>
9788         PR target/52144
9789         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
9790         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
9791         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
9792         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
9793         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
9794         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
9795         (arm_valid_target_attribute_p): Likewise.
9796         (arm_set_current_function, arm_can_inline_p): Likewise.
9797         (arm_valid_target_attribute_rec): Likewise.
9798         (arm_previous_fndecl): New variable.
9799         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
9800         (TARGET_CAN_INLINE_P): Define.
9801         (arm_asm_trampoline_template): Emit mode.
9802         (arm_file_start): Don't set unified syntax.
9803         (arm_declare_function_name): Set unified syntax and mode.
9804         (arm_option_override): Init target_option_default_node.
9805         and target_option_current_node.
9806         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
9807         (*call_symbol): Likewise.
9808         * doc/extend.texi: Document ARM/Thumb target attribute.
9809         * doc/invoke.texi: Likewise.
9811 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
9813         Revert:
9814         2015-06-09  Alexandre Oliva <aoliva@redhat.com>
9815         PR rtl-optimization/64164
9816         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
9817         * tree-ssa-copyrename.c: Removed.
9818         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
9819         -ftree-coalesce-vars.
9820         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
9821         * common.opt (ftree-copyrename): Ignore.
9822         (ftree-coalesce-inlined-vars): Likewise.
9823         * doc/invoke.texi: Remove the ignored options above.
9824         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
9825         * tree-ssa-coalesce.h: ... here.
9826         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
9827         headers required by it.
9828         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
9829         across variables when flag_tree_coalesce_vars.  Check register
9830         use and promoted modes to allow coalescing.  Moved to
9831         tree-ssa-coalesce.c.
9832         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
9833         with its member functions to tree-ssa-coalesce.c.
9834         (var_map_base_init): Likewise.  Renamed to
9835         compute_samebase_partition_bases.
9836         (partition_view_normal): Drop want_bases parameter.
9837         (partition_view_bitmap): Likewise.
9838         * tree-ssa-live.h: Adjust declarations.
9839         * tree-ssa-coalesce.c: Include explow.h.
9840         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
9841         default defs at the entry point.
9842         (dump_part_var_map): New.
9843         (compute_optimized_partition_bases): New, called by...
9844         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
9845         of compute_samebase_partition_bases.  Adjust.
9846         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
9847         * cfgexpand.c (leader_merge): New.
9848         (get_rtl_for_parm_ssa_default_def): New.
9849         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
9850         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
9851         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
9852         redundant MEM attr setting.
9853         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
9854         from...
9855         (expand_one_stack_var): ... this.  New wrapper to check and
9856         skip already expanded SSA partitions.
9857         (record_alignment_for_reg_var): New, factored out of...
9858         (expand_one_var): ... this.
9859         (expand_one_ssa_partition): New.
9860         (adjust_one_expanded_partition_var): New.
9861         (expand_one_register_var): Check and skip already expanded SSA
9862         partitions.
9863         (expand_used_vars): Don't create DECLs for anonymous SSA
9864         names.  Expand all SSA partitions, then adjust all SSA names.
9865         (pass::execute): Replace the loops that set
9866         SA.partition_to_pseudo from partition leaders and cleared
9867         DECL_RTL for multi-location variables, and that which used to
9868         rename vars and set attrs, with one that clears DECL_RTL and
9869         checks that PARMs and RESULTs default_defs match DECL_RTL.
9870         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
9871         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
9872         * explow.c (promote_ssa_mode): New.
9873         * explow.h (promote_ssa_mode): Declare.
9874         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
9875         * function.c: Include cfgexpand.h.
9876         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
9877         (use_register_for_parm_decl): Wrapper for the above to
9878         special-case the result_ptr.
9879         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
9880         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
9881         multiple locations.
9882         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
9883         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
9884         (assign_parm_setup_block): Prefer SSA-assigned location.
9885         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
9886         if stack_parm is NULL.
9887         (assign_parm_setup_stack): Prefer SSA-assigned location.
9888         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
9889         rtl before testing for pointer bounds.  Special-case result_ptr.
9890         (expand_function_start): Maybe reset DECL_RTL of result.
9891         Prefer SSA-assigned location for result and static chain.
9892         Factor out DECL_RESULT and SET_DECL_RTL.
9893         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
9894         anonymous SSA names.  Use promote_ssa_mode.
9895         (get_temp_reg): Likewise.
9896         (remove_ssa_form): Adjust.
9897         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
9898         and get its reg_usage for reg invalidation.
9899         (compute_bb_dataflow): Pass it insn.
9900         (emit_notes_in_bb): Likewise.
9901         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
9902         fail assert on conversion between unsigned types.
9904 2015-06-09  Tom de Vries  <tom@codesourcery.com>
9906         PR tree-optimization/65460
9907         * omp-low.c (expand_omp_target): Set parallelized_function on
9908         cgraph_node for child_fn.
9910 2015-06-09  Tom de Vries  <tom@codesourcery.com>
9912         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
9913         parallelized_function before add_new_function.
9915 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
9917         * gcc-plugin.h: Move decls to plugin.h and include it.
9918         * plugin.h: Relocate decls from gcc-plugin.h
9919         * ggc-page.c: Include required header files.
9920         * passes.c: Likewise.
9921         * cgraphunit.c: Likewise.
9923 2015-06-09  Tom de Vries  <tom@codesourcery.com>
9925         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
9927 2015-06-09  Jason Merrill  <jason@redhat.com>
9929         PR bootstrap/66448
9930         * toplev.c (check_global_declaration): Don't warn about a clone.
9932 2015-06-09  Marek Polacek  <polacek@redhat.com>
9934         PR tree-optimization/66299
9935         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
9936         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
9937         patterns.
9939 2015-06-09  Richard Biener  <rguenther@suse.de>
9941         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
9942         (vect_analyze_slp_instance): Instead do not falsely drop
9943         load permutations.
9945 2015-06-09  Richard Biener  <rguenther@suse.de>
9947         PR middle-end/66423
9948         * match.pd: Handle A % (unsigned)(1 << B).
9950 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
9952         * varasm.c (output_object_block_htab): Remove.
9953         (output_object_block_compare): New.
9954         (output_object_blocks): Sort named object_blocks before outputting
9955         them.
9957 2015-06-09  Richard Biener  <rguenther@suse.de>
9959         PR tree-optimization/66419
9960         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
9961         consider GROUP_GAP when detecting a perfect subchain.
9963 2015-06-09  Nick Clifton  <nickc@redhat.com>
9965         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
9966         place read only data in the .frodata section.
9968 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
9970         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
9971         (atomic_store<mode>): Likewise.
9973 2015-06-09  Richard Biener  <rguenther@suse.de>
9975         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
9977 2015-06-09  Richard Biener  <rguenther@suse.de>
9979         PR middle-end/66413
9980         * tree-inline.c (insert_init_debug_bind): Unshare value.
9982 2015-06-09  Richard Biener  <rguenther@suse.de>
9984         PR tree-optimization/66396
9985         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
9986         Rename virtual operands.
9988 2015-06-09  Tom de Vries  <tom@codesourcery.com>
9990         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
9991         always return false.
9993 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
9995         PR rtl-optimization/64164
9996         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
9997         * tree-ssa-copyrename.c: Removed.
9998         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
9999         -ftree-coalesce-vars.
10000         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
10001         * common.opt (ftree-copyrename): Ignore.
10002         (ftree-coalesce-inlined-vars): Likewise.
10003         * doc/invoke.texi: Remove the ignored options above.
10004         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
10005         * tree-ssa-coalesce.h: ... here.
10006         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
10007         headers required by it.
10008         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
10009         across variables when flag_tree_coalesce_vars.  Check register
10010         use and promoted modes to allow coalescing.  Moved to
10011         tree-ssa-coalesce.c.
10012         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
10013         with its member functions to tree-ssa-coalesce.c.
10014         (var_map_base_init): Likewise.  Renamed to
10015         compute_samebase_partition_bases.
10016         (partition_view_normal): Drop want_bases parameter.
10017         (partition_view_bitmap): Likewise.
10018         * tree-ssa-live.h: Adjust declarations.
10019         * tree-ssa-coalesce.c: Include explow.h.
10020         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
10021         default defs at the entry point.
10022         (dump_part_var_map): New.
10023         (compute_optimized_partition_bases): New, called by...
10024         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
10025         of compute_samebase_partition_bases.  Adjust.
10026         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
10027         * cfgexpand.c (leader_merge): New.
10028         (get_rtl_for_parm_ssa_default_def): New.
10029         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
10030         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
10031         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
10032         redundant MEM attr setting.
10033         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
10034         from...
10035         (expand_one_stack_var): ... this.  New wrapper to check and
10036         skip already expanded SSA partitions.
10037         (record_alignment_for_reg_var): New, factored out of...
10038         (expand_one_var): ... this.
10039         (expand_one_ssa_partition): New.
10040         (adjust_one_expanded_partition_var): New.
10041         (expand_one_register_var): Check and skip already expanded SSA
10042         partitions.
10043         (expand_used_vars): Don't create DECLs for anonymous SSA
10044         names.  Expand all SSA partitions, then adjust all SSA names.
10045         (pass::execute): Replace the loops that set
10046         SA.partition_to_pseudo from partition leaders and cleared
10047         DECL_RTL for multi-location variables, and that which used to
10048         rename vars and set attrs, with one that clears DECL_RTL and
10049         checks that PARMs and RESULTs default_defs match DECL_RTL.
10050         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
10051         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
10052         * explow.c (promote_ssa_mode): New.
10053         * explow.h (promote_ssa_mode): Declare.
10054         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
10055         * function.c: Include cfgexpand.h.
10056         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
10057         (use_register_for_parm_decl): Wrapper for the above to
10058         special-case the result_ptr.
10059         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
10060         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
10061         multiple locations.
10062         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
10063         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
10064         (assign_parm_setup_block): Prefer SSA-assigned location.
10065         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
10066         if stack_parm is NULL.
10067         (assign_parm_setup_stack): Prefer SSA-assigned location.
10068         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
10069         rtl before testing for pointer bounds.  Special-case result_ptr.
10070         (expand_function_start): Maybe reset DECL_RTL of result.
10071         Prefer SSA-assigned location for result and static chain.
10072         Factor out DECL_RESULT and SET_DECL_RTL.
10073         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
10074         anonymous SSA names.  Use promote_ssa_mode.
10075         (get_temp_reg): Likewise.
10076         (remove_ssa_form): Adjust.
10077         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
10078         and get its reg_usage for reg invalidation.
10079         (compute_bb_dataflow): Pass it insn.
10080         (emit_notes_in_bb): Likewise.
10081         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
10082         fail assert on conversion between unsigned types.
10084 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
10086         PR debug/58315
10087         * tree-inline.c (reset_debug_binding): New.
10088         (reset_debug_bindings): Likewise.
10089         (expand_call_inline): Call it.
10091 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
10093         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
10094         TYPE_STRING_FLAG.
10096 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
10098         * lto-streamer-out.c (lto_output_location): Stream
10099         reserved locations correctly.
10100         * lto-streamer-in.c (lto_output_location): Likewise.
10102 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
10104         * coretypes.h: Include hash-table.h and hash-set.h for host files.
10105         * ggc.h: Don't include statistics.h>
10106         * hash-map.h: Remove all includes.
10107         * hash-set.h: Likewise.
10108         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
10109         the include list. Remove <new>.
10110         * inchash.h: Remove all includes.
10111         * mem-stats.h: Likewise.
10112         * vec.h: No special processing for generators or ggc.
10113         * alias.c : Adjust include files.
10114         * alloc-pool.c : Likewise.
10115         * alloc-pool.h : Likewise.
10116         * asan.c : Likewise.
10117         * attribs.c : Likewise.
10118         * auto-inc-dec.c : Likewise.
10119         * auto-profile.c : Likewise.
10120         * bb-reorder.c : Likewise.
10121         * bitmap.c : Likewise.
10122         * bitmap.h : Likewise.
10123         * bt-load.c : Likewise.
10124         * builtins.c : Likewise.
10125         * caller-save.c : Likewise.
10126         * calls.c : Likewise.
10127         * ccmp.c : Likewise.
10128         * cfg.c : Likewise.
10129         * cfganal.c : Likewise.
10130         * cfgbuild.c : Likewise.
10131         * cfgcleanup.c : Likewise.
10132         * cfgexpand.c : Likewise.
10133         * cfghooks.c : Likewise.
10134         * cfgloop.c : Likewise.
10135         * cfgloop.h : Likewise.
10136         * cfgloopanal.c : Likewise.
10137         * cfgloopmanip.c : Likewise.
10138         * cfgrtl.c : Likewise.
10139         * cgraph.c : Likewise.
10140         * cgraphbuild.c : Likewise.
10141         * cgraphclones.c : Likewise.
10142         * cgraphunit.c : Likewise.
10143         * cilk-common.c : Likewise.
10144         * combine-stack-adj.c : Likewise.
10145         * combine.c : Likewise.
10146         * compare-elim.c : Likewise.
10147         * context.c : Likewise.
10148         * convert.c : Likewise.
10149         * coverage.c : Likewise.
10150         * cppbuiltin.c : Likewise.
10151         * cprop.c : Likewise.
10152         * cse.c : Likewise.
10153         * cselib.c : Likewise.
10154         * data-streamer-in.c : Likewise.
10155         * data-streamer-out.c : Likewise.
10156         * data-streamer.c : Likewise.
10157         * data-streamer.h : Likewise.
10158         * dbxout.c : Likewise.
10159         * dce.c : Likewise.
10160         * ddg.c : Likewise.
10161         * debug.c : Likewise.
10162         * df-core.c : Likewise.
10163         * df-problems.c : Likewise.
10164         * df-scan.c : Likewise.
10165         * df.h : Likewise.
10166         * dfp.c : Likewise.
10167         * dojump.c : Likewise.
10168         * dominance.c : Likewise.
10169         * domwalk.c : Likewise.
10170         * double-int.c : Likewise.
10171         * dse.c : Likewise.
10172         * dumpfile.c : Likewise.
10173         * dwarf2asm.c : Likewise.
10174         * dwarf2cfi.c : Likewise.
10175         * dwarf2out.c : Likewise.
10176         * emit-rtl.c : Likewise.
10177         * et-forest.c : Likewise.
10178         * except.c : Likewise.
10179         * except.h : Likewise.
10180         * explow.c : Likewise.
10181         * expmed.c : Likewise.
10182         * expr.c : Likewise.
10183         * final.c : Likewise.
10184         * fixed-value.c : Likewise.
10185         * fold-const.c : Likewise.
10186         * function.c : Likewise.
10187         * fwprop.c : Likewise.
10188         * gcc-plugin.h : Likewise.
10189         * gcc.c : Likewise.
10190         * gcse-common.c : Likewise.
10191         * gcse.c : Likewise.
10192         * genattrtab.c : Likewise.
10193         * genautomata.c : Likewise.
10194         * genconditions.c : Likewise.
10195         * genemit.c : Likewise.
10196         * generic-match-head.c : Likewise.
10197         * genextract.c : Likewise.
10198         * gengtype-state.c : Likewise.
10199         * gengtype.c : Likewise.
10200         * genhooks.c : Likewise.
10201         * genmatch.c : Likewise.
10202         * genmodes.c : Likewise.
10203         * genrecog.c : Likewise.
10204         * gensupport.c : Likewise.
10205         * ggc-common.c : Likewise.
10206         * ggc-internal.h : Likewise.
10207         * ggc-none.c : Likewise.
10208         * ggc-page.c : Likewise.
10209         * gimple-builder.c : Likewise.
10210         * gimple-expr.c : Likewise.
10211         * gimple-fold.c : Likewise.
10212         * gimple-iterator.c : Likewise.
10213         * gimple-low.c : Likewise.
10214         * gimple-match-head.c : Likewise.
10215         * gimple-pretty-print.c : Likewise.
10216         * gimple-ssa-isolate-paths.c : Likewise.
10217         * gimple-ssa-strength-reduction.c : Likewise.
10218         * gimple-ssa.h : Likewise.
10219         * gimple-streamer-in.c : Likewise.
10220         * gimple-streamer-out.c : Likewise.
10221         * gimple-streamer.h : Likewise.
10222         * gimple-walk.c : Likewise.
10223         * gimple.c : Likewise.
10224         * gimplify-me.c : Likewise.
10225         * gimplify.c : Likewise.
10226         * godump.c : Likewise.
10227         * graph.c : Likewise.
10228         * graphds.c : Likewise.
10229         * graphite-blocking.c : Likewise.
10230         * graphite-dependences.c : Likewise.
10231         * graphite-interchange.c : Likewise.
10232         * graphite-isl-ast-to-gimple.c : Likewise.
10233         * graphite-optimize-isl.c : Likewise.
10234         * graphite-poly.c : Likewise.
10235         * graphite-scop-detection.c : Likewise.
10236         * graphite-sese-to-poly.c : Likewise.
10237         * graphite.c : Likewise.
10238         * haifa-sched.c : Likewise.
10239         * hard-reg-set.h : Likewise.
10240         * hw-doloop.c : Likewise.
10241         * ifcvt.c : Likewise.
10242         * inchash.c : Likewise.
10243         * incpath.c : Likewise.
10244         * init-regs.c : Likewise.
10245         * input.c : Likewise.
10246         * internal-fn.c : Likewise.
10247         * ipa-chkp.c : Likewise.
10248         * ipa-comdats.c : Likewise.
10249         * ipa-cp.c : Likewise.
10250         * ipa-devirt.c : Likewise.
10251         * ipa-icf-gimple.c : Likewise.
10252         * ipa-icf.c : Likewise.
10253         * ipa-inline-analysis.c : Likewise.
10254         * ipa-inline-transform.c : Likewise.
10255         * ipa-inline.c : Likewise.
10256         * ipa-polymorphic-call.c : Likewise.
10257         * ipa-profile.c : Likewise.
10258         * ipa-prop.c : Likewise.
10259         * ipa-pure-const.c : Likewise.
10260         * ipa-ref.c : Likewise.
10261         * ipa-reference.c : Likewise.
10262         * ipa-split.c : Likewise.
10263         * ipa-utils.c : Likewise.
10264         * ipa-visibility.c : Likewise.
10265         * ipa.c : Likewise.
10266         * ira-build.c : Likewise.
10267         * ira-color.c : Likewise.
10268         * ira-conflicts.c : Likewise.
10269         * ira-costs.c : Likewise.
10270         * ira-emit.c : Likewise.
10271         * ira-lives.c : Likewise.
10272         * ira.c : Likewise.
10273         * jump.c : Likewise.
10274         * langhooks.c : Likewise.
10275         * lcm.c : Likewise.
10276         * libfuncs.h : Likewise.
10277         * lists.c : Likewise.
10278         * loop-doloop.c : Likewise.
10279         * loop-init.c : Likewise.
10280         * loop-invariant.c : Likewise.
10281         * loop-iv.c : Likewise.
10282         * loop-unroll.c : Likewise.
10283         * lower-subreg.c : Likewise.
10284         * lra-assigns.c : Likewise.
10285         * lra-coalesce.c : Likewise.
10286         * lra-constraints.c : Likewise.
10287         * lra-eliminations.c : Likewise.
10288         * lra-lives.c : Likewise.
10289         * lra-remat.c : Likewise.
10290         * lra-spills.c : Likewise.
10291         * lra.c : Likewise.
10292         * lto-cgraph.c : Likewise.
10293         * lto-compress.c : Likewise.
10294         * lto-opts.c : Likewise.
10295         * lto-section-in.c : Likewise.
10296         * lto-section-out.c : Likewise.
10297         * lto-streamer-in.c : Likewise.
10298         * lto-streamer-out.c : Likewise.
10299         * lto-streamer.c : Likewise.
10300         * lto-streamer.h : Likewise.
10301         * mcf.c : Likewise.
10302         * mode-switching.c : Likewise.
10303         * modulo-sched.c : Likewise.
10304         * omega.c : Likewise.
10305         * omp-low.c : Likewise.
10306         * optabs.c : Likewise.
10307         * opts-global.c : Likewise.
10308         * opts.h : Likewise.
10309         * passes.c : Likewise.
10310         * plugin.c : Likewise.
10311         * postreload-gcse.c : Likewise.
10312         * postreload.c : Likewise.
10313         * predict.c : Likewise.
10314         * print-rtl.c : Likewise.
10315         * print-tree.c : Likewise.
10316         * profile.c : Likewise.
10317         * read-md.c : Likewise.
10318         * read-md.h : Likewise.
10319         * read-rtl.c : Likewise.
10320         * real.c : Likewise.
10321         * realmpfr.c : Likewise.
10322         * recog.c : Likewise.
10323         * ree.c : Likewise.
10324         * reg-stack.c : Likewise.
10325         * regcprop.c : Likewise.
10326         * reginfo.c : Likewise.
10327         * regrename.c : Likewise.
10328         * regstat.c : Likewise.
10329         * reload.c : Likewise.
10330         * reload1.c : Likewise.
10331         * reorg.c : Likewise.
10332         * resource.c : Likewise.
10333         * rtl-chkp.c : Likewise.
10334         * rtl.c : Likewise.
10335         * rtl.h : Likewise.
10336         * rtlanal.c : Likewise.
10337         * rtlhash.c : Likewise.
10338         * rtlhash.h : Likewise.
10339         * rtlhooks.c : Likewise.
10340         * sanopt.c : Likewise.
10341         * sched-deps.c : Likewise.
10342         * sched-ebb.c : Likewise.
10343         * sched-rgn.c : Likewise.
10344         * sched-vis.c : Likewise.
10345         * sdbout.c : Likewise.
10346         * sel-sched-dump.c : Likewise.
10347         * sel-sched-ir.c : Likewise.
10348         * sel-sched-ir.h : Likewise.
10349         * sel-sched.c : Likewise.
10350         * sese.c : Likewise.
10351         * shrink-wrap.c : Likewise.
10352         * shrink-wrap.h : Likewise.
10353         * simplify-rtx.c : Likewise.
10354         * stack-ptr-mod.c : Likewise.
10355         * statistics.c : Likewise.
10356         * stmt.c : Likewise.
10357         * stor-layout.c : Likewise.
10358         * store-motion.c : Likewise.
10359         * stringpool.c : Likewise.
10360         * symtab.c : Likewise.
10361         * target-globals.c : Likewise.
10362         * targhooks.c : Likewise.
10363         * tlink.c : Likewise.
10364         * toplev.c : Likewise.
10365         * tracer.c : Likewise.
10366         * trans-mem.c : Likewise.
10367         * tree-affine.c : Likewise.
10368         * tree-affine.h : Likewise.
10369         * tree-browser.c : Likewise.
10370         * tree-call-cdce.c : Likewise.
10371         * tree-cfg.c : Likewise.
10372         * tree-cfgcleanup.c : Likewise.
10373         * tree-chkp-opt.c : Likewise.
10374         * tree-chkp.c : Likewise.
10375         * tree-chrec.c : Likewise.
10376         * tree-complex.c : Likewise.
10377         * tree-data-ref.c : Likewise.
10378         * tree-dfa.c : Likewise.
10379         * tree-diagnostic.c : Likewise.
10380         * tree-dump.c : Likewise.
10381         * tree-eh.c : Likewise.
10382         * tree-eh.h : Likewise.
10383         * tree-emutls.c : Likewise.
10384         * tree-hasher.h : Likewise.
10385         * tree-if-conv.c : Likewise.
10386         * tree-inline.c : Likewise.
10387         * tree-inline.h : Likewise.
10388         * tree-into-ssa.c : Likewise.
10389         * tree-iterator.c : Likewise.
10390         * tree-loop-distribution.c : Likewise.
10391         * tree-nested.c : Likewise.
10392         * tree-nrv.c : Likewise.
10393         * tree-object-size.c : Likewise.
10394         * tree-outof-ssa.c : Likewise.
10395         * tree-parloops.c : Likewise.
10396         * tree-phinodes.c : Likewise.
10397         * tree-predcom.c : Likewise.
10398         * tree-pretty-print.c : Likewise.
10399         * tree-profile.c : Likewise.
10400         * tree-scalar-evolution.c : Likewise.
10401         * tree-sra.c : Likewise.
10402         * tree-ssa-address.c : Likewise.
10403         * tree-ssa-alias.c : Likewise.
10404         * tree-ssa-ccp.c : Likewise.
10405         * tree-ssa-coalesce.c : Likewise.
10406         * tree-ssa-copy.c : Likewise.
10407         * tree-ssa-copyrename.c : Likewise.
10408         * tree-ssa-dce.c : Likewise.
10409         * tree-ssa-dom.c : Likewise.
10410         * tree-ssa-dse.c : Likewise.
10411         * tree-ssa-forwprop.c : Likewise.
10412         * tree-ssa-ifcombine.c : Likewise.
10413         * tree-ssa-live.c : Likewise.
10414         * tree-ssa-loop-ch.c : Likewise.
10415         * tree-ssa-loop-im.c : Likewise.
10416         * tree-ssa-loop-ivcanon.c : Likewise.
10417         * tree-ssa-loop-ivopts.c : Likewise.
10418         * tree-ssa-loop-manip.c : Likewise.
10419         * tree-ssa-loop-niter.c : Likewise.
10420         * tree-ssa-loop-prefetch.c : Likewise.
10421         * tree-ssa-loop-unswitch.c : Likewise.
10422         * tree-ssa-loop.c : Likewise.
10423         * tree-ssa-math-opts.c : Likewise.
10424         * tree-ssa-operands.c : Likewise.
10425         * tree-ssa-phiopt.c : Likewise.
10426         * tree-ssa-phiprop.c : Likewise.
10427         * tree-ssa-pre.c : Likewise.
10428         * tree-ssa-propagate.c : Likewise.
10429         * tree-ssa-reassoc.c : Likewise.
10430         * tree-ssa-sccvn.c : Likewise.
10431         * tree-ssa-scopedtables.c : Likewise.
10432         * tree-ssa-sink.c : Likewise.
10433         * tree-ssa-strlen.c : Likewise.
10434         * tree-ssa-structalias.c : Likewise.
10435         * tree-ssa-tail-merge.c : Likewise.
10436         * tree-ssa-ter.c : Likewise.
10437         * tree-ssa-threadedge.c : Likewise.
10438         * tree-ssa-threadupdate.c : Likewise.
10439         * tree-ssa-uncprop.c : Likewise.
10440         * tree-ssa-uninit.c : Likewise.
10441         * tree-ssa.c : Likewise.
10442         * tree-ssanames.c : Likewise.
10443         * tree-stdarg.c : Likewise.
10444         * tree-streamer-in.c : Likewise.
10445         * tree-streamer-out.c : Likewise.
10446         * tree-streamer.c : Likewise.
10447         * tree-streamer.h : Likewise.
10448         * tree-switch-conversion.c : Likewise.
10449         * tree-tailcall.c : Likewise.
10450         * tree-vect-data-refs.c : Likewise.
10451         * tree-vect-generic.c : Likewise.
10452         * tree-vect-loop-manip.c : Likewise.
10453         * tree-vect-loop.c : Likewise.
10454         * tree-vect-patterns.c : Likewise.
10455         * tree-vect-slp.c : Likewise.
10456         * tree-vect-stmts.c : Likewise.
10457         * tree-vectorizer.c : Likewise.
10458         * tree-vectorizer.h : Likewise.
10459         * tree-vrp.c : Likewise.
10460         * tree.c : Likewise.
10461         * tsan.c : Likewise.
10462         * ubsan.c : Likewise.
10463         * valtrack.c : Likewise.
10464         * valtrack.h : Likewise.
10465         * value-prof.c : Likewise.
10466         * var-tracking.c : Likewise.
10467         * varasm.c : Likewise.
10468         * varpool.c : Likewise.
10469         * vec.c: Likewise.
10470         * vmsdbgout.c : Likewise.
10471         * vtable-verify.c : Likewise.
10472         * vtable-verify.h : Likewise.
10473         * web.c : Likewise.
10474         * wide-int.cc : Likewise.
10475         * xcoffout.c : Likewise.
10476         * config/aarch64/aarch64-builtins.c : Likewise.
10477         * config/aarch64/aarch64.c : Likewise.
10478         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
10479         * config/alpha/alpha.c : Likewise.
10480         * config/arc/arc.c : Likewise.
10481         * config/arm/aarch-common.c : Likewise.
10482         * config/arm/arm-builtins.c : Likewise.
10483         * config/arm/arm-c.c : Likewise.
10484         * config/arm/arm.c : Likewise.
10485         * config/avr/avr-c.c : Likewise.
10486         * config/avr/avr-log.c : Likewise.
10487         * config/avr/avr.c : Likewise.
10488         * config/bfin/bfin.c : Likewise.
10489         * config/c6x/c6x.c : Likewise.
10490         * config/cr16/cr16.c : Likewise.
10491         * config/cris/cris.c : Likewise.
10492         * config/darwin-c.c : Likewise.
10493         * config/darwin.c : Likewise.
10494         * config/default-c.c : Likewise.
10495         * config/epiphany/epiphany.c : Likewise.
10496         * config/epiphany/mode-switch-use.c : Likewise.
10497         * config/epiphany/resolve-sw-modes.c : Likewise.
10498         * config/fr30/fr30.c : Likewise.
10499         * config/frv/frv.c : Likewise.
10500         * config/ft32/ft32.c : Likewise.
10501         * config/glibc-c.c : Likewise.
10502         * config/h8300/h8300.c : Likewise.
10503         * config/i386/i386-c.c : Likewise.
10504         * config/i386/i386.c : Likewise.
10505         * config/i386/msformat-c.c : Likewise.
10506         * config/i386/winnt-cxx.c : Likewise.
10507         * config/i386/winnt-stubs.c : Likewise.
10508         * config/i386/winnt.c : Likewise.
10509         * config/ia64/ia64-c.c : Likewise.
10510         * config/ia64/ia64.c : Likewise.
10511         * config/iq2000/iq2000.c : Likewise.
10512         * config/lm32/lm32.c : Likewise.
10513         * config/m32c/m32c-pragma.c : Likewise.
10514         * config/m32c/m32c.c : Likewise.
10515         * config/m32r/m32r.c : Likewise.
10516         * config/m68k/m68k.c : Likewise.
10517         * config/mcore/mcore.c : Likewise.
10518         * config/mep/mep-pragma.c : Likewise.
10519         * config/mep/mep.c : Likewise.
10520         * config/microblaze/microblaze-c.c : Likewise.
10521         * config/microblaze/microblaze.c : Likewise.
10522         * config/mips/mips.c : Likewise.
10523         * config/mmix/mmix.c : Likewise.
10524         * config/mn10300/mn10300.c : Likewise.
10525         * config/moxie/moxie.c : Likewise.
10526         * config/msp430/msp430-c.c : Likewise.
10527         * config/msp430/msp430.c : Likewise.
10528         * config/nds32/nds32-cost.c : Likewise.
10529         * config/nds32/nds32-fp-as-gp.c : Likewise.
10530         * config/nds32/nds32-intrinsic.c : Likewise.
10531         * config/nds32/nds32-isr.c : Likewise.
10532         * config/nds32/nds32-md-auxiliary.c : Likewise.
10533         * config/nds32/nds32-memory-manipulation.c : Likewise.
10534         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
10535         * config/nds32/nds32-predicates.c : Likewise.
10536         * config/nds32/nds32.c : Likewise.
10537         * config/nios2/nios2.c : Likewise.
10538         * config/nvptx/nvptx.c : Likewise.
10539         * config/pa/pa.c : Likewise.
10540         * config/pdp11/pdp11.c : Likewise.
10541         * config/rl78/rl78-c.c : Likewise.
10542         * config/rl78/rl78.c : Likewise.
10543         * config/rs6000/rs6000-c.c : Likewise.
10544         * config/rs6000/rs6000.c : Likewise.
10545         * config/rx/rx.c : Likewise.
10546         * config/s390/s390-c.c : Likewise.
10547         * config/s390/s390.c : Likewise.
10548         * config/sh/sh-c.c : Likewise.
10549         * config/sh/sh-mem.cc : Likewise.
10550         * config/sh/sh.c : Likewise.
10551         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
10552         * config/sh/sh_treg_combine.cc : Likewise.
10553         * config/sol2-c.c : Likewise.
10554         * config/sol2-cxx.c : Likewise.
10555         * config/sol2-stubs.c : Likewise.
10556         * config/sol2.c : Likewise.
10557         * config/sparc/sparc-c.c : Likewise.
10558         * config/sparc/sparc.c : Likewise.
10559         * config/spu/spu-c.c : Likewise.
10560         * config/spu/spu.c : Likewise.
10561         * config/stormy16/stormy16.c : Likewise.
10562         * config/tilegx/mul-tables.c : Likewise.
10563         * config/tilegx/tilegx-c.c : Likewise.
10564         * config/tilegx/tilegx.c : Likewise.
10565         * config/tilepro/mul-tables.c : Likewise.
10566         * config/tilepro/tilepro-c.c : Likewise.
10567         * config/tilepro/tilepro.c : Likewise.
10568         * config/v850/v850-c.c : Likewise.
10569         * config/v850/v850.c : Likewise.
10570         * config/vax/vax.c : Likewise.
10571         * config/visium/visium.c : Likewise.
10572         * config/vms/vms-c.c : Likewise.
10573         * config/vms/vms.c : Likewise.
10574         * config/vxworks.c : Likewise.
10575         * config/winnt-c.c : Likewise.
10576         * config/xtensa/xtensa.c : Likewise.
10578 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
10580         PR lto/65378
10581         * ipa-utils.h (warn_types_mismatch): Update prototype.
10582         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
10583         parameters.
10584         (type_mismatch_p): New function.
10585         (warn_types_mismatch): Reorg to work better on non-C++ types.
10586         (odr_types_equivalent_p): Add loc1/loc2 parameters.
10587         (add_type_duplicate): Update.
10589 2015-06-08  Tom de Vries  <tom@codesourcery.com>
10591         PR rtl-optimization/66444
10592         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
10593         call_used_regs.
10595 2015-06-08  Richard Biener  <rguenther@suse.de>
10597         PR tree-optimization/66422
10598         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
10599         block after inserted gcc_unreachable.
10601 2015-06-08  Nick Clifton  <nickc@redhat.com>
10603         * config/rx/rx.c (rx_function_value): Do not promote vector types.
10604         (rx_promote_function_mode): Likewise.
10605         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
10607 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
10609         * genattrtab.c (insn_alternatives): Change type from int *
10610         to uint64_t *.
10611         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
10612         (get_attr_value): Change type of num_alt to uint64_t.
10613         (compute_alternative_mask): Change return type from
10614         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
10615         (make_alternative_compare, mk_attr_alt): Change argument type
10616         from int to uint64_t.
10617         (simplify_test_exp): Change type of i from int to uint64_t.
10618         Shift ((uint64_t) 1) instead of 1 up.
10619         (main): Adjust oballocvec first argument from int to uint64_t.
10620         Shift ((uint64_t) 1) instead of 1 up.
10622 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
10624         PR other/65366
10625         * gdbhooks.py: Import sys.
10626         (intptr): New function.  Replace int(...) by intptr(...).
10628 2015-06-08  Richard Biener  <rguenther@suse.de>
10630         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
10631         adjustment for gaps at the end of a SLP load group properly.
10632         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
10633         all permutations we can generate.
10634         (vect_transform_slp_perm_load): Use the correct group-size.
10636 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
10638         * genmatch.c (expr::gen_transform): For conditions, guess the type
10639         from the second operand.
10641 2015-06-08  Tom de Vries  <tom@codesourcery.com>
10643         PR tree-optimization/66442
10644         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
10645         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
10646         if the loop latch is not a singleton.  Use
10647         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
10649 2015-06-08  Marek Polacek  <polacek@redhat.com>
10651         PR sanitizer/66452
10652         * toplev.c (check_global_declaration): Don't warn about artificial
10653         decls.
10655 2015-06-08  Tom de Vries  <tom@codesourcery.com>
10657         PR tree-optimization/66436
10658         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
10659         dump file.
10660         * gimplify.c: Add tree-dump.h include.
10661         (gimplify_function_tree): Dump function to gimple dump file.
10662         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
10663         dump file.
10665 2015-06-08  Tom de Vries  <tom@codesourcery.com>
10667         PR tree-optimization/66435
10668         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
10669         function.
10671 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
10673         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
10674         of ptr_type_node to not be ptr_to_node.
10675         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
10676         TREE_TYPE of pointers.
10677         * gimple-expr.c (useless_type_conversion): Reorder the check for
10678         function pointers and TYPE_CANONICAL.
10680 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
10682         PR bootstrap/66319
10683         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
10684         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
10685         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
10686         later.
10687         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
10688         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
10689         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
10690         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
10691         and non iso if unix2003.
10693 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
10695         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
10697 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
10699         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
10700         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
10701         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
10702         except.c, final.c, function.c, gcse-common.c, genemit.c,
10703         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
10704         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
10705         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
10706         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
10707         more derived ones.
10709 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
10711         * combine.c (combine_split_insns): Remove cast.
10712         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
10713         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
10714         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
10715         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
10716         * genemit.c (gen_split): Change return type of generated functions to
10717         rtx_insn.
10718         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
10719         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
10720         gen_peephole2_* functions.
10721         (print_subroutine, main): Likewise.
10722         * recog.c (peephole2_optimize): Remove cast.
10723         (peep2_next_insn): Promote return type to rtx_insn.
10724         * recog.h (peep2_next_insn): Fix prototype.
10725         * rtl.h (try_split, split_insns): Likewise.
10727 2015-06-06  DJ Delorie  <dj@redhat.com>
10729         * config/msp430/msp430.c (msp430_asm_integer): Support addition
10730         and subtraction too.
10732 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
10734         PR target/66410
10735         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
10736         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
10737         instead of Snd.  Disparage Sid/z alternative with '^'.
10739 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
10741         * dwarf2out.c: Remove deferred_locations*.
10742         (dwarf2_debug_hooks): Add early_finish hook.
10743         Remove global_decl hook.
10744         Add early_global_decl and late_global_decl hook.
10745         New global early_dwarf.
10746         New structure set_early_dwarf.
10747         (output_die): Indicate whether a DIE was generated early
10748         when generating assembly with -dA.
10749         (struct limbo_die_struct): Document created_for field.
10750         Remove file_table_last_lookup.
10751         (remove_AT): Return TRUE if successful.
10752         (remove_child_TAG): Clear die_parent.
10753         (reparent_child): New function abstracted from...
10754         (splice_child_die): ...here.
10755         (new_die): ICE if a DIE ends up in limbo too late.
10756         (check_die): New.
10757         (defer_location): Remove.
10758         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
10759         (fill_variable_array_bounds): New.
10760         (decl_start_label): Call fill_variable_array_bounds.
10761         (gen_formal_parameter_die): Rewrite to reuse previously generated
10762         DIEs.
10763         (gen_subprogram_die): Same.
10764         (gen_variable_die): Same.
10765         (gen_const_die): Same.
10766         (gen_label_die): Same.
10767         (gen_lexical_block_die): Same.
10768         (decl_will_get_specification_p): New.
10769         (local_function_static): New.
10770         (gen_struct_or_union_type_die): Fill in variable-length fields.
10771         (gen_typedef_die): Fill in variable-length typedefs.
10772         (gen_tagged_type_die): Gracefully return on error_mark_node.
10773         Handle re-entrancy.
10774         (gen_type_die_with_usage): Handle variable-length types.
10775         Remove duplicate code for ARRAY_TYPE case.
10776         (process_scope_var): Only process imported modules during early
10777         dwarf.
10778         (dwarf2out_early_global_decl): New.
10779         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
10780         (dwarf2out_type_decl): Set early_dwarf while calling
10781         dwarf2out_decl.
10782         (dwarf2out_decl): Verify that we did not recreate a previously
10783         generated DIE.
10784         Do not return on DECL_EXTERNALs in VAR_DECLs.
10785         Abstract some code to local_function_static.
10786         (lookup_filename): Remove use of file_table_last_lookup.
10787         Gracefully exit on missing file_name.
10788         (dwarf2out_finish): Verify limbo list.
10789         Remove deferred_locations_list use.
10790         Move deferred_asm_name and limbo flushing to...
10791         (dwarf2out_early_finish): ...here.  New.
10792         (dwarf2out_c_finalize): Remove set of deferred_location_list,
10793         deferred_asm_name, and file_table_last_lookup.
10794         * cgraph.h (referred_to_p): Add default argument.
10795         * cgraphunit.c (referred_to_p): Add and handle include_self
10796         argument.
10797         (analyze_functions): Add first_time argument.
10798         Call check_global_declaration for all symbols.
10799         Call late_global_decl for nodes for moribund nodes.
10800         (finalize_compilation_unit): Add new argument to
10801         analyze_functions.
10802         Call early_global_decl for functions.
10803         Call early_finish debug hook.
10804         * dbxout.c (dbxout_early_global_decl): New.
10805         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
10806         (dbx_debug_hooks): Add new hooks.
10807         (xcoff_debug_hooks): Same.
10808         * debug.c (do_nothing_debug_hooks): Add early_finish field.
10809         Add early and late debug hooks.
10810         Remove global_decl hook.
10811         * debug.h (struct gcc_debug_hooks): Add early_finish,
10812         early_global_decl, and late_global_decl fields.
10813         Remove global_decl field.
10814         Document gcc_debug_hooks.
10815         * gengtype.c (output_typename): Remove.
10816         * godump.c (go_early_global_decl): New.
10817         (go_late_global_decl): New.
10818         (go_global_decl): Remove.
10819         (dump_go_spec_init): Remove global_decl.  Add
10820         {early,late}_global_decl.
10821         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
10822         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
10823         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
10824         (write_global_declarations): Remove.
10825         (global_decl_processing): New.
10826         * langhooks.h (struct lang_hooks_for_decls): Remove
10827         final_write_globals field.
10828         Add post_compilation_parsing_cleanups field.
10829         * passes.c (rest_of_decl_compilation): Call early_global_decl.
10830         * sdbout.c: Add early and late_global_decl hooks.  Remove
10831         sdbout_global_decl hook.
10832         Add early_finish field for sdb_debug_hooks.
10833         (sdbout_global_decl): Remove.
10834         (sdbout_early_global_decl): New.
10835         (sdbout_late_global_decl): New.
10836         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
10837         * toplev.c (check_global_declaration): Rename from
10838         check_global_declaration_1.
10839         Adapt to use symtab infrastructure.
10840         (check_global_declarations): Remove.
10841         (emit_debug_global_declarations): Remove.
10842         (compile_file): Remove call to final_write_globals langhook.
10843         Run the actual compilation process.
10844         Perform any post compilation parser cleanups.
10845         Generate late debug info.
10846         * toplev.h (check_global_declaration): New.
10847         (check_global_declaration_1): Remove.
10848         (check_global_declarations): Remove.
10849         (write_global_declarations): Remove.
10850         (emit_debug_global_declarations): Remove.
10851         (global_decl_processing): New.
10852         * tree-core.h (struct tree_block): Add DIE field.
10853         * tree.h (BLOCK_DIE): New.
10854         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
10855         throughout.
10856         (vmsdbgout_early_global_decl): New.
10857         (vmsdbgout_late_global_decl): New.
10858         Add early_finish debug hook field to vmsdbg_debug_hooks.
10859         Remove vmsdbgout_decl to vmsdbgout_function_decl.
10860         Add early and late_global_decl debug hooks.
10862 2015-06-05  Julian Brown  <julian@codesourcery.com>
10863             Sandra Loosemore  <sandra@codesourcery.com>
10865         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
10866         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
10867         to print-sysroot-suffix.sh script.
10869 2015-06-05  Tom de Vries  <tom@codesourcery.com>
10871         merge from gomp4 branch:
10872         2015-05-28  Tom de Vries  <tom@codesourcery.com>
10874         PR tree-optimization/65443
10875         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
10876         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
10877         (try_transform_to_exit_first_loop_alt): New function.
10878         (transform_to_exit_first_loop): Use
10879         try_transform_to_exit_first_loop_alt.
10881 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
10883         * builtins.c (expand_builtin_atomic_compare_exchange): Call
10884         emit_cmp_and_jump_insns with the mode of target.
10886 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
10888         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
10890 2015-06-04  DJ Delorie  <dj@redhat.com>
10892         * config/msp430/msp430.md (movsi_s): New.  Special case for
10893         storing a 20-bit symbol into a 32-bit register.
10894         * config/msp430/msp430.c (msp430_subreg): Add support for it.
10895         * config/msp430/predicates.md (msp430_symbol_operand): New.
10897 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
10899         * c-family/c-common.c (noplt): New attribute.
10900         (handle_noplt_attribute): New handler.
10901         * calls.c (prepare_call_address): Check for noplt
10902         attribute.
10903         * config/i386/i386.c (ix86_expand_call): Check
10904         for noplt attribute.
10905         (ix86_nopic_noplt_attribute_p): New function.
10906         (ix86_output_call_insn): Output indirect call for non-pic
10907         no plt calls.
10908         * doc/extend.texi (noplt): Document new attribute.
10909         * doc/invoke.texi: Document new attribute.
10911 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
10913         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
10914         real.h, and fixed-value.h when included in host source files.
10915         * double-int.h: Remove redundant #includes listed above.
10916         * fixed-value.h: Likewise.
10917         * real.h: Likewise.
10918         * wide-int.h: Likewise.
10919         * inchash.h: Likewise.
10920         * rtl.h: Add some include files When included from a generator file.
10921         * target.h: Remove wide-int.h and insn-modes.h from the include list.
10922         * internal-fn.h: Don't include coretypes.h.
10923         * alias.c: Adjust includes for restructured coretypes.h.
10924         * asan.c: Likewise.
10925         * attribs.c: Likewise.
10926         * auto-inc-dec.c: Likewise.
10927         * auto-profile.c: Likewise.
10928         * bb-reorder.c: Likewise.
10929         * bt-load.c: Likewise.
10930         * builtins.c: Likewise.
10931         * caller-save.c: Likewise.
10932         * calls.c: Likewise.
10933         * ccmp.c: Likewise.
10934         * cfg.c: Likewise.
10935         * cfganal.c: Likewise.
10936         * cfgbuild.c: Likewise.
10937         * cfgcleanup.c: Likewise.
10938         * cfgexpand.c: Likewise.
10939         * cfghooks.c: Likewise.
10940         * cfgloop.c: Likewise.
10941         * cfgloop.h: Likewise.
10942         * cfgloopanal.c: Likewise.
10943         * cfgloopmanip.c: Likewise.
10944         * cfgrtl.c: Likewise.
10945         * cgraph.c: Likewise.
10946         * cgraphbuild.c: Likewise.
10947         * cgraphclones.c: Likewise.
10948         * cgraphunit.c: Likewise.
10949         * cilk-common.c: Likewise.
10950         * combine-stack-adj.c: Likewise.
10951         * combine.c: Likewise.
10952         * compare-elim.c: Likewise.
10953         * convert.c: Likewise.
10954         * coverage.c: Likewise.
10955         * cppbuiltin.c: Likewise.
10956         * cprop.c: Likewise.
10957         * cse.c: Likewise.
10958         * cselib.c: Likewise.
10959         * data-streamer-in.c: Likewise.
10960         * data-streamer-out.c: Likewise.
10961         * data-streamer.c: Likewise.
10962         * dbxout.c: Likewise.
10963         * dce.c: Likewise.
10964         * ddg.c: Likewise.
10965         * debug.c: Likewise.
10966         * df-core.c: Likewise.
10967         * df-problems.c: Likewise.
10968         * df-scan.c: Likewise.
10969         * df.h: Likewise.
10970         * dfp.c: Likewise.
10971         * dojump.c: Likewise.
10972         * dominance.c: Likewise.
10973         * domwalk.c: Likewise.
10974         * double-int.c: Likewise.
10975         * dse.c: Likewise.
10976         * dumpfile.c: Likewise.
10977         * dwarf2asm.c: Likewise.
10978         * dwarf2cfi.c: Likewise.
10979         * dwarf2out.c: Likewise.
10980         * dwarf2out.h: Likewise.
10981         * emit-rtl.c: Likewise.
10982         * et-forest.c: Likewise.
10983         * except.c: Likewise.
10984         * explow.c: Likewise.
10985         * expmed.c: Likewise.
10986         * expr.c: Likewise.
10987         * final.c: Likewise.
10988         * fixed-value.c: Likewise.
10989         * fold-const.c: Likewise.
10990         * function.c: Likewise.
10991         * fwprop.c: Likewise.
10992         * gcc-plugin.h: Likewise.
10993         * gcse.c: Likewise.
10994         * generic-match-head.c: Likewise.
10995         * ggc-page.c: Likewise.
10996         * gimple-builder.c: Likewise.
10997         * gimple-expr.c: Likewise.
10998         * gimple-fold.c: Likewise.
10999         * gimple-iterator.c: Likewise.
11000         * gimple-low.c: Likewise.
11001         * gimple-match-head.c: Likewise.
11002         * gimple-pretty-print.c: Likewise.
11003         * gimple-ssa-isolate-paths.c: Likewise.
11004         * gimple-ssa-strength-reduction.c: Likewise.
11005         * gimple-streamer-in.c: Likewise.
11006         * gimple-streamer-out.c: Likewise.
11007         * gimple-streamer.h: Likewise.
11008         * gimple-walk.c: Likewise.
11009         * gimple.c: Likewise.
11010         * gimplify-me.c: Likewise.
11011         * gimplify.c: Likewise.
11012         * godump.c: Likewise.
11013         * graph.c: Likewise.
11014         * graphite-blocking.c: Likewise.
11015         * graphite-dependences.c: Likewise.
11016         * graphite-interchange.c: Likewise.
11017         * graphite-isl-ast-to-gimple.c: Likewise.
11018         * graphite-optimize-isl.c: Likewise.
11019         * graphite-poly.c: Likewise.
11020         * graphite-scop-detection.c: Likewise.
11021         * graphite-sese-to-poly.c: Likewise.
11022         * graphite.c: Likewise.
11023         * haifa-sched.c: Likewise.
11024         * hooks.h: Likewise.
11025         * hw-doloop.c: Likewise.
11026         * ifcvt.c: Likewise.
11027         * incpath.c: Likewise.
11028         * init-regs.c: Likewise.
11029         * internal-fn.c: Likewise.
11030         * ipa-chkp.c: Likewise.
11031         * ipa-comdats.c: Likewise.
11032         * ipa-cp.c: Likewise.
11033         * ipa-devirt.c: Likewise.
11034         * ipa-icf-gimple.c: Likewise.
11035         * ipa-icf.c: Likewise.
11036         * ipa-inline-analysis.c: Likewise.
11037         * ipa-inline-transform.c: Likewise.
11038         * ipa-inline.c: Likewise.
11039         * ipa-polymorphic-call.c: Likewise.
11040         * ipa-profile.c: Likewise.
11041         * ipa-prop.c: Likewise.
11042         * ipa-pure-const.c: Likewise.
11043         * ipa-ref.c: Likewise.
11044         * ipa-reference.c: Likewise.
11045         * ipa-split.c: Likewise.
11046         * ipa-utils.c: Likewise.
11047         * ipa-visibility.c: Likewise.
11048         * ipa.c: Likewise.
11049         * ira-build.c: Likewise.
11050         * ira-color.c: Likewise.
11051         * ira-conflicts.c: Likewise.
11052         * ira-costs.c: Likewise.
11053         * ira-emit.c: Likewise.
11054         * ira-lives.c: Likewise.
11055         * ira.c: Likewise.
11056         * jump.c: Likewise.
11057         * langhooks.c: Likewise.
11058         * lcm.c: Likewise.
11059         * loop-doloop.c: Likewise.
11060         * loop-init.c: Likewise.
11061         * loop-invariant.c: Likewise.
11062         * loop-iv.c: Likewise.
11063         * loop-unroll.c: Likewise.
11064         * lower-subreg.c: Likewise.
11065         * lra-assigns.c: Likewise.
11066         * lra-coalesce.c: Likewise.
11067         * lra-constraints.c: Likewise.
11068         * lra-eliminations.c: Likewise.
11069         * lra-lives.c: Likewise.
11070         * lra-remat.c: Likewise.
11071         * lra-spills.c: Likewise.
11072         * lra.c: Likewise.
11073         * lto-cgraph.c: Likewise.
11074         * lto-compress.c: Likewise.
11075         * lto-opts.c: Likewise.
11076         * lto-section-in.c: Likewise.
11077         * lto-section-out.c: Likewise.
11078         * lto-streamer-in.c: Likewise.
11079         * lto-streamer-out.c: Likewise.
11080         * lto-streamer.c: Likewise.
11081         * mcf.c: Likewise.
11082         * mode-switching.c: Likewise.
11083         * modulo-sched.c: Likewise.
11084         * omega.c: Likewise.
11085         * omp-low.c: Likewise.
11086         * optabs.c: Likewise.
11087         * opts-global.c: Likewise.
11088         * passes.c: Likewise.
11089         * plugin.c: Likewise.
11090         * postreload-gcse.c: Likewise.
11091         * postreload.c: Likewise.
11092         * predict.c: Likewise.
11093         * print-rtl.c: Likewise.
11094         * print-tree.c: Likewise.
11095         * profile.c: Likewise.
11096         * real.c: Likewise.
11097         * realmpfr.c: Likewise.
11098         * realmpfr.h: Likewise.
11099         * recog.c: Likewise.
11100         * ree.c: Likewise.
11101         * reg-stack.c: Likewise.
11102         * regcprop.c: Likewise.
11103         * reginfo.c: Likewise.
11104         * regrename.c: Likewise.
11105         * regs.h: Likewise.
11106         * regstat.c: Likewise.
11107         * reload.c: Likewise.
11108         * reload1.c: Likewise.
11109         * reorg.c: Likewise.
11110         * resource.c: Likewise.
11111         * rtl-chkp.c: Likewise.
11112         * rtlanal.c: Likewise.
11113         * rtlhooks.c: Likewise.
11114         * sanopt.c: Likewise.
11115         * sched-deps.c: Likewise.
11116         * sched-ebb.c: Likewise.
11117         * sched-rgn.c: Likewise.
11118         * sched-vis.c: Likewise.
11119         * sdbout.c: Likewise.
11120         * sel-sched-dump.c: Likewise.
11121         * sel-sched-ir.c: Likewise.
11122         * sel-sched.c: Likewise.
11123         * sese.c: Likewise.
11124         * shrink-wrap.c: Likewise.
11125         * shrink-wrap.h: Likewise.
11126         * simplify-rtx.c: Likewise.
11127         * stack-ptr-mod.c: Likewise.
11128         * statistics.c: Likewise.
11129         * stmt.c: Likewise.
11130         * stor-layout.c: Likewise.
11131         * store-motion.c: Likewise.
11132         * stringpool.c: Likewise.
11133         * symtab.c: Likewise.
11134         * target-globals.c: Likewise.
11135         * targhooks.c: Likewise.
11136         * toplev.c: Likewise.
11137         * tracer.c: Likewise.
11138         * trans-mem.c: Likewise.
11139         * tree-affine.c: Likewise.
11140         * tree-affine.h: Likewise.
11141         * tree-browser.c: Likewise.
11142         * tree-call-cdce.c: Likewise.
11143         * tree-cfg.c: Likewise.
11144         * tree-cfgcleanup.c: Likewise.
11145         * tree-chkp-opt.c: Likewise.
11146         * tree-chkp.c: Likewise.
11147         * tree-chrec.c: Likewise.
11148         * tree-complex.c: Likewise.
11149         * tree-data-ref.c: Likewise.
11150         * tree-dfa.c: Likewise.
11151         * tree-diagnostic.c: Likewise.
11152         * tree-dump.c: Likewise.
11153         * tree-eh.c: Likewise.
11154         * tree-emutls.c: Likewise.
11155         * tree-if-conv.c: Likewise.
11156         * tree-inline.c: Likewise.
11157         * tree-into-ssa.c: Likewise.
11158         * tree-iterator.c: Likewise.
11159         * tree-loop-distribution.c: Likewise.
11160         * tree-nested.c: Likewise.
11161         * tree-nrv.c: Likewise.
11162         * tree-object-size.c: Likewise.
11163         * tree-outof-ssa.c: Likewise.
11164         * tree-parloops.c: Likewise.
11165         * tree-phinodes.c: Likewise.
11166         * tree-predcom.c: Likewise.
11167         * tree-pretty-print.c: Likewise.
11168         * tree-pretty-print.h: Likewise.
11169         * tree-profile.c: Likewise.
11170         * tree-scalar-evolution.c: Likewise.
11171         * tree-sra.c: Likewise.
11172         * tree-ssa-address.c: Likewise.
11173         * tree-ssa-alias.c: Likewise.
11174         * tree-ssa-ccp.c: Likewise.
11175         * tree-ssa-coalesce.c: Likewise.
11176         * tree-ssa-copy.c: Likewise.
11177         * tree-ssa-copyrename.c: Likewise.
11178         * tree-ssa-dce.c: Likewise.
11179         * tree-ssa-dom.c: Likewise.
11180         * tree-ssa-dse.c: Likewise.
11181         * tree-ssa-forwprop.c: Likewise.
11182         * tree-ssa-ifcombine.c: Likewise.
11183         * tree-ssa-live.c: Likewise.
11184         * tree-ssa-loop-ch.c: Likewise.
11185         * tree-ssa-loop-im.c: Likewise.
11186         * tree-ssa-loop-ivcanon.c: Likewise.
11187         * tree-ssa-loop-ivopts.c: Likewise.
11188         * tree-ssa-loop-manip.c: Likewise.
11189         * tree-ssa-loop-niter.c: Likewise.
11190         * tree-ssa-loop-prefetch.c: Likewise.
11191         * tree-ssa-loop-unswitch.c: Likewise.
11192         * tree-ssa-loop.c: Likewise.
11193         * tree-ssa-loop.h: Likewise.
11194         * tree-ssa-math-opts.c: Likewise.
11195         * tree-ssa-operands.c: Likewise.
11196         * tree-ssa-phiopt.c: Likewise.
11197         * tree-ssa-phiprop.c: Likewise.
11198         * tree-ssa-pre.c: Likewise.
11199         * tree-ssa-propagate.c: Likewise.
11200         * tree-ssa-reassoc.c: Likewise.
11201         * tree-ssa-sccvn.c: Likewise.
11202         * tree-ssa-scopedtables.c: Likewise.
11203         * tree-ssa-sink.c: Likewise.
11204         * tree-ssa-strlen.c: Likewise.
11205         * tree-ssa-structalias.c: Likewise.
11206         * tree-ssa-tail-merge.c: Likewise.
11207         * tree-ssa-ter.c: Likewise.
11208         * tree-ssa-threadedge.c: Likewise.
11209         * tree-ssa-threadupdate.c: Likewise.
11210         * tree-ssa-uncprop.c: Likewise.
11211         * tree-ssa-uninit.c: Likewise.
11212         * tree-ssa.c: Likewise.
11213         * tree-ssanames.c: Likewise.
11214         * tree-stdarg.c: Likewise.
11215         * tree-streamer-in.c: Likewise.
11216         * tree-streamer-out.c: Likewise.
11217         * tree-streamer.c: Likewise.
11218         * tree-switch-conversion.c: Likewise.
11219         * tree-tailcall.c: Likewise.
11220         * tree-vect-data-refs.c: Likewise.
11221         * tree-vect-generic.c: Likewise.
11222         * tree-vect-loop-manip.c: Likewise.
11223         * tree-vect-loop.c: Likewise.
11224         * tree-vect-patterns.c: Likewise.
11225         * tree-vect-slp.c: Likewise.
11226         * tree-vect-stmts.c: Likewise.
11227         * tree-vectorizer.c: Likewise.
11228         * tree-vrp.c: Likewise.
11229         * tree.c: Likewise.
11230         * tsan.c: Likewise.
11231         * ubsan.c: Likewise.
11232         * valtrack.c: Likewise.
11233         * value-prof.c: Likewise.
11234         * var-tracking.c: Likewise.
11235         * varasm.c: Likewise.
11236         * varpool.c: Likewise.
11237         * vmsdbgout.c: Likewise.
11238         * vtable-verify.c: Likewise.
11239         * web.c: Likewise.
11240         * wide-int-print.cc: Likewise.
11241         * wide-int-print.h: Likewise.
11242         * wide-int.cc: Likewise.
11243         * xcoffout.c: Likewise.
11244         * config/aarch64/aarch64-builtins.c: Likewise.
11245         * config/aarch64/aarch64.c: Likewise.
11246         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
11247         * config/alpha/alpha.c: Likewise.
11248         * config/arc/arc.c: Likewise.
11249         * config/arm/aarch-common.c: Likewise.
11250         * config/arm/arm-builtins.c: Likewise.
11251         * config/arm/arm-c.c: Likewise.
11252         * config/arm/arm.c: Likewise.
11253         * config/avr/avr-c.c: Likewise.
11254         * config/avr/avr-log.c: Likewise.
11255         * config/avr/avr.c: Likewise.
11256         * config/bfin/bfin.c: Likewise.
11257         * config/c6x/c6x.c: Likewise.
11258         * config/cr16/cr16.c: Likewise.
11259         * config/cris/cris.c: Likewise.
11260         * config/darwin-c.c: Likewise.
11261         * config/darwin.c: Likewise.
11262         * config/default-c.c: Likewise.
11263         * config/epiphany/epiphany.c: Likewise.
11264         * config/epiphany/mode-switch-use.c: Likewise.
11265         * config/epiphany/resolve-sw-modes.c: Likewise.
11266         * config/fr30/fr30.c: Likewise.
11267         * config/frv/frv.c: Likewise.
11268         * config/ft32/ft32.c: Likewise.
11269         * config/glibc-c.c: Likewise.
11270         * config/h8300/h8300.c: Likewise.
11271         * config/i386/i386-c.c: Likewise.
11272         * config/i386/i386.c: Likewise.
11273         * config/i386/msformat-c.c: Likewise.
11274         * config/i386/winnt-cxx.c: Likewise.
11275         * config/i386/winnt-stubs.c: Likewise.
11276         * config/i386/winnt.c: Likewise.
11277         * config/ia64/ia64-c.c: Likewise.
11278         * config/ia64/ia64.c: Likewise.
11279         * config/iq2000/iq2000.c: Likewise.
11280         * config/lm32/lm32.c: Likewise.
11281         * config/m32c/m32c-pragma.c: Likewise.
11282         * config/m32c/m32c.c: Likewise.
11283         * config/m32r/m32r.c: Likewise.
11284         * config/m68k/m68k.c: Likewise.
11285         * config/mcore/mcore.c: Likewise.
11286         * config/mep/mep-pragma.c: Likewise.
11287         * config/mep/mep.c: Likewise.
11288         * config/microblaze/microblaze-c.c: Likewise.
11289         * config/microblaze/microblaze.c: Likewise.
11290         * config/mips/mips.c: Likewise.
11291         * config/mmix/mmix.c: Likewise.
11292         * config/mn10300/mn10300.c: Likewise.
11293         * config/moxie/moxie.c: Likewise.
11294         * config/msp430/msp430-c.c: Likewise.
11295         * config/msp430/msp430.c: Likewise.
11296         * config/nds32/nds32-cost.c: Likewise.
11297         * config/nds32/nds32-fp-as-gp.c: Likewise.
11298         * config/nds32/nds32-intrinsic.c: Likewise.
11299         * config/nds32/nds32-isr.c: Likewise.
11300         * config/nds32/nds32-md-auxiliary.c: Likewise.
11301         * config/nds32/nds32-memory-manipulation.c: Likewise.
11302         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
11303         * config/nds32/nds32-predicates.c: Likewise.
11304         * config/nds32/nds32.c: Likewise.
11305         * config/nios2/nios2.c: Likewise.
11306         * config/nvptx/nvptx.c: Likewise.
11307         * config/pa/pa.c: Likewise.
11308         * config/pdp11/pdp11.c: Likewise.
11309         * config/rl78/rl78-c.c: Likewise.
11310         * config/rl78/rl78.c: Likewise.
11311         * config/rs6000/rs6000-c.c: Likewise.
11312         * config/rs6000/rs6000.c: Likewise.
11313         * config/rx/rx.c: Likewise.
11314         * config/s390/s390-c.c: Likewise.
11315         * config/s390/s390.c: Likewise.
11316         * config/sh/sh-c.c: Likewise.
11317         * config/sh/sh-mem.cc: Likewise.
11318         * config/sh/sh.c: Likewise.
11319         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
11320         * config/sh/sh_treg_combine.cc: Likewise.
11321         * config/sol2-c.c: Likewise.
11322         * config/sol2-cxx.c: Likewise.
11323         * config/sol2-stubs.c: Likewise.
11324         * config/sol2.c: Likewise.
11325         * config/sparc/sparc-c.c: Likewise.
11326         * config/sparc/sparc.c: Likewise.
11327         * config/spu/spu-c.c: Likewise.
11328         * config/spu/spu.c: Likewise.
11329         * config/stormy16/stormy16.c: Likewise.
11330         * config/tilegx/mul-tables.c: Likewise.
11331         * config/tilegx/tilegx-c.c: Likewise.
11332         * config/tilegx/tilegx.c: Likewise.
11333         * config/tilepro/mul-tables.c: Likewise.
11334         * config/tilepro/tilepro-c.c: Likewise.
11335         * config/tilepro/tilepro.c: Likewise.
11336         * config/v850/v850-c.c: Likewise.
11337         * config/v850/v850.c: Likewise.
11338         * config/vax/vax.c: Likewise.
11339         * config/visium/visium.c: Likewise.
11340         * config/vms/vms-c.c: Likewise.
11341         * config/vms/vms.c: Likewise.
11342         * config/vxworks.c: Likewise.
11343         * config/winnt-c.c: Likewise.
11344         * config/xtensa/xtensa.c: Likewise.
11345         * common/config/bfin/bfin-common.c: Likewise.
11347 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
11349         * tree.h (tree_code_for_canonical_type_merging): New function.
11350         * tree.c (gimple_canonical_types_compatible_p): Use
11351         tree_code_for_canonical_type_merging..
11353 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11355         PR c++/66192
11356         PR target/66200
11357         * doc/tm.texi: Regenerate.
11358         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
11359         * target.def (TARGET_RELAXED_ORDERING): Likewise.
11360         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
11361         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
11362         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
11363         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
11364         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
11365         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
11366         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
11368 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11370         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
11371         register fma steering pass.
11372         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
11373         AARCH64_TUNE_FMA_STEERING.
11375 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
11377         * tree.c (verify_type_variant): Verify that type and variant is
11378         compatible.
11379         (gimple_canonical_types_compatible_p): Look for main variants.
11381 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
11383         * config.gcc (powerpc*-*-*): Add support for a new configure
11384         option --with-advance-toolchain=<xxx> which overrides using the
11385         default header files, libraries and dynamic linker.
11387         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
11388         specs to support the configure --with-advance-toolchain=<xxx>
11389         option.
11390         (INCLUDE_EXTRA_SPEC): Likewise.
11391         (LINK_OS_EXTRA_SPEC32): Likewise.
11392         (LINK_OK_EXTRA_SPEC64): Likewise.
11393         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
11394         (DYNAMIC_LINKER_PREFIX): Likewise.
11395         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
11396         toolchain support.
11397         (GLIBC_DYNAMIC_LINKER32): Likewise.
11398         (GLIBC_DYNAMIC_LINKER64): Likewise.
11399         (LINK_OS_LINUX_SPEC32): Likewise.
11400         (LINK_OS_LINUX_SPEC64): Likewise.
11402         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
11403         configuration option.
11405 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
11407         PR target/66275
11408         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
11409         to determine current function ABI.
11410         (ix86_function_value_regno_p): Ditto.
11412 2015-06-03  Martin Liska  <mliska@suse.cz>
11414         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
11415         * bitmap.h (struct bitmap_usage): Likewise.
11416         * ggc-common.c (struct ggc_usage): Likewise.
11417         * mem-stats.h (struct mem_location): Likewise.
11418         (struct mem_usage): Likewise.
11419         * vec.c (struct vec_usage): Likewise.
11421 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
11423         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
11424         -Bsymbolic.
11426 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
11428         * doc/plugins.texi (enum plugin_event): New event.
11429         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
11430         and PLUGIN_FINISH_FUNCTION.
11431         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
11432         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
11434 2015-06-03  Richard Biener  <rguenther@suse.de>
11436         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
11437         compute GROUP_GAP for the first element.
11438         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
11439         on in-group gaps.
11441 2015-06-03  Nick Clifton  <nickc@redhat.com>
11443         * config/rl78/rl78-real.md: Add peepholes to avoid a register
11444         copy when calling a function.
11445         * config/rl78/rl78.c (need_to_save): Do not push the frame
11446         pointer in an interrupt handler prologue if it is never used.
11448 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11450         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
11452 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
11454         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
11455         reference when cloning alias node.
11457 2015-06-03  Martin Liska  <mliska@suse.cz>
11459         * alloc-pool.h (struct pool_usage): Correct space padding.
11460         * ggc-page.c (ggc_print_statistics): Align columns in a report.
11461         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
11462         * tree.c (dump_tree_statistics): Align columns in a report.
11464 2015-06-03  Martin Liska  <mliska@suse.cz>
11466         * alloc-pool.c (allocate_pool_descriptor): Remove.
11467         (struct pool_output_info): Likewise.
11468         (print_alloc_pool_statistics): Likewise.
11469         (dump_alloc_pool_statistics): Likewise.
11470         * alloc-pool.h (struct pool_usage): New struct.
11471         (pool_allocator::initialize): Change usage of memory statistics
11472         to a new interface.
11473         (pool_allocator::release): Likewise.
11474         (pool_allocator::allocate): Likewise.
11475         (pool_allocator::remove): Likewise.
11476         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
11477         for a pool allocator.
11478         * mem-stats.h (struct mem_location): Add new ctor.
11479         (struct mem_usage): Add counter for number of
11480         instances.
11481         (mem_alloc_description::register_descriptor): New overload of
11482         * mem-stats.h (mem_location::to_string): New function.
11483         * bitmap.h (struct bitmap_usage): Use this new function.
11484         * ggc-common.c (struct ggc_usage): Likewise.
11485         the function.
11487 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
11489         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
11490         of GCC_INSN_FLAGS_H block.
11492 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
11494         * explow.c (plus_constant): Update check after force_const_mem call
11495         to see if the value returned is not a NULL_RTX.
11497 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
11499         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
11500         remove instumentation thunks calling reachable functions.
11501         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
11502         * lto/lto-partition.c (privatize_symbol_name_1): New.
11503         (privatize_symbol_name): Privatize both decl and orig_decl
11504         names for instrumented functions.
11505         * cgraph.c (cgraph_node::verify_node): Add transparent
11506         alias chain check for instrumented node.
11508 2015-06-03  Marek Polacek  <polacek@redhat.com>
11510         PR c/64223
11511         PR c/29358
11512         * tree.c (attribute_value_equal): Handle attribute format.
11513         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
11515 2015-06-03  Richard Biener  <rguenther@suse.de>
11517         PR tree-optimization/63916
11518         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
11519         Forward-propagate non-invariant addresses by splicing their
11520         reference ops if the result isn't going to be used by PRE.
11521         (vn_reference_lookup_3): Remove pointless assert.
11523 2015-06-03  Richard Biener  <rguenther@suse.de>
11525         PR tree-optimization/66375
11526         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
11527         add to the evolution before following SSA edges.
11529 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
11531         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
11532         (dump_use, dump_cand, find_induction_variables): Pass new argument
11533         to dump_iv.
11534         (record_use): Preserve the ssa name information in IV.
11536 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
11538         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
11539         NO_MODE_TEST.
11540         (add_mode_tests): Don't add mode tests if the predicate only
11541         accepts scalar constant integers.  Otherwise, allow the mode
11542         of "op" to be VOIDmode if the predicate does accept such integers.
11544 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
11546         PR target/66258
11547         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
11548         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
11549         (aarch64_secondary_reload): Likewise
11550         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
11551         to !TARGET_FLOAT.
11552         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
11553         Likewise.
11555 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
11556             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
11558         PR target/65768
11559         * cprop.c (try_replace_reg): Check cost of constants before propagating.
11561 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
11563         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
11564         provide access to the IBM extended double floating point mode if
11565         long double is IEEE 128-bit floating point.
11566         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
11567         point if long double is the IBM extended double type.
11569         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
11570         enable adding IEEE 128-bit floating point support.
11571         (-mfloat128-software): Likewise.
11572         (-mfloat128-sw): Likewise.
11574         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
11575         128-bit floating point types to occupy any register if
11576         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
11577         -mfloat128-software is enabled.
11578         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
11579         support.
11580         (rs6000_option_override_internal): Add -mfloat128-* support.
11581         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
11583         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
11584         and float128 type nodes.
11585         (ieee128_float_type_node): Likewise.
11586         (ibm128_float_type_node): Likewise.
11588 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11590         PR target/66136
11591         * config/aarch64/geniterators.sh: Rewrite in awk.
11593 2015-06-02  Martin Liska  <mliska@suse.cz>
11595         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
11596         values to avoid -Wmaybe-uninitialized errors.
11598 2015-06-02  Richard Biener  <rguenther@suse.de>
11600         PR debug/65549
11601         * dwarf2out.c (lookup_context_die): New function.
11602         (resolve_addr): Avoid forcing a full DIE for the
11603         target of a DW_TAG_GNU_call_site during late compilation.
11604         Instead create a stub DIE without a type if we have a
11605         context DIE present.
11607 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
11609         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
11611 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
11613         PR tree-optimization/48052
11614         * cfgloop.h (struct control_iv): New.
11615         (struct loop): New field control_ivs.
11616         * tree-ssa-loop-niter.c : Include "stor-layout.h".
11617         (number_of_iterations_lt): Set no_overflow information.
11618         (number_of_iterations_exit): Init control iv in niter struct.
11619         (record_control_iv): New.
11620         (estimate_numbers_of_iterations_loop): Call record_control_iv.
11621         (loop_exits_before_overflow): New.  Interface factored out of
11622         scev_probably_wraps_p.
11623         (scev_probably_wraps_p): Factor loop niter related code into
11624         loop_exits_before_overflow.
11625         (free_numbers_of_iterations_estimates_loop): Free control ivs.
11626         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
11628 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
11630         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
11631         the target doesn't belong to the current function.
11633 2015-06-02  Marek Polacek  <polacek@redhat.com>
11635         PR middle-end/66345
11636         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
11637         get_maxval_strlen does not produce an INTEGER_CST.
11639 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
11641         * config/arc/constraints.md: Use lower-case names in match_code.
11642         * config/mmix/constraints.md: Likewise.
11644 2015-06-02  Richard Biener  <rguenther@suse.de>
11646         PR tree-optimization/65961
11647         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
11648         check and clarify dump message.
11649         (vect_build_slp_tree): If all children are built up from scalars
11650         build up the parent from scalars instead.
11651         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
11653 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
11655         PR other/65366
11656         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
11657         instead of print ... .
11659 2015-06-02  Alan Modra  <amodra@gmail.com>
11661         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
11662         2014-08-11 change.
11664 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
11666         PR tree-optimization/52563
11667         PR tree-optimization/62173
11668         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
11669         (alloc_iv, set_iv): New parameter.
11670         (determine_biv_step): Delete.
11671         (find_bivs): Inline original determine_biv_step.  Pass new
11672         argument to set_iv.
11673         (idx_find_step): Use no_overflow information for conversion.
11674         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
11675         resolve_mixers handle folded_casts.
11676         (instantiate_scev_name): Change bool parameter to bool pointer.
11677         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
11678         (instantiate_array_ref, instantiate_scev_not): Ditto.
11679         (instantiate_scev_3, instantiate_scev_2): Ditto.
11680         (instantiate_scev_1, instantiate_scev_r): Ditto.
11681         (instantiate_scev_convert, ): Change parameter.  Pass argument
11682         to chrec_convert_aggressive.
11683         (instantiate_scev): Change argument.
11684         (resolve_mixers): New parameter and set it.
11685         (scev_const_prop): New argument.
11686         * tree-scalar-evolution.h (resolve_mixers): New parameter.
11687         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
11688         of chrec_conert_1.
11689         (chrec_convert): New parameter.  Move definition below.
11690         (chrec_convert_aggressive): New parameter and set it.  Call
11691         convert_affine_scev.
11692         * tree-chrec.h (chrec_convert): New parameter.
11693         (chrec_convert_aggressive): Ditto.
11695 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
11697         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
11698         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
11699         the LHS of a no-return call if its type has variable size.
11700         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
11701         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
11703 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
11705         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
11706         * config.in: Regenerate.
11708 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
11710         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
11711         consecutive accesses within outer-loop with force_vectorize
11712         for references with zero step in inner-loop.
11714 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
11716         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
11717         rather than from gcc/build directory.
11719 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
11721         PR target/65697
11722         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
11723         for __sync memory models, emit initial loads and final barriers as
11724         appropriate.
11726 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
11728         PR target/65697
11729         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
11730         (aarch64_split_atomic_op): Check for __sync memory models, emit
11731         appropriate initial loads and final barriers.
11733 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
11735         * Makefile.in: Fix gcov dependencies that should
11736         not point to a build folder.
11738 2015-06-01  Richard Biener  <rguenther@suse.de>
11740         Revert
11741         2015-05-29  Richard Biener  <rguenther@suse.de>
11743         PR tree-optimization/66314
11744         * tree-ssa-threadupdate.c (create_block_for_threading): Add
11745         parameter that says which loop the new block belongs to.
11746         (ssa_create_duplicates): Blocks duplicated for the threaded
11747         path belong to the loop of the thread destination.
11749 2015-06-01  Martin Liska  <mliska@suse.cz>
11751         * sched-deps.c: Include pool-alloc.h before
11752         cselib.h header file is included.
11754 2015-06-01  Richard Biener  <rguenther@suse.de>
11756         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
11757         functions.
11759 2015-06-01  Martin Liska  <mliska@suse.cz>
11761         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
11762         a function local variable.
11764 2015-06-01  Martin Liska  <mliska@suse.cz>
11766         * alloc-pool.c (create_alloc_pool): Remove.
11767         (empty_alloc_pool): Likewise.
11768         (free_alloc_pool): Likewise.
11769         (free_alloc_pool_if_empty): Likewise.
11770         (pool_alloc): Likewise.
11771         (pool_free): Likewise.
11772         * alloc-pool.h: Remove old declarations.
11774 2015-06-01  Martin Liska  <mliska@suse.cz>
11776         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
11777         (ira_create_object): Likewise.
11778         (ira_create_allocno): Likewise.
11779         (ira_create_live_range): Likewise.
11780         (copy_live_range): Likewise.
11781         (ira_finish_live_range): Likewise.
11782         (ira_free_allocno_costs): Likewise.
11783         (finish_allocno): Likewise.
11784         (finish_allocnos): Likewise.
11785         (initiate_prefs): Likewise.
11786         (ira_create_pref): Likewise.
11787         (finish_pref): Likewise.
11788         (finish_prefs): Likewise.
11789         (initiate_copies): Likewise.
11790         (ira_create_copy): Likewise.
11791         (finish_copy): Likewise.
11792         (finish_copies): Likewise.
11793         (finish_prefs): Likewise.
11795 2015-06-01  Martin Liska  <mliska@suse.cz>
11797         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
11798         (allocate_and_init_ipcp_value): Likewise.
11799         (ipcp_lattice::add_value): Likewise.
11800         (merge_agg_lats_step): Likewise.
11801         (ipcp_driver): Likewise.
11802         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
11803         (ipa_free_all_structures_after_iinln): Likewise.
11804         * ipa-prop.h: Likewise.
11806 2015-06-01  Martin Liska  <mliska@suse.cz>
11808         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
11809         pool allocator.
11810         (set_hint_predicate): Likewise.
11811         (inline_summary_alloc): Likewise.
11812         (reset_inline_edge_summary): Likewise.
11813         (reset_inline_summary): Likewise.
11814         (set_cond_stmt_execution_predicate): Likewise.
11815         (set_switch_stmt_execution_predicate): Likewise.
11816         (compute_bb_predicates): Likewise.
11817         (estimate_function_body_sizes): Likewise.
11818         (inline_free_summary): Likewise.
11820 2015-06-01  Martin Liska  <mliska@suse.cz>
11822         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
11823         (ipa_edge_duplication_hook): Likewise.
11824         (ipa_free_all_structures_after_ipa_cp): Likewise.
11825         (ipa_free_all_structures_after_iinln): Likewise.
11827 2015-06-01  Martin Liska  <mliska@suse.cz>
11829         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
11830         (ipa_profile_generate_summary): Likewise.
11831         (ipa_profile_read_summary): Likewise.
11832         (ipa_profile): Likewise.
11834 2015-06-01  Martin Liska  <mliska@suse.cz>
11836         * tree-ssa-structalias.c (new_var_info): Use new type-based
11837         pool allocator.
11838         (new_constraint): Likewise.
11839         (init_alias_vars): Likewise.
11840         (delete_points_to_sets): Likewise.
11842 2015-06-01  Martin Liska  <mliska@suse.cz>
11844         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
11845         (free_strinfo): Likewise.
11846         (pass_strlen::execute): Likewise.
11848 2015-06-01  Martin Liska  <mliska@suse.cz>
11850         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
11851         pool allocator.
11852         (vn_reference_insert_pieces): Likewise.
11853         (vn_phi_insert): Likewise.
11854         (visit_reference_op_call): Likewise.
11855         (copy_phi): Likewise.
11856         (copy_reference): Likewise.
11857         (process_scc): Likewise.
11858         (allocate_vn_table): Likewise.
11859         (free_vn_table): Likewise.
11861 2015-06-01  Martin Liska  <mliska@suse.cz>
11863         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
11864         pool allocator.
11865         (add_repeat_to_ops_vec): Likewise.
11866         (get_ops): Likewise.
11867         (maybe_optimize_range_tests): Likewise.
11868         (init_reassoc): Likewise.
11869         (fini_reassoc): Likewise.
11871 2015-06-01  Martin Liska  <mliska@suse.cz>
11873         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
11874         pool allocator.
11875         (bitmap_set_new): Likewise.
11876         (get_or_alloc_expr_for_constant): Likewise.
11877         (get_or_alloc_expr_for): Likewise.
11878         (phi_translate_1): Likewise.
11879         (compute_avail): Likewise.
11880         (init_pre): Likewise.
11881         (fini_pre): Likewise.
11883 2015-06-01  Martin Liska  <mliska@suse.cz>
11885         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
11886         (delete_dep_node): Likewise.
11887         (create_deps_list): Likewise.
11888         (free_deps_list): Likewise.
11889         (sched_deps_init): Likewise.
11890         (sched_deps_finish): Likewise.
11892 2015-06-01  Martin Liska  <mliska@suse.cz>
11894         * regcprop.c (free_debug_insn_changes): Use new type-based
11895         pool allocator.
11896         (replace_oldest_value_reg): Likewise.
11897         (pass_cprop_hardreg::execute): Likewise.
11899 2015-06-01  Martin Liska  <mliska@suse.cz>
11901         * ira-build.c (initiate_cost_vectors): Use new type-based
11902         pool allocator.
11903         (ira_allocate_cost_vector): Likewise.
11904         (ira_free_cost_vector): Likewise.
11905         (finish_cost_vectors): Likewise.
11907 2015-06-01  Martin Liska  <mliska@suse.cz>
11909         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
11910         pool allocator.
11911         (free_sched_pools): Likewise.
11912         * sel-sched-ir.h (_list_alloc): Likewise.
11913         (_list_remove): Likewise.
11915 2015-06-01  Martin Liska  <mliska@suse.cz>
11917         * stmt.c (add_case_node): Use new type-based pool allocator.
11918         (expand_case): Likewise.
11919         (expand_sjlj_dispatch_table): Likewise.
11921 2015-06-01  Martin Liska  <mliska@suse.cz>
11923         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
11924         (free_bb): Likewise.
11925         (pass_cse_reciprocals::execute): Likewise.
11927 2015-06-01  Martin Liska  <mliska@suse.cz>
11929         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
11930         (sra_deinitialize) Likewise.
11931         (create_access_1) Likewise.
11932         (build_accesses_from_assign) Likewise.
11933         (create_artificial_child_access) Likewise.
11935 2015-06-01  Martin Liska  <mliska@suse.cz>
11937         * dse.c (get_group_info):Use new type-based pool allocator.
11938         (dse_step0) Likewise.
11939         (free_store_info) Likewise.
11940         (delete_dead_store_insn) Likewise.
11941         (free_read_records) Likewise.
11942         (record_store) Likewise.
11943         (replace_read) Likewise.
11944         (check_mem_read_rtx) Likewise.
11945         (scan_insn) Likewise.
11946         (dse_step1) Likewise.
11947         (dse_step7) Likewise.
11949 2015-06-01  Martin Liska  <mliska@suse.cz>
11951         * df-scan.c (struct df_scan_problem_data):Use new type-based
11952         pool allocator.
11953         (df_scan_free_internal) Likewise.
11954         (df_scan_alloc) Likewise.
11955         (df_grow_reg_info) Likewise.
11956         (df_free_ref) Likewise.
11957         (df_insn_create_insn_record) Likewise.
11958         (df_mw_hardreg_chain_delete) Likewise.
11959         (df_insn_info_delete) Likewise.
11960         (df_free_collection_rec) Likewise.
11961         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
11962         (df_sort_and_compress_mws) Likewise.
11963         (df_ref_create_structure) Likewise.
11964         (df_ref_record) Likewise.
11966 2015-06-01  Martin Liska  <mliska@suse.cz>
11968         * df-problems.c (df_chain_create):Use new type-based pool allocator.
11969         (df_chain_unlink_1) Likewise.
11970         (df_chain_unlink) Likewise.
11971         (df_chain_remove_problem) Likewise.
11972         (df_chain_alloc) Likewise.
11973         (df_chain_free) Likewise.
11974         * df.h (struct dataflow) Likewise.
11976 2015-06-01  Martin Liska  <mliska@suse.cz>
11978         * cselib.c (new_elt_list):Use new type-based pool allocator.
11979         (new_elt_loc_list) Likewise.
11980         (unchain_one_elt_list) Likewise.
11981         (unchain_one_elt_loc_list) Likewise.
11982         (unchain_one_value) Likewise.
11983         (new_cselib_val) Likewise.
11984         (cselib_init) Likewise.
11985         (cselib_finish) Likewise.
11987 2015-06-01  Martin Liska  <mliska@suse.cz>
11989         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
11990         (sh_reorg) Likewise.
11992 2015-06-01  Martin Liska  <mliska@suse.cz>
11994         * cfg.c (initialize_original_copy_tables):Use new type-based
11995         pool allocator.
11996         (free_original_copy_tables) Likewise.
11997         (copy_original_table_clear) Likewise.
11998         (copy_original_table_set) Likewise.
12000 2015-06-01  Martin Liska  <mliska@suse.cz>
12002         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
12003         pool allocator.
12004         (asan_mem_ref_new) Likewise.
12005         (free_mem_ref_resources) Likewise.
12007 2015-06-01  Martin Liska  <mliska@suse.cz>
12009         * var-tracking.c (variable_htab_free):Use new type-based
12010         pool allocator.
12011         (attrs_list_clear) Likewise.
12012         (attrs_list_insert) Likewise.
12013         (attrs_list_copy) Likewise.
12014         (shared_hash_unshare) Likewise.
12015         (shared_hash_destroy) Likewise.
12016         (unshare_variable) Likewise.
12017         (var_reg_delete_and_set) Likewise.
12018         (var_reg_delete) Likewise.
12019         (var_regno_delete) Likewise.
12020         (drop_overlapping_mem_locs) Likewise.
12021         (variable_union) Likewise.
12022         (insert_into_intersection) Likewise.
12023         (canonicalize_values_star) Likewise.
12024         (variable_merge_over_cur) Likewise.
12025         (dataflow_set_merge) Likewise.
12026         (remove_duplicate_values) Likewise.
12027         (variable_post_merge_new_vals) Likewise.
12028         (dataflow_set_preserve_mem_locs) Likewise.
12029         (dataflow_set_remove_mem_locs) Likewise.
12030         (variable_from_dropped) Likewise.
12031         (variable_was_changed) Likewise.
12032         (set_slot_part) Likewise.
12033         (clobber_slot_part) Likewise.
12034         (delete_slot_part) Likewise.
12035         (loc_exp_insert_dep) Likewise.
12036         (notify_dependents_of_changed_value) Likewise.
12037         (emit_notes_for_differences_1) Likewise.
12038         (vt_emit_notes) Likewise.
12039         (vt_initialize) Likewise.
12040         (vt_finalize) Likewise.
12042 2015-06-01  Martin Liska  <mliska@suse.cz>
12044         * ira-color.c (init_update_cost_records):Use new type-based
12045         pool allocator.
12046         (get_update_cost_record) Likewise.
12047         (free_update_cost_record_list) Likewise.
12048         (finish_update_cost_records) Likewise.
12049         (initiate_cost_update) Likewise.
12051 2015-06-01  Martin Liska  <mliska@suse.cz>
12053         * lra.c (init_insn_regs): Use new type-based pool allocator.
12054         (new_insn_reg) Likewise.
12055         (free_insn_reg) Likewise.
12056         (free_insn_regs) Likewise.
12057         (finish_insn_regs) Likewise.
12058         (init_insn_recog_data) Likewise.
12059         (init_reg_info) Likewise.
12060         (finish_reg_info) Likewise.
12061         (lra_free_copies) Likewise.
12062         (lra_create_copy) Likewise.
12063         (invalidate_insn_data_regno_info) Likewise.
12065 2015-06-01  Martin Liska  <mliska@suse.cz>
12067         * lra-lives.c (free_live_range): Use new type-based pool allocator.
12068         (free_live_range_list) Likewise.
12069         (create_live_range) Likewise.
12070         (copy_live_range) Likewise.
12071         (lra_merge_live_ranges) Likewise.
12072         (remove_some_program_points_and_update_live_ranges) Likewise.
12073         (lra_live_ranges_init) Likewise.
12074         (lra_live_ranges_finish) Likewise.
12076 2015-06-01  Martin Liska  <mliska@suse.cz>
12078         * et-forest.c (et_new_occ): Use new type-based pool allocator.
12079         (et_new_tree): Likewise.
12080         (et_free_tree): Likewise.
12081         (et_free_tree_force): Likewise.
12082         (et_free_pools): Likewise.
12083         (et_split): Likewise.
12085 2015-06-01  Martin Liska  <mliska@suse.cz>
12087         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
12088         to header file.
12089         * alloc-pool.h (pool_allocator::pool_allocator): New function.
12090         (pool_allocator::release): Likewise.
12091         (inline pool_allocator::release_if_empty): Likewise.
12092         (inline pool_allocator::~pool_allocator): Likewise.
12093         (pool_allocator::allocate): Likewise.
12094         (pool_allocator::remove): Likewise.
12096 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
12098         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
12099         in comment.
12101 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
12103         * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
12104         to fusible_ops.
12105         * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
12106         (arm_macro_fusion_p): Likewise.
12107         (arm_macro_fusion_pair_p): Likewise.
12109 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
12111         * config/aarch64/aarch64-protos.h (tune_params): Rename
12112         fuseable_ops to fusible_ops.
12113         * config/aarch64/aarch64.c (generic_tunings): Rename
12114         fuseable_ops to fusible_ops.
12115         (cortexa53_tunings): Likewise.
12116         (cortexa57_tunings): Likewise.
12117         (thunderx_tunings): Likewise.
12118         (xgene1_tunings): Likewise.
12119         (aarch64_macro_fusion_p): Likewise.
12120         (aarch64_macro_fusion_pair_p): Likewise.
12122 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
12124         * config/s390/driver-native.c: New file.
12125         * config/s390/x-native: New file.
12126         * config.host: Add new files for s390.
12127         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
12128         and -march=native
12129         * config.gcc: Likewise.
12130         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
12131         * config/s390/s390-opts.h (enum processor_type): Ditto.
12132         * config/s390/s390.c (s390_option_override): Catch unhandled
12133         PROCESSOR_NATIVE
12135 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
12137         PR target/65527
12138         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
12139         redirection for instrumented calls.
12140         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
12141         (append_compiler_options): Append -fcheck-pointer-bounds.
12142         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
12143         (chkp_redirect_edge): New.
12144         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
12145         (chkp_redirect_edge): New.
12147 2015-06-01  Richard Biener  <rguenther@suse.de>
12149         PR tree-optimization/66280
12150         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
12151         def-use walking.
12153 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12155         * config/aarch64/aarch64.md
12156         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
12157         logic_shift_imm.
12159 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
12161         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
12162         Remove obsolete kludge.
12164 2015-06-01  Richard Biener  <rguenther@suse.de>
12166         * tree-ssa-reassoc.c (get_rank): Simplify.
12168 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
12170         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
12171         * configure: Regenerated.
12173 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
12175         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
12176         issue (add space between string literal and macro).
12177         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
12179 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
12181         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
12182         implict or explicit -fPIE or -fpie.
12184 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
12186         * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
12188 2015-05-28  DJ Delorie  <dj@redhat.com>
12190         * expmed.c (extract_bit_field_1): Avoid clobbering a
12191         yet-to-be-used base/index register.
12193 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
12195         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
12196         (alias_stats): Add num_universal.
12197         (alias_set_subset_of): Special case pointers; be ready for NULL
12198         children.
12199         (alias_sets_conflict_p): Special case pointers; be ready for NULL
12200         children.
12201         (init_alias_set_entry): Break out from ...
12202         (record_alias_subset): ... here; propagate new fields;
12203         allocate children only when really needed.
12204         (get_alias_set): Do less generous pointer globbing.
12205         (dump_alias_stats_in_alias_c): Update statistics.
12207 2015-05-30  Alan Modra  <amodra@gmail.com>
12209         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
12210         correct block for use of r12.
12211         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
12213 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
12215         PR target/66215
12216         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
12217         with -mhotpatch=.
12219 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
12221         PR tree-optimization/66142
12222         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
12223         virtual phis that feed themselves.
12225 2015-05-29  Richard Biener  <rguenther@suse.de>
12227         PR tree-optimization/66314
12228         * tree-ssa-threadupdate.c (create_block_for_threading): Add
12229         parameter that says which loop the new block belongs to.
12230         (ssa_create_duplicates): Blocks duplicated for the threaded
12231         path belong to the loop of the thread destination.
12233 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
12235         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
12236         to cleanup-saved-temps.
12237         * doc/sourcebuild.texi (Clean up generated test files): Expand
12238         introduction.
12239         (dg-keep-saved-temps): Document new proc.
12240         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
12241         cleanup-saved-temps): Remove.
12243 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
12245         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
12246         gcc_AC_CHECK_DECLS.
12247         * configure: Regenerate.
12249 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
12251         * config/nios2/linux.h (CPP_SPEC): Define.
12253 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
12255         * config/microblaze/linux.h (CPP_SPEC): Define.
12257 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
12259         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
12260         -pthread is specified.
12262 2015-05-28  Richard Biener  <rguenther@suse.de>
12264         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
12265         (vect_fixup_scalar_cycles_with_patterns): Likewise.
12266         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
12267         after pattern recog.
12268         (vect_create_epilog_for_reduction): Properly handle reductions
12269         with patterns.
12270         (vectorizable_reduction): Likewise.
12271         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
12272         reduction chains.
12273         (vect_get_constant_vectors): Create the correct number of
12274         initial values for reductions.
12275         (vect_schedule_slp_instance): Handle reduction chains that are
12276         type changing properly.
12277         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
12279 2015-05-28  Richard Biener  <rguenther@suse.de>
12281         PR tree-optimization/66142
12282         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
12283         values better in memcpy destination handling.  Handle non-aliasing
12284         we discover here.
12286 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
12288         PR target/63810
12289         * config/darwin-c.c (version_components): New global enum.
12290         (parse_version, version_as_legacy_macro)
12291         (version_as_modern_macro, macosx_version_as_macro): New functions.
12292         (version_as_macro): Remove.
12293         (darwin_cpp_builtins): Use new function.
12295 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
12297         * builtins.c (expand_builtin_acc_on_device): Mark parameters
12298         with ATTRIBUTE_UNUSED.
12300 2015-05-28  Julian Brown  <julian@codesourcery.com>
12302         PR libgomp/65742
12304         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
12305         sequence for !ACCEL_COMPILER.
12307 2015-05-28  Nick Clifton  <nickc@redhat.com>
12309         * config/rx/rx.c (push_regs): New function.  Extracts code from...
12310         (rx_expand_prologue): ... here.  Use push_regs to push even small
12311         spans of registers.
12312         (pop_regs): New function.
12313         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
12314         registers.
12316 2015-05-28  Richard Biener  <rguenther@suse.de>
12318         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
12319         member.
12320         (SLP_INSTANCE_BODY_COST_VEC): Remove.
12321         (vect_update_slp_costs_according_to_vf): Likewise.
12322         (vect_slp_analyze_operations): Update prototype.
12323         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
12324         vect_update_slp_costs_according_to_vf, adjust.
12325         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
12326         (vect_analyze_slp_cost_1): Likewise.
12327         (vect_analyze_slp_cost): Likewise.  Properly deal with
12328         widening reduction ops.  Commit body costs.
12329         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
12330         cost for loops from here.
12331         (vect_slp_analyze_operations): But do it from here when
12332         the vectorization factor is known and stmts are analyzed.
12333         (vect_bb_vectorization_profitable_p): Simplify.
12334         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
12335         (vect_update_slp_costs_according_to_vf): Remove.
12337 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
12338             H.J. Lu  <hongjiu.lu@intel.com>
12340         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
12341         (BUILD_CFLAGS): Likewise.
12342         (BUILD_CXXFLAGS): Likewise.
12343         (LINKER): Add @NO_PIE_FLAG@.
12344         (BUILD_LDFLAGS): Likewise.
12345         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
12346         --enable-default-pie.
12347         * common.opt (fPIE): Initialize to -1.
12348         (fpie): Likewise.
12349         (no-pie): New option.
12350         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
12351         * configure.ac: Add --enable-default-pie.
12352         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
12353         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
12354         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
12355         * gcc.c (NO_PIE_SPEC): New.
12356         (PIE_SPEC): Likewise.
12357         (NO_FPIE1_SPEC): Likewise.
12358         (FPIE1_SPEC): Likewise.
12359         (NO_FPIE2_SPEC): Likewise.
12360         (FPIE2_SPEC): Likewise.
12361         (NO_FPIE2_SPEC): Likewise.
12362         (FPIE_SPEC): Likewise.
12363         (NO_FPIE_SPEC): Likewise.
12364         (NO_FPIC1_SPEC): Likewise.
12365         (FPIC1_SPEC): Likewise.
12366         (NO_FPIC2_SPEC): Likewise.
12367         (FPIC2_SPEC): Likewise.
12368         (NO_FPIC2_SPEC): Likewise.
12369         (FPIC_SPEC): Likewise.
12370         (NO_FPIC_SPEC): Likewise.
12371         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
12372         (FPIE1_OR_FPIC1_SPEC): Likewise.
12373         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
12374         (FPIE2_OR_FPIC2_SPEC): Likewise.
12375         (NO_FPIE_AND_FPIC_SPEC): Likewise.
12376         (FPIE_OR_FPIC_SPEC): Likewise.
12377         (LD_PIE_SPEC): Likewise.
12378         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
12379         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
12380         * config/darwin.h (PIE_SPEC): Renamed to ...
12381         (DARWIN_PIE_SPEC): This.
12382         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
12383         * config/darwin9.h (PIE_SPEC): Renamed to ...
12384         (DARWIN_PIE_SPEC): This.
12385         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
12386         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
12387         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
12388         FPIE2_OR_FPIC2_SPEC.
12389         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
12390         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
12391         * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
12392         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
12393         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
12394         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
12395         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
12396         * config/m32r/m32r.h (ASM_SPEC): Likewise.
12397         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
12398         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
12399         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
12400         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
12401         * config/sparc/linux.h (ASM_SPEC): Likewise.
12402         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12403         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
12404         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
12405         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12406         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
12407         * config/sparc/sparc.h (ASM_SPEC): Likewise.
12408         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
12409         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
12410         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
12411         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
12412         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
12413         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
12414         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
12415         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
12416         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
12417         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
12418         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
12419         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
12420         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12421         * config/vax/linux.h (ASM_SPEC): Likewise.
12422         * doc/install.texi: Document --enable-default-pie.
12423         * doc/invoke.texi: Document -no-pie.
12424         * config.in: Regenerated.
12425         * configure: Likewise.
12427 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12429         PR rtl-optimization/66168
12430         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
12431         can_move_invariant_reg.
12433 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
12435         PR target/66148
12436         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
12437         REG_EQUAL note when doing insert.
12439         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
12440         instead of "%d" for 'o' operand.
12442 2015-05-27  Nathan Sidwell  <nathan@acm.org>
12444         PR c++/66270
12445         * tree.c (build_pointer_type_for_mode): Canonical type does not
12446         inherit can_alias_all.
12447         (build_reference_type_for_mode): Likewise.
12449 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
12451         * expr.h (array_at_struct_end_p): Move to...
12452         (array_ref_element_size): Likewise.
12453         (component_ref_field_offset): Likewise.
12454         * tree.h (array_ref_element_size): ...here.
12455         (array_at_struct_end_p): Likewise.
12456         (component_ref_field_offset): Likewise.
12457         * expr.c (array_ref_element_size): Move to...
12458         (array_ref_low_bound): Likewise.
12459         (array_at_struct_end_p): Likewise.
12460         (array_ref_up_bound): Likewise.
12461         (component_ref_field_offset): Likewise.
12462         * tree.c (array_ref_element_size): ...here.
12463         (array_ref_low_bound): Likewise.
12464         (array_ref_up_bound): Likewise.
12465         (array_at_struct_end_p): Likewise.
12466         (component_ref_field_offset): Likewise.
12468 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
12469             Szabolcs Nagy  <szabolcs.nagy@arm.com>
12471         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
12473 2015-05-27  Jason Merrill  <jason@redhat.com>
12475         PR bootstrap/66304
12476         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
12477         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
12478         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
12480 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
12482         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
12483         is true.
12485         * statistics.c (statistics_fini_pass): Print pass name.
12487 2015-05-27  Richard Biener  <rguenther@suse.de>
12489         PR tree-optimization/66272
12490         Revert parts of
12491         2014-08-15  Richard Biener  <rguenther@suse.de>
12493         PR tree-optimization/62031
12494         * tree-data-ref.c (dr_analyze_indices): Do not set
12495         DR_UNCONSTRAINED_BASE.
12496         (dr_may_alias_p): All indirect accesses have to go the
12497         formerly DR_UNCONSTRAINED_BASE path.
12498         * tree-data-ref.h (struct indices): Remove
12499         unconstrained_base member.
12500         (DR_UNCONSTRAINED_BASE): Remove.
12502 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
12504         * dwarf2out.c: Remove block_map.
12505         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
12506         (gen_lexical_block_die): Same.
12507         (dwarf2out_function_decl): Remove block_map use.
12508         (dwarf2out_c_finalize): Same.
12509         * tree-core.h (struct tree_block): Add die field.
12510         * tree.h (BLOCK_DIE): New.
12512 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12514         PR target/65358
12515         * expr.c (memory_load_overlap): New function.
12516         (emit_push_insn): When pushing partial args to the stack would
12517         clobber the register part load the overlapping part into a pseudo
12518         and put it into the hard reg after pushing.  Change return type
12519         to bool.  Add bool argument.
12520         * expr.h (emit_push_insn): Change return type to bool.
12521         Add bool argument.
12522         * calls.c (expand_call): Cancel sibcall optimization when encountering
12523         partial argument on targets with ARGS_GROW_DOWNWARD and
12524         !STACK_GROWS_DOWNWARD.
12525         (emit_library_call_value_1): Update callsite of emit_push_insn.
12526         (store_one_arg): Likewise.
12528 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
12530         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
12532 2015-05-27  Martin Liska  <mliska@suse.cz>
12534         * Makefile.in: Add additional dependencies related to memory report
12535         enhancement.
12536         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
12537         * bitmap.c (struct bitmap_descriptor_d): Remove.
12538         (struct loc): Likewise.
12539         (struct bitmap_desc_hasher): Likewise.
12540         (bitmap_desc_hasher::hash): Likewise.
12541         (bitmap_desc_hasher::equal): Likewise.
12542         (get_bitmap_descriptor): Likewise.
12543         (bitmap_register): User new memory descriptor API.
12544         (register_overhead): Likewise.
12545         (bitmap_find_bit): Register nsearches and search_iter statistics.
12546         (struct bitmap_output_info): Remove.
12547         (print_statistics): Likewise.
12548         (dump_bitmap_statistics): Use new memory descriptor.
12549         * bitmap.h (struct bitmap_usage): New class.
12550         * genmatch.c: Extend header file inclusion.
12551         * genpreds.c: Likewise.
12552         * ggc-common.c (struct ggc_usage): New class.
12553         (struct ggc_loc_desc_hasher): Remove.
12554         (ggc_loc_desc_hasher::hash): Likewise.
12555         (ggc_loc_desc_hasher::equal): Likewise.
12556         (struct ggc_ptr_hash_entry): Likewise.
12557         (struct ptr_hash_hasher): Likewise.
12558         (ptr_hash_hasher::hash): Likewise.
12559         (ptr_hash_hasher::equal): Likewise.
12560         (make_loc_descriptor): Likewise.
12561         (ggc_prune_ptr): Likewise.
12562         (dump_ggc_loc_statistics): Use new memory descriptor.
12563         (ggc_record_overhead): Likewise.
12564         (ggc_free_overhead): Likewise.
12565         (final_cmp_statistic): Remove.
12566         (cmp_statistic): Likewise.
12567         (ggc_add_statistics): Liekwise.
12568         (ggc_prune_overhead_list): Likewise.
12569         * hash-map-traits.h: New file.
12570         * hash-map.h (struct default_hashmap_traits): Move the traits to a
12571         separate header file.
12572         * hash-set.h: Pass memory statistics info to ctor.
12573         * hash-table.c (void dump_hash_table_loc_statistics): New function.
12574         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
12575         (hash_table::~hash_table): Register memory release operation.
12576         (hash_table::alloc_entries): Handle memory allocation operation.
12577         (hash_table::expand): Likewise.
12578         * inchash.c (iterative_hash_hashval_t): Move implementation to header
12579         file.
12580         (iterative_hash_host_wide_int): Likewise.
12581         * inchash.h (class hash): Likewise.
12582         * mem-stats-traits.h: New file.
12583         * mem-stats.h: New file.
12584         (mem_location): Add new class.
12585         (mem_usage): Likewise.
12586         (mem_alloc_description): Likewise.
12587         * sese.c: Add new header file inclusision.
12588         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
12589         and hash_set.
12590         * tree-sra.c: Add new header file inclusision.
12591         * vec.c (struct vec_descriptor): Remove.
12592         (hash_descriptor): Likewise.
12593         (struct vec_usage): Likewise.
12594         (struct ptr_hash_entry): Likewise.
12595         (hash_ptr): Likewise.
12596         (eq_ptr): Likewise.
12597         (vec_prefix::register_overhead): Use new memory descriptor API.
12598         (vec_prefix::release_overhead): Likewise.
12599         (add_statistics): Remove.
12600         (dump_vec_loc_statistics): Use new memory descriptor API.
12601         * vec.h (struct vec_prefix): Likewise.
12602         (va_heap::reserve): Likewise.
12603         (va_heap::release): Likewise.
12604         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
12606 2015-05-27  Richard Biener  <rguenther@suse.de>
12608         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
12609         earlier and remove ??? comment.
12610         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
12611         and got called from loop analysis bail out.  Always pass the SLP
12612         node to the vectorizable_* functions.
12613         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
12614         the premature SLP check here.
12615         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
12616         detected SLP stmts.
12617         (vect_detect_hybrid_slp_1): Likewise.
12619 2015-05-26  Jeff Law  <law@redhat.com>
12621         * combine.c (find_split_point): Verify that the shift count is a
12622         constant when choosing (plus (ashift ...)) as a split point.
12624         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
12625         No functional changes.
12627 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
12629         * ipa-polymorphic-call.c
12630         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
12631         case when call target is already known.
12633 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
12635         PR target/65979
12636         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
12637         take into account the case that operands[1] and operands[2]
12638         are the same register.
12640 2015-05-26  Michael Matz  <matz@suse.de>
12642         PR middle-end/66251
12644         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
12645         stores.
12646         (vect_create_vectorized_demotion_stmts): Always set
12647         STMT_VINFO_VEC_STMT, also with SLP.
12648         (vectorizable_store): Handle strided group stores.
12650 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
12652         PR target/66049
12653         * config/aarch64/aarch64.md
12654         (*adds_shift_imm_<mode>):  New pattern.
12655         (*subs_shift_imm_<mode>):  Likewise.
12656         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
12657         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
12658         (*add_uxt<mode>_shift2): Likewise.
12659         (*add_uxtsi_shift2_uxtw): Likewise.
12660         (*sub_uxt<mode>_shift2): Likewise.
12661         (*sub_uxtsi_shift2_uxtw): Likewise.
12663 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
12665         * config/rs6000/constraints.md (Y, U): Use match_test.
12667 2015-05-26  Christian Bruel  <christian.bruel@st.com>
12669         PR target/52144
12670         * config/arm/arm.c (arm_option_check_internal)
12671         (arm_option_params_internal): Check opts->target_flags to set macros.
12672         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
12673         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
12674         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
12675         (builtin_define): Replaced with def_or_undef_macro.
12676         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
12677         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
12678         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
12679         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
12680         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
12681         (TARGET_ARM_FEATURE_LDREX_P)
12682         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
12683         * config/arm/arm-c.c (def_or_undef_macro): New function.
12684         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
12686 2015-05-26  Christian Bruel  <christian.bruel@st.com>
12688         * c-common.h (builtin_define_with_int_value)
12689         (builtin_define_type_sizeof): Declare.
12690         * c-cppbuiltin.c (builtin_define_with_int_value)
12691         (builtin_define_type_sizeof): Externalize.
12692         (builtin_define_std): Cleanup declaration.
12693         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
12694         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
12695         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
12696         (builtin_define, builtin_assert): New macros.
12698 2015-05-26  Richard Biener  <rguenther@suse.de>
12700         PR tree-optimization/66142
12701         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
12702         MEM_REFs for the same base address.
12704 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12706         PR ipa/66181
12707         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
12709 2015-05-26  Jason Merrill  <jason@redhat.com>
12711         * configure.ac: Set CXXFLAGS for ISL test.
12712         * configure: Regenerate.
12714         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
12715         strstr and basename.
12716         * configure: Regenerate.
12718 2015-05-26  Richard Biener  <rguenther@suse.de>
12720         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
12721         X % C -> X & (C - 1) for C being a power-of two to ...
12722         * match.pd: ... patterns.
12724 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
12726         * match.pd (swapped_tcc_comparison): New operator list.
12727         (-A CMP -B): New simplification.
12728         * fold-const.c (fold_comparison): Remove corresponding code.
12730 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
12732         * caller-save.c (init_caller_save): Base temporary register numbers
12733         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
12734         * cfgloopanal.c (init_set_costs): Likewise.
12735         * dojump.c (prefer_and_bit_test): Likewise.
12736         * expr.c (init_expr_target): Likewise.
12737         * ira.c (setup_prohibited_mode_move_regs): Likewise.
12738         * lower-subreg.c (init_lower_subreg): Likewise.
12739         * postreload.c (reload_cse_regs_1): Likewise.
12741 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
12743         * gensupport.h (compute_test_codes): Declare.
12744         * gensupport.c (compute_predicate_codes): Rename to...
12745         (compute_test_codes): ...this.  Generalize error message.
12746         (process_define_predicate): Update accordingly.
12747         * genpreds.c (compute_maybe_allows): Delete.
12748         (add_constraint): Use compute_test_codes to determine whether
12749         something can accept a SUBREG, REG or MEM.
12751 2015-05-26  Torvald Riegel  <triegel@redhat.com>
12753         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
12754         'memory model' to align with C++11; fix description of memory orders;
12755         fix a few typos.
12757 2015-05-26  Richard Biener  <rguenther@suse.de>
12759         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
12760         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
12761         detect whether we apply SLP.  Remove call to
12762         vect_update_slp_costs_according_to_vf.
12763         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
12764         vect_update_slp_costs_according_to_vf from here.  Dispatch
12765         to vect_slp_analyze_operations to analyze SLP stmts.
12766         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
12767         unused bb_vec_info parameter, adjust assert.
12768         (vect_slp_analyze_operations): Pass in the slp instance tree
12769         instead of bb_vec_info.
12770         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
12771         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
12773 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
12775         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
12776         Q_REGS.  Expand comment.
12777         (REG_CLASS_NAMES): Ditto.
12778         (REG_CLASS_CONTENTS): Ditto.
12780 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
12782         PR target/66274
12783         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
12784         when LEGACY_INT_REGNO_P is processed.
12786 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
12788         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
12790 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
12792         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
12793         register if not marked dead/unused, before return.
12795 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
12797         PR lto/66180
12798         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
12799         is set; check for assembler name at LTO time.
12800         (type_in_anonymous_namespace): Remove hacks, check that all
12801         anonymous types are called "<anon>"
12802         (odr_type_p): Simplify; add check for "<anon>"
12803         (odr_subtypes_equivalent): Add odr_type_p check.
12804         * tree.c (need_assembler_name_p): Even anonymous namespace needs
12805         assembler name.
12807 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
12809         * ipa-utils.h (method_class_type): Remove.
12810         * cgraphunit.c (walk_polymorphic_call_targets): Use
12811         TYPE_METHOD_BASETYPE.
12812         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
12813         on main variants only.
12814         (method_class_type): Remove.
12815         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
12816         (build_type_inheritance_graph): Likewise.
12817         * ipa-icf.c (sem_function::equals_wpa): Likewise.
12818         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
12819         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
12821 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
12823         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
12824         is_typedef_decl, typedef_variant_p): Constify.
12825         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
12826         is_typedef_decl, typedef_variant_p): Constify.
12828 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12830         * defaults.h (gen_tablejump): New function.
12831         (HAVE_tablejump): Add default value.
12832         * expr.c: Adjust.
12833         * stmt.c: Likewise.
12835 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12837         * defaults.h (gen_store_multiple): New function.
12838         (HAVE_store_multiple): Add default value.
12839         * expr.c (move_block_from_reg): Adjust.
12841 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12843         * defaults.h (gen_load_multiple): New function.
12844         (HAVE_load_multiple): Add default value.
12845         * expr.c (move_block_to_reg): Adjust.
12847 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12849         * defaults.h (gen_mem_signal_fence): New function.
12850         (HAVE_mem_signal_fence): Add default value.
12851         * optabs.c: Adjust.
12853 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12855         * defaults.h (gen_memory_barrier): New function.
12856         (HAVE_memory_barrier): Add default value.
12857         * optabs.c: Adjust.
12859 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12861         * defaults.h (gen_mem_thread_fence): New function.
12862         (HAVE_mem_thread_fence): Add default definition.
12863         * optabs.c: Adjust.
12865 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12867         * combine.c (find_split_point): Check the value of HAVE_lo_sum
12868         instead of if it is defined.
12869         (combine_simplify_rtx): Likewise.
12870         * lra-constraints.c (process_address_1): Likewise.
12871         * config/darwin.c: Adjust.
12872         * genconfig.c (main): Always define HAVE_lo_sum.
12874 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
12876         * genmatch.c (parser::parse_operation): Reject expanding
12877         operator-list inside 'for'.
12879 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
12881         * genmatch.c (parser::parse_for): Reject iterator if used as
12882         operator-list.
12884 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
12886         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
12887         after end of id-list.
12889 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
12891         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
12892         we do not try to compute canonical type for type that does not need
12893         alias set.
12894         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
12895         FUNCITON_TYPE.
12896         * tree.h (type_with_alias_set_p): New.
12898 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
12900         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
12901         function attributes.
12902         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
12904 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
12906         * Makefile.in (check_gcc_parallelize): Delete.
12907         (lang_checks_parallelized): Update comment.
12909 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
12911         PR rtl-optimization/66237
12912         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
12913         location of an "as_a" cast.
12915 2015-05-22  Jeff Law  <law@redhat.com>
12917         * config/pa/pa.md (non-canonical shift-add insns): Remove.
12918         (peepholes with non-canonical RTL sources): Remove.
12919         (peepholes for indexed stores of FP regs in integer modes): Match and
12920         generate canonical RTL.
12922 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
12924         PR tree-optimization/63387
12925         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
12926         ((x ord x) & (y ord y) -> (x ord y),
12927         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
12928         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
12929         vectors like scalars.
12931 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
12933         * convert.c (convert_to_integer, convert_to_vector): Include the
12934         types in the error message.
12936 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
12938         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
12939         simplifications.
12941 2015-05-22  Jeff Law  <law@redhat.com>
12943         * config/pa/pa.md (integer_indexed_store splitters): Use
12944         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
12945         insns -- adjusting the constant 2nd operand accordingly.
12947         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
12948         (plus (ashift X log2) Y) if it is a split point.
12950         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
12951         out of hppa_legitimize_address to handle both forms of a multiply
12952         by 2, 4 or 8.
12953         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
12954         Always generate the ASHIFT variant as the result is not directly
12955         used in a MEM.  Update comments and refactor slightly to improve
12956         readability.
12958 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12960         PR target/65491
12961         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
12962         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
12963         (aarch64_composite_type_p): Return false if given type and mode are
12964         for a short vector.
12966 2015-05-22  Richard Biener  <rguenther@suse.de>
12968         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
12969         member.
12970         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
12971         patterns when determining whether SLP is pure.
12972         (vect_is_slp_reduction): Remove check for pattern stmts.
12973         (vect_is_simple_reduction_1): Remove dead code.
12974         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
12975         (vect_get_and_check_slp_defs): Pass in the stmt number.
12976         Allow the first def in a reduction to be not a pattern stmt when
12977         the rest of the stmts def are patterns.
12978         (vect_build_slp_tree_1): Allow tcc_expression codes like
12979         SAD_EXPR and DOT_PROD_EXPR.
12980         (vect_build_slp_tree): Adjust.
12981         (vect_analyze_slp): Refactor and move BB vect error message ...
12982         (vect_slp_analyze_bb_1): ... here.
12984 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
12986         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
12987         for CSWTCH temporary.
12989 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12991         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
12992         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
12993         unknown unspecs.
12995 2015-05-22  Richard Biener  <rguenther@suse.de>
12997         PR tree-optimization/66251
12998         * tree-vect-stmts.c (vectorizable_conversion): Properly
12999         set STMT_VINFO_VEC_STMT even for the SLP case.
13001 2015-05-22  Marek Polacek  <polacek@redhat.com>
13003         * doc/extend.texi: Use @pxref instead of @xref.
13005 2015-05-22  hiraditya  <hiraditya@msn.com>
13007         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
13008         redundant if.
13010 2015-05-22  Richard Biener  <rguenther@suse.de>
13012         PR tree-optimization/65701
13013         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
13014         Move peeling cost models into one place.  Peel for alignment
13015         for single loads only if an aligned load is cheaper than
13016         an unaligned load.
13018 2015-05-22  Marek Polacek  <polacek@redhat.com>
13020         PR c/47043
13021         * doc/extend.texi (Enumerator Attributes): New section.
13022         Document syntax of enumerator attributes.
13024 2015-05-22  Richard Biener  <rguenther@suse.de>
13026         * tree-vect-loop.c (get_reduction_op): New function.
13027         (vect_model_reduction_cost): Use it, add reduc_index parameter.
13028         Make ready for BB reductions.
13029         (vect_create_epilog_for_reduction): Use get_reduction_op.
13030         (vectorizable_reduction): Init reduc_index to a valid value.
13031         Adjust vect_model_reduction_cost call.
13032         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
13033         operand for reduction defaults.  Add SAD_EXPR support.
13034         Assert we have a neutral op for SLP reductions.
13035         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
13036         walking pattern stmt ops only recurse to SSA names.
13038 2015-05-22  Richard Biener  <rguenther@suse.de>
13040         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
13041         assert with guard, remove check on detected reduction.
13042         (vect_recog_sad_pattern): Likewise.
13043         (vect_recog_widen_sum_pattern): Likewise.
13045 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13047         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
13048         __always_inline__ attribute.
13049         (vaesdq_u8): Likewise.
13050         (vaesmcq_u8): Likewise.
13051         (vaesimcq_u8): Likewise.
13052         (vsha1cq_u32): Likewise.
13053         (vsha1mq_u32): Likewise.
13054         (vsha1pq_u32): Likewise.
13055         (vsha1h_u32): Likewise.
13056         (vsha1su0q_u32): Likewise.
13057         (vsha1su1q_u32): Likewise.
13058         (vsha256hq_u32): Likewise.
13059         (vsha256h2q_u32): Likewise.
13060         (vsha256su0q_u32): Likewise.
13061         (vsha256su1q_u32): Likewise.
13062         (vmull_p64): Likewise.
13063         (vmull_high_p64): Likewise.
13065 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13067         * final.c (final_scan_insn): Don't check HAVE_peephole with the
13068         preprocessor.
13069         * output.h: Likewise.
13070         * genconfig.c (main): Alwways define HAVE_peephole.
13071         * genpeep.c: Don't emit checks of HAVE_peephole.
13073 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13075         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
13076         check HAVE_conditional_move with the preprocessor.
13078 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13080         * genconfig.c (main): Always define HAVE_conditional_move.
13081         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
13082         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
13083         is defined.
13085 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13087         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
13088         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
13089         and FRAME_POINTER_REGNUM with the preprocessor.
13091 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13093         * defaults.h: Add default for STACK_PUSH_CODE.
13094         * expr.c: Don't redefine STACK_PUSH_CODE.
13095         * recog.c: Likewise.
13097 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13099         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
13100         sched-deps.c: Use if instead of preprocessor checks with
13101         STACK_GROWS_DOWNWARD.
13103 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13105         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
13106         is defined.
13107         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
13108         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
13109         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
13110         * doc/tm.texi: Regenerate.
13112 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
13114         PR target/66232
13115         * config/i386/constraints.md (Bg): New constraint for GOT memory
13116         operand.
13117         * config/i386/i386.md (*call_got_x32): New pattern.
13118         (*call_value_got_x32): Likewise.
13119         * config/i386/predicates.md (GOT_memory_operand): New predicate.
13121 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
13123         PR tree-optimization/66233
13124         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
13125         Simplify.
13127 2015-05-21  Jeff Law  <law@redhat.com>
13129         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
13130         than MULT for shadd sequences.
13132 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
13134         * alias.c (alias_stats): New static var.
13135         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
13136         (dump_alias_stats_in_alias_c): New function.
13137         * alias.h (dump_alias_stats_in_alias_c): Declare.
13138         * tree-ssa-alias.c (dump_alias_stats): Call it.
13140 2015-05-08  Michael Matz  <matz@suse.de>
13142         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
13143         to strided_p.
13144         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
13145         (STMT_VINFO_STRIDED_P): ... this.
13146         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
13147         (vect_verify_datarefs_alignment): Likewise.
13148         (vect_enhance_data_refs_alignment): Likewise.
13149         (vect_analyze_data_ref_access): Likewise.
13150         (vect_analyze_data_refs): Accept strided stores.
13151         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
13152         (vect_model_load_cost): Adjust for macro rename.
13153         (vectorizable_mask_load_store): Likewise.
13154         (vectorizable_load): Likewise.
13155         (vectorizable_store): Open code strided stores.
13157 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13159         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
13160         Document sqrt_insn.
13162 2015-05-21  Richard Biener  <rguenther@suse.de>
13164         PR c++/66211
13165         * match.pd: Guard pattern optimzing (int)(float)int
13166         conversions to apply only on GIMPLE.
13168 2015-05-21  Jeff Law  <law@redhat.com>
13170         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
13171         multiply-accumulate/shift-add insn generation.
13173 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
13175         PR target/54236
13176         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
13177         operands[1] are the same.
13179 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
13181         PR middle-end/66221
13182         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
13183         build_distinct_type_copy to copy bounds.
13185 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
13187         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
13188         Change to unsigned int.
13190 2015-05-20  Jeff Law  <law@redhat.com>
13192         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
13193         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
13194         (pa_shadd_constant_p): Allow constants for shadd insns rather
13195         than valid scaling constants for memory addresses.
13196         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
13197         * config/pa/predicates.md (mem_shadd_operand): New predicate.
13198         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
13199         (shift-add insns using ASHIFT): New patterns.
13201 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
13203         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
13204         feasible.
13205         (fix_up_fall_thru_edges): Likewise.
13206         (fix_crossing_conditional_branches): Likewise. Promote jump targets
13207         from to rtx_insn to rtx_code_label where feasible.
13208         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
13209         gen_move_insn (returned type changed to rtx_insn).
13210         * builtins.c (expand_errno_check): Fix arguments of
13211         do_compare_rtx_and_jump (now expects rtx_code_label).
13212         (expand_builtin_acc_on_device): Likewise.
13213         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
13214         invert_jump (now exprects rtx_jump_insn).
13215         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
13216         (construct_init_block): Use rtx_code_label.
13217         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
13218         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
13219         calling redirect_jump.
13220         (patch_jump_insn): Likewise.
13221         (redirect_branch_edge): Likewise.
13222         (force_nonfallthru_and_redirect): Likewise.
13223         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
13224         when suitable.
13225         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
13226         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
13227         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
13228         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
13229         to store the value retured by gen_label_rtx.
13230         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
13231         rtx_jump_insn.
13232         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
13233         (split_branches): Fix calls of redirect_jump.
13234         * dojump.c (jumpifnot): Promote argument type from rtx to
13235         rtx_code_label.
13236         (jumpifnot_1): Likewise.
13237         (jumpif): Likewise.
13238         (jumpif_1): Likewise.
13239         (do_jump_1): Likewise.
13240         (do_jump): Likewise. Use rtx_code_label when feasible.
13241         (do_jump_by_parts_greater_rtx): Likewise.
13242         (do_jump_by_parts_zero_rtx): Likewise.
13243         (do_jump_by_parts_equality_rtx): Likewise.
13244         (do_compare_rtx_and_jump): Likewise.
13245         * dojump.h: Update function prototypes.
13246         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
13247         returns rtx_insn).
13248         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
13249         rtx_jump_insn.
13250         (emit_label_before): Likewise.
13251         (emit_jump_insn_after_noloc): Likewise.
13252         (emit_jump_insn_after_setloc): Likewise.
13253         (emit_jump_insn_after): Likewise
13254         (emit_jump_insn_before_setloc): Likewise.
13255         (emit_jump_insn_before): Likewise.
13256         (emit_label_before): Promote return type to rtx_code_label.
13257         (emit_label): Likewise.
13258         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
13259         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
13260         gen_move_insn.
13261         (emit_stack_restore): Likewise.
13262         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
13263         (do_cmp_and_jump): Likewise.
13264         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
13265         from rtx to rtx_code_label.
13266         (gen_move_insn_uncast): New function.
13267         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
13268         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
13269         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
13270         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
13271         invert_jump_1 and redirect_jump_1.
13272         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
13273         do_compare_rtx_and_jump.
13274         (expand_addsub_overflow): Likewise.
13275         (expand_neg_overflow): Likewise.
13276         (expand_mul_overflow): Likewise.
13277         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
13278         return value of gen_move_insn.
13279         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
13280         * loop-doloop.c (add_test): Use rtx_code_label.
13281         (doloop_modify): Likewise.
13282         (doloop_optimize): Likewise.
13283         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
13284         * lra-constraints.c (emit_spill_move): Remove cast of value returned
13285         by gen_move_insn.
13286         (inherit_reload_reg): Add cast when calling dump_insn_slim.
13287         (split_reg): Likewise.
13288         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
13289         gen_move_insn.
13290         * optabs.c (expand_binop_directly): Remove casts of values returned by
13291         maybe_gen_insn.
13292         (expand_unop_direct): Likewise.
13293         (expand_abs): Likewise.
13294         (maybe_emit_unop_insn): Likewise.
13295         (maybe_gen_insn): Promote return type to rtx_insn.
13296         * optabs.h: Update prototype of maybe_gen_insn.
13297         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
13298         redundant cast.
13299         * recog.c (struct peep2_insn_data): Promote type of insn field to
13300         rtx_insn.
13301         (peep2_reinit_state): Use NULL instead of NULL_RTX.
13302         (peep2_attempt): Remove casts of insn in peep2_insn_data.
13303         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
13304         * recog.h (struct insn_gen_fn): Promote return types of function
13305         pointers and operator ().from rtx to rtx_insn.
13306         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
13307         (fill_eager_delay_slots): Likewise.
13308         (relax_delay_slots): Likewise.
13309         (make_return_insns): Likewise.
13310         (dbr_schedule): Likewise.
13311         (optimize_skips): Likewise.
13312         (reorg_redirect_jump): Likewise.
13313         (fill_slots_from_thread): Likewise.
13314         * reorg.h: Update prototypes.
13315         * resource.c (find_dead_or_set_registers): Use dyn_cast to
13316         rtx_jump_insn instead of check.  Use it's jump_target method.
13317         * rtl.h (rtx_jump_insn::jump_label): Define new method.
13318         (rtx_jump_insn::jump_target): Define new method.
13319         (rtx_jump_insn::set_jump_target): Define new method.
13320         * rtlanal.c (tablejump_p): Promote type of one local variable.
13321         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
13322         (sched_analyze_insn): Likewise.
13323         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
13324         (print_insn): Likewise.
13325         * stmt.c (label_rtx): Promote return type to rtx_insn.
13326         (force_label_rtx): Likewise.
13327         (jump_target_rtx): Define new function.
13328         (expand_label): Use it, get rid of one cast.
13329         (expand_naked_return): Promote rtx to rtx_code_label.
13330         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
13331         (expand_case): Use rtx_code_label instread of rtx where feasible.
13332         (expand_sjlj_dispatch_table): Likewise.
13333         (emit_case_nodes): Likewise.
13334         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
13335         * store-motion.c (insert_store): Make use of new return type of
13336         gen_move_insn and remove a cast.
13337         (replace_store_insn): Likewise.
13339 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
13341         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
13342         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
13344 2015-05-20  Jeff Law  <law@redhat.com>
13346         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
13347         dispose of the jump thread path when the jump threading
13348         opportunity is cancelled.
13350 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13352         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
13353         when printing the caret character.
13355 2015-05-20  Marek Polacek  <polacek@redhat.com>
13357         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
13359 2015-05-20  Marek Polacek  <polacek@redhat.com>
13361         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
13362         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
13363         * gimple-fold.c (canonicalize_bool): Likewise.
13364         (same_bool_result_p): Likewise.
13365         * tree-if-conv.c (parse_predicate): Likewise.
13367 2015-05-20  Marek Polacek  <polacek@redhat.com>
13369         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
13370         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
13372 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13374         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
13375         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
13376         values.
13378 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
13380         * config/mips/mips.h (micromips_globals): Declare.
13382 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
13384         * timevar.def (TV_INITIALIZE_RTL): New.
13385         * toplev.c (initialize_rtl): Use an auto_timevar to account this
13386         function's time to TV_INITIALIZE_RTL.
13388 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
13390         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
13391         gimple_build_nop calls.
13392         (chkp_find_bounds_for_elem): Likewise.
13393         (chkp_get_zero_bounds): Likewise.
13394         (chkp_get_none_bounds): Likewise.
13395         (chkp_get_bounds_by_definition): Likewise.
13396         (chkp_generate_extern_var_bounds): Likewise.
13397         (chkp_get_bounds_for_decl_addr): Likewise.
13398         (chkp_get_bounds_for_string_cst): Likewise.
13400 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
13402         PR tree-optimization/65447
13403         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
13404         (dump_use, dump_uses): Support to dump sub use.
13405         (record_use): New parameters to support sub use.  Remove call to
13406         dump_use.
13407         (record_sub_use, record_group_use): New functions.
13408         (compute_max_addr_offset, split_all_small_groups): New functions.
13409         (group_address_uses, rewrite_use_address): New functions.
13410         (strip_offset): New declaration.
13411         (find_interesting_uses_address): Call record_group_use.
13412         (add_candidate): New assertion.
13413         (infinite_cost_p): Move definition forward.
13414         (add_costs): Check INFTY cost and return immediately.
13415         (get_computation_cost_at): Clear setup cost and dependent bitmap
13416         for sub uses.
13417         (determine_use_iv_cost_address): Compute cost for sub uses.
13418         (rewrite_use_address_1): Rename from old rewrite_use_address.
13419         (free_loop_data): Free sub uses.
13420         (tree_ssa_iv_optimize_loop): Call group_address_uses.
13422 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
13423             Jim Wilson  <jim.wilson@linaro.org>
13425         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
13426         new  fields loadv and storev.
13427         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
13428         Initialize loadv and storev.
13429         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
13430         (cortexa53_extra_costs): Likewise.
13431         (cortexa57_extra_costs): Likewise.
13432         (xgene1_extra_costs): Likewise.
13433         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
13434         rtx_costs.
13436 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
13438         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
13439          storev.
13440         (cortexa8_extra_costs): Likewise.
13441         (cortexa5_extra_costs): Likewise.
13442         (cortexa7_extra_costs): Likewise.
13443         (cortexa12_extra_costs): Likewise.
13444         (cortexa15_extra_costs): Likewise.
13445         (v7m_extra_costs): Likewise.
13447 2015-05-20  Jeff Law  <law@redhat.com>
13449         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
13450         instead of open-coded version.  Also delete the jump thread created
13451         within this function.
13453 2015-05-20  Alan Modra  <amodra@gmail.com>
13455         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
13456         stack adjusting insn.  Formatting.
13457         (rs6000_emit_prologue): Track stack adjusting insn, and use of
13458         r12.  If possible, emit first -fsplit-stack arg pointer insn
13459         before stack adjust.  Don't use r12 to save cr if split-stack.
13461 2015-05-20  Alan Modra  <amodra@gmail.com>
13463         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
13464         Define.
13465         (rs6000_supports_split_stack): New function.
13466         * gcc/config/rs6000/rs6000.c (machine_function): Add
13467         split_stack_arg_pointer.
13468         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
13469         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
13470         rather than virtual_incoming_args_rtx.
13471         (rs6000_va_start): Likewise.
13472         (split_stack_arg_pointer_used_p): New function.
13473         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
13474         (morestack_ref): New var.
13475         (gen_add3_const, rs6000_expand_split_stack_prologue,
13476         rs6000_internal_arg_pointer, rs6000_live_on_entry,
13477         rs6000_split_stack_space_check): New functions.
13478         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
13479         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
13480         (UNSPECV_SPLIT_STACK_RETURN): Define.
13481         (split_stack_prologue, load_split_stack_limit,
13482         load_split_stack_limit_di, load_split_stack_limit_si,
13483         split_stack_return, split_stack_space_check): New expands and insns.
13484         * gcc/config/rs6000/rs6000-protos.h
13485         (rs6000_expand_split_stack_prologue): Declare.
13486         (rs6000_split_stack_space_check): Declare.
13488 2015-05-20  Alan Modra  <amodra@gmail.com>
13490         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
13491         (direct_return): Test vrsave_size rather than vrsave_mask.
13492         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
13493         (rs6000_emit_epilogue): Likewise.
13495 2015-05-20  Alan Modra  <amodra@gmail.com>
13497         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
13498         when not saving registers.
13499         (debug_stack_info): Adjust to omit printing unused offsets,
13500         as before.
13501         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
13502         expression.
13504 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13506         PR c++/65835
13507         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
13508         value_type to const char *.
13510 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
13512         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
13513         to build a biarch toolchain again.
13515 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
13517         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
13518         or implicit declarations.
13519         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
13520         into it.
13521         (get_odr_type): Check type has linkage before adding bases.
13522         (register_odr_type): Check that type has linkage before adding it.
13523         (type_known_to_have_no_deriavations_p): Rename to ..
13524         (type_known_to_have_no_derivations_p): This one.
13525         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
13526         (type_known_to_have_no_derivations_p): This one.
13527         * ipa-polymorphic-call.c
13528         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
13529         type has linkage.
13531 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
13533         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
13534         (layout_type): Use RECORD_OR_UNION_TYPE_P.
13536 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13538         * config/s390/s390.c (s390_vector_bool_type_p): New function.
13539         (s390_invalid_binary_op): New function.
13540         (TARGET_INVALID_BINARY_OP): Define macro.
13542 2015-05-19  David Sherwood  <david.sherwood@arm.com>
13544         * loop-invariant.c (create_new_invariant): Don't calculate address cost
13545         if mode is not a scalar integer.
13546         (get_inv_cost): Increase computational cost for unused invariants.
13548 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13550         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
13551         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
13552         * config/s390/s390-builtin-types.def: New file.
13553         * config/s390/s390-builtins.def: New file.
13554         * config/s390/s390-builtins.h: New file.
13555         * config/s390/s390-c.c: New file.
13556         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
13557         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
13558         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
13559         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
13560         prototypes.
13561         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
13562         Include.
13563         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
13564         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
13565         variable definitions.
13566         (s390_const_operand_ok): New function.
13567         (s390_expand_builtin): Rewrite.
13568         (s390_init_builtins): New function.
13569         (s390_handle_vectorbool_attribute): New function.
13570         (s390_attribute_table): Add s390_vector_bool attribute.
13571         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
13572         (s390_branch_condition_mask): Generate masks for new modes.
13573         (s390_expand_vec_compare_cc): New function.
13574         (s390_mangle_type): Add mangling for vector bool types.
13575         (enum s390_builtin): Remove.
13576         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
13577         efpc builtins.
13578         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
13579         s390_cpu_cpp_builtins.
13580         (REGISTER_TARGET_PRAGMAS): New macro.
13581         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
13582         (insn_cmp mode attribute): Add new CC modes.
13583         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
13584         (lcbb): New pattern definition.
13585         * config/s390/s390intrin.h: Include vecintrin.h.
13586         * config/s390/t-s390: New file.
13587         * config/s390/vecintrin.h: New file.
13588         * config/s390/vector.md: Include vx-builtins.md.
13589         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
13590         support.
13592 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13594         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
13595         CCVFHE.
13596         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
13597         (s390_select_ccmode): Likewise.
13598         (s390_canonicalize_comparison): Swap operands if necessary.
13599         (s390_expand_vec_compare_scalar): Expand DFmode compare using
13600         single element vector instructions.
13601         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
13602         (s390_branch_condition_mask): Generate CC masks for the new modes.
13603         * config/s390/s390.md (v0, vf, vd): New mode attributes.
13604         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
13605         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
13606         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
13607         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
13608         (*extend<DSF:mode><BFP:mode>2): New insn definition.
13609         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
13610         (extend<DSF:mode><BFP:mode>2): Turn into expander.
13611         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
13612         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
13613         (sqrt<mode>2): Add vector instruction.
13615 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13617         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
13618         constraints.
13619         * config/s390/predicates.md (const0_operand, constm1_operand)
13620         (constable_operand): Accept vector operands.
13621         * config/s390/s390-modes.def: Add supported vector modes.
13622         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
13623         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
13624         (s390_bytemask_vector_p, s390_expand_vec_strlen)
13625         (s390_expand_vec_compare, s390_expand_vcond)
13626         (s390_expand_vec_init): Add prototypes.
13627         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
13628         (s390_vector_mode_supported_p): New function.
13629         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
13630         (s390_contiguous_bitmask_vector_p): New function.
13631         (s390_bytemask_vector_p): New function.
13632         (s390_split_ok_p): Vector regs don't work either.
13633         (regclass_map): Add VEC_REGS.
13634         (s390_legitimate_constant_p): Handle vector constants.
13635         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
13636         (legitimate_reload_vector_constant_p): New function.
13637         (s390_preferred_reload_class): Handle CONST_VECTOR.
13638         (s390_reload_symref_address):  Likewise.
13639         (s390_secondary_reload): Vector memory instructions only support
13640         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
13641         (s390_emit_ccraw_jump): New function.
13642         (s390_expand_vec_strlen): New function.
13643         (s390_expand_vec_compare): New function.
13644         (s390_expand_vcond): New function.
13645         (s390_expand_vec_init): New function.
13646         (s390_dwarf_frame_reg_mode): New function.
13647         (print_operand): Handle addresses with 'O' and 'R' constraints.
13648         (NR_C_MODES, constant_modes): Add vector modes.
13649         (s390_output_pool_entry): Handle vector constants.
13650         (s390_hard_regno_mode_ok): Handle vector registers.
13651         (s390_class_max_nregs): Likewise.
13652         (s390_cannot_change_mode_class): New function.
13653         (s390_invalid_arg_for_unprototyped_fn): New function.
13654         (s390_function_arg_vector): New function.
13655         (s390_function_arg_float): Remove size variable.
13656         (s390_pass_by_reference): Handle vector arguments.
13657         (s390_function_arg_advance): Likewise.
13658         (s390_function_arg): Likewise.
13659         (s390_return_in_memory): Vector values are returned in a VR if
13660         possible.
13661         (s390_function_and_libcall_value): Handle vector arguments.
13662         (s390_gimplify_va_arg): Likewise.
13663         (s390_call_saved_register_used): Consider the arguments named.
13664         (s390_conditional_register_usage): Disable v16-v31 for non-vec
13665         targets.
13666         (s390_preferred_simd_mode): New function.
13667         (s390_support_vector_misalignment): New function.
13668         (s390_vector_alignment): New function.
13669         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
13670         (TARGET_VECTOR_MODE_SUPPORTED_P)
13671         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
13672         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
13673         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
13674         (TARGET_VECTOR_ALIGNMENT): Define target macro.
13675         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
13676         (FIRST_PSEUDO_REGISTER): Increase value.
13677         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
13678         (VECTOR_REG_P): Define macros.
13679         (FIXED_REGISTERS, CALL_USED_REGISTERS)
13680         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
13681         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
13682         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
13683         Add vector registers.
13684         (CANNOT_CHANGE_MODE_CLASS): Call C function.
13685         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
13686         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
13687         memory.
13688         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
13689         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
13690         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
13691         (VR*_REGNUM): New constants.
13692         (ALL): New mode iterator.
13693         (INTALL): Remove mode iterator.
13694         Include vector.md.
13695         (movti): Implement TImode moves for VRs.
13696         Disable TImode splitter for VR targets.
13697         Implement splitting TImode GPR<->VR moves.
13698         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
13699         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
13700         reload<mode>_la_in, reload<mode>_la_out.
13701         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
13702         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
13703         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
13704         (mov<mode> SF SD): Prefer lder, lde for loading.
13705         Add lrl and strl instructions.
13706         Add vector instructions.
13707         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
13708         Call s390_expand_vec_strlen on z13.
13709         (*cc_to_int): Change predicate to nonimmediate_operand.
13710         (addti3): Rename to *addti3.  New expander.
13711         (subti3): Rename to *subti3.  New expander.
13712         * config/s390/vector.md: New file.
13714 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13716         * common/config/s390/s390-common.c (processor_flags_table): Add
13717         z13.
13718         * config.gcc: Add z13.
13719         * config/s390/s390-opts.h (enum processor_type): Add
13720         PROCESSOR_2964_Z13.
13721         * config/s390/s390.c (s390_adjust_priority): Check for
13722         PROCESSOR_2964_Z13.
13723         (s390_reorg): Likewise.
13724         (s390_sched_reorder): Likewise.
13725         (s390_sched_variable_issue): Likewise.
13726         (s390_loop_unroll_adjust): Likewise.
13727         (s390_option_override): Likewise. Default to -mvx when available.
13728         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
13729         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
13730         (TARGET_VX_ABI): Define macros.
13731         macros.
13732         (TARGET_DEFAULT): Add MASK_OPT_VX.
13733         * config/s390/s390.md ("cpu" attribute): Add z13.
13734         ("cpu_facility" attribute): Add vec.
13735         * config/s390/s390.opt (processor_type): Add z13.
13736         (mvx): New options.
13737         * doc/invoke.texi: Add z13 option for -march.
13739 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13741         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
13742         mode check to make sure that only scalar integer values are
13743         accepted.
13745 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
13747         * tree.c (verify_type_variant): Fix #undef.
13748         (gimple_canonical_types_compatible_p): Move here from lto.c
13749         (verify_type): Verify TYPE_CANONICAL compatibility.
13750         * tree.h (gimple_canonical_types_compatible_p): Declare.
13752 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
13754         PR middle-end/66199
13755         * tree.h (OMP_TEAMS_COMBINED): Define.
13756         * gimplify.c (enum gimplify_omp_var_data): Add
13757         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
13758         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
13759         (omp_notice_variable): Accept both ORT_TEAMS
13760         and ORT_COMBINED_TEAMS.  Don't recurse if
13761         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
13762         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
13763         GOVD_FIRSTPRIVATE.
13764         (omp_no_lastprivate): New function.
13765         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
13766         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
13767         notice_outer and set appropriate bits, otherwise make
13768         sure default(none) combined constructs won't complain.
13769         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
13770         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
13771         omp_no_lastprivate either remove the clause or turn it
13772         into OMP_CLAUSE_PRIVATE.
13773         (gimplify_omp_for): Fix up handling of implicit
13774         lastprivate or linear iterators.
13775         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
13776         ORT_COMBINED_TEAMS.
13777         * omp-low.c (lower_omp_for_lastprivate): For combined
13778         for simd use fd.loop.n2 from the for rather than simd.
13780 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
13782         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
13783         instead of gen_rtx_raw_REG.
13784         (cris_expand_epilogue): Likewise.
13785         * config/microblaze/microblaze.c (microblaze_classify_address):
13786         Likewise.
13787         * config/sparc/sparc.md: Likewise.
13789 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
13791         * config/alpha/alpha.c (alpha_legitimize_reload_address)
13792         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
13793         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
13794         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
13795         Use CASE_CONST_SCALAR_INT.
13796         (print_operand) <case 'M'>: Use mode_width_operand to check the
13797         value of the constant.
13798         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
13799         * config/alpha/predicates.md (input_operand): Use general_operand
13800         instead of match_code as operand check.
13801         (symbolic_operand): Use match_code with subexpression digits.
13802         * config/alpha/constraints.md (Q): Ditto.
13804 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13806         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
13808 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13810         * config/s390/s390.c (s390_secondary_reload): Fix check for
13811         load/store relative.
13813 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13815         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
13816         alternative_mask to uint64_t.
13818 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
13820         PR tree-optimization/66187
13821         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
13822         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
13823         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
13825 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
13827         * diagnostic.c (diagnostic_report_current_module): Strengthen
13828         local "new_map" from const line_map * to
13829         const line_map_ordinary *.
13830         * genmatch.c (error_cb): Likewise for local "map".
13831         (output_line_directive): Likewise for local "map".
13832         * input.c (expand_location_1): Likewise for local "map".
13833         Pass NULL rather than &map to
13834         linemap_unwind_to_first_non_reserved_loc, since the value is never
13835         read from there, and the value written back not read from here.
13836         (is_location_from_builtin_token): Strengthen local "map" from
13837         const line_map * to const line_map_ordinary *.
13838         (dump_location_info): Strengthen locals "map" from
13839         line_map *, one to const line_map_ordinary *, the other
13840         to const line_map_macro *.
13841         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
13842         const line_map * to const line_map_macro *.
13843         (maybe_unwind_expanded_macro_loc): Add a call to
13844         linemap_check_macro when writing to the "map" field of the
13845         loc_map_pair.
13846         Introduce local const line_map_ordinary * "ord_map", using it in
13847         place of "map" in the part of the function where we know we have
13848         an ordinary map.  Strengthen local "m" from const line_map * to
13849         const line_map_ordinary *.
13851 2015-05-19  Nick Clifton  <nickc@redhat.com>
13853         PR target/66156
13854         * config/msp430/msp430.md (zero_extendhisi2): Add support for
13855         separate source and destination registers.
13857 2015-05-19  Richard Biener  <rguenther@suse.de>
13859         PR tree-optimization/66165
13860         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
13861         for no load permutation.
13863         PR tree-optimization/66185
13864         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
13865         when building the SLP node from scalars.
13867 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
13868             Tristan Gingold  <gingold@adacore.com>
13870         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
13871         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
13872         (expand_stack_restore): Call record_new_stack_level.
13873         (expand_stack_save): Do not call do_pending_stack_adjust.
13874         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
13875         * calls.c (expand_call): Call record_new_stack_level for alloca.
13876         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
13877         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
13878         (update_sjlj_context): New global function.
13879         * except.h (update_sjlj_context): Declare.
13880         * explow.c (record_new_stack_level): New global function.
13881         (allocate_dynamic_stack_space): Call record_new_stack_level.
13882         * explow.h (record_new_stack_level): Declare.
13883         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
13884         * cfgrtl.c (duplicate_insn_chain): Likewise.
13886 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13888         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
13889         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
13890         STACK_GROWS_DOWNWARD as normal if.
13891         (expand_call): Likewise.
13893 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
13895         PR target/54236
13896         * config/sh/sh.md (*round_int_even): New insn_and_split and
13897         accompanying new unnamed split.
13899 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
13901         * bitmap.c (bitmap_set_range): Handle count==1 specially.
13902         (bitmap_clear_range): Likewise.
13903         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
13904         bitmap_set_range unconditionally.
13905         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
13906         * df-scan.c (df_mark_reg): Likewise.
13907         * haifa-sched.c (setup_ref_regs): Likewise.
13908         * sched-rgn.c (update_live_1): Likewise.
13910 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
13912         * regs.h (END_HARD_REGNO): Delete.
13913         (END_REGNO): Move to...
13914         * rtl.h: ...here.
13915         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
13916         * caller-save.c (mark_set_regs): Likewise.
13917         * combine.c (move_deaths, distribute_notes): Likewise.
13918         * cse.c (invalidate, invalidate_for_call): Likewise.
13919         * df-scan.c (df_ref_record): Likewise.
13920         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
13921         (record_last_reg_set_info): Likewise.
13922         * reg-stack.c (convert_regs_exit): Likewise.
13923         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
13924         * resource.c (update_live_status): Likewise.
13925         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
13927 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
13929         * rtl.h (reg_info): Add an nregs field.
13930         (REG_NREGS): Use it.
13931         (SET_REGNO_RAW): Delete.
13932         (set_regno_raw): New function.
13933         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
13934         (END_REGNO): Redefine in terms of REG_NREGS.
13935         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
13936         SET_REGNO_RAW.
13937         * emit-rtl.c (set_mode_and_regno): Likewise.
13938         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
13939         instead of SET_REGNO_RAW.
13941 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
13943         * rtl.h (PUT_MODE_RAW): New macro.
13944         (PUT_REG_NOTE_KIND): Use it.
13945         (set_mode_and_regno): Declare.
13946         (gen_raw_REG): Change regno to "unsigned int".
13947         (gen_rtx_REG): Change "unsigned" to "unsigned int".
13948         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
13949         use set_mode_and_regno to change the mode of registers.
13950         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
13951         * emit-rtl.c (set_mode_and_regno): New function.
13952         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
13953         * caller-save.c (reg_save_code): Use set_mode_and_regno.
13954         * expr.c (init_expr_target): Likewise.
13955         * ira.c (setup_prohibited_mode_move_regs): Likewise.
13956         * postreload.c (reload_cse_simplify_operands): Likewise.
13958 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
13960         * caller-save.c (init_caller_save): Use word_mode and
13961         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
13962         * expr.c (init_expr_target): Likewise.
13963         * ira.c (setup_prohibited_mode_move_regs): Likewise.
13964         * postreload.c (reload_cse_regs_1): Likewise.
13966 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
13968         * rtl.def (REG): Change format to "r".
13969         * rtl.h (rtunion): Remove rt_reg.
13970         (reg_info): New structure.
13971         (rtx_def): Add reg field to main union.
13972         (X0REGATTR): Delete.
13973         (REG_CHECK): New macro.
13974         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
13975         * rtl.c (rtx_format): Document "r".
13976         (rtx_code_size): Handle REG specially.
13977         * gengenrtl.c (special_format): Return true for formats
13978         that include 'r'.
13979         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
13980         Deal with REG_ATTRS after the field loop.
13981         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
13982         * expmed.c (init_expmed): Call gen_raw_REG instead of
13983         gen_rtx_raw_REG.
13984         * expr.c (init_expr_target): Likewise.
13985         * regcprop.c (maybe_mode_change): Likewise.
13986         * varasm.c (make_decl_rtl): Likewise.
13987         * final.c (leaf_renumber_regs_insn): Return early after
13988         handling REGs.
13989         * genemit.c (gen_exp): Handle 'r' fields.
13990         * genpeep.c (match_rtx): Likewise.
13991         * gensupport.c (subst_pattern_match): Likewise.
13992         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
13993         (alter_constraints, subst_dup): Likewise.
13994         * read-rtl.c (read_rtx_code): Likewise.
13995         * print-rtl.c (print_rtx): Likewise.
13996         * genrecog.c (find_operand, find_matching_operand): Likewise.
13997         (validate_pattern, match_pattern_2): Likewise.
13998         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
13999         (rtx_test::regno_field): New function.
14000         (operator ==, safe_to_hoist_p, transition_parameter_type)
14001         (parameter_type_string, print_parameter_value)
14002         (print_nonbool_test, print_test): Handle new enum values.
14003         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
14004         * lra-constraints.c (operands_match_p): Likewise.
14006 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
14008         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
14009         Change type of new_regno to unsigned int.
14010         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
14011         new_regno to unsigned int.
14012         (df_ref_change_reg_with_loc): Remove old_regno parameter.
14013         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
14014         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
14015         (SET_REGNO_RAW): Add space after ",".
14017 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
14019         * rtl.h (REG_NREGS): New macro
14020         * alias.c (record_set): Use it.
14021         * cfgcleanup.c (mark_effect): Likewise.
14022         * combine.c (likely_spilled_retval_1): Likewise.
14023         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
14024         (move_deaths, distribute_notes): Likewise.
14025         * cselib.c (cselib_record_set): Likewise.
14026         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
14027         * df-scan.c (df_mark_reg): Likewise.
14028         * dse.c (look_for_hardregs): Likewise.
14029         * dwarf2out.c (reg_loc_descriptor): Likewise.
14030         (multiple_reg_loc_descriptor): Likewise.
14031         * expr.c (write_complex_part, read_complex_part): Likewise.
14032         (emit_move_complex): Likewise.
14033         * haifa-sched.c (setup_ref_regs): Likewise.
14034         * ira-lives.c (mark_hard_reg_live): Likewise.
14035         * lra.c (lra_set_insn_recog_data): Likewise.
14036         * mode-switching.c (create_pre_exit): Likewise.
14037         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
14038         (reload_combine_recognize_pattern): Likewise.
14039         (reload_combine_note_use, move2add_record_mode): Likewise.
14040         (reload_cse_move2add): Likewise.
14041         * reg-stack.c (subst_stack_regs_pat): Likewise.
14042         * regcprop.c (kill_value, copy_value): Likewise.
14043         (copyprop_hardreg_forward_1): Likewise.
14044         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
14045         (build_def_use): Likewise.
14046         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
14047         (deps_analyze_insn): Likewise.
14048         * sched-rgn.c (check_live_1, update_live_1): Likewise.
14049         * sel-sched.c (count_occurrences_equiv): Likewise.
14050         * valtrack.c (dead_debug_insert_temp): Likewise.
14052 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
14054         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
14055         * dse.c (note_add_store): Likewise.
14056         * ira-lives.c (mark_hard_reg_dead): Likewise.
14057         * loop-invariant.c (mark_reg_store): Likewise.
14058         (mark_reg_death): Likewise.
14059         * postreload.c (reload_combine): Likewise.
14060         (reload_combine_note_store): Likewise.
14061         (reload_combine_note_use): Likewise.
14062         * recog.c (peep2_reg_dead_p): Likewise.
14064 2015-05-19  Alan Modra  <amodra@gmail.com>
14066         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
14067         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
14068         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
14069         unused predicates.
14070         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
14071         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
14072         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
14073         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
14075 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
14077         * config/mips/mips.md (JOIN_MODE): New mode iterator.
14078         (join2_load_Store<JOIN_MODE:mode>): New pattern.
14079         (join2_loadhi): Likewise.
14080         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
14081         load-load and store-stores.
14082         * config/mips/mips.opt (mload-store-pairs): New option.
14083         (TARGET_LOAD_STORE_PAIRS): New macro.
14084         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
14085         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
14086         * config/mips/mips.c (mips_load_store_bonding_p): New function.
14088 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
14090         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
14091         explicit swaps.
14092         * dojump.c (do_compare_rtx_and_jump): Likewise.
14093         * expmed.c (emit_store_flag_1): Likewise.
14094         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
14095         * final.c (sprint_ul): Use std::reverse for reversing a string.
14096         * fold-const.c (extract_muldiv_1): Use std::swap.
14097         * genmodes.c (emit_mode_int_n): Likewise.
14098         * ifcvt.c (dead_or_predicable): Likewise.
14099         * ira-build.c (ira_merge_live_ranges): Likewise.
14100         (swap_allocno_copy_ends_if_necessary): Likewise.
14101         * ira.c (ira_setup_alts): Likewise.
14102         * loop-iv.c (iv_analyze_expr): Likewise.
14103         (implies_p): Likewise.
14104         (canon_condition): Likewise.
14105         * lra-constraints.c (swap_operands): Likewise.
14106         * lra-lives.c (lra_merge_live_ranges): Likewise.
14107         * omega.c (swap): Remove.
14108         (bswap): Remove.
14109         (omega_unprotect_1): Use std::swap.
14110         (omega_solve_geq): Likewise.
14111         * optabs.c (expand_binop_directly): Likewise.
14112         (expand_binop): Likewise.
14113         (emit_conditional_move): Likewise.
14114         (emit_conditional_add): Likewise.
14115         * postreload.c (reload_cse_simplify_operands): Likewise.
14116         * reg-stack.c (emit_swap_insn): Likewise.
14117         (swap_to_top): Likewise.
14118         (compare_for_stack_reg): Likewise.
14119         (subst_asm_stack_regs): Likewise.
14120         * reload.c (find_reloads): Likewise.
14121         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
14122         * sel-sched.c (invoke_reorder_hooks): Likewise.
14123         (create_block_for_bookkeeping): Likewise.
14124         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
14125         (lambda_matrix_right_hermite): Use std::swap.
14126         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
14127         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
14128         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
14129         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
14130         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
14131         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
14132         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
14133         * tree-vrp.c (compare_ranges): Likewise.
14134         * var-tracking.c (add_with_sets): Likewise.
14135         (vt_find_locations): Likewise.
14137 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
14139         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
14140         pie executables.
14141         (FBSD_ENDFILE_SPEC): Likewise.
14142         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
14143         config/freebsd-spec.h.
14144         (ENDFILE_SPEC): Likewise.
14146 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
14147             Richard Henderson  <rth@redhat.com>
14149         PR target/57032
14150         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
14151         Check for a memory location that is not a reference (using an AND)
14152         to an unaligned location here.
14153         * config/alpha/predicates.md (normal_memory_operand): Remove.
14155 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
14157         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
14158         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
14160 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
14162         * config/mips/mips.c (micromips_globals): New variable.
14163         (mips_set_compression_mode): Save and reinitialize target-dependent
14164         state for microMIPS.
14166 2015-05-18  Martin Liska  <mliska@suse.cz>
14168         * dbgcnt.def: Add new counter.
14169         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
14171 2015-05-18  Martin Liska  <mliska@suse.cz>
14173         * dbgcnt.def: Sort counters.
14174         * opts.c (common_handle_option): Do not compile if
14175         -fdbg-cnt-list is enabled.
14177 2015-05-18  Tom de Vries  <tom@codesourcery.com>
14179         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
14180         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
14181         address operator to va_list operand.
14182         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
14183         unconditionally.
14184         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
14185         operand.
14186         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
14187         * config/s390/s390.c (s390_gimplify_va_arg): Same.
14188         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
14190 2015-05-18  Tom de Vries  <tom@codesourcery.com>
14192         * tree-ssa-tail-merge.c: Fix whitespace.
14194 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
14196         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
14197         cortex-a17, and cortex-a17.cortex-a7.
14199 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
14201         PR target/54236
14202         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
14204 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
14206         PR target/66174
14207         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
14208         QImode inner modes for TARGET_AVX512BW.  Force mask operand
14209         to a register for AVX512F modes.
14211 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
14213         * toplev.c (emit_debug_global_declarations): Do not output debug info
14214         when doing slim LTO objects.
14216 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
14218         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
14219         odr_types_equivalent_p): Declare.
14220         (odr_type_p): Use gcc_checking_assert.
14221         (type_in_anonymous_namespace_p) Declare.
14222         (type_with_linkage_p): Declare.
14223         * common.opt (Wlto-type-mismatch): New warning.
14224         * ipa-devirt.c (compound_type_base): New function.
14225         (odr_or_derived_type_p): New function.
14226         (odr_types_equivalent_p): New function.
14227         (add_type_duplicate): Simplify.
14228         (type_with_linkage_p): Add hack to prevent false positives on C types
14229         (type_in_anonymous_namespace_p): Likewise.
14230         * tree.c (need_assembler_name_p): Use type_with_linkage.
14231         * tree.h (type_in_anonymous_namespace_p): Remove.
14232         * doc/invoke.texi (-Wlto-type-mismatch): Document
14234 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
14236         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
14237         (verify_type): Verify STRING_FLAG.
14239 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14241         PR fortran/44054
14242         * tree-pretty-print.c (percent_K_format): Replace locus pointer
14243         with accessor function.
14244         * tree-diagnostic.c (diagnostic_report_current_function): Use
14245         diagnostic_location function.
14246         (maybe_unwind_expanded_macro_loc): Likewise.
14247         (virt_loc_aware_diagnostic_finalizer): Likewise.
14248         (default_tree_printer): Replace locus pointer with accessor function.
14249         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
14250         (diagnostic_set_info_translated): Initialize second location.
14251         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
14252         (diagnostic_show_locus): Handle two locations. Call
14253         diagnostic_print_caret_line.
14254         (diagnostic_print_caret_line): New.
14255         (default_diagnostic_starter): Use diagnostic_location function.
14256         (diagnostic_report_diagnostic): Use diagnostic_location function.
14257         (verbatim): Do not set text.locus.
14258         * diagnostic.h (struct diagnostic_info): Remove location field.
14259         (struct diagnostic_context): Make caret_chars an array of two.
14260         (diagnostic_location): New inline.
14261         (diagnostic_expand_location): Handle two locations.
14262         (diagnostic_same_line): New inline.
14263         (diagnostic_print_caret_line): Declare.
14264         (CARET_LINE_MARGIN): New constant.
14265         * pretty-print.c (pp_printf): Do not set text.locus.
14266         (pp_verbatim): Do not set text.locus.
14267         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
14268         (struct text_info): Replace locus pointer with locations
14269         array. Add accessor functions.
14271 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
14272             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
14274         PR target/65768
14275         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
14276         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
14277          large constants in register instead of splitting them.
14279 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
14281         PR target/66140
14282         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
14283         replacements in memory addresses.
14284         (get_unaligned_address): Ditto.
14286 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
14288         * config/ft32/*: New files for FT32 port.
14289         * doc/install.texi: Add FT32 information.
14290         * doc/invoke.texi: Add FT32 information.
14291         * doc/md.texi: Add FT32 information.
14292         * doc/contrib.texi: Self added.
14294 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
14296         PR tree-optimization/64454
14297         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
14298         (-1 - A -> ~A): Remove unnecessary condition.
14300 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
14302         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
14303         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
14304         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
14306 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
14308         * ipa-chkp.h (chkp_wrap_function): New.
14309         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
14310         (chkp_wrap_function_name): New.
14311         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
14312         to get wrapper name.
14313         * lto-cgraph.c: Include ipa-chkp.h.
14314         (input_cgraph_1): Avoid alias chain for wrappers.
14316 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
14318         PR middle-end/66134
14319         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
14320         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
14322 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14324         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
14325         (AARCH64_FL_SLOWMUL): Delete.
14326         (AARCH64_FL_CRC): Redefine to 1<<3.
14327         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
14329 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14331         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
14332         casting.
14334 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
14336         * config/alpha/alpha.md (extendqidi2): Use general_operand
14337         instead of some_operand for operand[1] predicate.
14338         (extendhidi2): Ditto.
14339         (cbranchdi4): Use general_operand instead of some_operand
14340         for operand[1] and operands[2] predicates.
14341         (cstoredi4): Ditto.
14342         * config/alpha/predicates.md (some_operand): Remove unused predicate.
14343         (some_ni_operand): Ditto.
14345 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
14347         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
14348         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
14349         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
14350         low part of the constant using alpha_emit_set_const_1.
14351         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
14353 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
14355         * varasm.c (output_constant_pool_1): Pass down alignment from
14356         constant pool entry's descriptor to output_constant_pool_2.
14357         (output_object_block): Add comment prior to call to
14358         output_constant_pool_1.
14360 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
14362         PR rtl-optimization/65862
14363         * target.def (ira_change_pseudo_allocno_class): New hook.
14364         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
14365         value of the hook.
14366         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
14367         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
14368         hook.
14369         * ira-costs.c (find_costs_and_classes): Call the hook and change
14370         classes when it is necessary.
14371         * doc/tm.texi: Update.
14373 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
14375         * config/i386/i386.md (sibcall_memory): Check that register with
14376         callee address is not also used as one of the arguments, instead
14377         of checking that it is not live after the sibcall.
14378         (sibcall_pop_memory): Ditto.
14379         (sibcall_value_memory): Ditto.
14380         (sibcall_value_pop_memory): Ditto.
14382 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
14384         * generic-match-head.c (types_match): Handle non-types.
14385         * gimple-match-head.c (types_match): Likewise.
14386         * match.pd: Remove unnecessary TREE_TYPE for types_match.
14388 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
14390         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
14391         (csneg3<mode>_insn): Enable expansion of pattern.
14393 2015-05-14  Nick Clifton  <nickc@redhat.com>
14395         * config/rl78/rl78.c (rl78_select_section): Select the correct
14396         default section based upon the category of the decl.
14398 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
14400         PR rtl-optimization/30967
14401         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
14402         destination mode for the cost of scc patterns.
14404 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
14406         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
14407         using SWIM248 mode iterator.
14408         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
14409         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
14410         for operand[2] constraint.
14411         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
14413 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
14415         PR middle-end/66133
14416         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
14417         make sure it is never noreturn, even when the task body does not
14418         return.
14419         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
14420         right before GIMPLE_OMP_RETURN.
14421         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
14422         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
14423         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
14425 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14427         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
14428         * tree-ssa-math-opts.c: Include params.h
14429         (pow_synth_sqrt_info): New struct.
14430         (representable_as_half_series_p): New function.
14431         (get_fn_chain): Likewise.
14432         (print_nested_fn): Likewise.
14433         (dump_fractional_sqrt_sequence): Likewise.
14434         (dump_integer_part): Likewise.
14435         (expand_pow_as_sqrts): Likewise.
14436         (gimple_expand_builtin_pow): Use above to attempt to expand
14437         pow as series of square roots.  Removed now unused variables.
14439 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
14441         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
14442         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
14443         Remove *p0 and *p1 arguments.  Rewrite function.
14444         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
14445         (alpha_split_const_mov): Update calls to alpha_extract_integer and
14446         alpha_emit_set_long_const.
14447         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
14448         (alpha_output_mi_thunk_osf): Ditto.
14449         * config/alpha/alpha.md (movti): Do not check operands[1]
14450         for CONST_DOUBLE.
14452 2015-05-13  Richard Biener  <rguenther@suse.de>
14454         PR tree-optimization/66129
14455         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
14456         commutative.
14457         (vect_schedule_slp_instance): Fix typo.
14459 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
14461         * common.opt (fdump-internal-locations): New option.
14462         * input.c: Include diagnostic-core.h.
14463         (get_end_location): New function.
14464         (write_digit): New function.
14465         (write_digit_row): New function.
14466         (dump_location_range): New function.
14467         (dump_labelled_location_range): New function.
14468         (dump_location_info): New function.
14469         * input.h (dump_location_info): New prototype.
14470         * toplev.c (compile_file): Handle flag_dump_locations.
14472 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
14474         * gimple-expr.h (is_gimple_constant): Reorder.
14475         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
14477 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
14479         * combine.c (simplify_set): When generating a CC set, if the
14480         source already is in the correct mode, do not wrap it in a
14481         compare.  Simplify the rest of that code.
14483 2015-05-13  Richard Biener  <rguenther@suse.de>
14485         PR tree-optimization/66123
14486         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
14487         a taken edge.
14489 2015-05-13  Richard Biener  <rguenther@suse.de>
14491         PR middle-end/66110
14492         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
14493         specially.
14494         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
14496 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
14498         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
14499         * aclocal.m4: Regenerated with automake-1.11.6.
14501 2015-05-13  Tom de Vries  <tom@codesourcery.com>
14503         PR tree-optimization/66010
14504         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
14505         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
14506         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
14507         and rval based on do_deref.
14509 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
14511         PR target/65103
14512         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
14513         link time constants into adress expressions and therefore set
14514         their cost to 0.
14516 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
14518         PR target/66112
14519         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
14520         Use SWI248 iterator instead of SWI.
14521         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
14522         Use eq_attr "alternative" "0" instead of match_test in
14523         length_immediate attribute computation.
14524         (*mulvhi4, *mulvhi4_1): New define_insns.
14526         PR target/66112
14527         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
14528         SIGNED to get precision of non-negative value.
14530 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
14532         PR target/66048
14533         * function.c (diddle_return_value_1): Process bounds first.
14534         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
14535         register.
14537 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14539         PR rtl-optimization/64616
14540         * loop-invariant.c (can_move_invariant_reg): New.
14541         (move_invariant_reg): Call above new function to decide whether
14542         instruction can just be moved, skipping creation of temporary
14543         register.
14545 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
14547         PR target/pr66047.c
14548         * i386.c (ix86_function_sseregparm): Only return -1 if local function
14549         with implied regparm is called from -mno-sse function.
14550         (init_cumulative_args): Output error if ix86_function_sseregparm
14551         return -1 and SSE register would be needed.
14552         (function_arg_advance_32): Likewise.
14553         (function_arg_32): Likewise.
14554         * i386.h (ix86_args): Add decl field.
14556 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
14558         PR ipa/65873
14559         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
14560         inlines across optimization boundary.
14562 2015-05-12  Jason Merrill  <jason@redhat.com>
14564         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
14565         string literal and macro name.
14567 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
14569         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
14570         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
14571         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
14573 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
14575         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
14576         (-Wmisleading-indentation): New option.
14577         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
14579 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
14581         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
14582         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
14583         (alpha_extract_integer): Ditto.
14584         (alpha_legitimate_constant_p): Ditto.
14585         (alpha_split_tmode_pair): Ditto.
14586         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
14587         (alpha_expand_mov): Ditto.
14588         (print_operand): Remove handling of 'H' modifier.
14589         <case 'm'>: Remove CONST_DOUBLE handling.
14590         (summarize_insn): Handle CONST_WIDE_INT.
14591         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
14592         (anddi3): Ditto.
14593         (movti): Handle CONST_WIDE_INT.
14594         * config/alpha/constraints.md ('H'): Remove constraint definition.
14595         ('G'): Do not match MODE_FLOAT class.
14596         * config/alpha/predicates.md (const0_operand): Also match
14597         const_wide_int.
14598         (non_add_const_operand): Ditto.
14599         (non_zero_const_operand): Ditto.
14600         (some_operand): Ditto.
14601         (input_operand): Ditto.  Handle CONST_WIDE_INT.
14602         (and_operand): Do not match const_double.
14603         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
14605 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
14607         PR target/65697
14608         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
14609         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
14610         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
14611         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
14612         is_mm_seq_cst, is_mm_sync): New accessor functions.
14613         * builtins.c (expand_builtin_sync_operation,
14614         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
14615         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
14616         (get_memmodel,  expand_builtin_atomic_compare_exchange,
14617         expand_builtin_atomic_load, expand_builtin_atomic_store,
14618         expand_builtin_atomic_clear): Use new accessor routines.
14619         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
14620         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
14621         (maybe_emit_sync_lock_test_and_set): Use new accessors and
14622         MEMMODEL_SYNC_ACQUIRE.
14623         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
14624         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
14625         expand_atomic_store): Use new accessors.
14626         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
14627         * tsan.c (instrument_builtin_call): Update check for memory model beyond
14628         final enum to use MEMMODEL_LAST.
14629         * c-family/c-common.c: Use new accessor for memmodel_base.
14630         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
14631         accessors.
14632         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
14633         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
14634         mem_thread_fence, *dmb): Likewise.
14635         * config/alpha/alpha.c (alpha_split_compare_and_swap,
14636         alpha_split_compare_and_swap_12): Likewise.
14637         * config/arm/arm.c (arm_expand_compare_and_swap,
14638         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
14639         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
14640         atomic_loaddi): Likewise.
14641         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
14642         Likewise.
14643         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
14644         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
14645         use new accessors.
14646         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
14647         atomic_store<mode>, atomic_compare_and_swap<mode>,
14648         atomic_exchange<mode>): Use new accessors.
14649         * config/mips/mips.c (mips_process_sync_loop): Likewise.
14650         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
14651         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
14652         rs6000_post_atomic_barrier): Add new cases.
14653         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
14654         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
14655         (atomic_load<mode>): Add new cases and use new accessors.
14656         (store_quadpti): Add new cases.
14657         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
14658         accessors.
14659         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
14660         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
14661         model, not 8.
14663 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
14665         * ipa-devirt.c (type_with_linkage_p): New function.
14666         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
14667         type has linkage.
14668         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
14669         (can_be_name_hashed_p): Simplify.
14670         (hash_odr_name): Check that type has linkage before checking if it is
14671         anonymous.
14672         (types_same_for_odr): Likewise.
14673         (odr_name_hasher::equal): Likewise.
14674         (odr_subtypes_equivalent_p): Likewise.
14675         (warn_types_mismatch): Likewise.
14676         (get_odr_type): Likewise.
14677         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
14678         * ipa-utils.h (odr_type_p): Move offline.
14679         * tree.c (need_assembler_name_p): Fix handling of types
14680         without linkages.
14681         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
14683 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
14685         * timevar.c (timevar_enable): Delete in favor of...
14686         (g_timer): New global.
14687         (struct timevar_def): Move to timevar.h inside class timer.
14688         (struct timevar_stack_def): Likewise.
14689         (timevars): Delete global in favor of field "m_timevars" within
14690         class timer in timevar.h
14691         (stack): Likewise, in favor of field "m_stack".
14692         (unused_stack_instances): Likewise, in favor of field
14693         "m_unused_stack_instances".
14694         (start_time): Likewise, in favor of field "m_start_time".
14695         (get_time): Eliminate check for timevar_enable.
14696         (timer::timer): New function, built from part of timevar_init.
14697         (timevar_init): Rewrite idempotency test from using
14698         "timevar_enable" bool to using dynamic allocation of "g_timer".
14699         Move rest of implementation into timer's constructor.
14700         (timevar_push_1): Rename to...
14701         (timer::push): ...this, adding "m_" prefixes to variables that
14702         are now fields of timer.
14703         (timevar_pop_1): Likewise, rename to...
14704         (timer::pop): ...this, and add "m_" prefixes.
14705         (timevar_start): Replace test for "timevar_enable" with one for
14706         "g_timer", and move bulk of implementation to...
14707         (timer::start): ...here, adding "m_" prefixes.
14708         (timevar_stop): Likewise, from here...
14709         (timer::stop): ...to here.
14710         (timevar_cond_start): Likewise, from here...
14711         (timer::cond_start): ...to here.
14712         (timevar_cond_stop): Likewise, from here...
14713         (timer::cond_stop): ...to here.
14714         (validate_phases): Rename to...
14715         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
14716         locals "total" and "tv" const.
14717         (timevar_print): Rename to...
14718         (timer::print): ...this, and add "m_" prefixes.  Make locals
14719         "total" and "tv" const.  Eliminate test for timevar_enable.
14720         * timevar.h (timevar_enable): Eliminate.
14721         (g_timer): New declaration.
14722         (timevar_push_1): Eliminate.
14723         (timevar_pop_1): Eliminate.
14724         (timevar_print): Eliminate.
14725         (class timer): New class.
14726         (timevar_push): Rewrite to use g_timer.
14727         (timevar_pop): Likewise.
14728         * toplev.c (toplev::~toplev): Likewise.
14730 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
14732         * arm-protos.h (arm_sched_autopref): Delete.
14733         (tune_params): Re-organize, use enums for flag values.
14734         (FUSE_OPS): New macro.
14735         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
14736         (ARM_PREFETCH_BENEFICIAL): Likewise.
14737         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
14738         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
14739         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
14740         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
14741         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
14742         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
14743         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
14744         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
14745         format.
14746         (arm_option_override, thumb2_reorg, arm_print_tune_info)
14747         (aarch_macro_fusion_pair_p): Update uses of current_tune.
14748         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
14750 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
14752         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
14753         "break".
14755 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
14756             Sandra Loosemore <sandra@codesourcery.com>
14758         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
14759         value.
14760         (REG_CLASS_NAMES): Add "IJMP_REGS".
14761         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
14762         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
14763         use new "c" register constraint.
14764         * config/nios2/constraint.md (c): New register constraint
14765         corresponding to IJMP_REGS.
14767 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
14769         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
14770         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
14771         define_splits): Delete, revamp, transmogrify into ...
14772         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
14773         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
14774         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
14775         New.
14777 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
14779         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
14780         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
14782 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
14784         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
14785         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
14786         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
14787         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
14788         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
14789         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
14790         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
14791         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
14792         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
14793         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
14794         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
14795         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
14796         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
14797         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
14798         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
14799         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
14800         and 30 corresponding splitters): Delete.
14802 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
14804         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
14805         zero_extract.
14807 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
14809         * combine.c (recog_for_combine_1): New function, factored out
14810         from recog_for_combine.
14811         (change_zero_ext): New function.
14812         (recog_for_combine): If recog fails, try again with the pattern
14813         modified by change_zero_ext; if that still fails, restore the
14814         pattern.
14816 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
14818         * combine.c (get_undo_marker): New function.
14819         (undo_to_marker): New function, largely factored out from ...
14820         (undo_all): ... this.  Adjust.
14822 2015-05-12  Richard Biener  <rguenther@suse.de>
14824         PR tree-optimization/66101
14825         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
14826         fixup if we turn a loop exit edge to a fallthru edge.
14828 2015-05-12  Richard Biener  <rguenther@suse.de>
14830         PR tree-optimization/37021
14831         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
14832         (SLP_TREE_TWO_OPERATORS): New define.
14833         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
14834         SLP_TREE_TWO_OPERATORS.
14835         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
14836         SLP node.
14837         (vect_build_slp_tree): Adjust.
14838         (vect_analyze_slp_cost_1): Likewise.
14839         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
14840         emitting two vector stmts and mixing the results.
14842 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14844         * call.c (print_z_candidates): Remove dead code.
14846 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14848         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
14849         and zEC12_simple_fp.
14850         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
14851         to 1.
14853 2015-05-12  Tom de Vries  <tom@codesourcery.com>
14855         PR tree-optimization/66010
14856         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
14857         ifn_va_arg.
14858         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
14859         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
14860         va_lists are passed, and remove corresponding handling.
14861         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
14862         do_deref argument to ifn_va_arg.
14863         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
14864         ifn_va_arg.
14866 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14868         PR target/65955
14869         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
14870         REG before taking its REGNO.
14872 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14874         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
14875         rsp->sign_bit_copies and rsp->nonzero_bits into ...
14876         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
14877         present to get more accurate information about the number of sign bit
14878         copies and non zero bits.
14880 2015-05-12  Richard Biener  <rguenther@suse.de>
14882         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
14883         do not allow unrolling.
14885 2015-05-11  Richard Henderson  <rth@redhat.com>
14887         * config/i386/i386-modes.def (CCP): New.
14888         * config/i386/i386.c (put_condition_code): Handle it.
14889         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
14891 2015-05-11  Richard Henderson  <rth@redhat.com>
14893         * target.def (md_asm_clobbers): Replace with...
14894         (md_asm_adjust): this.
14895         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
14896         (TARGET_MD_ASM_ADJUST): New.
14897         * tm.texi: Rebuild.
14898         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
14899         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
14900         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
14902         * cfgexpand.c (check_operand_nalternatives): Accept vector of
14903         constraints instead of lists of outputs and inputs.
14904         (expand_asm_stmt): Save and restore input_location around the
14905         body of the function.  Move asm data into vectors instead of
14906         building tree lists.  Generate cleanup sequences as needed,
14907         rather than waiting til the end.  Use new md_asm_adjust hook.
14909         * config/vxworks.c: Include vec.h before target.h.
14910         * gimple.c: Likewise.
14911         * incpath.c: Likewise.
14912         * mode-switching.c: Likewise.
14914         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
14915         (cris_md_asm_adjust): this.
14916         (TARGET_MD_ASM_CLOBBERS): Remove.
14917         (TARGET_MD_ASM_ADJUST): New.
14918         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
14919         (ix86_md_asm_adjust): this.
14920         (TARGET_MD_ASM_CLOBBERS): Remove.
14921         (TARGET_MD_ASM_ADJUST): New.
14922         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
14923         (mn10300_md_asm_adjust): this.
14924         (TARGET_MD_ASM_CLOBBERS): Remove.
14925         (TARGET_MD_ASM_ADJUST): New.
14926         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
14927         (rs6000_md_asm_adjust): this.
14928         (TARGET_MD_ASM_CLOBBERS): Remove.
14929         (TARGET_MD_ASM_ADJUST): New.
14930         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
14931         (visium_md_asm_adjust): this.
14932         (TARGET_MD_ASM_CLOBBERS): Remove.
14933         (TARGET_MD_ASM_ADJUST): New.
14935 2015-05-11  Richard Henderson  <rth@redhat.com>
14937         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
14938         if noutputs is zero.
14939         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
14941         * cfgexpand.c (expand_asm_operands): Merge into...
14942         (expand_asm_stmt): ... here.
14944         * cfgexpand.c (expand_asm_operands): Don't call
14945         resolve_asm_operand_names.
14946         * stmt.c (resolve_asm_operand_names): Clarify block comment.
14948 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
14950         * dwarf2out.c (gen_member_die): Sanity check that we access
14951         TYPE_MAIN_VARIANT for TYPE_METHODS.
14952         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
14953         checking TYPE_METHODS.
14954         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
14955         if non-null.
14956         (build_distinct_type_copy): Clear TYPE_METHODS.
14957         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
14958         (verify_type): Allow TYPE_METHODS to be error_mark_node.
14959         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
14961 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
14963         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
14964         (emit_pattern_before_setloc): Likewise.
14966 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
14968         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
14969         for define_peephole2s.
14970         (get_peephole2_pattern): New function.
14971         (main): Use it.  Call validate_pattern.
14973 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
14975         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
14976         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
14977         (Last callee saved reg is different for AVR_TINY architecture)
14979 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
14981         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
14982         when looking for memory references.
14984 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
14986         PR target/65753
14987         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
14988         via function pointers.
14990 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
14992         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
14993         indirect call by forcing address into a pseudo with -fno-plt.
14994         * common.opt (flag_plt): New option.
14995         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
14996         ([-fno-plt]): Document.
14998 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
15000         PR bootstrap/66105
15001         * config/rs6000/option-defaults.h: Add space between string literal
15002         and macro name.
15004 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15006         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
15007         accross ARM targets.
15009 2015-05-11  Christian Bruel  <christian.bruel@st.com>
15011         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
15012         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
15014 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
15016         PR rtl-optimization/66076
15017         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
15018         Don't grow the heap array if it is already big enough from a
15019         previous iteration.
15021 2015-05-11  Christian Bruel  <christian.bruel@st.com>
15023         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
15024         (is_called_in_ARM_mode): Remove.
15025         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
15026         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
15027         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
15028          arm_declare_function_name.
15030 2015-05-11  Christian Bruel  <christian.bruel@st.com>
15032         * config/arm/arm.c (arm_option_override): Reoganized and split into :
15033         (arm_option_params_internal); New function.
15034         (arm_option_check_internal): New function.
15035         (arm_option_override_internal): New function.
15036         (thumb_code, thumb1_code): Remove.
15037         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
15038         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
15039         (thumb_code, thumb1_code): Remove.
15040         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
15042 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
15044         * config/alpha/alpha.c (alpha_emit_set_const_1)
15045         (alpha_emit_set_long_const, alpha_extract_integer)
15046         (alpha_legitimate_constant_p, alpha_split_const_mov)
15047         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
15048         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
15049         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
15050         HOST_WIDE_INT_1U.
15051         * config/alpha/predicates.md (mode_mask_operand): Do not match
15052         const_double RTX.
15053         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
15054         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
15055         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
15056         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
15057         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
15059 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
15061         PR target/65780
15062         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
15063         default_binds_local_p_2.
15064         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
15065         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
15067 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
15069         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
15071 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
15073         Patch by Richard Biener
15074         * coverage.c (coverage_obj_init): Delay building of type variant
15075         until the type is finished.
15077 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
15079         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
15080         mismatch between C and C++ type; compoare correctly ARG_TYPES
15081         for non-prototypes and output correctly parameter index for METHOD_TYPE.
15082         (odr_types_equivalent_p): Fix wording of warning about attributes;
15083         it is OK to match prototype and non-prototype.
15085 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
15087         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
15088         TYPE_ARG_TYPES list.
15089         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
15090         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
15092 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
15094         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
15095         * tree.h (is_lang_specific): Constify.
15097 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
15099         PR tree-optimization/64454
15100         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
15101         Rewrite.
15103 2015-05-08  Jason Merrill  <jason@redhat.com>
15105         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
15106         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
15107         config/darwin.h, config/darwin9.h, config/elfos.h,
15108         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
15109         config/microblaze/microblaze.h, config/mips/mips.h,
15110         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
15111         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
15112         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
15113         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
15114         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
15115         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
15116         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
15117         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
15118         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
15119         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
15120         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
15121         between string literal and macro name.
15123 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15125         * jump.c: Change argument types to rtx_insn *.
15126         * rtl.h: Adjust.
15128 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15130         * lra-constraints.c: Change argument type to rtx_insn *.
15132 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15134         * df-problems.c: Change argument type to rtx_insn *.
15136 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15138         * combine.c: Change argument type to rtx_insn *.
15140 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15142         * rtl.h: Adjust.
15143         * rtlanal.c: Change argument type to rtx_insn *.
15145 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15147         * sched-deps.c: Change argument types to rtx_insn *.
15148         * sched-int.h: Adjust.
15150 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15152         * dwarf2cfi.c: Change argument type to rtx_insn *.
15154 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15156         * ira.c (decrease_live_ranges_number): Changetype of local
15157         variable to rtx_insn *.
15158         * recog.c: Change argument types to rtx_insn *.
15159         * recog.h: Adjust.
15161 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15163         * reorg.c: Change argument types to rtx_insn *.
15165 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15167         * ira-color.c: Change argument types to rtx_insn *.
15168         * lra-eliminations.c: Likewise.
15169         * ira.h: Adjust.
15171 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15173         * gcse.c: Change argument types to rtx_insn *.
15175 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15177         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
15179 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15181         * emit-rtl.c (emit_debug_insn_before): Change argument type to
15182         rtx_insn *.
15183         * rtl.h: Adjust.
15185 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15187         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
15188         * rtl.h: Adjust.
15190 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15192         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
15193         * rtl.h: Adjust.
15195 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15197         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
15198         * rtl.h: Adjust.
15200 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15202         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
15203         * rtl.h: Adjust.
15205 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15207         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
15208         to rtx_insn *.
15209         * rtl.h: Adjust.
15211 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15213         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
15214         to rtx_insn *.
15215         * rtl.h: Likewise.
15217 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15219         * except.c (can_nonlocal_goto): Change type of argument to
15220         rtx_insn *.
15221         * rtl.h: Adjust.
15223 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15225         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
15226         * rtl.h: Adjust.
15228 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15230         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
15231         * cfgrtl.c (can_delete_label_p): Adjust.
15232         * rtl.h: likewise.
15234 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15236         * reorg.c (stop_search_p): Change argument to rtx_insn *.
15238 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15240         * except.c (make_reg_eh_region_note): Change argument to
15241         rtx_insn *.
15242         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
15243         * except.h: Adjust.
15245 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15247         * mode-switching.c (commit_mode_sets): Change type of local
15248         variable from rtx to rtx_insn *.
15250 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
15252         * doc/install.texi (--enable-languages): Add missing jit and lto info.
15253         Add ^ to grep command.
15254         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
15255         arg to last gimple_simplify declaration.  Add missing gimple_build
15256         declaration for built-in function case with four tree args.
15258 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
15259             Szabolcs Nagy  <szabolcs.nagy@arm.com>
15261         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
15262         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
15263         (GNU_USER_DYNAMIC_LINKERN32): Update.
15265 2015-05-08  Richard Biener  <rguenther@suse.de>
15267         PR tree-optimization/66036
15268         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
15269         Handle strided group loads.
15270         (vect_verify_datarefs_alignment): Likewise.
15271         (vect_enhance_data_refs_alignment): Likewise.
15272         (vect_analyze_group_access): Likewise.
15273         (vect_analyze_data_ref_access): Likewise.
15274         (vect_analyze_data_ref_accesses): Likewise.
15275         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
15276         (vectorizable_load): Likewise.
15278 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
15280         * config/rs6000/rs6000.md: Require operand inequality in one
15281         of the peepholes.
15283 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
15284             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15286         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
15287         from (set ...).
15288         * config/rx/rx.md (movdi, movdf): Likewise.
15289         Likewise for define_peephole2s.
15291 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
15293         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
15294         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
15295         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
15296         vtst_u64): Rewrite using gcc vector extensions.
15298 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
15300         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
15301         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
15303 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
15305         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
15307 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
15309         * config/glibc-stdint.h (OPTION_MUSL): Define.
15310         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
15311         Change the definition based on OPTION_MUSL for 64 bit targets.
15312         * config/linux.h (OPTION_MUSL): Redefine.
15313         * config/alpha/linux.h (OPTION_MUSL): Redefine.
15314         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
15315         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
15317 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
15318             Szabolcs Nagy  <szabolcs.nagy@arm.com>
15320         * config.gcc (LIBC_MUSL): New tm_defines macro.
15321         * config/linux.h (OPTION_MUSL): Define.
15322         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
15323         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
15324         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
15325         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
15326         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
15327         * config/linux.opt (mmusl): New option.
15328         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
15329         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
15330         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
15331         * configure: Regenerate.
15333 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
15334             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
15336         PR target/48904
15337         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
15338         * config/i386/knetbsd-gnu64.h: New file.
15340 2015-05-08  Marek Polacek  <polacek@redhat.com>
15342         PR c/64918
15343         * doc/invoke.texi: Document -Woverride-init-side-effects.
15345 2015-05-07  Marek Polacek  <polacek@redhat.com>
15347         PR c/65179
15348         * doc/invoke.texi: Document -Wshift-negative-value.
15350 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
15352         * gcov-tool.c (do_merge): Refactore to remove int ret.
15353         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
15354         !type == FUNC to type != FUNC.
15355         * reload.h (struct target_reload): Changee to type of
15356         x_spill_indirect_levels from bool to unsigned char.
15358 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
15360         * rtl.h (always_void_p): New function.
15361         * gengenrtl.c (always_void_p): Likewise.
15362         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
15363         with code foo are always VOIDmode.
15364         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
15365         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
15366         compare-elim.c, config/aarch64/aarch64.c,
15367         config/aarch64/aarch64.md, config/alpha/alpha.c,
15368         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
15369         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
15370         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
15371         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
15372         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
15373         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
15374         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
15375         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
15376         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
15377         config/ia64/vect.md, config/iq2000/iq2000.c,
15378         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
15379         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
15380         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
15381         config/mep/mep.c, config/microblaze/microblaze.c,
15382         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
15383         config/mn10300/mn10300.c, config/msp430/msp430.c,
15384         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
15385         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
15386         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
15387         config/rs6000/altivec.md, config/rs6000/rs6000.c,
15388         config/rs6000/rs6000.md, config/rs6000/vector.md,
15389         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
15390         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
15391         config/sh/sh.md, config/sh/sh_treg_combine.cc,
15392         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
15393         config/spu/spu.md, config/stormy16/stormy16.c,
15394         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
15395         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
15396         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
15397         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
15398         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
15399         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
15400         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
15401         var-tracking.c: Update calls accordingly.
15403 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
15405         PR middle-end/192
15406         PR middle-end/54303
15407         * varasm.c (function_mergeable_rodata_prefix): New function.
15408         (mergeable_string_section): Use it.
15409         (mergeable_constant_section): Use it.
15411 2015-05-07  Jeff Law  <law@redhat.com>
15413         PR target/39726
15414         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
15415         simplifier to narrow arithmetic.
15416         * generic-match-head.c: (types_match, single_use): New functions.
15417         * gimple-match-head.c: (types_match, single_use): New functions.
15419 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
15421         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
15422         rtx type.
15424 2015-05-07  Richard Biener  <rguenther@suse.de>
15426         PR tree-optimization/66002
15427         * passes.def: Schedule another pass_merge_phi after ifcombine, right
15428         before phiopt.
15430 2015-05-07  Marek Polacek  <polacek@redhat.com>
15431             Martin Uecker  <uecker@eecs.berkeley.edu>
15433         * doc/invoke.texi: Document -fsanitize=bounds-strict.
15434         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
15435         into SANITIZE_NONDEFAULT.
15436         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
15438 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
15440         PR target/66015
15441         * config/alpha/alpha.c (alpha_override_options_after_change): New.
15442         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
15443         (alpha_override_options): Move align_loops, align_jumps and
15444         align_functions handling into alpha_override_options_after_change.
15446 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
15447             Chris Jones  <chrisj@nvidia.com>
15448             Joshua Conner  <jconner@nvidia.com>
15450         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
15451         linking of crtfastmath.o.
15452         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
15454 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
15456         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
15457         (cstore<mode>4_unsigned_imm): New expander.
15458         (cstore<mode>4): Remove empty constraint strings.  Use the new
15459         expanders.
15461 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
15463         PR target/64208
15464         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
15465         alternatives.
15467 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
15469         * config/aarch64/geniterators.sh: Use standard BRE in sed.
15471 2015-05-06  Alan Modra  <amodra@gmail.com>
15473         PR target/66033
15474         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
15475         (UNSPEC_NOP): Define.
15476         (reload_vsx_from_gpr<mode>): Add missing DONE.
15477         (reload_gpr_from_vsx<mode>): Likewise.
15478         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
15479         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
15481 2015-05-06  Christian Bruel  <christian.bruel@st.com>
15483         PR target/66015
15484         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
15485         align_jumps, align_functions into aarch64_override_options_after_change.
15487 2015-05-06  Richard Biener  <rguenther@suse.de>
15489         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
15490         vect_transform_slp_perm_load to check if we support a permutation
15491         for basic-block vectorization.
15493 2015-05-06  Nick Clifton  <nickc@redhat.com>
15495         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
15496         used, even if it is not being used as a frame pointer.
15498 2015-05-05  Jason Merrill  <jason@redhat.com>
15500         * dwarf2out.c (gen_member_die): Don't emit anything for an
15501         anonymous class constructor.
15503 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
15505         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
15506         that it reflects the block structure.
15507         (afdo_propagate_edge): Likewise.
15508         (afdo_calculate_branch_prob): Likewise.
15509         (afdo_annotate_cfg): Likewise.
15510         * cfgcleanup.c (equal_different_set_p): Likewise.
15511         (try_crossjump_to_edge): Likewise.
15512         * cgraph.c (cgraph_node::verify_node): Likewise.
15513         * cgraphunit.c (expand_all_functions): Likewise.
15514         * config/i386/i386.c (ix86_expand_copysign): Likewise.
15515         (exact_dependency_1): Likewise.
15516         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
15517         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
15518         * gensupport.c (process_define_subst): Likewise.
15519         * lto-wrapper.c (merge_and_complain): Likewise.
15520         * tree-if-conv.c (if_convertible_bb_p): Likewise.
15521         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
15522         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
15523         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
15524         * tree-vect-loop.c (vectorizable_reduction): Likewise.
15525         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
15526         * tree-vect-stmts.c (vectorizable_shift): Likewise.
15527         * tree-vrp.c (vrp_finalize): Likewise.
15528         * tree.c (variably_modified_type_p): Likewise.
15530 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
15532         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
15533         on darwin12 and later.
15534         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
15535         file to pass -rdynamic on darwin12 and later.
15536         * config/darwin.opt (rdynamic): Add.
15538 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
15540         * doc/extend.texi (C Extensions): Update menu for moved Variable
15541         Attributes and Type Attributes sections.
15543 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
15545         PR target/65990
15546         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
15547         if rep_8byte stringop strategy was specified for 32-bit target.
15549 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
15551         PR target/65915
15552         * config/i386/i386.md (vector convert to float spltiter): Check for
15553         xmm16+, when splitting scalar float conversion.
15554         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
15556 2015-05-05  Nick Clifton  <nickc@redhat.com>
15558         * config/msp430/msp430-opts.h (enum msp430_regions): New.
15559         * config/msp430/msp430.c (msp430_override_options): Complain if
15560         -mcode-region or -mdata-region is used on a non MSP430X.
15561         (msp430_section_attr): New function.  Checks lower, upper and
15562         either attributes.
15563         (msp430_attribute_table): Add lower, upper and either.
15564         (gen_prefix): New function.  Generates a prefix for a section
15565         name.
15566         (msp430_select_section): New function - handles the choice of
15567         section for an object.  Takes into account memory region
15568         attributes and options.
15569         (msp430_function_section): Use gen_prefix.
15570         (TARGET_SECTION_TYPE_FLAGS): Define.
15571         (msp430_section_type_flags): New function.
15572         (TARGET_ASM_UNIQUE_SECTION): Define.
15573         (msp430_unique_section): New function.
15574         (msp430_output_aligned_decl_common): New function.
15575         (msp430_do_not_relax_short_jumps): New function.
15576         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
15577         Define.
15578         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
15579         * config/msp430/msp430-protos.h
15580         (msp430_do_not_relax_short_jumps): New prototype.
15581         (msp430_output_aligned_decl_common): New prototype.
15582         * config/msp430/msp430.md (length): New attribute.
15583         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
15584         then use a long code sequence for short jumps.
15585         * config/msp430/msp430.opt (mcode-region): New.
15586         (mdata-region): New.
15587         * doc/invoke.texi: Document new options.
15588         * doc/extend.texi: Document new attributes.
15590 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
15592         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
15593         (tune_params): Add field branch_costs.
15594         (aarch64_branch_cost): Declare.
15595         * gcc/config/aarch64.c (generic_branch_cost): New.
15596         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
15597         (cortexa53_tunings): Likewise.
15598         (cortexa57_tunings): Likewise.
15599         (thunderx_tunings): Likewise.
15600         (xgene1_tunings): Likewise.
15601         (aarch64_branch_cost): Define.
15602         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
15604 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
15606         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
15607         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
15608         * config/i386/i386.md: Ditto.
15609         * config/i386/winnt.c: Ditto.
15611 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
15613         * doc/extend.texi (__atomic Builtins): Move implementation details
15614         to the end of the description, rewrite opening paragraphs, state
15615         difference with __sync builtins, state C11/C++11 assumptions,
15616         weaken itemized descriptions, add explanation of memory model
15617         behaviour, expand description of compare-exchange, simplify text.
15619 2015-05-05  Renlin Li  <renlin.li@arm.com>
15621         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
15623 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
15625         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
15626         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
15627         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
15628         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
15629         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
15630         * configure: Regenerate.
15631         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
15632         * doc/install.texi (aarch64*-*-*): Document new
15633         --enable-fix-cortex-a53-843419 option.
15634         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
15635         and -mno-fix-cortex-a53-843419 options.
15637 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
15639         PR target/65871
15640         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
15642 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
15644         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
15645         fix overactive TYPE_MIN_VALUE check and add FIXME for type
15646         compatibility problems.
15648 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
15650         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
15651         constraints.
15652         (cbranchsi4_reg): New.
15653         * config/microblaze/microblaze.c
15654         (microblaze_expand_conditional_branch_reg): New.
15655         * config/microblaze/microblaze-protos.h
15656         (microblaze_expand_conditional_branch_reg): New prototype.
15658 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
15660         * config/microblaze/microblaze.md (peephole2): New.
15662 2015-05-04  Jeff Law  <law@redhat.com>
15664         Revert:
15665         2015-05-04  Jeff Law  <law@redhat.com>
15667         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
15668         simplifier to narrow arithmetic.
15669         * generic-match-head.c: (types_match, single_use): New functions.
15670         * gimple-match-head.c: (types_match, single_use): New functions.
15672 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
15674         PR target/65987
15675         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
15676         (split_branches): Likewise.
15678 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
15680         * common.opt (fdelete-null-pointer-checks): Init to -1.
15681         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
15682         override flag_delete_null_pointer_checks default.
15683         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
15684         behavior re address zero.  Better document target-specific behavior.
15685         (-fisolate-errneous-paths-dereference): Mention relationship to
15686         -fdelete-null-pointer-checks.
15688 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
15690         PR tree-optimization/65984
15691         * ubsan.c: Include tree-cfg.h.
15692         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
15693         stmt_could_throw_p test, rename can_throw variable to ends_bb.
15695 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
15697         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
15698         to CONST_DOUBLE_P predicate.
15699         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
15700         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
15701         allow only operands that satisfy standard_sse_constant_p predicate.
15702         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
15703         to CONST_DOUBLE_P predicate.
15705 2015-05-04  Jeff Law  <law@redhat.com>
15707         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
15708         simplifier to narrow arithmetic.
15709         * generic-match-head.c: (types_match, single_use): New functions.
15710         * gimple-match-head.c: (types_match, single_use): New functions.
15712 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
15714         * config/arm/arm.c: Restore bootstrap.
15716 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
15718         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
15719         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
15720         as CONST_WIDE_INT, not CONST_DOUBLE.
15721         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
15722         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
15723         (ix86_find_base_term): Do not check for CONST_DOUBLE.
15724         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
15725         (ix86_build_signbit_mask): Rewrite using wide ints.
15726         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
15727         (ix86_rtx_costs): Handle CONST_WIDE_INT.
15728         (find_constant): Ditto.
15729         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
15730         using gen_int_mode.
15731         * config/i386/predicates.md (x86_64_immediate_operand)
15732         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
15733         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
15734         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
15735         (const0_operand): Also match const_wide_int.
15736         (constm1_operand): Ditto.
15737         (const1_operand): Ditto.
15739 2015-05-04  Richard Biener  <rguenther@suse.de>
15741         PR tree-optimization/65965
15742         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
15743         store groups at gaps.
15745 2015-05-04  Richard Biener  <rguenther@suse.de>
15747         PR tree-optimization/65935
15748         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
15749         then make sure to apply that swapping to the IL.
15751 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
15753         * Makefile.in (PATCHLEVEL_c): New variable.
15754         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
15755         expand the same way as if DEVPHASE_c was non-empty.
15757 2015-05-04  Kai Tietz  <ktietz@redhat.com>
15759         PR target/65559
15760         * lto-wrapper.c (run_gcc): Open filename
15761         in binary-mode.
15763 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
15765         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
15766         sections up in file, to immediately after the Function Attributes
15767         section.
15769 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
15771         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
15773 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15775         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
15776         (insert_partition_copy_on_edge): Adjust.
15777         (insert_rtx_to_part_on_edge): Likewise.
15778         (insert_part_to_rtx_on_edge): Likewise.
15780 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15782         * function.c (set_return_jump_label): Change type of argument to
15783         rtx_insn *.
15784         * function.h (set_return_jump_label): Adjust.
15786 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15788         * reload.h (struct reg_equivs_t): Change type of init to
15789         rtx_insn *.
15790         * ira.c (fix_reg_equiv_init): Adjust.
15791         * reload1.c (eliminate_regs_1): Likewise.
15792         (init_eliminable_invariants): Likewise.
15794 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15796         * cselib.c (fp_setter_insn): Take a rtx_insn *.
15797         * cselib.h (fp_setter_insn): Adjust.
15799 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15801         * recog.c (struct validate_replace_src_data): Change type of
15802         insn field to rtx_insn *.
15803         (validate_replace_src_group): Change type of argument to rtx_insn *.
15804         * recog.h (validate_replace_src_group): Adjust.
15806 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15808         * haifa-sched.c: Change the type of some variables to rtx_insn *.
15809         * sched-deps.c: Likewise.
15810         * sched-int.h: Likewise.
15811         * sched-rgn.c: Likewise.
15812         * sel-sched.c: Likewise.
15814 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15816         to rtx_insn *.
15817         * config/i386/i386.c: Change the type of some arguments to
15818         rtx_insn *.
15819         * config/arm/arm.c: Likewise.
15821 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15823         * lra-constraints.c: Change type of some arguments to rtx_insn *.
15825 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15827         * regcprop.c (kill_autoinc_value): Change type of argument to
15828         rtx_insn *.
15830 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15832         * genrecog.c (print_subroutine): Adjust.
15833         * recog.c (get_bool_attr_mask_uncached): Likewise.
15834         * recog.h (struct recog_data_d): Change the type of insn to
15835         rtx_insn *.
15837 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15839         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
15841 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15843         * df-problems.c (df_set_note): Change type of argument to
15844         rtx_insn *.
15846 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15848         * builtins.c (expand_builtin_trap): Change type of local
15849         variable to rtx_insn *.
15850         (add_sched_insns_for_speculation): Likewise.
15851         (ix86_emit_save_regs): Likewise.
15852         (get_scratch_register_on_entry): Likewise.
15853         (ix86_emit_restore_reg_using_pop): Likewise.
15854         (ix86_emit_leave): Likewise.
15855         (ix86_emit_restore_regs_using_mov): Likewise.
15856         (ix86_expand_epilogue): Likewise.
15857         Likewise.
15858         (rl78_alloc_physical_registers_umul): Likewise.
15859         * cselib.c (discard_useless_locs): Likewise.
15860         (cselib_invalidate_regno): Likewise.
15861         (cselib_invalidate_mem): Likewise.
15862         * function.c (expand_function_start): Likewise.
15863         (emit_use_return_register_into_block): Likewise.
15864         * gcse.c: Likewise.
15865         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
15866         * ifcvt.c (noce_get_alt_condition): Likewise.
15867         * loop-doloop.c (doloop_condition_get): Likewise.
15868         * lra-constraints.c (inherit_in_ebb): Likewise.
15869         * modulo-sched.c (sms_schedule_by_order): Likewise.
15870         * recog.c (next_insn_tests_no_inequality): Likewise.
15871         * reorg.c (emit_delay_sequence): Likewise.
15872         (update_reg_dead_notes): Likewise.
15873         (fix_reg_dead_note): Likewise.
15874         (fill_slots_from_thread): Likewise.
15875         (delete_computation): Likewise.
15877 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
15879         * doc/extend.texi (Variable Attributes): Add menu and proper
15880         @nodes to subsections.  Move Microsoft Windows attributes to
15881         their own subsection.
15882         (Type Attributes): Reorganize introduction to remove duplicate
15883         list of attributes.  Add menu and proper @nodes to subsections.
15884         Alphabetize the main table of common attributes.
15886 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
15888         * match.pd: New simplification patterns.
15889         (x + (x & 1))  -> ((x + 1) & ~1)
15890         (x & ~(x & y)) -> ((x & ~y))
15891         (x | ~(x | y)) -> ((x | ~y))
15893 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15895         * target.def (attribute_table): Mention that struct attribute_spec
15896         is defined in tree-core.h rather than tree.h
15897         * doc/tm.texi: Regenerate.
15899 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
15901         * genrecog.c (test): Rename to rtx_test.  Update rest of file
15902         accordingly.
15904 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
15906         PR translation/65959
15907         * params.h (DEFPARAM): Rename msgid to nocmsgid.
15909 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
15911         * gcc/config/aarch64/aarch64-protos.h (tune_params):
15912         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
15913         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
15914         Return value depending on target.
15915         (generic_tunings): Initialize new target settings.
15916         (cortexa53_tunings): Likewise.
15917         (cortexa57_tunings): Likewise.
15918         (thunderx_tunings): Likewise.
15919         (xgene1_tunings): Likewise.
15921 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
15923         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
15924         Make Cortex-A53 shift costs more accurate.
15926 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15928         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
15929         UNSIGNED_FLOAT.
15931 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
15933         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
15934         Calculate cost of op0 and op1 in PLUS and MINUS cases.
15936 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15938         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
15939         Add cost of op0 in the compare-with-fpzero case.
15941 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
15943         * builtins.c (fold_builtin_1): Remove spurious second
15944         semicolon.
15945         * cgraph.h (symtab_node::get_availability): Likewise.
15946         * opts.c (common_handle_option): Remove spurious second semicolon.
15947         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
15948         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
15950 2015-04-30  Caroline Tice  <cmtice@google.com>
15952         PR gcov-profile/65929
15953         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
15954         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
15955         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
15956         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
15957         * doc/tm.texi: Regenerate.
15958         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
15959         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
15960         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
15961         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
15963 2015-04-30  Marek Polacek  <polacek@redhat.com>
15965         * varasm.c (handle_cache_entry): Fix logic.
15967 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15969         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
15970         (*extrsi5_insn_uxtw_alt): Likewise.
15971         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
15972         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
15973         operations.
15975 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15977         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
15978         fabd in ABS case.
15980 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15982         * config/aarch64/aarch64.md
15983         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
15984         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
15985         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
15986         appropriately.  Handle alternative EON form.
15988 2015-04-30  Renlin Li  <renlin.li@arm.com>
15990         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
15991         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
15993 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
15995         PR ipa/65873
15996         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
15997         -fstrict-aliasing boundaries.
15999 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16001         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
16002         and [SU]MNEGL patterns.
16004 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16006         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
16007         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
16008         combined arithmetic-shift ops.  Properly handle all shift and extend
16009         operations that can occur in combination with PLUS/MINUS.
16010         Rename maybe_fma to compound_p.
16011         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
16012         arithmetic and shift operations.
16014 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16016         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
16017         rather than arith_shift cost when costing ADD/MINUS of an
16018         extended value.
16020 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
16022         PR lto/65948
16023         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
16024         to itself.
16026 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
16028         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
16029         are for the same position.
16031 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
16033         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
16034         vectorize_loops.
16035         (vectorize_loops): Use it.
16037 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
16039         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
16040         for aggregate types.
16041         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
16042         type to be non_ODR.
16043         * tree.c (need_assembler_name_p): Compute mangled name for
16044         non-fundamental types and integer types.
16046 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
16048         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
16049         manual swaps.
16050         * expr.c (expand_expr_real_2): Likewise.
16052 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
16054         * tree.c (build_common_builtin_nodes): Do not build
16055         __builtin_alloca_with_align as equivalent of library alloca.
16057 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
16059         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
16060         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
16061         bugus variants.
16062         * tree.c: Include print-tree.h and ipa-utils.h
16063         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
16064         (free_lang_data_in_cgraph): Call verify_type.
16065         (verify_type_variant): New function.
16066         (verify_type): New function.
16067         * tree.h (verify_type): Declare.
16069 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
16071         * config/mips/mips-cpus.def: (mips4): Change default processor
16072         from PROCESSOR_R8000 to PROCESSOR_R10000.
16074 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
16076         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
16077         la/jalr instead of jal.
16079 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
16081         PR target/65871
16082         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
16083         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
16084         (setcc+movzbl peephole2): Check also clobbered reg.
16085         (setcc+andl peephole2): Ditto.
16087 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
16089         PR libgomp/65099
16090         * config/nvptx/mkoffload.c (target_ilp32): New variable.
16091         (main): Set it depending on "-foffload-abi=[...]".
16092         (compile_native, main): Use it to pass "-m32" or "-m64" to the
16093         compiler.
16095 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
16097         PR target/65770
16098         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
16099         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
16100         Flip lane index back at assembly time for bigendian.
16102 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
16104         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
16105         * gimplify.c (gimplify_omp_workshare): Use it.
16107 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
16109         * Makefile.in (build/genrecog.o): Depend on inchash.h.
16110         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
16111         build/inchash.o
16112         * genrecog.c: Rewrite most of the code except for the third page.
16114 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
16116         * inchash.h, inchash.c: Include bconfig.h for build objects.
16117         * Makefile.in (build/inchash.o): New rule.
16119 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
16121         PR target/65924
16122         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
16123         number in type attribute expression.
16125 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
16127         * loop-iv.c (canon_condition): Generalize to all types of integer
16128         constant.
16130 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
16132         * gimple-walk.c: Prune duplicate or unneeded includes.
16133         (walk_gimple_asm): Only call parse_input_constraint or
16134         parse_output_constraint if their findings are used.
16135         Honour parse_input_constraint and parse_output_constraint
16136         result.
16138 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
16140         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
16142 2015-04-29  Tom de Vries  <tom@codesourcery.com>
16144         PR tree-optimization/65893
16145         * passes.def (pass_all_optimizations): Move pass_stdarg to after
16146         pass_dce.
16148 2015-04-29  Richard Biener  <rguenther@suse.de>
16150         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
16151         compute GROUP_SIZE for basic-block SLP.
16152         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
16153         take into account gaps.
16154         (vect_get_mask_element): Properly reject references to previous
16155         vectors.
16156         (vect_transform_slp_perm_load): Likewise.
16158 2015-04-29  Christian Bruel  <christian.bruel@st.com>
16160         PR target/64835
16161         * config/i386/i386.c (ix86_default_align): New function.
16162         (ix86_override_options_after_change): Call ix86_default_align.
16163         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
16164         (ix86_override_options_after_change): New function.
16166 2015-04-28  Jeff Law  <law@redhat.com>
16168         * tree-ssa-dom.c (record_equality); Fix comment typos.
16170 2015-04-28  Tom de Vries  <tom@codesourcery.com>
16172         PR tree-optimization/65887
16173         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
16175 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
16177         * doc/extend.texi (Declaring Attributes of Functions): Split into
16178         subsections by target.  Alphabetize the table of common attributes.
16179         Rewrite some of the introductory text to reflect the new structure.
16180         Update some cross-references to point to the new subsections.
16181         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
16182         duplicate copies in the discussion of function, label, and type
16183         attributes.
16185 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
16187         PR bootstrap/65910
16188         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
16190 2015-04-28  Jason Merrill  <jason@redhat.com>
16192         PR c++/65734
16193         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
16194         (finalize_type_size): Respect TYPE_USER_ALIGN.
16195         (layout_type) [ARRAY_TYPE]: Likewise.
16197 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
16199         * config/arm/arm.md (*arm_movt): Fix type attribute.
16200         (*cmpsi_shiftsi): Likewise.
16201         (*cmpsi_shiftsi_swp): Likewise.
16202         (*movsicc_insn): Likewise.
16203         (*cond_move): Likewise.
16204         (*if_plus_move): Likewise.
16205         (*if_move_plus): Likewise.
16206         (*if_arith_move): Likewise.
16207         (*if_move_arith): Likewise.
16208         (*if_shift_move): Likewise.
16209         (*if_move_shift): Likewise.
16210         (*arm_movtas_ze): Likewise.
16211         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
16212         redundancy and type attribute.
16213         (*thumb2_movsi_insn): Fix type attribute.
16214         (*thumb2_addsi_short): Likewise.
16215         (thumb2_addsi3_compare0): Likewise.
16216         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
16217         attributes accordingly.
16219 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
16221         PR other/65911
16222         * function.c (pad_to_arg_alignment): Add parentheses.
16224 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
16226         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
16227         libgcc/config/frv/elf-lib.h.
16229 2015-04-28  Tom de Vries  <tom@codesourcery.com>
16231         * tree-call-cdce.c: Fix example in header comment.
16233 2015-04-28  Richard Biener  <rguenther@suse.de>
16235         PR tree-optimization/62283
16236         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
16237         fails fatally and we are vectorizing a basic-block simply
16238         cause the child to be constructed piecewise.
16239         (vect_analyze_slp_cost_1): Adjust.
16240         (vect_detect_hybrid_slp_stmts): Likewise.
16241         (vect_bb_slp_scalar_cost): Likewise.
16242         (vect_get_constant_vectors): For piecewise constructed
16243         constants place them after the last def.
16244         (vect_get_slp_defs): Adjust.
16245         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
16246         externals for basic-block vectorization.
16248 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16250         PR target/63503
16251         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
16252         aarch64-*-*.
16253         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
16254         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
16255         (AARCH64_TUNE_FMA_STEERING): Likewise.
16256         * config/aarch64/aarch64-cores.def: Set
16257         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
16258         FMUL/FMADD instructions.
16259         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
16260         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
16261         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
16262         * config/aarch64/cortex-a57-fma-steering.h: New file.
16263         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
16265 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
16267         * gensupport.c (std_preds): Add missing codes to address_operand entry.
16269 2015-04-28  Richard Biener  <rguenther@suse.de>
16271         PR tree-optimization/65851
16272         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
16273         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
16274         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
16275         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
16276         (ccp_visit_phi_node): Adjust.
16277         (evaluate_stmt): For simplifications to SSA names return its
16278         lattice value if that isn't VARYING.  Return immediately when
16279         simplified to a constant.
16280         (visit_assignment): Adjust.
16281         (ccp_visit_stmt): Likewise.
16283 2015-04-28  Tom de Vries  <tom@codesourcery.com>
16285         PR tree-optimization/65818
16286         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
16287         evaluated.
16289 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16291         * calls.c (save_fixed_argument_area): Don't check
16292         ARGS_GROW_DOWNWARD with the preprocessor.
16293         (restore_fixed_argument_area): Likewise.
16294         (mem_overlaps_already_clobbered_arg_p): Likewise.
16295         (check_sibcall_argument_overlap): Likewise.
16296         (expand_call): Likewise.
16297         (emit_library_call_value_1): Likewise.
16298         (store_one_arg): Likewise.
16299         * function.c (assign_parms): Likewise.
16300         (locate_and_pad_parm): Likewise.
16301         (pad_to_arg_alignment): Likewise.
16302         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
16304 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16306         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
16307         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
16308         * calls.c (save_fixed_argument_area): Don't chekc if
16309         ARGS_GROW_DOWNWARD is defined.
16310         (restore_fixed_argument_area): Likewise.
16311         (mem_overlaps_already_clobbered_arg_p): Likewise.
16312         (check_sibcall_argument_overlap): Likewise.
16313         (expand_call): Likewise.
16314         (emit_library_call_value_1): Likewise.
16315         (store_one_arg): Likewise.
16316         * function.c (assign_parms): Likewise.
16317         (locate_and_pad_parm): Likewise.
16318         (pad_to_arg_alignment): Likewise.
16319         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
16321 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16323         * defaults.h (gen_epilogue): New function.
16324         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
16325         defined.
16326         * cfgrtl.c (cfg_layout_finalize): Likewise.
16327         * df-scan.c: Likewise.
16328         * function.c (thread_prologue_and_epilogue_insns): Likewise.
16329         (reposition_prologue_and_epilogue_notes): Likewise.
16330         * reorg.c (find_end_label): Likewise.
16331         * toplev.c: Likewise.
16333 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16335         * bb-reorder.c (HAVE_return): Don't check if its undefined.
16336         * defaults.h (gen_simple_return): New function.
16337         (gen_simple_return): Likewise.
16338         (HAVE_return): Add default definition to false.
16339         (HAVE_simple_return): Likewise.
16340         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
16341         HAVE_return and HAVE_simple_return are defined.
16342         * function.c (gen_return_pattern): Likewise.
16343         (convert_jumps_to_returns): Likewise.
16344         (thread_prologue_and_epilogue_insns): Likewise.
16345         * reorg.c (find_end_label): Likewise.
16346         (dbr_schedule): Likewise.
16347         * shrink-wrap.c: Likewise.
16348         * shrink-wrap.h: Likewise.
16350 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16352         * defaults.h (EPILOGUE_USES): Add default definition of false.
16353         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
16354         * resource.c (init_resource_info): Likewise.
16356 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16358         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
16359         to false.
16360         * dwarf2out.c (field_byte_offset): REmove check if
16361         PCC_BITFIELD_TYPE_MATTERS is defined.
16362         * stor-layout.c (layout_decl): Likewise.
16363         (update_alignment_for_field): Likewise.
16364         (place_field): Likewise.
16366 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16368         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
16369         true.
16370         * regrename.c (check_new_reg_p): Remove check if
16371         HARD_REGNO_RENAME_OK is defined.
16372         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
16374 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16376         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
16377         * cse.c (fold_rtx): Likewise.
16378         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
16379         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
16380         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
16381         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
16382         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
16383         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
16384         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
16385         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
16386         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
16387         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
16388         * Likewise.
16389         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
16390         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
16391         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
16392         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
16393         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
16394         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
16395         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
16396         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
16397         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
16398         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
16399         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
16400         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
16401         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
16402         * doc/tm.texi: Regenerate.
16403         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
16404         either true or false.
16406 2015-04-27  Jeff Law  <law@redhat.com>
16408         PR tree-optimization/65217
16409         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
16410         of them has a single use, make sure it is the LHS of the implied
16411         copy.
16413 2015-04-28  Alan Modra  <amodra@gmail.com>
16415         PR target/65810
16416         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
16417         (offsettable_ok_by_alignment): Use minimum of decl and toc
16418         pointer alignment.  Replace dead code with assertion.
16419         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
16420         case if size exceeds toc pointer alignment.
16421         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
16422         (rs6000_emit_move): Likewise.
16423         * configure.ac: Add linker toc pointer alignment check.
16424         * configure: Regenerate.
16425         * config.in: Regenerate.
16427 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
16429         * config.gcc: Add h8300-*-linux.
16430         * config/h8300/linux.h: New.
16431         * config/h8300/t-linux: New.
16432         * config/h8300/h8300.c (h8300_option_override): Normal mode
16433         is not supported for h8300-*-linux.
16434         (h8300_file_start): Target priority change.
16435         (get_shift_alg): Likewise.
16436         (h8300_shift_need_scratch_p): Likewise.
16437         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
16438         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
16440 2015-04-27  Caroline Tice  <cmtice@google.com>
16442         * final.c (final_scan_insn):  Output cold_function_name as function
16443         type.
16444         * varasm.c (cold_function_name):  Make global.
16445         (assemble_start_function):  Re-set cold_function_name.
16446         (assemble_end_function): Output cold partition size.
16447         * varasm.h (cold_function_name):  Declare global.
16449 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
16451         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
16452         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
16453         constraint.
16454         (*movxi_internal_avx512f): Ditto.
16455         (define_split): Check for xmm16+, when splitting scalar float_extend.
16456         (*extendsfdf2_mixed): Use "v" constraint.
16457         (define_split): Check for xmm16+, when splitting scalar float_truncate.
16458         (*truncdfsf_fast_sse): Use "v" constraint.
16459         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
16460         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
16461         (define_peephole2): Check for xmm16+, when converting scalar
16462         float_truncate.
16463         (define_peephole2): Check for xmm16+, when converting scalar
16464         float_extend.
16465         (*fop_<mode>_comm_mixed): Use "v" constraint.
16466         (*fop_<mode>_comm_sse): Ditto.
16467         (*fop_<mode>_1_mixed): Ditto.
16468         (*sqrt<mode>2_sse): Ditto.
16469         (*ieee_s<ieee_maxmin><mode>3): Ditto.
16471 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16473         * combine.c (simplify_if_then_else): Use std::swap instead
16474         of manually swapping.
16475         (known_cond): Likewise.
16476         (simplify_comparison): Likewise.
16478 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
16480         PR target/64579
16481         * config/rs6000/htm.md: Remove all define_expands.
16482         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
16483         UNSPECV_HTM_TABORTWCI): Remove.
16484         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
16485         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
16486         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
16487         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
16488         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
16489         tabortwci_internal): Remove define_insns.
16490         (tabort<wd>c, tabort<wd>ci): New define_insns.
16491         (tabort): Use gpc_reg_operand.
16492         (tcheck): Remove operand.
16493         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
16494         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
16495         expected value.
16496         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
16497         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
16498         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
16499         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
16500         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
16501         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
16502         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
16503         (tcheck): Remove builtin argument.
16504         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
16505         not TARGET_64BIT.
16506         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
16507         tabortdc and tabortdci builtins when not in 64-bit mode.
16508         Modify code to handle the loss of the HTM define_expands.
16509         Emit code to copy the CR register to TARGET.
16510         (htm_init_builtins): Modify code to handle the loss of the HTM
16511         define_expands.
16512         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
16513         (RS6000_BTC_64BIT): Likewise.
16514         (RS6000_BTC_CR): New macro.
16515         * doc/extend.texi: Update documentation for htm builtins.
16517 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16519         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
16520         of manually swapping.
16521         (simplify_associative_operation): Likewise.
16522         (simplify_binary_operation): Likewise.
16523         (simplify_plus_minus): Likewise.
16524         (simplify_relational_operation): Likewise.
16525         (simplify_ternary_operation): Likewise.
16527 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
16529         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
16530         (xs_hi_nonmemory_operand): Remove error.
16531         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
16532         general_operand rather than xs_hi_general_operand.
16534 2015-04-27  Richard Biener  <rguenther@suse.de>
16536         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
16537         (record_equivalences_from_stmt): Valueize rhs.
16538         (record_equality): Canonicalize x and y order via
16539         tree_swap_operands_p.  Do not swap operands for same loop depth.
16541 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
16543         PR target/65296
16544         PR target/65895
16545         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
16546         Add hint how to use own spec file.
16548 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
16550         PR tree-optimization/65875
16551         * tree-vrp.c (update_value_range): If in is_new case setting
16552         old_vr to VR_VARYING, also set new_vr to it.  Remove
16553         old_vr->type == VR_VARYING test.
16554         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
16555         SSA_PROP_INTERESTING if update_value_range returned true,
16556         but new range is VR_VARYING.
16558 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16560         * combine.c (sign_extend_short_imm): New.
16561         (set_nonzero_bits_and_sign_copies): Use above new function for sign
16562         extension of src short immediate.
16563         (reg_nonzero_bits_for_combine): Likewise for tem.
16565 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
16567         * stor-layout.c (self_referential_component_ref_p): New predicate.
16568         (copy_self_referential_tree_r): Use it.
16569         (self_referential_size): Punt for simple operations directly involving
16570         self-referential component references.
16571         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
16573 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
16575         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
16577 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
16579         * vec.h (vec): Make splice arguments const.  Update definitions
16580         accordingly.
16582 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
16584         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
16585         alternatives.
16587 2015-04-26  Tom de Vries  <tom@codesourcery.com>
16589         PR tree-optimization/65826
16590         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
16592 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
16594         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
16595         (*madd3<mode>): Ditto.
16596         (*msub4<mode>): Ditto.
16597         (*msub3<mode>): Ditto.
16598         (*nmadd4<mode>): Ditto.
16599         (*nmadd3<mode>): Ditto.
16600         (*nmadd4<mode>_fastmath): Ditto.
16601         (*nmadd3<mode>_fastmath): Ditto.
16602         (*nmsub4<mode>): Ditto.
16603         (*nmsub3<mode>): Ditto.
16604         (*nmsub4<mode>_fastmath): Ditto.
16605         (*nmsub3<mode>_fastmath): Ditto.
16607 2015-04-24  Jason Merrill  <jason@redhat.com>
16609         PR c++/50800
16610         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
16611         down when building TYPE_CANONICAL.
16612         (build_pointer_type_for_mode): Likewise.
16614 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
16616         * genrecog.c (validate_pattern): Check matching constraint refers
16617         to a lower numbered operand.
16619 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
16621         PR target/65849
16622         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
16623         save to independent variables use the Save attribute.  This will
16624         allow these options to be modified with the #pragma/attribute
16625         target support.
16626         (-mallow-movmisalign): Likewise.
16627         (-mallow-df-permute): Likewise.
16628         (-msched-groups): Likewise.
16629         (-malways-hint): Likewise.
16630         (-malign-branch-targets): Likewise.
16631         (-mvectorize-builtins): Likewise.
16632         (-msave-toc-indirect): Likewise.
16634         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
16635         can be set via the #pragma/attribute target support.
16636         (rs6000_opt_vars): Likewise.
16637         (rs6000_inner_target_options): If VSX was set, also set
16638         -mno-avoid-indexed-addresses.
16640 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16642         * config/arm/iterators.md (shiftable_ops): Rename to...
16643         (SHIFTABLE_OPS): ... This.  Update use in comments.
16644         (ior_xor): Rename to...
16645         (IOR_XOR): ... This.
16646         (vqh_ops): Rename to...
16647         (VQH_OPS): ... This.
16648         (vqhs_ops): Rename to...
16649         (VQHS_OPS): ... This.
16650         (rshifts): Rename to...
16651         (RSHIFTS): ... This.
16652         (returns): Rename to...
16653         (RETURNS): ... This.
16654         * config/arm/arm.md: Update uses of the above.
16655         * config/arm/neon.md: Likewise.
16657 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16659         * config.host (case ${host}): Add aarch64*-*-linux case.
16660         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
16661         fields to all the cores.
16662         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
16663         Add MCPU_MTUNE_NATIVE_SPECS.
16664         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
16665         field to all extensions.
16666         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
16667         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
16668         Adjust definition of AARCH64_OPT_EXTENSION.
16669         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
16670         (MCPU_MTUNE_NATIVE_SPECS): Define.
16671         * config/aarch64/driver-aarch64.c: New file.
16672         * config/aarch64/x-arch64: New file.
16673         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
16674         -mtune and -march.
16676 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
16677             Wei Mi  <wmi@google.com>
16679         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
16680         * config/i386/i386.c (extract_base_offset_in_addr): New function.
16681         (ix86_operands_ok_for_move_multiple): Ditto.
16682         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
16683         (movlpd/movhpd to movupd peephole2): Ditto.
16685 2015-04-24  Marek Polacek  <polacek@redhat.com>
16687         PR c/61534
16688         * input.h (from_macro_expansion_at): Define.
16690         PR c/63357
16691         * doc/invoke.texi: Update description of -Wlogical-op.
16693 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16695         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
16696         ternary operator in fprintf and harmonize spacing.
16698 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
16700         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
16701         Mark operand1 commutative.
16703 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
16705         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
16706         input operands in memory.
16707         (*vec_concatv2si_sse4_1): Ditto.
16708         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
16709         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
16710         register_operand.
16711         (vec_extract_hi_v32hi): Ditto.
16712         (vec_extract_hi_v64hi): Ditto.
16713         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
16715 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16716             Steven Bosscher <steven@gcc.gnu.org>
16718         PR rtl-optimization/34503
16719         * cprop.c (cprop_reg_p): New.
16720         (hash_scan_set): Use above function to check if register can be
16721         propagated.
16722         (find_avail_set): Return up to two sets, one whose source is a
16723         register and one whose source is a constant.  Sets are returned in an
16724         array passed as parameter rather than as a return value.
16725         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
16726         sets returned by find_avail_set, starting with the one whose source is
16727         a constant. Use cprop_reg_p to check if register can be propagated.
16728         (do_local_cprop): Use cprop_reg_p to check if register can be
16729         propagated.
16730         (implicit_set_cond_p): Likewise.
16732 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
16734         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
16735         (sem_function::equals): IGNORED_NODES parameter is now unused;
16736         update call of equals_private.
16737         (sem_function::equals_private): Do not call equals_wpa; skip
16738         gimple body matching if there is no body.
16739         (sem_function::init): Add logic to hash tthunk info.
16740         (sem_function::parse): Also parse thunks.
16741         * ipa-icf.h (equals_private): Update declaration.
16743 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16745         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
16746         asterisk from name so this can be generated directly.
16747         (*altivec_stvx_<mode>_internal): Likewise.
16748         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
16749         that this is never called during or after reload/lra.
16750         (rs6000_frame_related): Remove split_reg
16751         argument and logic that references it.
16752         (emit_frame_save): Remove last parameter from call to
16753         rs6000_frame_related.
16754         (rs6000_emit_prologue): Remove last parameter from eight calls to
16755         rs6000_frame_related.  Force generation of stvx instruction for
16756         Altivec register saves.  Remove split_reg handling, which is no
16757         longer needed.
16758         (rs6000_emit_epilogue):  Force generation of lvx instruction for
16759         Altivec register restores.
16761 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16763         * config/rs6000/rs6000.opt (mcrypto): Change option description to
16764         match category changes in ISA 2.07B.
16766 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16768         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
16769         iterators.
16770         (cmp_op, cmp_type): New code attributes.
16771         (NEON_VCMP, NEON_VACMP): New int iterators.
16772         (cmp_op_unsp): New int attribute.
16773         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
16774         (neon_vceq<mode>): Delete.
16775         (neon_vc<cmp_op><mode>_insn): New pattern.
16776         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
16777         (neon_vcgeu<mode>): Delete.
16778         (neon_vcle<mode>): Likewise.
16779         (neon_vclt<mode>: Likewise.
16780         (neon_vcage<mode>): Likewise.
16781         (neon_vcagt<mode>): Likewise.
16782         (neon_vca<cmp_op><mode>): New define_expand.
16783         (neon_vca<cmp_op><mode>_insn): New pattern.
16784         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
16786 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
16788         * tree.h (attribute_value_equal): Declare.
16789         * tree.c (attribute_value_equal): Export.
16791 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
16793         * ipa-icf.c (sem_item::compare_attributes): New function.
16794         (sem_item::compare_referenced_symbol_properties): Compare variable
16795         attributes.
16796         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
16797         (sem_function::param_used_p): New function.
16798         (sem_function::equals_wpa): Fix attribute comparsion; match
16799         parameter type codes; do not compare paremter flags when
16800         they are not used; compare edge flags; compare indirect calls.
16801         (sem_item::update_hash_by_addr_refs): Hash reference type.
16802         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
16803         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
16804         reference use type.
16805         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
16806         * ipa-icf.h (compare_attributes, param_used_p): Declare.
16808 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
16810         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
16811         cleanup.
16812         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
16813         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
16814         (sem_item::compare_referenced_symbol_properties): New.
16815         (sem_item::hash_referenced_symbol_properties): New.
16816         (sem_item::compare_cgraph_references): Rename to ...
16817         (sem_item::compare_symbol_references): ... this one; use
16818         compare_referenced_symbol_properties.
16819         (sem_function::equals_wpa): Do not compare
16820         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
16821         DECL_IS_OPERATOR_NEW; compare pointer sizes.
16822         (sem_item::update_hash_by_addr_refs): Call
16823         hash_referenced_symbol_properties.
16824         (sem_item::update_hash_by_local_refs): Cleanup.
16825         (sem_function::merge): Do not mix up symbol properties.
16826         (sem_variable::equals_wpa): Use compare_symbol_references.
16827         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
16828         (sem_item::hash_referenced_symbol_properties): New.
16829         (sem_item::compare_symbol_references): New.
16830         (sem_item::compare_cgraph_references): Remove.
16832 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
16834         PR target/26702
16835         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
16836         Emit size of local.
16838 2015-04-23  Nick Clifton  <nickc@redhat.com>
16840         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
16841         ATTRIBUTE_UNUSED to x parameter.
16842         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
16844 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16846         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
16847         TARGET_CRYPTO to TARGET_P8_VECTOR>
16848         (crypto_vpermxor_<mode>): Likewise.
16849         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
16850         (BU_CRYPTO_3A): Likewise.
16851         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
16852         (BU_CRYPTO_OVERLOAD_3A): New #define.
16853         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
16854         (VPMSUMH): Likewise.
16855         (VPMSUMW): Likewise.
16856         (VPMSUMD): Likewise.
16857         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
16858         (VPERMXOR_V4SI): Likewise.
16859         (VPERMXOR_V8HI): Likewise.
16860         (VPERMXOR_V16QI): Likewise.
16861         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
16862         BU_CRYPTO_OVERLOAD_2A.
16863         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
16864         BU_CRYPTO_OVERLOAD_3A.
16865         * config/rs6000/rs6000.opt (mcrypto): Change description of
16866         option.
16868 2015-04-23  Richard Biener  <rguenther@suse.de>
16870         * passes.def: Remove copy propagation passes run directly after CCP.
16871         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
16872         SSA names.
16873         (ccp_visit_phi_node): Rework to handle first executable edge
16874         specially.
16876 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
16878         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
16879         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
16880         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
16881         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
16882         (thumb_legimitimize_reload_address): Remove.
16883         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
16884         Remove.
16885         (thumb_legimitimize_reload_address): Remove.
16887 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16889         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
16891 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16893         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
16894         MAX_LDM_STM_OPS.
16895         (store_multiple): Likewise.
16897 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16899         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
16900         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
16901         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
16902         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
16903         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
16904         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
16905         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
16906         Specify issue_rate value.
16907         (arm_issue_rate): Look up issue rate from tuning structs. Remove
16908         large switch statement.
16909         (arm_marvell_pj4_tune): New struct.
16910         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
16911         struct.
16913 2015-04-23  Richard Biener  <rguenther@suse.de>
16915         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
16916         (vect_find_last_store_in_slp_instance): Rename to ...
16917         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
16918         (vect_analyze_slp_cost_1): Use vector_load for constant defs
16919         and vec_construct for external defs when estimating prologue cost.
16920         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
16921         Compute costs here only when vectorizing loops.
16922         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
16923         have been determined.
16924         (vect_schedule_slp_instance): Simplify vectorized code placement
16925         and prepare for in-BB external defs.
16926         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
16927         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
16928         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
16929         guard.
16930         (vect_model_load_cost): Likewise.
16931         (vectorizable_store): Instead add it here.
16932         (vectorizable_load): Likewise.
16933         (vect_is_simple_use): Dump def type textually.
16935 2015-04-23  Richard Biener  <rguenther@suse.de>
16937         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
16938         * cfgloop.c (verify_loop_structure): Verify the root loop node.
16939         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
16940         instead of get_eh_region_from_lp_number.
16941         * loop-init.c (fix_loop_structure): If we removed a loop, reset
16942         the SCEV cache.
16944 2015-04-23  Anton Blanchard  <anton@samba.org>
16946         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
16947         need for -mprofile-kernel to save LR to stack.
16949 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16951         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
16952         adjustments.
16953         (insn_is_swappable_p): Return 1 for a convert from double to
16954         single precision when all of its uses are splats of BE element
16955         zero.
16957 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
16959         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
16961 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16963         PR target/65456
16964         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
16965         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
16966         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
16967         option.
16968         (rs6000_builtin_mask_for_load): Return 0 for targets with
16969         efficient unaligned VSX accesses so that the vectorizer will use
16970         direct unaligned loads.
16971         (rs6000_builtin_support_vector_misalignment): Always return true
16972         for targets with efficient unaligned VSX accesses.
16973         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
16974         stores on targets with efficient unaligned VSX accesses is almost
16975         always the same as the cost of an aligned load or store, so model
16976         it that way.
16977         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
16978         unaligned vectors if we have efficient unaligned VSX accesses.
16979         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
16980         undocumented option.
16982 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16984         Revert:
16985         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
16987         * config.gcc (LIBC_MUSL): New tm_defines macro.
16988         * config/linux.h (OPTION_MUSL): Define.
16989         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
16990         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
16991         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
16993         * config/linux.opt (mmusl): New option.
16994         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
16995         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
16997         * configure: Regenerate.
16999 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
17001         * config.gcc (LIBC_MUSL): New tm_defines macro.
17002         * config/linux.h (OPTION_MUSL): Define.
17003         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
17004         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
17005         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
17007         * config/linux.opt (mmusl): New option.
17008         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
17009         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
17011         * configure: Regenerate.
17013 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
17015         * doc/invoke.texi (-fsanitize-sections): Update description.
17016         * asan.c (set_sanitized_sections): Parse incoming arg.
17017         (section_sanitized_p): Support wildcards.
17019 2015-04-22  Tom de Vries  <tom@codesourcery.com>
17021         PR tree-optimization/65823
17022         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
17023         equality between ap_copy and ap.
17025 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
17027         PR target/47098
17028         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
17030 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
17032         PR target/47122
17033         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
17035 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
17037         PR target/55144
17038         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
17039         remove already contained t-files.
17041 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
17043         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
17044         Remove unneeded forward declarations.
17045         (suitable_for_tail_call_opt_p): Commentary typo fix.
17047 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
17049         * varasm.c (emit_bss): Remove redundant guard.
17051 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
17053         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
17055 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
17057         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
17059 2015-04-22  Hale Wang  <hale.wang@arm.com>
17060             Terry Guo  <terry.guo@arm.com>
17062         PR rtl-optimization/64818
17063         * combine.c (can_combine_p): Don't combine user-specified
17064         register if it is in an asm input.
17066 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
17068         PR ipa/65076
17069         * passes.def (early_optimizations): Add pass_dse.
17071 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17073         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
17074         * reorg.c (redundant_insn): Remove ifdef
17075         INSN_REFERENCES_ARE_DELAYED.
17076         * resource.c (mark_referenced_resources): Likewise.
17078 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17080         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
17081         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
17082         * resource.c (mark_set_resources): Likewise.
17084 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17086         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
17087         * cfgcleanup.c (flow_find_cross_jump): Likewise.
17088         (flow_find_head_matching_sequence): Likewise.
17089         (try_head_merge_bb): Likewise.
17090         * combine.c (can_combine_p): Likewise.
17091         (try_combine): Likewise.
17092         (distribute_notes): Likewise.
17093         * df-problems.c (can_move_insns_across): Likewise.
17094         * final.c (final): Likewise.
17095         * gcse.c (insert_insn_end_basic_block): Likewise.
17096         * ira.c (find_moveable_pseudos): Likewise.
17097         * reorg.c (try_merge_delay_insns): Likewise.
17098         (fill_simple_delay_slots): Likewise.
17099         (fill_slots_from_thread): Likewise.
17100         * sched-deps.c (sched_analyze_2): Likewise.
17102 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17104         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
17105         PIC_OFFSET_TABLE_REGNUM.
17107 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17109         * alias.c (init_alias_target): Remove ifdef
17110         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
17111         * df-scan.c (df_insn_refs_collect): Likewise.
17112         (df_get_regular_block_artificial_uses): Likewise.
17113         (df_get_eh_block_artificial_uses): Likewise.
17114         (df_get_entry_block_def_set): Likewise.
17115         (df_get_exit_block_use_set): Likewise.
17116         * emit-rtl.c (gen_rtx_REG): Likewise.
17117         * ira.c (ira_setup_eliminable_regset): Likewise.
17118         * reginfo.c (init_reg_sets_1): Likewise.
17119         * regrename.c (rename_chains): Likewise.
17120         * reload1.c (reload): Likewise.
17121         (eliminate_regs_in_insn): Likewise.
17122         * resource.c (mark_referenced_resources): Likewise.
17123         (init_resource_info): Likewise.
17125 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17127         * defaults.h (MASK_RETURN_ADDR): New definition.
17128         * except.c (expand_builtin_extract_return_addr): Remove ifdef
17129         MASK_RETURN_ADDR.
17131 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17133         * defaults.h (RETURN_ADDR_OFFSET): New definition.
17134         * except.c (expand_builtin_extract_return_addr): Remove ifdef
17135         RETURN_ADDR_OFFSET.
17136         (expand_builtin_frob_return_addr): Likewise.
17138 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17140         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
17141         (try_redirect_by_replacing_jump): Likewise.
17142         (rtl_tidy_fallthru_edge): Likewise.
17143         * combine.c (insn_a_feeds_b): Likewise.
17144         (find_split_point): Likewise.
17145         (simplify_set): Likewise.
17146         * cprop.c (cprop_jump): Likewise.
17147         * cse.c (cse_extended_basic_block): Likewise.
17148         * df-problems.c (can_move_insns_across): Likewise.
17149         * function.c (emit_use_return_register_into_block): Likewise.
17150         * haifa-sched.c (sched_init): Likewise.
17151         * ira.c (find_moveable_pseudos): Likewise.
17152         * loop-invariant.c (find_invariant_insn): Likewise.
17153         * lra-constraints.c (curr_insn_transform): Likewise.
17154         * postreload.c (reload_combine_recognize_const_pattern):
17155         * Likewise.
17156         * reload.c (find_reloads): Likewise.
17157         * reorg.c (delete_scheduled_jump): Likewise.
17158         (steal_delay_list_from_target): Likewise.
17159         (steal_delay_list_from_fallthrough): Likewise.
17160         (redundant_insn): Likewise.
17161         (fill_simple_delay_slots): Likewise.
17162         (fill_slots_from_thread): Likewise.
17163         (delete_computation): Likewise.
17164         * sched-rgn.c (add_branch_dependences): Likewise.
17166 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17168         * genconfig.c (main): Always define HAVE_cc0.
17169         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
17170         HAVE_cc0.
17171         * cfgcleanup.c (flow_find_cross_jump): Likewise.
17172         (flow_find_head_matching_sequence): Likewise.
17173         (try_head_merge_bb): Likewise.
17174         * cfgrtl.c (rtl_merge_blocks): Likewise.
17175         (try_redirect_by_replacing_jump): Likewise.
17176         (rtl_tidy_fallthru_edge): Likewise.
17177         * combine.c (do_SUBST_MODE): Likewise.
17178         (insn_a_feeds_b): Likewise.
17179         (combine_instructions): Likewise.
17180         (can_combine_p): Likewise.
17181         (try_combine): Likewise.
17182         (find_split_point): Likewise.
17183         (subst): Likewise.
17184         (simplify_set): Likewise.
17185         (distribute_notes): Likewise.
17186         * cprop.c (cprop_jump): Likewise.
17187         * cse.c (cse_extended_basic_block): Likewise.
17188         * df-problems.c (can_move_insns_across): Likewise.
17189         * final.c (final): Likewise.
17190         (final_scan_insn): Likewise.
17191         * function.c (emit_use_return_register_into_block): Likewise.
17192         * gcse.c (insert_insn_end_basic_block): Likewise.
17193         * haifa-sched.c (sched_init): Likewise.
17194         * ira.c (find_moveable_pseudos): Likewise.
17195         * loop-invariant.c (find_invariant_insn): Likewise.
17196         * lra-constraints.c (curr_insn_transform): Likewise.
17197         * optabs.c (prepare_cmp_insn): Likewise.
17198         * postreload.c (reload_combine_recognize_const_pattern):
17199         * Likewise.
17200         * reload.c (find_reloads): Likewise.
17201         (find_reloads_address_1): Likewise.
17202         * reorg.c (delete_scheduled_jump): Likewise.
17203         (steal_delay_list_from_target): Likewise.
17204         (steal_delay_list_from_fallthrough): Likewise.
17205         (try_merge_delay_insns): Likewise.
17206         (redundant_insn): Likewise.
17207         (fill_simple_delay_slots): Likewise.
17208         (fill_slots_from_thread): Likewise.
17209         (delete_computation): Likewise.
17210         (relax_delay_slots): Likewise.
17211         * sched-deps.c (sched_analyze_2): Likewise.
17212         * sched-rgn.c (add_branch_dependences): Likewise.
17214 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17216         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
17217         that is trivially ded on non cc0 targets.
17218         (simplify_set): Likewise.
17219         (mark_used_regs_combine): Likewise.
17220         * cse.c (new_basic_block): Likewise.
17221         (fold_rtx): Likewise.
17222         (cse_insn): Likewise.
17223         (cse_extended_basic_block): Likewise.
17224         (set_live_p): Likewise.
17225         * rtlanal.c (canonicalize_condition): Likewise.
17226         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
17228 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17230         * conditions.h: Define macros even if HAVE_cc0 is undefined.
17231         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
17232         * final.c: Likewise.
17233         * jump.c: Likewise.
17234         * recog.c: Likewise.
17235         * recog.h: Declare functions even when HAVE_cc0 is undefined.
17236         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
17238 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17240         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
17241         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
17242         * builtins.c (expand_builtin): Remove check if
17243         EH_RETURN_DATA_REGNO is defined.
17244         * df-scan.c (df_bb_refs_collect): Likewise.
17245         (df_get_exit_block_use_set): Likewise.
17246         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
17247         * ira-lives.c (process_bb_node_lives): Likewise.
17248         * lra-lives.c (process_bb_lives): Likewise.
17250 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
17252         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
17253         FIRST_PSEUDO_REG): New.
17254         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
17255         (ARG_POINTER_REGNUM): Define to ARGP_REG.
17256         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
17257         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
17258         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
17259         (FIRST_INT_REG): New.
17260         (LAST_INT_REG): New.
17261         (FIRST_*_REG): Define using *_REG.
17262         (LAST_*_REG): Ditto.
17263         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
17264         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
17265         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
17267 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17269         * expmed.c: (synth_mult): Only assume overlapping
17270         shift with previous steps in alg_sub_t_m2 case.
17272 2015-04-21  Richard Biener  <rguenther@suse.de>
17274         PR tree-optimization/65650
17275         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
17276         transitions involving copies.
17277         (set_lattice_value): Adjust for copy lattice state.
17278         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
17279         if that doesn't dominate the merge point.
17280         (bit_value_unop): Adjust what we treat as varying mask.
17281         (bit_value_binop): Likewise.
17282         (bit_value_assume_aligned): Likewise.
17283         (evaluate_stmt): When we simplified to a SSA name record a copy
17284         instead of dropping to varying.
17285         (visit_assignment): Simplify.
17287         * gimple-match.h (gimple_simplify): Add another callback.
17288         * gimple-fold.c (fold_stmt_1): Adjust caller.
17289         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
17290         for the 2nd callback.
17291         * gimple-match-head.c (gimple_simplify): Add a callback that is
17292         used to valueize the stmt operands and use it that way.
17294 2015-04-21  Richard Biener  <rguenther@suse.de>
17296         PR tree-optimization/65788
17297         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
17299 2015-04-21  Richard Biener  <rguenther@suse.de>
17301         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
17302         vec_construct cost by vec_stmt_cost.
17304 2015-04-21  Richard Biener  <rguenther@suse.de>
17306         * cfghooks.h (create_basic_block): Replace with two overloads
17307         for RTL and GIMPLE.
17308         (split_block): Likewise.
17309         * cfghooks.c (split_block): Rename to ...
17310         (split_block_1): ... this.
17311         (split_block): Add two type-safe overloads for RTL and GIMPLE.
17312         (split_block_after_labels): Call split_block_1.
17313         (create_basic_block): Rename to ...
17314         (create_basic_block_1): ... this.
17315         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
17316         (create_empty_bb): Call create_basic_block_1.
17317         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
17318         split_block_after_labels.
17319         * omp-low.c (expand_parallel_call): Likewise.
17320         (expand_omp_target): Likewise.
17321         (simd_clone_adjust): Likewise.
17322         * tree-chkp.c (chkp_get_entry_block): Likewise.
17323         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
17324         create_basic_block overload.
17325         (cgraph_node::expand_thunk): Likewise.
17326         * tree-cfg.c (make_blocks): Likewise.
17327         (handle_abnormal_edges): Likewise.
17328         * tree-inline.c (copy_bb): Likewise.
17330 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17332         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
17333         New pattern.
17334         (*xor_one_cmplsidi3_ze): Likewise.
17336 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17338         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
17339         use df_remove_problem rather than manually removing problems, leaving
17340         holes in df->problems_in_order[].
17342 2015-04-21  Tom de Vries  <tom@codesourcery.com>
17344         PR tree-optimization/65802
17345         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
17347 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17349         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
17350         Increase to 128.
17351         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
17352         at '.'.  Assert that there's enough space for everything.
17354 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
17356         PR tree-optimization/64950
17357         Revert:
17358         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
17360         PR target/41089
17361         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
17362         as volatile.
17364 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
17366         PR rtl-optimization/64916
17367         * cfgcleanup.c (values_equal_p): New function.
17368         (can_replace_by): Use it.
17370 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
17372         PR c++/65801
17373         * doc/invoke.texi ([-Wnarrowing]): Update.
17375 2015-04-20  Jeff Law  <law@redhat.com>
17377         PR tree-optimization/65658
17378         * tree-ssa-threadupdate.c (redirection_block_p): Remove
17379         redundant test for GIMPLE_ASSIGN in last change.
17381 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
17383         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
17384         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
17385         (legitimize_tls_address): Ditto.
17386         (ix86_expand_move): Ditto.
17387         (ix86_expand_binary_operator): Remove reload_in_progress checks.
17388         (ix86_expand_unary_operator): Ditto.
17389         * config/i386/predicates.md (index_register_operand): Ditto.
17391 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
17393         * reorg.c (try_merge_delay_insns): Improve correctness checking
17394         for targets with multiple delay slots.
17396 2015-04-20  Jeff Law  <law@redhat.com>
17398         PR tree-optimization/65658
17399         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
17400         statements too.
17402 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
17404         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
17405         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
17406         Delete.
17408 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
17410         PR debug/65807
17411         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
17413 2015-04-20  Richard Biener  <rguenther@suse.de>
17415         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
17416         * gimple-fold.c (gimple_build_valueize): New function.
17417         (gimple_build): Always use gimple_build_valueize as valueize hook.
17419 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
17421         PR target/64134
17422         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
17423         and overwrite variable parts if <= 1/2 the elements are variable.
17425 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
17427         PR rtl-optimization/65805
17428         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
17429         Don't use difference of offset and previous offset if
17430         update_sp_offset is non-zero.
17431         (eliminate_regs_in_insn): Ditto.
17432         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
17433         lra_eliminate_regs_1 call.
17434         * lra-constraints.c (get_equiv_with_elimination): Ditto.
17436 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
17438         * hash-table.h: Remove version of hash_table that stored value_type *.
17439         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
17440         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
17441         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
17442         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
17443         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
17444         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
17445         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
17446         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
17447         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
17448         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
17449         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
17450         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
17451         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
17452         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
17453         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
17454         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
17456 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17457             Jakub Jelinek  <jakub@redhat.com>
17459         PR target/65787
17460         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
17461         subsequent SH_NONE operand does not overwrite an existing *special
17462         value.
17463         (adjust_extract): Handle case where a vec_extract operation is
17464         wrapped in a PARALLEL.
17466 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
17468         PR target/65780
17469         * config/i386/i386.c (ix86_binds_local_p): Define only if
17470         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
17472 2015-04-17  Jeff Law  <law@redhat.com>
17474         PR tree-optimization/47679
17475         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
17476         * tree-ssa-scopedtables.c: New file.
17477         * tree-ssa-scopedtables.h: New file.
17478         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
17479         (const_and_copies): Change name/type.
17480         (record_const_or_copy): Move into tree-ssa-scopedtables.c
17481         (record_const_or_copy_1): Similarly.
17482         (restore_vars_to_original_value): Similarly.
17483         (pass_dominator::execute): Create and destroy const_and_copies table.
17484         (thread_across_edge): Update passing of const_and_copies.
17485         (record_temporary_equivalence): Use method calls rather than
17486         manipulating const_and_copies directly.
17487         (record_equality, cprop_into_successor_phis): Similarly.
17488         (dom_opt_dom_walker::before_dom_children): Similarly.
17489         (dom_opt_dom_walker::after_dom_children): Similarly.
17490         (eliminate_redundant_computations): Similarly.
17491         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
17492         (record_temporary_equivalence): Likewise.
17493         (invalidate_equivalences): Likewise.
17494         (record_temporary_equivalences_from_phis): Update due to type
17495         change of const_and_copies.  Use method calls rather than
17496         manipulating the stack directly.
17497         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
17498         (thread_through_normal_block, thread_across_edge): Likewise.
17499         (thread_across_edge): Likewise.
17500         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
17501         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
17502         of equiv_stack.
17503         (identify_jump_threads): Update due to type change of equiv_stack.
17504         (finalize_jump_threads): Delete the equiv_stack when complete.
17506 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
17508         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
17509         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
17510         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
17512 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
17514         PR target/65535
17515         * config.gcc: Exit with a comment when we do not have a major version
17516         number for the FreeBSD target.
17518 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
17520         PR target/65689
17521         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
17522         maybe_allows_mem bitfields.
17523         (maybe_allows_none_start, maybe_allows_none_end,
17524         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
17525         maybe_allows_mem_end): New variables.
17526         (compute_maybe_allows): New function.
17527         (add_constraint): Use it to initialize maybe_allows_reg and
17528         maybe_allows_mem fields.
17529         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
17530         is_address constraints such that those that allow neither mem nor
17531         reg come first, then those that only allow reg but not mem, then
17532         those that only allow mem but not reg, then the rest.
17533         (write_allows_reg_mem_function): New function.
17534         (write_tm_preds_h): Call it.
17535         * stmt.c (parse_output_constraint, parse_input_constraint): Use
17536         the generated insn_extra_constraint_allows_reg_mem function
17537         instead of always setting *allows_reg = true; *allows_mem = true;
17538         for unknown extra constraints.
17540 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
17542         PR target/65780
17543         * output.h (default_binds_local_p_3): New.
17544         * varasm.c (default_binds_local_p_3): Make it public.  Take an
17545         argument to indicate if common symbol may be local.  If common
17546         symbol may be local, treat non-external variable as defined
17547         locally.
17548         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
17549         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
17550         * config/i386/i386.c (ix86_binds_local_p): New.
17551         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
17552         ix86_binds_local_p.
17554 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
17556         PR debug/65771
17557         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
17558         trying mem_loc_descriptor on XEXP (rtl, 0).
17560 2015-04-17  Martin Liska  <mliska@suse.cz>
17562         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
17563         Release symbol_compare_collection.
17564         * ipa-reference.c: Add TODO that a vector should be released.
17566 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
17568         PR target/65296
17569         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
17570         to new AVR-LibC file layout (bug #44574).
17571         (*avrlibc_devicelib): Same.
17572         * config/avr/avr-mcus.def: Adjust comments.
17573         * config/avr/avr.opt (nodevicelib): Adjust help.
17575 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
17577         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
17579 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
17581         PR c++/64527
17582         * gimplify.c (gimplify_init_constructor): Always emit a
17583         side-effecting constructor.
17585 2015-04-17  Tom de Vries  <tom@codesourcery.com>
17587         PR tree-optimization/64950
17588         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
17589         in cfun->curr_properties.
17590         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
17591         if we generate an IFN_VA_ARG.
17592         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
17593         function if PROP_gimple_lva is not set in src function.
17595 2015-04-17  Tom de Vries  <tom@codesourcery.com>
17596             Michael Matz  <matz@suse.de>
17598         PR tree-optimization/64950
17599         * gimple-iterator.c (update_modified_stmts): Remove static.
17600         * gimple-iterator.h (update_modified_stmts): Declare.
17601         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
17602         (gimplify_va_arg_internal): New function.
17603         (gimplify_va_arg_expr): Use IFN_VA_ARG.
17604         * gimplify.h (gimplify_va_arg_internal): Declare.
17605         * internal-fn.c (expand_VA_ARG): New unreachable function.
17606         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
17607         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
17608         (expand_ifn_va_arg): New function.
17609         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
17610         (pass_stdarg::execute): Call expand_ifn_va_arg.
17611         (pass_data_lower_vaarg): New pass_data.
17612         (pass_lower_vaarg): New gimple_opt_pass.
17613         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
17614         (make_pass_lower_vaarg): New function.
17615         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
17616         properties_required field.
17617         * passes.def (all_passes): Add pass_lower_vaarg.
17618         * tree-pass.h (PROP_gimple_lva): Add define.
17619         (make_pass_lower_vaarg): Declare.
17621 2015-04-17  Tom de Vries  <tom@codesourcery.com>
17623         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
17624         * calls.c (call_expr_flags): Same.
17626 2015-04-17  Tom de Vries  <tom@codesourcery.com>
17628         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
17629         (pass_stdarg::execute): ... here.
17631 2015-04-17  Tom de Vries  <tom@codesourcery.com>
17632             Michael Matz  <matz@suse.de>
17634         * tree-cfg.c (make_blocks_1): Factor out of ...
17635         (make_blocks): ... here.
17636         (make_edges_bb): Factor out of ...
17637         (make_edges): ... here.
17638         (gimple_find_sub_bbs): New function.
17639         * tree-cfg.h (gimple_find_sub_bbs): Declare.
17641 2015-04-17  Tom de Vries  <tom@codesourcery.com>
17643         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
17645 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
17647         * asan.c (set_sanitized_sections): New function.
17648         (section_sanitized_p): Ditto.
17649         (asan_protect_global): Optionally sanitize user-defined
17650         sections.
17651         * asan.h (set_sanitized_sections): Declare new function.
17652         * common.opt (fsanitize-sections): New option.
17653         * doc/invoke.texi (-fsanitize-sections): Document new option.
17654         * opts-global.c (handle_common_deferred_options): Handle new
17655         option.
17657 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
17659         PR debug/65771
17660         * dwarf2out.c (loc_list_from_tree): Return NULL
17661         for DEBUG_EXPR_DECL.
17663 2015-04-17  Christian Bruel  <christian.bruel@st.com>
17665         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
17666         same attributes.
17668 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
17670         * ira-color.c (setup_left_conflict_sizes_p): Do not process
17671         node itself when computing left conflict subnode size.
17673 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
17675         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
17676         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
17677         *fop_<mode>_1_sse using enabled attribute.  Use
17678         register_mixssei387nonimm_operand operand 1 predicate. Change
17679         alternative 3 constraints from "x" to "v".
17681 2015-04-16  Richard Biener  <rguenther@suse.de>
17683         PR tree-optimization/65774
17684         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
17685         bit-value tracking on.
17687 2015-04-16  Richard Biener  <rguenther@suse.de>
17689         PR tree-optimization/64277
17690         * tree-vrp.c (check_array_ref): Fix anti-range handling,
17691         simplify upper bound handling.
17692         (search_for_addr_array): Simplify.
17693         (check_array_bounds): Handle ADDR_EXPRs here.
17694         (check_all_array_refs): Simplify.
17696 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
17698         * config/i386/i386.c (print_reg): Rewrite function.
17700 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17702         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
17703         Invert the condition.
17705 2015-04-16  Renlin Li  <renlin.li@arm.com>
17707         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
17708         simplifications for UNSIGNED_FLOAT.
17710 2015-04-16  Nick Clifton  <nickc@redhat.com>
17712         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
17713         MUL_UNINIT.
17714         (enum rl78_cpu_type): New.
17715         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
17716         (umulhi3_shift_virt): Remove m constraint from operand 1.
17717         (umulqihi3_virt): Likewise.
17718         * config/rl78/rl78.c (rl78_option_override): Add code to process
17719         -mcpu and -mmul options.
17720         (rl78_alloc_physical_registers): Add code to handle divhi and
17721         divsi valloc attributes.
17722         (set_origin): Likewise.
17723         * config/rl78/rl78.h (RL78_MUL_G14): Define.
17724         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
17725         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
17726         __RL78_Gxx__.
17727         (ASM_SPEC): Pass -mcpu on to assembler.
17728         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
17729         (mulqi3_rl78): Likewise.
17730         (mulhi3_g13): Likewise.
17731         (mulhi3): Generate the G13 or G14 versions of the insn directly.
17732         (mulsi3): Likewise.
17733         (mulhi3_g14): Add clobbers of AX and BC.
17734         (mulsi3_g14): Likewise.
17735         (mulsi3_g13): Likewise.
17736         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
17737         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
17738         * config/rl78/rl78.opt (mmul): Initialise value to
17739         RL78_MUL_UNINIT.
17740         (mcpu): New option.
17741         (m13, m14, mrl78): New option aliases.
17742         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
17743         (MULTILIB_DIRNAMES): Add g13 and g14.
17744         * doc/invoke.texi: Document -mcpu and -mmul options.
17746 2015-04-16  Richard Biener  <rguenther@suse.de>
17748         * tree-ssa-ccp.c (likely_value): See if we have operands that
17749         are marked as never simulate again and return CONSTANT in this
17750         case.
17751         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
17752         not have any operands that will be simulated again as
17753         not being simulated again.
17755 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
17757         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
17758         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
17759         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
17760         attribute.
17761         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
17762         enabled attribute.
17763         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
17764         *float<SWI48:mode><MODEF:mode>2_sse.
17765         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
17766         enabled attribute.
17767         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
17768         enabled attribute.
17770 2015-04-15  Tom de Vries  <tom@codesourcery.com>
17772         PR other/65487
17773         * function.c (push_dummy_function): New function.
17774         (init_dummy_function_start): Use push_dummy_function.
17775         (pop_dummy_function): New function.  Factored out of ...
17776         (expand_dummy_function_end): ... here.
17777         * function.h (push_dummy_function, pop_dummy_function): Declare.
17778         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
17779         pop_dummy_function.
17780         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
17782 2015-04-15  Jeff Law  <law@redhat.com>
17784         PR tree-optimization/47679
17785         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
17786         need for forward declaration in upcoming changes.
17787         (record_conditions, record_edge_info): Likewise.
17789         PR rtl-optimization/42522
17790         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
17791         SIGN_EXTRACT as a whole object rather than simplifying
17792         its operand.
17794 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
17796         PR ipa/65765
17797         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
17798         and GIMPLE_PREDICT use break instead of return true. For
17799         GIMPLE_EH_DISPATCH, compare dispatch region.
17801 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
17803         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
17804         details about the implementation.  Make clear preference for
17805         __atomic builtins.  Reduce possibility of future change.
17807 2015-04-15  Nick Clifton  <nickc@redhat.com>
17809         * config/rx/rx.opt (mallow-string-insns): New option.
17810         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
17811         builtin if string instructions are denied.
17812         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
17813         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
17814         appropriate.
17815         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
17816         * config/rx/rx.md (movstr): Enable pattern only if string
17817         instructions are allowed.
17818         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
17819         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
17820         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
17821         (MULTILIB_DIRNAMES): Add no-strings.
17822         * doc/invoke.texi: Document -mno-allow-string-insns.
17824 2015-04-15  Alan Modra  <amodra@gmail.com>
17826         PR target/65408
17827         PR target/58744
17828         PR middle-end/36043
17829         * calls.c (load_register_parameters): Don't load past end of
17830         mem unless suitably aligned.
17832 2015-04-15  Nick Clifton  <nickc@redhat.com>
17834         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
17835         decrement instruction as being frame related.
17836         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
17837         based addresses.
17838         If zero extending a function address enclose the operation in
17839         %code(...).
17840         (rl78_preferred_reload_class): New function.
17841         (TARGET_PREFERRED_RELOAD_CLASS): Define.
17842         * config/rl78/rl78.md: Remove useless constraints in expanders.
17843         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
17844         (mulhi3_rl78): Likewise.
17845         (mulhi3_g13): Likewise.
17846         (mulsi3_rl78): Likewise.
17847         (es_addr): Move to before the multiply patterns.
17849 2015-04-15  Alan Modra  <amodra@gmail.com>
17851         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
17852         and sequence_stack.  Add seq.
17853         (seq_stack): Delete.
17854         * function.c (prepare_function_start): Don't access x_last_insn.
17855         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
17856         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
17857         * emit_rtl.c (start_sequence, push_topmost_sequence,
17858         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
17859         sequence accessors.
17860         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
17861         remove_insn): Likewise.  Simplify.
17862         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
17863         and pop_topmost_sequence.
17864         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
17865         debug insns.
17866         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
17868 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
17870         PR target/65729
17871         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
17872         the assertiion.
17874 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
17876         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
17877         (LEGACY_INT_REGNO_P): Ditto.
17878         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
17879         (ANY_MASK_REG_P): Remove.
17880         (BND_REG_P): Rename from ANY_BND_REG_P.
17881         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
17882         legacy integer registers.  Do not handle MMX_REG_P in a special way.
17883         Merge 64byte and 32byte SSE handling.
17885 2015-04-14  Nick Clifton  <nickc@redhat.com>
17887         * expr.c (expand_assignment): Force an address offset computation
17888         into a register before changing its mode.
17889         (expand_expr_real_1): Likewise.
17891 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
17893         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
17894         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
17895         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
17896         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
17897         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
17898         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
17899         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
17900         and __aarch64_vget_lane_any.
17902 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
17904         PR rtl-optimization/65761
17905         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
17906         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
17908 2015-04-14  Richard Biener  <rguenther@suse.de>
17910         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
17911         (graphite_can_represent_scev): Use POINTER_TYPE_P.
17913 2015-04-14  Richard Biener  <rguenther@suse.de>
17915         PR tree-optimization/65758
17916         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
17917         against -1.
17918         (ccp_lattice_meet): Likewise.
17919         (bit_value_unop): Likewise.
17920         (bit_value_binop): Likewise.
17921         (bit_value_assume_aligned): Likewise.
17923 2015-04-14  Christian Bruel  <christian.bruel@st.com>
17925         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
17926         function.
17928 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
17930         PR tree-optimization/63387
17931         * match.pd ((x unord x) | (y unord y) -> (x unord y),
17932         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
17934 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
17936         * config/i386/predicates.md (any_QIreg_operand): Rename from
17937         q_regs_operand.  Do not process subregs.
17938         (QIreg_operand): Use QI_REGNO_P predicate.
17939         (ext_QIreg_operand): Ditto.
17940         (ext_register_operand): Ditto.
17941         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
17942         (AND splitters): Ditto.
17943         (AND with -65536 splitter): Add SWI48 mode for operand 0.
17944         (AND with -256 splitter): Use any_QIreg_operand predicate and
17945         SWI248 mode for operand 0.
17946         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
17947         mode for operand 0.
17948         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
17950 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
17952         * doc/plugins.texi: Rewrite first introductory paragraph.
17954 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
17956         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
17957         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
17959 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
17961         * ipa-profie.c (ipa_profile): Check number of parameters
17962         and possible polymorphic call targets before
17963         devirtualizing.
17965 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
17967         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
17968         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
17970 2015-04-13  Richard Biener  <rguenther@suse.de>
17972         PR tree-optimization/65204
17973         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
17974         takens for bit-CCP.
17976 2015-04-13  Richard Biener  <rguenther@suse.de>
17978         PR target/65660
17979         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
17980         and cond_not_taken_branch_cost to 4 and 2.
17981         (bdver2_cost): Likewise.
17982         (bdver3_cost): Likewise.
17983         (bdver4_cost): Likewise.
17985 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
17987         * hash-table.h (hash_table constructor): Add mem stats.
17988         (alloc_entries): Likewise.
17990 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
17992         * ipa-cp.c (ipcp_driver): Relase prev_edge.
17993         * passes.c (execute_one_pass): Only add transform if pass has one.
17995 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
17997         * config/i386/i386.c (ix86_option_override_internal): Don't set
17998         -fprefetch-loop-arrays if optimizing for size.
18000 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
18001             Gerald Pfeifer  <gerald@pfeifer.com>
18003         * doc/contrib.texi (Contributors): Add Martin Jambor and
18004         Michael Matz.
18006 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
18008         * BASE-VER: Set to 6.0.0.
18010         PR tree-optimization/65747
18011         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
18012         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
18014 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
18016         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
18017         sentence.  Improve grammar.
18019 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
18021         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
18023 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
18025         PR ipa/65743
18026         * ipa-inline-transform.c (speculation_removed): Remove static var.
18027         (check_speculations): New function.
18028         (clone_inlined_nodes): Do not check spculations.
18029         (inline_call): Call check_speculations.
18030         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
18031         consider non-invariants.
18033 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
18034             Martin Liska  <mliska@suse.cz>
18036         PR ipa/65722
18037         * ipa-icf.c (sem_item::compare_cgraph_references): function and
18038         variable can not match.
18039         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
18040         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
18042 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
18044         PR tree-optimization/65735
18045         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
18046         Remove visited_phis argument, add visited_bbs, avoid recursing into the
18047         same bb rather than just into the same phi node.
18048         (thread_through_normal_block): Adjust caller.
18050 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
18052         * doc/contrib.texi (Contributors): Add Ira Rosen.
18054 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
18056         * gcov.c (find_source): Fix miswording in error message.
18057         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
18058         (ix86_expand_sse_comi_round): Fix typo in error message.
18060 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
18062         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
18064 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
18066         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
18068 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
18070         PR target/65710
18071         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
18072         Print bad_spills_num and insn_pseudos_num.
18074 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18076         PR target/65694
18077         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
18078         when creating +1 values for SImode.
18080 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
18082         PR target/65729
18083         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
18084         assert.
18086 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
18087             Iain Sandoe  <iain@codesourcery.com>
18089         PR target/65351
18090         * configure: Regenerate.
18092 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
18094         PR target/65671
18095         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
18097 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
18099         * doc/contrib.texi (Contributors): Add John Marino.
18101 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
18103         PR tree-optimization/65709
18104         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
18105         TREE_TYPE (TREE_TYPE (t)).
18107 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
18109         PR target/65710
18110         * lra-int.h (lra_bad_spill_regno_start): New.
18111         * lra.c (lra_bad_spill_regno_start): New.
18112         (lra): Set up lra_bad_spill_regno_start.  Set up
18113         lra_constraint_new_regno_start unconditionally.
18114         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
18115         spill preferences.
18117 2015-04-09  Marek Polacek  <polacek@redhat.com>
18118             Jakub Jelinek  <jakub@redhat.com>
18120         PR middle-end/65554
18121         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
18122         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
18123         of STRIP_NOPS.
18125 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
18127         PR rtl-optimization/65693
18128         * combine.c (is_parallel_of_n_reg_sets): Move outside of
18129         #ifndef HAVE_cc0.
18131 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
18133         PR target/65296
18134         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
18135         device specs file if "device-specs%s" didn't resolve to a path.
18137 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
18139         PR target/65676
18140         * config/i386/i386.c (fixup_modeless_constant): New.
18141         (ix86_expand_args_builtin): Fixup modeless constant operand.
18142         (ix86_expand_round_builtin): Ditto.
18143         (ix86_expand_special_args_builtin): Ditto.
18144         (ix86_expand_builtin): Ditto.
18146 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
18148         PR target/65693
18149         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
18150         any pow2 integer in between 2 and 0x80000000U inclusive.
18152 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
18154         PR rtl-optimization/65693
18155         * combine.c (is_parallel_of_n_reg_sets): Change first argument
18156         from an rtx_insn * to an rtx.
18157         (try_combine): Adjust both callers.  Use it once more.
18159 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
18161         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
18162         (chkp_make_static_const_bounds): Search existing
18163         symbol by assembler name.  Use make_decl_one_only.
18164         (chkp_get_zero_bounds_var): Remove node search which
18165         is now performed in chkp_make_static_const_bounds.
18166         (chkp_get_none_bounds_var): Likewise.
18168 2015-04-08  Michael Witten  <mfwitten@gmail.com>
18170         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
18171         to an example.
18173 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
18175         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
18177 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
18179         * doc/extend.texi (__sync Builtins): Fix grammar.
18181 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
18183         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
18185 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
18187         * varasm.c (emit_local): Move definition of align.
18189 2015-04-08  Julian Brown  <julian@codesourcery.com>
18191         * config/nvptx/mkoffload.c (process): Support variable mapping.
18193 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
18195         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
18196         alpha_links **.
18197         (alpha_write_one_linkage): Correct typo.
18199 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
18201         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
18203 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
18205         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
18207 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
18209         * tree-chkp.h (chkp_insert_retbnd_call): New.
18210         * tree-chkp.c (chkp_insert_retbnd_call): New.
18211         * ipa-split.c (insert_bndret_call_after): Remove.
18212         (split_function): Use chkp_insert_retbnd_call.
18213         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
18214         bounds for instrumented functions.
18216 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
18218         PR ipa/65540
18219         * calls.c (initialize_argument_information): When producing tail
18220         call also turn SSA_NAMES passed by references to original PARM_DECLs
18222 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
18224         PR target/65648
18225         * lra-remat.c (do_remat): Process input and non-input insn
18226         registers separately.
18228 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
18230         PR debug/65678
18231         * valtrack.c (debug_lowpart_subreg): New function.
18232         (dead_debug_insert_temp): Use it.
18234         PR middle-end/65680
18235         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
18236         into signed HOST_WIDE_INT the same as negative bit_offset.
18238 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
18240         * ipa-comdats.c (ipa_comdats): Visit all thunks
18241         to set proper comdat group.
18243 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18245         PR target/65489
18246         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
18247         on constants for NEON VSTRUCT modes.
18249 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
18250             Iain Sandoe  <iain@codesourcery.com>
18252         PR target/65351
18253         * configure: Regenerate.
18255 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
18257         PR target/65614
18258         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
18259         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
18260         that LFD is used to load double constants instead of LFS.  Add
18261         defaults for all costs structures.  Add comments for missing
18262         initialization fields.
18263         (size32_cost): Likewise.
18264         (size64_cost): Likewise.
18265         (rs64a_cost): Likewise.
18266         (mpccore_cost): Likewise.
18267         (ppc403_cost): Likewise.
18268         (ppc405_cost): Likewise.
18269         (ppc440_cost): Likewise.
18270         (ppc476_cost): Likewise.
18271         (ppc601_cost): Likewise.
18272         (ppc603_cost): Likewise.
18273         (ppc604_cost): Likewise.
18274         (ppc604e_cost): Likewise.
18275         (ppc620_cost): Likewise.
18276         (ppc630_cost): Likewise.
18277         (ppccell_cost): Likewise.
18278         (ppc750_cost): Likewise.
18279         (ppc7450_cost): Likewise.
18280         (ppc8540_cost): Likewise.
18281         (ppce300c2c3_cost): Likewise.
18282         (ppce500mc_cost): Likewise.
18283         (ppce500mc64_cost): Likewise.
18284         (ppce5500_cost): Likewise.
18285         (ppce6500_cost): Likewise.
18286         (titan_cost): Likewise.
18287         (power4_cost): Likewise.
18288         (power6_cost): Likewise.
18289         (power7_cost): Likewise.
18290         (power8_cost): Likewise.
18291         (ppca2_cost): Likewise.
18292         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
18294         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
18295         instead of XXLOR to copy SFmode to clear out dirty bits created
18296         when SFmode denormals are generated.
18297         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
18298         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
18300 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
18302         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
18303         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
18304         * config/aarch64/aarch64-tune.md: Regenerate.
18306 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
18308         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
18309         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
18310         * config/arm/arm-cores.def (exynos-m1): New core.
18311         * config/arm/arm-tune.md: Regenerate.
18312         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
18313         * config/arm/bpabi.h: Likewise.
18315 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
18317         * ipa-cp (set_single_call_flag): Remove too
18318         restrictive assert.
18320 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
18322         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
18323         GOMP_offload_unregister from the destructor.
18325 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
18327         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
18328         flags for instrumentation thunk.
18329         (chkp_produce_thunks): Likewise.
18331 2015-04-05  Martin Liska  <mliska@suse.cz>
18333         PR ipa/65665
18334         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
18335         has computed data structure.
18336         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
18338 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
18340         * invoke.texi (inline-unit-growth): Increase growth to 20%
18341         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
18343 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
18345         PR target/65647
18346         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
18347         value checking.
18348         (lra_rematerialization_iter): New.
18349         * lra.c (lra): Initialize lra_rematerialization_iter.
18350         Stop updating lra_constraint_new_regno_start after switching of
18351         inheritance and rematerialization.
18352         * lra-remat.c (lra_rematerialization_iter): New.
18353         (lra_remat): Add printing pass iteration.  Do rematerialization
18354         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
18356 2015-04-04  Richard Biener  <rguenther@suse.de>
18358         PR tree-optimization/64909
18359         PR tree-optimization/65660
18360         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
18361         to take a cost vector for scalar iteration cost.
18362         (vect_get_single_scalar_iteration_cost): Likewise.
18363         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
18364         Compute the scalar iteration cost into a cost vector.
18365         (vect_get_known_peeling_cost): Use the scalar cost vector to
18366         account for the cost of the peeled iterations.
18367         (vect_estimate_min_profitable_iters): Likewise.
18368         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
18369         Likewise.
18371 2015-04-04  Alan Modra  <amodra@gmail.com>
18373         PR target/65576
18374         PR target/65240
18375         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
18376         0.0 constant unless TARGET_VSX.
18377         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
18378         alternative.
18380 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
18382         PR ipa/65654
18383         * ipa-inline-transform.c (inline_call): Skip sanity check to work
18384         around the ICE
18386 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
18388         PR ipa/65655
18389         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
18390         speculative indirect edges to avoid ordering issue.
18392 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
18394         PR ipa/65076
18395         * ipa-inline.c (edge_badness): Add combined size to the denominator.
18397 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
18399         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
18400         TYPE_ARTIFICIAL on the .omp_data* types.
18402 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
18404         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
18405         instrumentation thunks.
18407 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
18409         * config/i386/i386.c (ix86_expand_call): Avoid nested
18410         PARALLEL in returned call value.
18412 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
18414         * lto-cgraph.c (input_cgraph_1): Always link instrumented
18415         assembler name with original one.
18417 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
18419         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
18421 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
18423         Revert parts of r216820.
18424         * config/i386/i386.md (movqi_internal): Correct type calculation
18425         for alternatives 3 and 5.
18427 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
18429         PR preprocessor/61977
18430         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
18431         predefine __vector/__bool/__pixel macros nor context sensitive
18432         macros for CLK_ASM.
18433         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
18435 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
18437         * config/pa/pa.c (pa_output_move_double): Directly handle register
18438         indexed memory operand.  Simplify handling of scaled register indexed
18439         memory operands.
18441 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
18443         PR driver/65444
18444         * config/i386/linux-common.h (MPX_SPEC): New.
18445         (CHKP_SPEC): Add MPX_SPEC.
18446         * doc/invoke.texi (-fcheck-pointer-boudns): Document
18447         possible issues with '-z bndplt' support in linker.
18449 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
18451         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
18452         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
18453         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
18454         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
18455         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
18457 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
18459         * config/i386/sync.md (UNSPEC_MOVA): Remove.
18460         (atomic_load<mode>): Change operand 0 predicate to
18461         nonimmediate_operand and fix up the destination when needed.
18462         Use UNSPEC_LDA.
18463         (atomic_loaddi_fpu): Use UNSPEC_LDA.
18464         (atomic_store<mode>): Change operand 1 predicate to
18465         nonimmendate_operand and move the source to register when needed.
18466         Use UNSPEC_STA.
18467         (atomic_store<mode>_1): Use UNSPEC_STA.
18468         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
18469         Fix moves from memory operand.  Use UNSPEC_STA.
18471 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18473         * expmed.c (strict_volatile_bitfield_p): Check that the access will
18474         not cross a MODESIZE boundary.
18475         (store_bit_field, extract_bit_field): Added assertions in the
18476         strict volatile bitfields code path.
18478 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
18480         PR target/65624
18481         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
18482         Increase args array size by one to avoid buffer overflow.
18484 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
18486         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
18487         split_part.
18488         * ipa-inline.c (edge_badness): Add wrapper penalty.
18489         (sum_callers): Move up.
18490         (inline_small_functions): Set single_caller.
18491         * ipa-inline.h (inline_summary): Add single_caller.
18492         * ipa-split.c (split_function): Set split_part.
18493         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
18494         * cgraph.h (cgraph_node): Add split_part.
18496 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
18498         PR target/58945
18499         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
18500         Do not split operands 0 and operands 2 to halfmode.
18501         (atomic_compare_and_swap<mode>): Update for
18502         atomic_compare_and_swap<dwi>_doubleword changes.
18504 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
18506         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
18507         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
18508         no caching is done.
18510 2015-03-31  Martin Liska  <mliska@suse.cz>
18512         PR ipa/65557
18513         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
18514         has already filled up function summary.
18515         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
18517 2015-03-31  Richard Biener  <rguenther@suse.de>
18519         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
18520         of types.
18522 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18524         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
18525         nested functions.
18526         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
18527         (s390_asm_output_function_label): Adapt to new signature of
18528         s390_function_num_hotpatch_hw
18529         Optimise the code generating assembler output.
18530         Add comments to assembler file.
18532 2015-03-31  Richard Biener  <rguenther@suse.de>
18534         PR middle-end/65626
18535         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
18536         of the noreturn call so it is last and cleanup_control_flow_bb
18537         can do the CFG part.
18539 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
18541         PR target/65531
18542         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
18543         same_comdat_group for external symbols.
18544         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
18545         infinite same_comdat_group traversal loop.
18547 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
18549         PR plugins/61176
18550         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
18551         automatically to $headers.
18553 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
18555         PR ipa/65610
18556         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
18557         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
18558         function.
18559         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
18560         Use it.
18561         * ipa-prop.c (param_type_may_change_p): Likewise.
18562         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
18563         (remove_unused_scope_block_p): Add in_ctor_dtor_block
18564         argument.  Before inlining, preserve
18565         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
18566         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
18567         recursive calls.
18568         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
18570 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
18572         PR ipa/65076
18573         * ipa-inline.c (edge_badness): Base denominator on callee's
18574         grwoth squared.
18576 2015-03-27  Martin Jambor  <mjambor@suse.cz>
18578         PR ipa/65478
18579         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
18580         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
18581         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
18582         node_calling_single_call.
18583         * ipa-cp.c (count_callers): New function.
18584         (set_single_call_flag): Likewise.
18585         (initialize_node_lattices): Count callers and set single_flag_call if
18586         necessary.
18587         (incorporate_penalties): New function.
18588         (good_cloning_opportunity_p): Use it, dump new flags.
18589         (propagate_constants_topo): Set node_within_scc flag if appropriate.
18590         * doc/invoke.texi (ipa-cp-recursion-penalty,
18591         ipa-cp-single-call-pentalty): Document.
18593 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
18595         PR ipa/65588
18596         * symtab.c (symtab_node::get_partitioning_class): Register vars
18597         are duplicated.
18598         * varpool.c (symbol_table::output_variables) Do not assemble unefined
18599         decls for non-symbols.
18601 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
18603         PR target/65248
18604         * output.h (default_binds_local_p_2): New.
18605         * varasm.c (default_binds_local_p_2): Renamed to ...
18606         (default_binds_local_p_3): This.  Don't return true on protected
18607         data symbol if protected data may be external.
18608         (default_binds_local_p): Use default_binds_local_p_3.
18609         (default_binds_local_p_1): Likewise.
18610         (default_binds_local_p_2): New.
18611         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
18612         default_binds_local_p_2 if TARGET_MACHO is undefined.
18614 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
18616         PR target/65593
18617         * config/i386/i386.c (legitimize_pic_address): If base
18618         is SYMBOL_REF or LABEL_REF using %rip addressing, force
18619         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
18621 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
18623         PR target/65531
18624         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
18625         comdat groups.
18627 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
18629         PR ipa/65600
18630         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
18631         of optimized out indirect call.
18632         (redirect_to_unreachable): Always build symbol table node for
18633         BUILT_IN_UNREACHABLE
18635 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
18637         PR target/65407
18638         * ira-costs.c (record_reg_classes): Process all constraint string
18639         containing 0-9.
18641 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
18643         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
18644         memory_operand.
18646         PR target/65052
18647         * config/c6x/constraints.md (S3): New constraint.
18648         * config/c6x/c6x.md (real_jump): Use it.
18650 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
18652         PR middle-end/65595
18653         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
18654         do redirection if the call is not optimized out.
18656 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
18658         PR target/65495
18659         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
18660         (fchkp-check-incomplete-type): Add LTO.
18661         (fchkp-zero-input-bounds-for-main): Likewise.
18662         (fchkp-first-field-has-own-bounds): Likewise.
18663         (fchkp-narrow-bounds): Likewise.
18664         (fchkp-narrow-to-innermost-array): Likewise.
18665         (fchkp-use-static-bounds): Likewise.
18666         (fchkp-use-static-const-bounds): Likewise.
18667         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
18669 2015-03-27  Marek Polacek  <polacek@redhat.com>
18671         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
18673 2015-03-27  Marek Polacek  <polacek@redhat.com>
18675         PR sanitizer/65583
18676         * ubsan.c (ubsan_create_edge): New function.
18677         (instrument_bool_enum_load): Call it.
18678         (instrument_nonnull_arg): Likewise.
18679         (instrument_nonnull_return): Likewise.
18680         (instrument_object_size): Likewise.
18682 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
18684         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
18685         auto_vec.
18687 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
18689         PR lto/65536
18690         * lto-streamer.h (class lto_location_cache): New.
18691         (struct data_in): Add location_cache.
18692         (lto_input_location): Update prototype.
18693         (stream_input_location_now): New.
18694         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
18695         pointer to location.
18696         (stream_input_location): Update.
18697         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
18698         (warn_odr): Apply location cache before warning.
18699         (lto_input_location): Update prototype.
18700         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
18701         Use stream_input_location_now.
18702         * lto-streamer-in.c (lto_location_cache::current_cache): New static
18703         variable.
18704         (lto_location_cache::cmp_loc): New function.
18705         (lto_location_cache::apply_location_cache): New function.
18706         (lto_location_cache::accept_location_cache): New function.
18707         (lto_location_cache::revert_location_cache): New function.
18708         (lto_location_cache::input_location): New function.
18709         (lto_input_location): Do location caching.
18710         (stream_input_location_now): New function.
18711         (input_eh_region, input_struct_function_base): Use
18712         stream_input_location_now.
18713         (lto_data_in_create): use new.
18714         (lto_data_in_delete): Use delete.
18715         * tree-streamer-in.c (unpack_ts_block_value_fields,
18716         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
18717         lto_input_ts_exp_tree_pointers): Update for cached location api.
18719 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
18721         PR ipa/65076
18722         * passes.def: Add pass_nothrow.
18723         * ipa-pure-const.c: (pass_data_nothrow): New.
18724         (pass_nothrow): New.
18725         (pass_nothrow::execute): New.
18726         (make_pass_nothrow): New.
18727         * tree-pass.h (make_pass_nothrow): Declare.
18729 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
18731         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
18732         edge to change by speculation resolution or redirection.
18733         (edge_set_predicate): Likewise.
18734         (inline_summary_t::duplicate): Likewise.
18735         (remap_edge_summaries): Likewise.
18737 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
18739         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
18740         New macros.
18741         (can_inline_edge_p): Relax option matching for always inline functions.
18743 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
18745         PR target/65561
18746         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
18747         Check operand 4 and operand 0 for equality.
18748         (avx512f_vextract<shuffletype>32x4_1_maskm):
18749         Check operand 6 and operand 0 for equality.
18750         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
18751         for equality.
18752         (vec_extract_hi_<mode>_maskm): Ditto.
18754 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
18756         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
18757         dead calls back to live.
18758         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
18759         cross check to ...
18760         (cgraph_node::verify_node): ... here; verify only callee edges,
18761         not caller.
18762         * cif-code.def (CILK_SPAWN): New code.
18764 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
18766         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
18767         (edge_set_predicate): Use it to mark unreachable edges.
18768         (inline_summary_t::duplicate): Remove unnecesary code.
18769         (remap_edge_summaries): Likewise.
18770         (dump_inline_summary): Report contains_cilk_spawn.
18771         (compute_inline_parameters): Compute contains_cilk_spawn.
18772         (inline_read_section, inline_write_summary): Stream
18773         contains_cilk_spawn.
18774         * ipa-inline.c (can_inline_edge_p): Do not touch
18775         DECL_STRUCT_FUNCTION that may not be available;
18776         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
18777         remove check for callee_fun->can_throw_non_call_exceptions and
18778         replace it by optimization attribute check; check for flag_exceptions.
18779         * ipa-inline-transform.c (inline_call): Maintain
18780         DECL_FUNCTION_PERSONALITY
18781         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
18783 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
18785         PR tree-optimization/65551
18786         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
18787         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
18789 2015-03-26  Richard Biener  <rguenther@suse.de>
18791         PR middle-end/65555
18792         * tree-cfg.c (verify_gimple_call): Do not require a call to
18793         have no LHS if it wasn't recognized as control altering yet.
18795 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
18797         PR tree-optimization/64715
18798         * passes.def: Add another instance of pass_object_sizes before ccp1.
18799         * tree-object-size.c (pass_object_sizes::execute): In
18800         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
18801         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
18802         __bos result and the computed constant.  Remove redundant
18803         checks, obsoleted by gimple_call_builtin_p test.
18805         * var-tracking.c (variable_tracking_main_1): Don't track
18806         variables for targetm.no_register_allocation targets.
18808 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
18810         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
18811         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
18813 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
18815         PR target/65569
18816         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
18817         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
18818         0.0 is correctly setup.
18819         (extenddftf2_internal): Likewise.
18821 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
18823         PR tree-optimization/65177
18824         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
18825         (bb_in_bbs): New.
18826         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
18827         edges not adjacent on the path to the original code.
18829 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
18831         PR bootstrap/65537
18832         * doc/install.texi (Building a native compiler): Document new
18833         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
18834         configuration assumes that the host supports the linker plugin.
18836 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
18838         PR target/65508
18839         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
18840         chain for generated call.
18842 2015-03-25  Richard Biener  <rguenther@suse.de>
18844         * passes.c (pass_manager::execute_early_local_passes): Guard
18845         execution of pass_chkp_instrumentation_passes with
18846         flag_check_pointer_bounds.
18847         (pass_chkp_instrumentation_passes::gate): Likewise.
18849 2015-03-25  Martin Liska  <mliska@suse.cz>
18851         PR tree-optimization/65538
18852         * symbol-summary.h (function_summary::~function_summary):
18853         Relese memory for allocated summaries.
18854         (function_summary::release): New function.
18856 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
18858         PR lto/65515
18859         * lto-streamer-out.c (DFS::worklist): New struct.
18860         (DFS::worklist_vec): New data member.
18861         (DFS::next_dfs_num): Remove.
18862         (DFS::DFS): Rewritten using worklist instead of recursion,
18863         using most of code from DFS::DFS_write_tree.
18864         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
18865         pass it to DFS_write_tree calls.
18866         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
18867         quick initial checks push it into worklist_vec and return.
18869 2015-03-25  Richard Biener  <rguenther@suse.de>
18871         PR middle-end/65519
18872         * genmatch.c (expr::gen_transform): Re-write to avoid
18873         using gimple_build.
18875 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
18877         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
18879 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
18881         * config/arm/arm.opt (print_tune_info): New option.
18882         * config/arm/arm.c (arm_print_tune_info): New function.
18883         (arm_file_start): Call arm_print_tune_info.
18884         * config/arm/arm-protos.h (struct tune_params): Add comment.
18885         * doc/invoke.texi (@item -mprint-tune-info): New item.
18886         (-mtune): mention it in ARM Option Summary.
18888 2015-03-25  DJ Delorie  <dj@redhat.com>
18890         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
18891         correct clause.
18893 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
18894             Martin Liska  <mliska@suse.cz>
18896         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
18897         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
18898         (sem_item::add_type): New function.
18899         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
18900         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
18901         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
18902         (sem_function::equals_wpa): Fix typo.
18903         * ipa-icf.h (sem_item::add_type): New function.
18904         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
18905         order.
18907 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
18909         PR tree-optimization/65533
18910         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
18911         with swapped operands, call vect_free_slp_tree on
18912         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
18913         vector.
18915 2015-03-24  Richard Biener  <rguenther@suse.de>
18917         PR middle-end/65517
18918         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
18919         for fixup if necessary.
18921 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
18923         * doc/extend.texi (Function Attributes): Add @cindex entries
18924         for all attributes and regularize their format.  Delete text
18925         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
18926         information about "eightbit_data", "tiny_data", and "model"
18927         variable attributes to the Variable Attributes section.  Fix
18928         some obvious typos and copy-editing issues.
18929         (Variable Attributes, Type Attributes): Likewise add/fix
18930         @cindex entries for all attributes.
18932 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
18934         PR target/65523
18935         * tree-chkp.c (chkp_build_returned_bound): Ignore
18936         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
18938 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
18940         PR target/65505
18941         * config/sh/predicates.md (simple_mem_operand,
18942         displacement_mem_operand): Add test for reg.
18943         (short_displacement_mem_operand): Test for displacement_mem_operand
18944         before invoking sh_disp_addr_displacement.
18945         * config/sh/constraints.md (Sdd, Sra): Simplify.
18946         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
18947         Remove redundant displacement_mem_operand tests.
18949 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
18951         PR target/65296
18952         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
18953         the same -mmcu=MCU more than once.
18955 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
18957         PR bootstrap/65522
18958         * ipa-devirt.c: Remove duplicate demangle.h include.
18960         PR target/65504
18961         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
18962         on the pseudo.
18963         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
18964         REG_POINTER on *destptr after adjusting it for prologue size.
18966         PR ipa/65521
18967         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
18968         ultimate_alias_target ()->order ints instead of
18969         ultimate_alias_target () pointers.
18971 2015-03-23  Richard Biener  <rguenther@suse.de>
18973         PR tree-optimization/65518
18974         * tree-vect-stmts.c (vectorizable_load): Reject single-element
18975         interleaving cases we generate absymal code for.
18977 2015-03-23  Richard Biener  <rguenther@suse.de>
18979         PR tree-optimization/65494
18980         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
18981         matches here.
18982         (vect_analyze_slp_instance): But do that here, always and once.
18984 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18986         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
18987         adding T or multiplying by T+1 and subracting T.
18989 2015-03-22  Jeff Law  <law@redhat.com>
18991         PR rtl-optimization/64317
18992         * Makefile.in (OBJS): Add gcse-common.c
18993         * gcse.c: Include gcse-common.h
18994         (struct modify_pair_s): Move structure definition to gcse-common.h
18995         (compute_transp): Move function to gcse-common.c.
18996         (canon_list_insert): Similarly.
18997         (record_last_mem_set_info): Break out some code and put it into
18998         gcse-common.c.  Call into the new common code.
18999         (compute_local_properties): Pass additional arguments to compute_transp.
19000         * postreload-gcse.c: Include gcse-common.h and df.h
19001         (modify_mem_list_set, blocks_with_calls): New variables.
19002         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
19003         (get_bb_avail_insn): Pass in the expression index too.
19004         (alloc_mem): Allocate memory for the new bitmaps and lists.
19005         (free_mem): Free memory for the new bitmaps and lists.
19006         (insert_expr_in_table): Record a bitmap index for each entry we
19007         add to the table.
19008         (record_last_mem_set_info): Call into common code in gcse-common.c.
19009         (get_bb_avail_insn): If no available insn was found in the requested
19010         BB.  If BB has a single predecessor, see if the expression is
19011         transparent in BB and available in that single predecessor.
19012         (compute_expr_transp): New wrapper for compute_transp.
19013         (eliminate_partially_redundant_load): Pass expression's bitmap_index
19014         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
19015         (gcse_after_reload_main): If there are elements in the hash table,
19016         then compute transparency for all the elements in the hash table.
19017         * gcse-common.h: New file.
19018         * gcse-common.c: New file.
19020 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
19022         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
19023         as an adjective.
19024         (System Headers): Likewise.
19025         (Ifdef): Likewise.
19026         (Traditional macros): Likewise.
19027         (Invocation): Likewise.
19028         (Option Index): Likewise.
19029         * doc/cppopts.texi (-M): Likewise.
19030         (-finput-charset): Likewise.
19031         (--help): Likewise.
19032         * doc.invoke.texi (AVR Options): Likewise.
19033         (V850 Options): Likewise.
19035 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
19037         PR ipa/65475
19038         * ipa-devirt.c: Include demangle.h
19039         (odr_type_d): Add field rtti_broken.
19040         (odr_subtypes_equivalent_p): Do not require name to match.
19041         (compare_virtual_tables): Fix typo; if type already has ODR violation,
19042         bypass the tests; be ready for function referneces in vtables that are
19043         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
19044         (warn_odr): Give up for nameless types.
19045         (warn_types_mismatch): Report mismatch in mangled names;
19046         report mismatch in anonymous namespaces; look into component types to
19047         give useful error; report when mismatch is dragged in from other ODR
19048         type.
19049         (odr_types_equivalent_p): Match types for being polymorphic; avoid
19050         duplicated diagnostics.
19051         (add_type_duplicate): Reorder checks so more informative ones come
19052         first; fix typo; do not output "the extra base is defined here" when
19053         we did not warn.
19054         (BINFO_N_BASE_BINFOS): Relax sanity check.
19056 2015-03-22  Martin Liska  <mliska@suse.cz>
19057             Jakub Jelinek  <jakub@redhat.com>
19059         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
19060         masks that can potentially include a builtin.
19061         (ix86_add_new_builtins): Introduce fast filter for isa values
19062         that cannot trigger builtin inclusion.
19064 2015-03-22  Martin Liska  <mliska@suse.cz>
19066         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
19067         (sem_item::update_hash_by_local_refs): Likewise.
19068         (sem_variable::get_hash): Empty line is fixed.
19069         (sem_item_optimizer::execute): Include adding of hash references.
19070         (sem_item_optimizer::update_hash_by_addr_refs): New function.
19071         (sem_item_optimizer::build_hash_based_classes): Use local hash.
19072         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
19073         (sem_item::update_hash_by_local_refs): Likewise.
19075 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
19077         PR ipa/65502
19078         * ipa-comdats.c (enqueue_references): Walk through thunks.
19079         (ipa_comdats): Likewise.
19080         (set_comdat_group_1): New function.
19082 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
19084         PR ipa/65475
19085         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
19086         non-polymorphic
19088 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
19089             Gerald Pfeifer  <gerald@pfeifer.com>
19091         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
19093 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
19094             Sandra Loosemore  <sandra@codesourcery.com>
19096         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
19097         function parameter declaration.
19098         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
19099         Update arguments to nios2_adjust_call_address().
19100         (sibcall_internal): Rename from *sibcall.
19101         (sibcall_value_internal): Rename from *sibcall_value.
19102         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
19103         (nios2_large_got_address): Add target temp reg parameter.
19104         (nios2_got_address): Adjust call to nios2_large_got_address, add
19105         force_reg around it.
19106         (nios2_load_pic_address): Add target temp reg parameter, replace call
19107         to nios2_got_address with corresponding code.
19108         (nios2_legitimize_constant_address): Update call to
19109         nios2_load_pic_address.
19110         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
19111         to use temp reg for PIC loading purposes.
19112         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
19113         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
19114         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
19116 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
19118         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
19119         usage of "the @option{...}".
19120         (-Wopenmp-simd): Likewise.
19121         (-fsanitize-recover): Likewise.
19122         (-fsanitize-undefined-trap-on-error): Likewise.
19123         (-flto): Likewise.
19124         (tracer-dynamic-coverage-feedback): Likewise.
19125         (reorder-block-duplicate-feedback): Likewise.
19126         (loop-unroll-jam-size): Likewise.
19127         (-B): Likewise.
19128         (-I-): Likewise.
19129         (-mabs=legacy): Likewise.
19130         (-mupper-regs-df): Likewise.
19131         (-mupper-regs-sf): Likewise.
19132         (-mpointers-to-nested-functions): Likewise.
19134 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
19136         * doc/extend.texi (Cilk Plus Builtins): Add markup.
19138 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
19140         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
19141         additional index entries and cross-references.
19142         (-fchkp-check-incomplete-type): Likewise.
19143         (-fchkp-first-field-has-own-bounds): Likewise.
19144         (-fchkp-narrow-to-innermost-array): Likewise.
19145         (-fchkp-use-fast-string-functions): Likewise.
19146         (-fchkp-use-nochk-string-functions): Likewise.
19147         (-fchkp-use-static-const-bounds): Likewise.
19148         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
19149         (-fchkp-instrument-marked-only): Likewise.
19150         (-fchkp-use-wrappers): Likewise.
19151         (-static-libmpx): Likewise.
19152         (-static-libmpxwrappers): Likewise.
19153         * doc/extend.texi (bnd_legacy): Likewise.
19154         (bnd_instrument): Likewise.
19155         (bnd_variable_size): Likewise.
19156         (Pointer Bounds Checker builtins): Likewise.
19158 2015-03-21  Tom de Vries  <tom@codesourcery.com>
19160         PR tree-optimization/65458
19161         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
19162         * cgraph.h (cgraph_node): Add parallelized_function field.
19163         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
19164         (input_overwrite_node): Read parallelized_function field.
19165         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
19166         parallelized_function on cgraph_node for child_fn.
19167         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
19168         Remove include of gt-tree-parloops.h.
19169         (parallelized_functions): Remove static variable.
19170         (parallelized_function_p): Rewrite using parallelized_function field of
19171         cgraph_node.
19172         (create_loop_fn): Remove adding to parallelized_functions.
19173         * Makefile.in (GTFILES): Remove tree-parloops.c
19175 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
19177         PR rtl-optimization/64366
19178         * lra.c (lra_update_insn_regno_info): Consider regs in
19179         CALL_INSN_FUNCTION_USAGE memory.
19181 2015-03-20  Richard Biener  <rguenther@suse.de>
19183         PR middle-end/64715
19184         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
19185         for type comparison and gcc_checking_assert.
19186         (chrec_fold_plus_poly_poly): Likewise.
19187         (chrec_fold_multiply_poly_poly): Likewise.
19188         (chrec_convert_1): Likewise.
19189         * gimplify.c (gimplify_expr): Remove premature folding of
19190         &X + CST to &MEM[&X, CST].
19192 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
19194         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
19195         already is final.
19196         (ipa_inline): Recompute inline_failed codes.
19197         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
19198         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
19199         CIF_FINAL_ERROR.
19201 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
19203         PR rtl-optimization/60851
19204         * recog.c (constrain_operands): Accept a pseudo register before reload
19205         for LRA enabled targets.
19207 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
19209         PR target/65240
19210         * config/rs6000/predicates.md (easy_fp_constant): Remove special
19211         -ffast-math handling that kept non-0 constants live in the RTL
19212         until reload.  Remove logic testing the number of instructions it
19213         took to create a constant in a GPR that was never used, due to a
19214         test for soft-float earlier.
19215         (memory_fp_constant): Delete, no longer used.
19217         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
19218         alternatives for loading non-0 constants into GPRs for hard
19219         floating point that is no longer needed due to changes in
19220         easy_fp_constant.  Add support for loading 0.0 into GPRs.
19221         (mov<mode>_hardfloat32): Likewise.
19222         (mov<mode>_hardfloat64): Likewise.
19223         (mov<mode>_64bit_dm): Likewise.
19224         (movtd_64bit_nodm): Likewise.
19225         (pre-reload move FP constant define_split): Delete define_split,
19226         since it is no longer used.
19227         (extenddftf2_internal): Remove GHF constraints that are not valid
19228         for extenddftf2.
19230 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
19232         PR rtl-optimization/63491
19233         * lra-constraints.c (check_and_process_move): Use src instead of
19234         sreg.  Remove some dead code.
19236 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
19238         PR ipa/65380
19239         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
19240         (sem_variable::merge): Likewise.
19242 2015-03-19  Martin Liska  <mliska@suse.cz>
19244         PR ipa/65465
19245         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
19246         all fields of cgraph_thunk_info.
19248 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
19250         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
19251         clone instrumented thunks.
19253 2015-03-19  Richard Biener  <rguenther@suse.de>
19255         Revert
19256         2015-03-10  Richard Biener  <rguenther@suse.de>
19258         PR middle-end/63155
19259         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
19260         * tree-ssa-coalesce.c: Include timevar.h.
19261         (attempt_coalesce): Handle graph being NULL.
19262         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
19263         Split out abnormal coalescing to ...
19264         (perform_abnormal_coalescing): ... this function.
19265         (coalesce_ssa_name): Perform abnormal coalescing without computing
19266         live/conflict.
19267         (verify_ssa_coalescing_worker): New function.
19268         (verify_ssa_coalescing): Likewise.
19270 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19271             Jakub Jelinek  <jakub@redhat.com>
19273         PR sanitizer/65400
19274         * tsan.c (instrument_gimple): Clear tail call flag on
19275         calls.
19277 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
19279         PR sanitizer/65400
19280         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
19281         call in the return bb.
19282         (find_split_points): Add RETURN_BB argument, don't call
19283         find_return_bb.
19284         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
19285         if true append TSAN_FUNC_EXIT internal call after the call to
19286         the split off function.
19287         (execute_split_functions): Call find_return_bb here.
19288         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
19289         Adjust find_split_points and split_function calls.
19291 2015-03-18  DJ Delorie  <dj@redhat.com>
19293         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
19294         (iorqi3_virt): Likewise.
19296 2015-03-18  Tom de Vries  <tom@codesourcery.com>
19298         * tree-parloops.c (parallelize_loops): Make static.
19299         * tree-parloops.h (parallelize_loops): Remove extern declaration.
19301 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
19303         PR middle-end/64491
19304         Revert:
19305         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
19307         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
19308         condition would be removed due to undefined behaviour.
19310 2015-03-18  Martin Liska  <mliska@suse.cz>
19312         PR ipa/65432
19313         * cgraph.c (cgraph_node::get_create): Remove unnecessary
19314         xstrdup_for_dump wrapper.
19315         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
19316         sem_item::name.
19317         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
19318         with xstrdup_for_dump.
19319         (sem_variable::equals): Likewise.
19320         (sem_item_optimizer::read_section): Use symtab_node::name instead of
19321         sem_item::name.
19322         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
19323         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
19324         symtab_node::asm_name with xstrdup_for_dump.
19325         (congruence_class::dump): Use symtab_node::name instead of
19326         sem_item::name.
19327         * ipa-icf.h (symtab_node::name): Remove.
19328         (symtab_node::asm_name): Likewise.
19330 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
19332         PR tree-optimization/65450
19333         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
19334         function.
19335         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
19336         it instead of duplicate_ssa_name_ptr_info.
19338         PR target/65222
19339         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
19341 2015-03-18  Richard Biener  <rguenther@suse.de>
19343         * tree-data-ref.h (struct access_matrix): Remove.
19344         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
19345         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
19346         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
19347         (am_vector_index_for_loop): Likewise.
19348         (struct data_reference): Remove access_matrix member.
19349         (DR_ACCESS_MATRIX): Remove.
19350         (lambda_vector_new): Add comment.
19351         (lambda_matrix_new): Use XOBNEWVEC.
19353 2015-03-18  Richard Biener  <rguenther@suse.de>
19355         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
19356         (pass_ch::execute): Cleanup the CFG only if we did sth.
19357         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
19359 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19361         * expmed.c (synth_mult): Use std::swap instead of manually
19362         swapping algorithms.
19364 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
19366         PR target/65078
19367         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
19369 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
19371         PR target/65296
19372         * config/avr/avr.opt (-nodevicelib): New option.
19373         * doc/invoke.texi (AVR Options): Document it.
19374         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
19375         libgcc.a, libc.a, libm.a.
19376         * config/avr/specs.h: Same.
19377         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
19378         which don't (directly) depend on the device.  Print more help.
19379         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
19380         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
19381         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
19382         case of an error.
19383         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
19384         for specs file name.
19385         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
19386         * config/avr/avr-mcus.def: Adjust initializers and comments.
19388 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
19390         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
19391         DECL_ONE_ONLY to check if decl is one only.
19392         * ipa-split.c (consider_split): Limit splitt of one only functions.
19394 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
19396         PR tree-optimization/65427
19397         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
19398         functions.
19399         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
19401 2015-03-16  Marek Polacek  <polacek@redhat.com>
19403         * cgraph.h (add_new_static_var): Remove declaration.
19404         * varpool.c (add_new_static_var): Remove function.
19406 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
19408         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
19409         instead of vec<tree> * with vec_alloc and release for args.
19410         Adjust all users.
19412         PR middle-end/65431
19413         * omp-low.c (delete_omp_context): Only splay_tree_delete
19414         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
19415         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
19417 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
19419         PR sanitizer/64820
19420         * cfgexpand.c (align_base): New function.
19421         (alloc_stack_frame_space): Call it.
19422         (expand_stack_vars): Align prev_frame to be sure
19423         data->asan_vec elements aligned properly.
19425 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
19427         PR middle-end/65409
19428         * expr.c (store_field): Do not do a direct block copy if the source is
19429         a PARALLEL with BLKmode.
19431 2015-03-16  Tom de Vries  <tom@codesourcery.com>
19433         PR middle-end/65414
19434         Revert:
19435         2015-03-12  Tom de Vries  <tom@codesourcery.com>
19437         PR rtl-optimization/64895
19438         * lra-lives.c (check_pseudos_live_through_calls): Use
19439         actual_call_used_reg_set instead of call_used_reg_set, if available.
19441 2015-03-16  Alan Modra  <amodra@gmail.com>
19443         PR target/63150
19444         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
19445         Modify Z->r bswapdi splitter to use dest in place of scratch.
19446         In r->Z and Z->r bswapdi splitter rename word_high, word_low
19447         to word1, word2 and rearrange logic to suit.
19448         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
19449         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
19450         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
19451         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
19452         early clobber.
19454 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
19456         PR tree-optimization/65369
19457         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
19458         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
19459         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
19461         PR tree-optimization/65418
19462         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
19463         are casts in the first PLUS_EXPR operand, ensure tbias and
19464         *totallowp are in the inner type.
19466         PR rtl-optimization/65401
19467         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
19468         argument.  If true, adjust_address_nv of x with big-endian
19469         correction for the mode widening to GET_MODE (y).
19470         (make_field_assignment): Don't do MEM mode widening here.
19471         Use MEM_P instead of GET_CODE == MEM.
19473 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
19475         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
19476         the external decls.
19478 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19480         PR target/64600
19481         * config/arm/arm.c (arm_gen_constant, AND case): Use
19482         ARM_SIGN_EXTEND when constructing AND mask.
19484 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19486         * graph.c (print_graph_cfg): Make function names visible and append
19487         parenthesis to it.  Also make groups of basic blocks belonging to the
19488         same function visible.
19490 2015-03-12  Richard Biener  <rguenther@suse.de>
19492         PR middle-end/44563
19493         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
19494         to avoid quadratic behavior with inline expansion splitting blocks.
19495         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
19496         with the successor if the predecessor will be merged with it.
19497         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
19498         entry block with its successor.
19500 2015-03-13  Richard Biener  <rguenther@suse.de>
19502         PR middle-end/44563
19503         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
19504         (cleanup_tree_cfg_1): Do not call it.
19505         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
19506         (fixup_noreturn_call): Mark the stmt as control altering.
19507         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
19508         here.
19509         (pass_data_fixup_cfg): Produce a dump file.
19510         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
19511         (need_noreturn_fixup): New global.
19512         (pass_dominator::execute): Fixup queued noreturn calls.
19513         (optimize_stmt): Queue calls that became noreturn for fixup.
19514         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
19515         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
19516         (el_to_fixup): New global.
19517         (eliminate_dom_walker::before_dom_childre): Queue calls that
19518         became noreturn for fixup.
19519         (eliminate): Fixup queued noreturn calls.
19520         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
19521         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
19522         (substitute_and_fold_dom_walker::before_dom_children): Queue
19523         alls that became noreturn for fixup.
19524         (substitute_and_fold): Fixup queued noreturn calls.
19526 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
19528         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
19529         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
19530         are building; for methods check ODR type of class they belong to if
19531         they may lead to a polymorphic call.
19532         (sem_function::compare_polymorphic_p): Be bit smarter about testing
19533         when function may lead to a polymorphic call.
19534         (sem_function::compare_type_list): Remove.
19535         (sem_variable::equals): Update use of compatible_types_p.
19536         (sem_variable::parse_tree_refs): Remove.
19537         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
19538         cdtor.
19539         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
19540         matching here.
19541         (func_checker::compatible_polymorphic_types_p): Break out from ...
19542         (unc_checker::compatible_types_p): ... here.
19543         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
19544         Declare.
19545         (unc_checker::compatible_types_p): Update.
19546         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
19547         Remove.
19549 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19551         PR rtl-optimization/65235
19552         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
19553         When first element of vec_concat is const_int, calculate its size
19554         using second element.
19556 2015-03-12  Richard Biener  <rguenther@suse.de>
19558         PR middle-end/65270
19559         * fold-const.c (operand_equal_p): Fix ordering of resetting
19560         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
19562 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19564         * config/s390/s390.c (s390_reorg): Move code to output nops after label
19565         to s390_reorg ().
19566         (s390_asm_output_function_label): Likewise.
19567         * config/s390/s390.c (s390_asm_output_function_label):
19568         Fix function label alignment with -mhtopatch.
19569         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
19570         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
19571         ("nop_2_byte"): New define_insn.
19572         ("nop_4_byte"): Likewise.
19573         ("nop_6_byte"): Likewise.
19574         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
19575         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
19577 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
19579         PR target/65103
19580         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
19581         register.
19583 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
19585         PR target/65044
19586         * toplev.c (process_options): Restrict Pointer Bounds Checker
19587         usage with Address Sanitizer.
19589 2015-03-12  Richard Biener  <rguenther@suse.de>
19591         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
19592         to split on.
19593         * omp-low.c (expand_omp_taskreg): Split block before removing
19594         the stmt.
19595         (expand_omp_target): Likewise.
19596         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
19597         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
19598         stmt to split_block.
19600 2015-03-12  Tom de Vries  <tom@codesourcery.com>
19602         PR rtl-optimization/64895
19603         * lra-lives.c (check_pseudos_live_through_calls): Use
19604         actual_call_used_reg_set instead of call_used_reg_set, if available.
19606 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
19608         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
19609         (cgraph_node::remove): Likewise.
19610         (cgraph_node::get_untransformed_body): Likewise.
19611         * varpool.c (varpool_node::remove): Likewise.
19612         (varpool_node::get_constructor): Add sanity check.
19614 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
19616         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
19617         old GCC versions.
19618         (-fabi-compat-version): Likewise.
19619         (-ffriend-injection): Likewise.
19620         (-Wdeclaration-after-statement): Likewise.
19621         (-fomit-frame-pointer): Likewise.
19622         (-ftree-coalesce-inlined-vars): Likewise.
19623         (-fvisibility=): Likewise.
19624         * doc/extend.texi (Typeof): Likewise.
19625         (Zero Length): Likewise.
19626         (Escaped Newlines): Likewise.
19627         (Compound Literals): Likewise.
19628         (Function Attributes): Likewise.
19629         (Label Attributes): Likewise.
19630         (Type Attributes): Likewise.
19631         (Function Names): Likewise.
19632         (Other Builtins): Likewise.
19633         (Function Specific Option Pragmas): Likewise.
19634         (C++ Interface): Likewise.
19636 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
19638         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
19640 2015-03-11  Marek Polacek  <polacek@redhat.com>
19642         PR tree-optimization/65388
19643         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
19645 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
19647         PR target/65296
19648         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
19649         * configure: Regenerate.
19650         * config.in: Regenerate.
19651         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
19652         [-mn-flash]: Document it.
19653         [__AVR_ARCH__]: Document avrtiny.
19655         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
19656         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
19657         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
19659 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19661         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
19663 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
19665         PR target/65242
19666         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
19667         allow reloads of PLUS in floating point/VSX registers.
19669 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
19671         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
19672         crypto_sha256_fast.
19673         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
19675 2015-03-11  Richard Biener  <rguenther@suse.de>
19677         PR tree-optimization/65310
19678         * tree-sra.c (build_ref_for_offset): Also preserve larger
19679         alignment.
19681 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
19683         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
19685 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
19687         PR target/65368
19688         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
19689         new define_expand.
19690         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
19692 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
19694         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
19695         (sem_function::equals_wpa): ... here.
19697 2015-03-10  Marek Polacek  <polacek@redhat.com>
19698             Jakub Jelinek  <jakub@redhat.com>
19700         PR sanitizer/65367
19701         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
19702         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
19703         separately.
19705 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
19707         PR target/65286
19708         * config/rs6000/t-linux: For powerpc64* target set
19709         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
19711 2015-03-10  Richard Biener  <rguenther@suse.de>
19713         PR middle-end/44563
19714         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
19715         for redirect_all_calls.
19717 2015-03-10  Marek Polacek  <polacek@redhat.com>
19719         * gdbinit.in (pcfun): Define and document.
19721 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
19723         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
19724         of libgomp-plugin.h.
19725         (find_target_compiler): Support a case when the path to gcc is
19726         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
19727         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
19728         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
19729         libgomp-plugin.h.
19730         (main): Use GCC_INSTALL_NAME as target_driver_name.
19731         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
19732         define.
19733         (mkoffload.o): Remove obsolete include path and defines.
19734         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
19736 2015-03-10  Richard Biener  <rguenther@suse.de>
19738         PR middle-end/63155
19739         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
19740         * tree-ssa-coalesce.c: Include timevar.h.
19741         (attempt_coalesce): Handle graph being NULL.
19742         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
19743         Split out abnormal coalescing to ...
19744         (perform_abnormal_coalescing): ... this function.
19745         (coalesce_ssa_name): Perform abnormal coalescing without computing
19746         live/conflict.
19747         (verify_ssa_coalescing_worker): New function.
19748         (verify_ssa_coalescing): Likewise.
19750 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
19752         PR target/65296
19753         * config.gcc (extra_options) [avr]: Remove.
19754         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
19755         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
19756         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
19758         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
19759         (-mmcu=): Add Var and MissingArgError properties.
19760         (-march=): Remove.
19761         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
19762         * config/avr/t-multilib: Regenerate.
19763         * config/avr/specs.h: New file.
19764         * config/avr/driver-avr.c: New file.
19765         * config/avr/genopt.sh: Remove file.
19766         * config/avr/avr-tables.opt: Remove file.
19767         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
19768         * config/avr/avr-c.c: Same.
19769         * avr-arch.h: Same.
19770         (avr_current_device): Remove proto.
19771         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
19772         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
19773         (EXTRA_SPEC_FUNCTIONS): Define.
19774         (avr_devicespecs_file): New specs function proto.
19775         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
19776         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
19777         (avr_current_device): Remove definition and usage.
19778         (avr_set_core_architecture): New static function.
19779         (avr_option_override): Use it.
19780         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
19781         (mcu_name): New static array.
19782         (comparator, avr_archs_str, avr_mcus_str): New static functions.
19783         (avr_inform_devices, avr_inform_core_architectures): New functions.
19784         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
19785         (avrlibc.h) [WITH_AVRLIBC]: Include.
19786         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
19787         (print_mcu): Rewrite from scratch.
19788         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
19789         Forward to avr-specific specs defined in device-specs file.
19790         * config/avr/t-avr (driver-avr.o): New rule.
19791         (avr-devices.o): Depend on avr-arch.h.
19792         (avr-mcus): No more depend on avr-tables.opt.
19793         (avr-tables.opt): Remove rule.
19794         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
19796 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
19798         * c-family/c.opt (fchkp-use-wrappers): New.
19799         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
19800         (chkp_wrap_function): New.
19801         (chkp_build_instrumented_fndecl): Support wrapped
19802         functions.
19803         * doc/invoke.texi (-fcheck-pointer-bounds): New.
19804         (-fchkp-check-incomplete-type): New.
19805         (-fchkp-first-field-has-own-bounds): New.
19806         (-fchkp-narrow-bounds): New.
19807         (-fchkp-narrow-to-innermost-array): New.
19808         (-fchkp-optimize): New.
19809         (-fchkp-use-fast-string-functions): New.
19810         (-fchkp-use-nochk-string-functions): New.
19811         (-fchkp-use-static-bounds): New.
19812         (-fchkp-use-static-const-bounds): New.
19813         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
19814         (-fchkp-check-read): New.
19815         (-fchkp-check-write): New.
19816         (-fchkp-store-bounds): New.
19817         (-fchkp-instrument-calls): New.
19818         (-fchkp-instrument-marked-only): New.
19819         (-fchkp-use-wrappers): New.
19820         (-static-libmpx): New.
19821         (-static-libmpxwrappers): New.
19823 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
19825         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
19826         (CHKP_SPEC): Add wrappers library.
19827         * c-family/c.opt (static-libmpxwrappers): New.
19829 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
19831         * config/i386/linux-common.h (LIBMPX_LIBS): New.
19832         (LIBMPX_SPEC): New.
19833         (CHKP_SPEC): New.
19834         * gcc.c (CHKP_SPEC): New.
19835         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
19836         * c-family/c.opt (static-libmpx): New.
19838 2015-03-10  Richard Biener  <rguenther@suse.de>
19840         PR middle-end/44563
19841         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
19842         for compare_type.
19843         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
19844         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
19845         (cgraph_add_edge_to_call_site_hash): Likewise.
19846         (cgraph_node::get_edge): Likewise.
19847         (cgraph_edge::set_call_stmt): Likewise.
19848         (cgraph_edge::remove_caller): Likewise.
19850 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
19852         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
19853         (callee_saved_gpr_regs_size): ... this.
19854         (callee_saved_regs_first_regno): Rename to ...
19855         (callee_saved_first_gpr_regno): ... this.
19856         (callee_saved_regs_last_regno) Rename to ...
19857         (callee_saved_last_gpr_regno): ... this.
19858         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
19859         variables.
19860         (nds32_initial_elimination_offset): Likewise.
19861         (nds32_expand_prologue): Likewise.
19862         (nds32_expand_epilogue): Likewise.
19863         (nds32_expand_prologue_v3push): Likewise.
19864         (nds32_expand_epilogue_v3pop): Likewise.
19865         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
19866         Adjust renamed variables.
19867         (nds32_output_stack_pop): Likewise.
19869 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19871         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
19872         code in comment.
19874 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
19876         PR rtl-optimization/65321
19877         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
19878         than shift mode.
19879         * var-tracking.c (use_narrower_mode): Likewise.
19881 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
19883         PR tree-optimization/65355
19884         * varasm.c (notice_global_symbol): Do not produce RTL.
19885         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
19886         anchor.
19887         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
19888         check for section anchors.
19890 2015-03-10  Alan Modra  <amodra@gmail.com>
19892         PR target/65286
19893         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
19894         to be single-arch by default.  Set cpu_is_64bit for powerpc64
19895         given --with-cpu=native.
19896         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
19897         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
19898         and powerpc64le.
19899         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
19900         rs6000_isa_flags rather than TARGET_64BIT.
19902 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
19903             Kaz Kojima  <kkojima@gcc.gnu.org>
19905         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
19907 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
19909         PR lto/65361
19910         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
19911         on a TREE_BINFO, instead use BINFO_TYPE.
19913 2015-03-09  Richard Biener  <rguenther@suse.de>
19915         PR middle-end/65270
19916         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
19917         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
19918         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
19919         of that.  When comparing dereferences compare alignment.
19920         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
19922 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
19924         * ipa-inline-analysis.c (check_callers): Check
19925         node->can_remove_if_no_direct_calls_and_refs_p.
19926         (growth_likely_positive): Reorganize to call
19927         can_remove_if_no_direct_calls_p later.
19928         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
19929         will_be_removed_from_program_if_no_direct_calls_p): Add
19930         will_inline parameter.
19931         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
19932         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
19933         Handle inliner case correctly.
19935 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19937         PR tree-optimization/63743
19938         * cfgexpand.c (reorder_operands): Also reorder if only second operand
19939         had its definition forwarded by TER.
19941 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
19943         PR lto/65316
19944         * ipa-utils.h (types_odr_comparable): Add strict argument.
19945         * ipa-devirt.c: Fix whitespace;
19946         (odr_hasher): Remove.
19947         (odr_name_hasher, odr_vtable_hasher): New hashers.
19948         (can_be_name_hashed_p): New predicate.
19949         (hash_type_name): remove.
19950         (hash_odr_name): New.
19951         (odr_name_hasher::hash): new.
19952         (can_be_vtable_hashed_p): New.
19953         (hash_odr_vtable): New.
19954         (odr_vtable_hasher::hash): New.
19955         (types_same_for_odr): Add strict parameter.
19956         (types_odr_comparable): Likewise.
19957         (odr_name_hasher::equal): New.
19958         (odr_vtable_hasher::equal): New.
19959         (odr_name_hasher::remove): New.
19960         (odr_hash_type): Change to hash_table<odr_name_hasher>.
19961         (odr_vtable_hash_type): New.
19962         (odr_vtable_hash): New.
19963         (odr_subtypes_equivalent_p): Do strict comparsion.
19964         (add_type_duplicate): Merge type names; cleanup; avoid type
19965         duplicates.
19966         (register_odr_type): Initialize vtable hash.
19967         (build_type_inheritance_graph): Likewise
19968         (get_odr_type): Reorg to use two hashes.
19969         (dump_possible_polymorphic_call_targets): Move sanity check after debug
19970         output.
19971         (ipa_devirt): Dump type_inheritance_graph.
19972         (types_same_for_odr): Add strict mode.
19974 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
19976         PR ipa/65334
19977         * cgraph.h (symtab_node): Add definition_alignment,
19978         can_increase_alignment_p and increase_alignment.
19979         * symtab.c (symtab_node::can_increase_alignment_p,
19980         increase_alignment_1, symtab_node::increase_alignment,
19981         symtab_node::definition_alignment): New.
19982         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
19983         can_increase_alignment_p.
19984         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
19985         * tree-vect-stmts.c (ensure_base_align): Likewise.
19986         * varasm.c (function_section_1): Use definition_alignment.
19987         (assemble_start_function): Likewise.
19988         (emit_local): likewise.
19989         (build_constant_desc): Likewsie.
19990         (output_constant_def_contents): Likewise.
19991         (place_block_symbol): Likewise.
19992         (output_object_block): Likewise.
19994 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
19996         PR ipa/65316
19997         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
19998         when outputting debug.
20000 2015-03-07  Marek Polacek  <polacek@redhat.com>
20001             Martin Uecker  <uecker@eecs.berkeley.edu>
20003         PR sanitizer/65280
20004         * doc/invoke.texi: Update description of -fsanitize=bounds.
20006 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
20008         * tree-ssa-phiopt.c (neg_replacement): Remove.
20009         (tree_ssa_phiopt_worker): Remove negate optimization.
20011 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
20013         PR ipa/65302
20014         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
20016 2015-03-06  Richard Biener  <rguenther@suse.de>
20018         PR middle-end/64928
20019         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
20020         and liveout_obstack members.
20021         (calculate_live_on_exit): Remove.
20022         (calculate_live_ranges): Change declaration.
20023         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
20024         (new_tree_live_info): Adjust.
20025         (calculate_live_ranges): Delete livein when not wanted.
20026         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
20027         Deal with partly deleted live info.
20028         (loe_visit_block): Remove temporary bitmap by using
20029         bitmap_ior_and_compl_into.
20030         (live_worklist): Adjust accordingly.
20031         (calculate_live_on_exit): Make static.
20032         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
20033         we do not need livein.
20035 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
20037         * real.c (real_from_string): Fix typo in assertion.
20039 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
20041         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
20042         the patch.
20044 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
20046         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
20048 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
20050         PR target/64342
20051         * lra-assigns.c (find_hard_regno_for): Rename to
20052         find_hard_regno_for_1.  Add a new parameter.
20053         (find_hard_regno_for): New function using find_hard_regno_for_1.
20055 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20057         PR rtl-optimization/65067
20058         * expmed.c (store_bit_field, extract_bit_field): Reworked the
20059         strict volatile bitfield handling.
20061 2015-03-05  Martin Liska  <mliska@suse.cz>
20063         PR ipa/65318
20064         * ipa-icf.c (sem_variable::equals): Compare variables types.
20066 2015-03-05  Richard Henderson  <rth@redhat.com>
20068         PR target/65121
20069         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
20070         correctly check weak symbol binding.
20072 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
20074         PR middle-end/65315
20075         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
20076         needed alignment.
20078 2015-03-05  Martin Liska  <mliska@suse.cz>
20080         * ipa-inline.c (inline_small_functions): Set default value to
20081         prevent warning during bootstrap.
20082         * tree.h: Add pragma guard that ignores false positives during
20083         bootstrap.
20085 2015-03-05  Richard Biener  <rguenther@suse.de>
20087         PR tree-optimization/65310
20088         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
20089         Properly preserve alignment of the base of the access.
20091 2015-03-05  Richard Biener  <rguenther@suse.de>
20093         PR ipa/65270
20094         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
20095         Compare dependence info.
20097 2015-03-05  Richard Biener  <rguenther@suse.de>
20099         PR middle-end/65233
20100         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
20101         tree-into-ssa.h.
20102         (walk_ssa_copies): Revert last chage.  Instead do not walk
20103         SSA names registered for SSA update.
20105 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
20107         PR ipa/65270
20108         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
20109         vtable references for their containing type.
20110         (sem_function::equals_wpa): Compare TYPE_RESTRICT
20111         and type attributes.
20113 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
20115         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
20116         before negating it.
20117         * stor-layout.c (finalize_record_size): Revert latest change.
20119 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
20121         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
20123 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
20125         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
20126         for correct comdat handling.
20127         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
20128         Likewise.
20129         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
20130         (used_from_object_file_p_worker): Remove.
20131         (cgraph_node::only_called_directly_or_alised): Add
20132         used_from_object_file_p.
20133         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
20134         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
20135         can_remove_if_no_direct_calls_and_refs_p.
20137 2015-03-04  Nick Clifton  <nickc@redhat.com>
20139         * config/rl78/rl78.h (enum reg_class): Remove real registers from
20140         General register class.
20141         * config/rl78/rl78-real.md: Replace general register constraints
20142         with real+virtual register constraints.
20144 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20146         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
20147         from checking for -mhtm option.
20149 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
20151         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
20152         (struct ipa_sra_check_caller_data): Add has_thunk field.
20153         (ipa_sra_check_caller): Check for thunk.
20154         (ipa_sra_preliminary_function_checks): Give up on function with
20155         thunks.
20156         (ipa_early_sra): Use call_for_symbol_and_aliases.
20158 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
20160         PR target/65249
20161         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
20162         called for __stack_chk_guard symbol.
20164 2015-03-03  DJ Delorie  <dj@redhat.com>
20166         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
20167         inc/dec.
20168         (*addhi3_real): Likewise.
20169         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
20170         pattern to match incrementing memory.
20171         * config/rl78/predicates.md (rl78_1_2_operand): New.
20172         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
20173         it's the same and only mem.
20174         (rl78_alloc_physical_registers_op2): If there's effectively only
20175         one MEM, transcode it into HL.
20176         (rl78_far_p): Reject addresses that aren't legitimate.
20178 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
20180         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
20181         negating it.
20183         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
20185 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
20187         Implement call0 ABI for xtensa
20188         * config/xtensa/constraints.md ("a" constraint): Include stack
20189         pointer in case of call0 ABI.
20190         ("q" constraint): Make empty in case of call0 ABI.
20191         ("D" constraint): Include stack pointer in case of call0 ABI.
20192         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
20193         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
20194         prototypes.
20195         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
20196         variable.
20197         (xtensa_regno_to_class): Make it a local variable in the
20198         function xtensa_regno_to_class.
20199         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
20200         macro, function prototype and implementation.
20201         (reg_nonleaf_alloc_order): Make it a local variable in the
20202         function order_regs_for_local_alloc.
20203         (xtensa_conditional_register_usage): New function.
20204         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
20205         (xtensa_valid_move): Allow direct moves to stack pointer
20206         register in call0 ABI.
20207         (xtensa_setup_frame_addresses): Only spill register windows in
20208         windowed ABI.
20209         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
20210         call0 ABI respectively.
20211         (xtensa_function_arg_1): Only mark a7 register for copying in
20212         windowed ABI.
20213         (xtensa_call_save_reg): New function.
20214         (compute_frame_size): Add space for callee saved register
20215         storage to the frame size in call0 ABI.
20216         (xtensa_expand_prologue): Generate code to set up stack frame
20217         and save callee-saved registers in call0 ABI.
20218         (xtensa_expand_epilogue): New function.
20219         (xtensa_set_return_address): New function.
20220         (xtensa_return_addr): Calculate return address in call0 ABI.
20221         (xtensa_builtin_saveregs): Only mark a7 register for copying and
20222         emit copying code in windowed ABI.
20223         (order_regs_for_local_alloc): Add preferred register allocation
20224         order for non-leaf function in call0 ABI.
20225         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
20226         (xtensa_asm_trampoline_template): Add trampoline generation for
20227         call0 ABI.
20228         (xtensa_trampoline_init): Add trampoline initialization for
20229         call0 ABI.
20230         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
20231         functions.
20232         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
20233         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
20234         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
20235         ABI call-used registers.
20236         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
20237         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
20238         call0 ABI.
20239         (REG_CLASS_CONTENTS): Include all registers into the preferred
20240         reload registers set, adjust the set in the
20241         xtensa_conditional_register_usage.
20242         (xtensa_regno_to_class): Drop variable declaration.
20243         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
20244         function.
20245         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
20246         respectively.
20247         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
20248         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
20249         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
20250         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
20251         location in call0 ABI.
20252         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
20253         stack adjustment size when handling exception.
20254         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
20255         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
20256         definitions.
20257         ("return" pattern): Generate ret.n/ret in call0 ABI.
20258         ("epilogue" pattern): Expand epilogue.
20259         ("nonlocal_goto" pattern): Use default in call0 ABI.
20260         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
20261         emit eh_set_a0_* depending on ABI.
20262         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
20263         ("eh_set_a0_call0", "blockage"): New patterns.
20265 2015-03-03  Martin Liska  <mliska@suse.cz>
20267         PR ipa/65287
20268         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
20270 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
20272         PR 65138/target
20273         * config/rs6000/rs6000-tables.opt: Regenerate table.
20275 2015-03-03  Renlin Li  <renlin.li@arm.com>
20277         * doc/md.texi (@item ^): Change ? into ^.
20279 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
20281         * doc/tm.texi: Regenerated.
20283 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
20285         * builtins.c (expand_builtin_return_addr): Add
20286         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
20287         surrounding #ifdef.
20288         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
20289         definition to 1.
20290         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
20291         Likewise.
20292         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
20293         undefined.
20294         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
20295         paragraph.
20297 2015-03-03  Martin Jambor  <mjambor@suse.cz>
20298             Eric Botcazou  <ebotcazou@adacore.com>
20300         * tree-sra.c (ipa_sra_check_caller_data): New type.
20301         (has_caller_p): Removed.
20302         (ipa_sra_check_caller): New function.
20303         (ipa_sra_preliminary_function_checks): Use it.
20305 2015-03-03  Martin Liska  <mliska@suse.cz>
20307         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
20308         instead of if branch.
20310 2015-03-03  Martin Liska  <mliska@suse.cz>
20312         PR ipa/65282
20313         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
20315 2015-03-23  Jeff Law  <law@redhat.com>
20317         PR tree-optimization/65241
20318         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
20319         hash table if INSERT is true.
20321 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
20323         PR target/65296
20324         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
20326 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
20328         PR target/64331
20329         * config/avr/avr.c (context.h, tree-pass.h): Include them.
20330         (avr_pass_data_recompute_notes): New static variable.
20331         (avr_pass_recompute_notes): New class.
20332         (avr_register_passes): New static function.
20333         (avr_option_override): Call it.
20335 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
20337         Fix various problems with specs file generation.
20339         PR target/65296
20340         * config.gcc (extra_gcc_objs) [avr]: Remove.
20341         * config/avr/driver-avr.c: Remove file.
20342         * config/avr/t-avr (driver-avr.o): Remove rule.
20343         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
20344         INCLUDES to build.  Depend on TM_H.
20345         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
20346         build warnings.  Fix non-matching types and non-existing %-codes.
20347         (tm.h): Include.
20348         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
20349         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
20350         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
20351         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
20352         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
20353         (LIBGCC_SPEC): Remove definitions.
20355 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
20357         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
20358         to create a register in testing mode.
20360 2015-03-03  Martin Liska  <mliska@suse.cz>
20361             Jan Hubicka  <hubicka@ucw.cz>
20363         PR ipa/65263
20364         * cgraph.c (cgraph_node::has_thunk_p): New function.
20365         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
20366         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
20367         (sem_function::merge): Assert is changed.
20369 2015-03-03  Martin Liska  <mliska@suse.cz>
20370             Martin Jambor  <mjambor@suse.cz>
20372         PR ipa/65087
20373         * ipa-icf.c (sem_item_optimizer::execute): Change function
20374         return value to boolean.
20375         (sem_item_optimizer::merge_classes): Likewise.
20376         (ipa_icf_driver): Return TODO_remove_functions in case there's
20377         a merge operation processed.
20378         * ipa-icf.h: Change function return value to boolean.
20380 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
20382         PR 65138/target
20383         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
20384         processor type for 64-bit little endian PowerPC.
20386         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
20387         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
20388         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
20389         printing built-in mask so it does not pass NULL pointers.
20391         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
20392         -mcpu=powerpc64le.
20394 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
20396         PR target/58158
20397         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
20398         !ISA_HAS_FP_CONDMOVE.
20400 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
20402         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
20403         reload_completed.
20405 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
20407         * doc/invoke.texi (Options for Code Generation Conventions):
20408         Fix URL of DSO paper.
20410 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
20412         PR ipa/65130
20413         * ipa-inline.c (check_callers): Looks for recursion.
20414         (inline_to_all_callers): Give up on uninlinable or recursive edges.
20415         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
20416         summary of inline clones.
20417         (do_estimate_growth_1): Fix recursion check.
20419 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
20421         PR ipa/64988
20422         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
20423         comdat groups.
20425 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
20426             Aldy Hernandez  <aldyh@redhat.com>
20428         PR lto/65276
20429         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
20430         when checking TYPE_BINFO.
20432 2015-03-02  Richard Biener  <rguenther@suse.de>
20434         PR ipa/65270
20435         * ipa-icf-gimple.c: Include builtins.h.
20436         (func_checker::compare_memory_operand): Compare base alignment.
20438 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
20440         PR target/65184
20441         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
20442         are never passed by reference.
20444 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
20446         PR target/65183
20447         * tree-chkp.c (chkp_check_lower): Don't check against
20448         zero bounds for already instrumented functions.
20449         (chkp_check_upper): Likewise.
20450         (chkp_fini): Clean pass local data to avoid wrong reusage.
20452 2015-02-28  Martin Liska  <mliska@suse.cz>
20453             Jan Hubicka  <hubicka@ucw.cz>
20455         * ipa-icf.c (sem_variable::equals): Improve debug output;
20456         get variable constructor.
20457         (sem_variable::parse): Do not filter out too early; give up on
20458         volatile and register vars.
20459         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
20460         variables.
20461         * ipa-icf.h (sem_variable::init): Do not set ctor.
20462         (sem_variable::ctor): Remove.
20464 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
20466         PR middle-end/65233
20467         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
20469 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
20471         * ipa-icf.c: Include stor-layout.h
20472         (sem_function::compare_cgraph_references): Rename to ...
20473         (sem_item::compare_cgraph_references): ... this one.
20474         (sem_variable::equals_wpa): New function
20475         (sem_variable::equals): Do not check stuff already verified by
20476         equals_wpa.
20477         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
20478         * ipa-icf.h (sem_item): Add compare_cgraph_references.
20479         (sem_function): Remove compare_cgraph_references.
20480         (sem_variable): Turns equals_wpa into non-inline.
20482 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
20484         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
20485         (sem_item::add_expr): New function.
20486         (sem_function::hash_stmt): Handle operands of most statements.
20487         (sem_variable::get_hash): Hash the actual constructor.
20488         * ipa-icf.h (sem_item): Add add_expr.
20489         (sem_function): Update prototype of hash_stmt
20491 2015-02-28  Martin Liska  <mliska@suse.cz>
20492             Jan Hubicka  <hubicka@ucw.cz>
20494         PR ipa/65245
20495         * ipa-icf-gimple.c (func_checker::compare_function_decl):
20496         Remove.
20497         (func_checker::compare_variable_decl): Skip symtab vars.
20498         (func_checker::compare_cst_or_decl): Update.
20499         * ipa-icf.c (sem_function::parse): Do not consider aliases.
20500         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
20501         use correct symtab predicates.
20502         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
20503         (sem_variable::parse):  Update comment.
20504         (sem_item_optimizer::build_graph): Consider ultimate aliases
20505         for references.
20507 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
20509         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
20510         of OBJ_TYPE_REF.
20512 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
20514         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
20515         (sem_variable::merge) Likewise.
20517 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
20519         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
20520         target; also match flag_ipa_devirt.
20522 2015-03-01  Martin Liska  <mliska@suse.cz>
20523             Jan Hubicka  <hubicka@ucw.cz>
20525         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
20526         Validate variable alignment.
20527         * ipa-icf.c (sem_function::equals_private): Be more precise
20528         about non-common function attributes.
20529         (sem_variable::equals): Likewise.
20531 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
20533         PR ipa/65237
20534         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
20535         across COMDAT group boundary.
20537 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
20539         PR ipa/65232
20540         * ipa-icf.c (clear_decl_rtl): New function.
20541         (sem_function::merge): Clear RTL before forming alias.
20542         (sem_variable::merge): Clear RTL before forming alias.
20544 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
20546         PR ipa/65236
20547         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
20549 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
20551         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
20552         to neon_to_gp<q>.
20554 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
20556         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
20557         a typo in the description.
20559 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
20561         PR target/64317
20562         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
20563         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
20564         * lra-constraints.c: Include "params.h".
20565         (EBB_PROBABILITY_CUTOFF): Use
20566         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
20567         (lra_inheritance): Use '<' instead of '<=' for
20568         EBB_PROBABILITY_CUTOFF.
20569         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
20570         Document change.
20572 2015-02-27  Martin Liska  <mliska@suse.cz>
20574         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
20575         vector length condition.
20577 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
20579         * doc/extend.texi (x86 transactional memory intrinsics):
20580         Reorganize discussion of _xbegin.  Clarify that the return
20581         value is a bit mask.  Expand example and move to end of section.
20583 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
20584             Aldy Hernandez  <aldyh@redhat.com>
20586         PR rtl-optimization/65220
20587         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
20589 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
20591         PR target/65032
20592         * lra-remat.c (update_scratch_ops): New.
20593         (do_remat): Call it.
20594         * lra.c (lra_register_new_scratch_op): New. Take code from ...
20595         (remove_scratches): ... here.
20596         * lra-int.h (lra_register_new_scratch_op): New prototype.
20598 2015-02-27  Marek Polacek  <polacek@redhat.com>
20600         PR c/65040
20601         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
20602         -Wformat-signedness anymore.
20604 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20606         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
20607         function.
20608         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
20610 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20612         * config/s390/s390.c (enum s390_builtin):
20613         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
20614         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
20615         (s390_init_builtins): Generate new builtin functions.
20616         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
20617         (s390_sfpc, s390_efpc): New pattern definitions.
20619 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20621         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
20622         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
20623         (s390_builtin_decls): New array.
20624         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
20625         (s390_builtin_decl): New function.
20626         (TARGET_BUILTIN_DECL): Define macro.
20628 2015-02-27  Richard Biener  <rguenther@suse.de>
20630         PR middle-end/63175
20631         * builtins.c (get_object_alignment_2): Make sure to re-apply
20632         the ANDed mask after recursing to its operand gets us a new
20633         misalignment bit position.
20635 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
20636             Martin Liska  <mliska@suse.cz>
20638         PR bootstrap/65150
20639         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
20640         Use address_matters_p.
20641         (redirect_all_callers, set_addressable): New functions.
20642         (sem_function::merge): Reorganize and fix merging issues.
20643         (sem_variable::merge): Likewise.
20644         (sem_variable::compare_sections): Remove.
20645         * common.opt (fmerge-all-constants, fmerge-constants): Remove
20646         Optimization flag.
20647         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
20648         redirect them.
20649         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
20650         decl is used.
20651         (address_matters_1): New function.
20652         (symtab_node::address_matters_p): New function.
20653         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
20654         check for merged flag.
20655         * cgraph.h (address_matters_p): Declare.
20656         (symtab_node::address_taken_from_non_vtable_p): Remove.
20657         (symtab_node::address_can_be_compared_p): New method.
20658         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
20659         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
20660         Remove.
20661         (comdat_can_be_unshared_p_1) Use address_matters_p.
20662         (update_vtable_references): Fix formating.
20663         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
20664         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
20665         * cgraphclones.c: Preserve merged and icf_merged flags.
20667 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
20669         * doc/extend.texi (Function Attributes): Fix spelling and typos.
20670         (Label Attributes): Likewise.
20671         (Cilk Plus Builtins): Likewise.
20672         (ARC SIMD Built-in Functions): Likewise.
20673         (ARM C Language Extensions (ACLE)): Likewise.
20674         (PowerPC Built-in Functions): Likewise.
20675         (PowerPC Hardware Transactional Memory Built-in Functions):
20676         Likewise.
20678 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
20680         PR tree-optimization/65216
20681         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
20682         new stmt and new SSA_NAME for lhs whenever the arguments have
20683         changed and weren't just swapped.  Fix comment typo.
20685         PR tree-optimization/65215
20686         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
20687         for PDP endian targets.
20688         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
20689         Fix up formatting issues.
20690         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
20691         size is smaller than the original, adjust MEM_REF offset by the
20692         difference of sizes.  Use is_gimple_mem_ref_addr instead of
20693         is_gimple_min_invariant test to avoid adding address temporaries.
20695 2015-02-26  Martin Liska  <mliska@suse.cz>
20696             Jan Hubicka  <hubicka@ucw.cz>
20698         PR ipa/64693
20699         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
20700         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
20701         (sem_item_optimizer::process_cong_reduction): Include division by
20702         sensitive references.
20703         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
20704         * ipa-ref.c (ipa_ref::address_matters_p): New function.
20705         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
20707 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
20709         PR target/65192
20710         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
20711         Remove.
20712         * config/avr/avr.c: Same.
20713         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
20714         Refuse any constant address not in 0..0xbf.
20715         * config/avr/avr.md (*mov<mode>, *movsf): Remove
20716         tiny_valid_direct_memory_access_range from insn conditions.
20717         (mov<mode>): Don't special-case expansion of avrtiny addresses.
20719 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
20721         PR target/61142
20722         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
20723         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
20724         * config/sh/predicates.md (const_logical_operand): New predicate.
20725         * config/sh/sh.md: Add new peephole2 patterns.
20727 2015-02-26  Marek Polacek  <polacek@redhat.com>
20729         PR ipa/65008
20730         * ipa-inline.c (early_inliner): Recompute inline parameters.
20732 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20734         PR target/65171
20735         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
20736         instructions with TImode operands are included in the analysis.
20738 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
20740         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
20741         of an EDGE_FSM_THREAD.
20743 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
20745         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
20747 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
20749         PR debug/46102
20750         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
20752 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
20754         PR tree-optimization/65048
20755         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
20756         (thread_through_all_blocks): Call valid_jump_thread_path.
20757         Remove invalid FSM jump-thread paths.
20759 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
20761         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
20762         (ipa_write_optimization_summaries): Likewise.
20763         * tree-streamer.h: Include data-streamer.h.
20764         (streamer_mode_table): Declare extern variable.
20765         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
20766         * lto-streamer-out.c (lto_output_init_mode_table,
20767         lto_write_mode_table): New functions.
20768         (produce_asm_for_decls): Call lto_write_mode_table when streaming
20769         offloading LTO.
20770         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
20771         (lto_create_simple_input_block): Add mode_table argument to the
20772         lto_input_block constructors.
20773         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
20774         Likewise.
20775         * data-streamer-in.c (string_for_index): Likewise.
20776         * ipa-inline-analysis.c (inline_read_section): Likewise.
20777         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
20778         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
20779         * lto-streamer-in.c (lto_read_body_or_constructor,
20780         lto_input_toplevel_asms): Likewise.
20781         (lto_input_mode_table): New function.
20782         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
20783         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
20784         Use bp_pack_machine_mode.
20785         * real.h (struct real_format): Add name field.
20786         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
20787         (class lto_input_block): Add mode_table member.
20788         (lto_input_block::lto_input_block): Add mode_table_ argument,
20789         initialize mode_table.
20790         (struct lto_file_decl_data): Add mode_table field.
20791         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
20792         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
20793         unpack_ts_decl_common_value_fields,
20794         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
20795         * tree-streamer.c (streamer_mode_table): New variable.
20796         * real.c (ieee_single_format, mips_single_format,
20797         motorola_single_format, spu_single_format, ieee_double_format,
20798         mips_double_format, motorola_double_format,
20799         ieee_extended_motorola_format, ieee_extended_intel_96_format,
20800         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
20801         ibm_extended_format, mips_extended_format, ieee_quad_format,
20802         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
20803         decimal_single_format, decimal_double_format, decimal_quad_format,
20804         ieee_half_format, arm_half_format, real_internal_format): Add name
20805         field.
20806         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
20808 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
20810         PR target/65161
20811         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
20812         reordering for selective scheduling.
20814 2015-02-26  Terry Guo  <terry.guo@arm.com>
20816         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
20817         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
20818         (arm_arch_no_volatile_ce): Declare new global variable.
20819         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
20820         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
20821         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
20822         (TARGET_NO_VOLATILE_CE): New macro.
20823         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
20824         volatile memory access in IT block
20826 2015-02-25  Kai Tietz  <ktietz@redhat.com>
20828         PR tree-optimization/61917
20829         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
20830         that reduc_def_stmt is null.
20832 2015-02-25  Martin Liska  <mliska@suse.cz>
20834         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
20835         hard register variables.
20837 2015-02-25  Kai Tietz  <ktietz@redhat.com>
20839         PR target/64212
20840         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
20841         (symtab::noninterposable_alias): Likewise.
20843 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
20845         PR target/65167
20846         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
20847         bounds registers.
20848         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
20850 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
20852         PR target/64997
20853         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
20854         as split condition; force split via '#' in output pattern.
20856 2015-02-25  Richard Biener  <rguenther@suse.de>
20857             Kai Tietz  <ktietz@redhat.com>
20859         PR tree-optimization/61917
20860         * tree-vect-loop.c (vectorizable_reduction): Allow
20861         vect_internal_def without reduction to exit graceful.
20863 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
20865         PR target/65196
20866         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
20867         only with NONDEBUG_INSN_P.
20869 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
20871         Use variadic macros with avr-log.c.
20873         * config/avr/avr-protos.h (avr_vdump): New prototype.
20874         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
20875         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
20876         * config/avr/avr-log.c: Adjust comments.
20877         (avr_vdump): New function.
20878         (avr_vadump): Pass caller as 2nd argument instead of format string.
20879         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
20880         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
20882 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
20884         PR lto/64374
20885         * target.def (target_option_stream_in): New target hook.
20886         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
20887         targetm.target_option.post_stream_in if non-NULL.
20888         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
20889         * doc/tm.texi: Updated.
20890         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
20891         function.
20892         (TARGET_OPTION_POST_STREAM_IN): Redefine.
20894 2015-02-24  Jeff Law  <law@redhat.com>
20896         PR target/65117
20897         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
20898         of operand 0 and operand 2.
20899         (zero_cost_loop_end, loop_end): Similarly.
20901 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
20903         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
20904         CXX_MEM_STAT_INFO.
20906 2015-02-24  DJ Delorie  <dj@redhat.com>
20908         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
20909         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
20910         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
20911         instead of hardcoding SImode.
20913 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
20915         * omp-low.c (create_omp_child_function): Tag entrypoint
20916         functions with a special attribute.
20918 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
20920         PR target/65058
20921         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
20923 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
20925         PR rtl-optimization/65123
20926         * lra-remat.c (operand_to_remat): Check hard regs in insn
20927         definition too.
20929 2015-02-24  Nick Clifton  <nickc@redhat.com>
20931         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
20932         to the assembler.
20934 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
20936         PR libgomp/64625
20937         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
20938         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
20939         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
20940         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
20941         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
20942         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
20943         (BUILT_IN_GOACC_PARALLEL): Specify as
20944         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
20945         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
20946         * builtin-types.def
20947         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
20948         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
20949         Remove function types.
20950         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
20951         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
20952         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
20953         New function types.
20955 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
20957         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
20959 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
20961         PR tree-optimization/65170
20962         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
20963         if val[1] < 0, clear also val[2] and return 3.
20965 2015-02-24  Alan Modra  <amodra@gmail.com>
20967         PR target/65172
20968         * config/rs6000/rs6000.c (get_memref_parts): Only return true
20969         when *base is a reg.  Handle nested plus addresses.  Simplify
20970         pre_modify test.
20972 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
20974         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
20975         use natural alignment when optimizing for size.
20977 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
20979         PR target/65153
20980         * config/sh/sh.md (movsicc_true+3): Remove peephole.
20981         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
20982         * config/sh/sh.c (replace_n_hard_rtx): Remove.
20984 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
20986         PR fortran/63427
20987         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
20988         too big for a wide_int.  Implement missing wrapping operation.
20990 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
20992         PR target/65163
20993         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
20994         instead of const_int 4294901760.
20996 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
20998         * config/avr/t-avr: Fix typo in comment.
21000 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
21002         * doc/rtl.texi (fma): Clarify documentation.
21004 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
21006         PR debug/58123
21007         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
21008         over input_location.
21010 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
21012         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
21013         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
21014         restrict alignments to absolute_biggest_alignment.
21015         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
21016         Define.
21017         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
21018         * doc/tm.texi: Regenerate.
21019         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
21021 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
21023         PR target/64172
21024         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
21026 2015-02-20  Richard Biener  <rguenther@suse.de>
21028         PR tree-optimization/65136
21029         * tree-ssa-propagate.c: Include cfgloop.h.
21030         (replace_phi_args_in): Avoid replacing loop latch edge PHI
21031         arguments with constants.
21033 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
21034             Martin Liska  <mliska@suse.cz>
21036         PR target/63892
21037         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
21038         don't try to create_thunk if stdarg_p.  If
21039         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
21040         redirect_callers if possible.
21041         (sem_item_optimizer::execute): Call unregister_hooks here...
21042         (ipa_icf_driver): ... instead of here.
21044 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21046         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
21047         Mark operand 0 as earlyclobber in 2nd alternative.
21048         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
21049         Write negated shift amount into QI lowpart operand 0 and use it
21050         in the shift step.
21051         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
21053 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
21055         * cgraph.h (clone_function_name_1): Declare.
21056         * cgraphclones.c (clone_function_name_1): New function.
21057         (clone_function_name): Use it.
21058         * lto-partition.c: Include "stringpool.h".
21059         (must_not_rename, maybe_rewrite_identifier)
21060         (validize_symbol_for_target): New static functions.
21061         (privatize_symbol_name): Use must_not_rename.
21062         (promote_symbol): Call validize_symbol_for_target.
21063         (lto_promote_cross_file_statics): Likewise.
21064         (lto_promote_statics_nonwpa): Likewise.
21066 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
21068         PR target/64452
21069         * config/avr/avr.md (pushhi_insn): New insn.
21070         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
21072 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
21073             Jakub Jelinek  <jakub@redhat.com>
21075         * tree-streamer.c (preload_common_nodes): Don't preload
21076         TI_VA_LIST* for offloading.
21077         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
21078         in_lto_p.
21080 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
21082         * config/pa/pa.c (pa_emit_move_sequence): Always force
21083         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
21084         note on insn.
21086         * config/pa/pa.c (pa_reloc_rw_mask): New function.
21087         (TARGET_ASM_RELOC_RW_MASK): Define.
21088         (pa_cannot_force_const_mem): Revert previous change.
21090 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
21091             Jan Hubicka  <hubicka@ucw.cz>
21093         PR ipa/65028
21094         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
21095         across jump functions.
21097 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
21099         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
21101 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
21103         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
21105 2015-02-19  Richard Henderson  <rth@redhat.com>
21107         PR middle-end/65074
21108         * varasm.c (default_binds_local_p_2): Don't test node->definition;
21109         test DECL_EXTERNAL independent of symtab_node.
21111 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
21113         PR lto/65012
21114         * varpool.c (varpool_node::get_constructor): Return early
21115         if this->lto_file_data is NULL.
21117 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
21119         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
21120         (rank_for_schedule_debug): Update.
21121         (ready_sort): Make static.  Move sorting logic to ...
21122         (ready_sort_debug, ready_sort_real): New static functions.
21123         (schedule_block): Sort both debug insns and real insns in preparation
21124         for ready list trimming.  Improve debug output.
21125         * sched-int.h (ready_sort): Remove global declaration.
21127 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
21129         * ipa-icf.c (sem_function::equals_private): Adjust.
21130         (sem_function::bb_dict_test): Take a vec<int> * instead of
21131         auto_vec<int>.
21132         * ipa-icf.h (bb_dict_test): Likewise.
21134 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
21136         PR gcov-profile/64634
21137         * tree-eh.c (frob_into_branch_around): Fix up typos
21138         in function comment.
21139         (lower_catch): Put eh_seq resulting from EH lowering of
21140         the cleanup sequence after the cleanup rather than before it.
21142 2015-02-18  Tom de Vries  <tom@codesourcery.com>
21144         * common.opt (fstdarg-opt): New option.
21145         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
21146         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
21147         (@item -fstdarg-opt): New item.
21149 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
21151         PR target/65064
21152         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
21153         for common symbols.
21155 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
21157         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
21158         insn-modes.h.
21159         (ALL_HOST_OBJS): Add mkoffload.o.
21160         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
21162 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
21164         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
21165         (compare_virtual_tables): Be smarter about skipping typeinfos;
21166         do sane output on virtual table table mismatch.
21167         (warn_odr): Be ready for forward declarations of enums;
21168         output sane info on base mismatch and virtual table mismatch.
21169         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
21170         when only one type is polymorphic.
21171         (get_odr_type): Fix hashtable corruption.
21172         (dump_odr_type): Dump mangled names.
21174 2015-02-18  Richard Biener  <rguenther@suse.de>
21176         PR tree-optimization/65063
21177         * tree-predcom.c (determine_unroll_factor): Return 1 if we
21178         have replaced looparound PHIs.
21180 2015-02-18  Martin Liska  <mliska@suse.cz>
21182         * lto-streamer.c (lto_streamer_init): Encapsulate
21183         streamer_check_handled_ts_structures with checking macro.
21185 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
21187         PR ipa/65087
21188         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
21189         section if !implicit_section.
21190         (cgraph_node::create_version_clone_with_body): Likewise.
21191         * trans-mem.c (ipa_tm_create_version): Likewise.
21193 2015-02-18  Richard Biener  <rguenther@suse.de>
21195         PR tree-optimization/62217
21196         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
21197         into BIVs.
21199 2015-02-18  Marek Polacek  <polacek@redhat.com>
21201         PR sanitizer/65081
21202         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
21203         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
21204         is in range [-16K, -1].  Don't issue run-time error if
21205         (ptr > ptr + offset).
21207 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
21209         * doc/install.texi (nvptx-*-none): New section.
21210         * doc/invoke.texi (Nvidia PTX Options): Likewise.
21211         * config/nvptx/nvptx.opt: Update.
21213         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
21214         (access_check): New functions, copied from
21215         config/i386/intelmic-mkoffload.c.
21216         (main): For non-installed testing, look in all COMPILER_PATHs for
21217         GCC_INSTALL_NAME.
21219         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
21221 2015-02-18  Andrew Pinski  <apinski@cavium.com>
21222             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
21224         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
21225         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
21227 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
21229         * ipa-visibility.c (function_and_variable_visibility): Only
21230         check locality if node is not already local.
21231         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
21232         call_for_symbol_and_aliases instead of
21233         call_for_symbol_thunks_and_aliases.
21234         (ipa_inline): Likewise.
21235         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
21236         first walk aliases.
21237         * ipa.c (symbol_table::remove_unreachable_nodes): Use
21238         call_for_symbol_and_aliases.
21239         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
21240         (ipa_propagate_frequency_1): Use it; use opt_for_fn
21241         (ipa_propagate_frequency): Update.
21242         (ipa_profile): Add opt_for_fn gueards.
21244 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
21246         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
21247         * doc/invoke.texi (SH options): Document it.
21248         * config/sh/sh.c (sh_insn_length_adjustment): Check
21249         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
21251 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
21253         * common.opt (fipa-cp-alignment): New.
21254         * ipa-cp.c (ipcp_store_alignment_results): Check
21255         flag_ipa_cp_alignment.
21256         * opts.c (default_options_table): Enable -fipa-cp-alignment for
21257         -O2.
21258         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
21259         * doc/invoke.texi: Document -fipa-cp-alignment.
21261 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
21263         PR target/64793
21264         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
21265         to nil.  Adjust comments.
21267 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
21269         * ipa-visibility.c (function_and_variable_visibility): Only
21270         check locality if node is not already local.
21271         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
21272         call_for_symbol_and_aliases instead of
21273         call_for_symbol_thunks_and_aliases.
21274         (ipa_inline): Likewise.
21275         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
21276         first walk aliases.
21277         * ipa.c (symbol_table::remove_unreachable_nodes): Use
21278         call_for_symbol_and_aliases.
21279         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
21280         (ipa_propagate_frequency_1): Use it; use opt_for_fn
21281         (ipa_propagate_frequency): Update.
21282         (ipa_profile): Add opt_for_fn guards.
21284 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
21286         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
21287         skipping of "strange" tokens.
21289 2015-02-17  Jeff Law  <law@redhat.com>
21291         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
21292         obsolete comment.
21294 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
21296         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
21297         as forcing a HARD_DEP between instructions, thereby
21298         disallowing rewriting to break dependencies.
21300 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
21302         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
21303         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
21304         variables in boundary that have no inlitalizer encoded and are
21305         not aliases.
21306         * varasm.c (default_binds_local_p_2): External definitions do not
21307         count as definitions here.
21309 2015-02-16  Jeff Law  <law@redhat.com>
21311         PR tree-optimization/64823
21312         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
21313         statements.
21314         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
21315         threading through blocks with PHIs, but no statements.
21316         (thread_through_normal_block): Distinguish between blocks where
21317         we did not process all the statements and blocks with no statements.
21319 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
21320             James Greenhalgh  <james.greenhalgh@arm.com>
21322         PR ipa/64963
21323         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
21324         section if not linkonce.  Fix up formatting.
21325         (cgraph_node::create_version_clone_with_body): Copy section.
21326         * trans-mem.c (ipa_tm_create_version): Likewise.
21328 2015-02-16  Richard Biener  <rguenther@suse.de>
21330         PR tree-optimization/65077
21331         * tree-ssa-structalias.c (get_constraint_for_1): Handle
21332         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
21333         (find_func_aliases): Allow float values to carry pointers again.
21335 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
21337         * doc/install.texi (Specific): Reorder targets list to put
21338         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
21339         from the top menu.
21341 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
21342             David Edelsohn  <dje.gcc@gmail.com>
21344         PR target/65058
21345         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
21346         mapping class to external variable or function reference.
21347         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
21348         mapping class.
21350 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
21352         PR target/53348
21353         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
21354         ASM_WEAKEN_DECL if defined.
21356 2015-02-16  Richard Biener  <rguenther@suse.de>
21358         PR lto/65015
21359         * varasm.c (default_file_start): For LTO produced units
21360         emit <artificial> as file directive.
21362 2015-02-16  Richard Biener  <rguenther@suse.de>
21364         PR tree-optimization/63593
21365         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
21366         stmts and releasing SSA names until...
21367         (execute_pred_commoning): ... after processing all chains.
21369 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
21371         PR ipa/65059
21372         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
21373         external functions.
21375 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
21377         * doc/bugreport.texi: Adjust section titles throughout the file
21378         to use "Title Case".
21379         * doc/extend.texi: Likewise.
21380         * doc/gcov.texi: Likewise.
21381         * doc/implement-c.texi: Likewise.
21382         * doc/implement-cxx.texi: Likewise.
21383         * doc/invoke.texi: Likewise.
21384         * doc/objc.texi: Likewise.
21385         * doc/standards.texi: Likewise.
21386         * doc/trouble.texi: Likewise.
21388 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
21390         * cgraph.h (symtab_node::has_aliases_p): Simplify.
21391         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
21392         * tree.c (lookup_binfo_at_offset): Make static.
21393         (get_binfo_at_offset): Do not shadow offset; add explanatory
21394         comment.
21396 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
21398         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
21399         for all floading point loads and stores except those using a register
21400         index address.
21401         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
21402         to a register.
21404 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
21406         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
21407         (do_estimate_growth_1): Record if any uninlinable edge was seen.
21408         (estimate_growth): Handle uninlinable edges correctly.
21409         (check_callers): New.
21410         (growth_likely_positive): Handle aliases correctly.
21412 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
21414         * ipa-chkp.c: Use iterate_direct_aliases.
21415         * symtab.c (resolution_used_from_other_file_p): Move inline.
21416         (symtab_node::create_reference): Fix formating.
21417         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
21418         (symtab_node::iterate_reference): Move inline.
21419         (symtab_node::iterate_referring): Move inline.
21420         (symtab_node::iterate_direct_aliases): Move inline.
21421         (symtab_node::used_from_object_file_p_worker): Inline into ...
21422         (symtab_node::used_from_object_file_p): ... this one; move inline.
21423         (symtab_node::call_for_symbol_and_aliases): Move inline;
21424         use iterate_direct_aliases.
21425         (symtab_node::call_for_symbol_and_aliases_1): New method.
21426         (cgraph_node::call_for_symbol_and_aliases): Move inline;
21427         use iterate_direct_aliases.
21428         (cgraph_node::call_for_symbol_and_aliases_1): New method.
21429         (varpool_node::call_for_node_and_aliases): Rename to ...
21430         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
21431         use iterate_direct_aliases.
21432         (varpool_node::call_for_symbol_and_aliases_1): New method.
21433         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
21434         (ipa_discover_readonly_nonaddressable_var): Update.
21435         * ipa-devirt.c: Fix formating.
21436         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
21437         Move inline.
21438         (cgraph_node::call_for_symbol_and_aliases): Move inline.
21439         (cgraph_node::call_for_symbol_and_aliases_1): New function..
21440         * cgraph.h (used_from_object_file_p_worker): Remove.
21441         (resolution_used_from_other_file_p): Move inline.
21442         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
21443         (symtab_node::iterate_reference): Move inline.
21444         (symtab_node::iterate_referring): Move inline.
21445         (symtab_node::iterate_direct_aliases): Move inline.
21446         (symtab_node::used_from_object_file_p_worker): Inline into ...
21447         (symtab_node::used_from_object_file_p): Move inline.
21448         * tree-emutls.c (ipa_lower_emutls): Update.
21449         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
21450         (varpool_node::call_for_node_and_aliases): Remove.
21452 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
21454         PR tree-optimization/62209
21455         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
21456         op == range->exp, insert seq and gimplified code after labels
21457         instead of after the phi.
21459 2015-02-13  Jeff Law  <law@redhat.com>
21461         PR bootstrap/65060
21462         Revert my change for tree-optimization/64823.
21464 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
21466         PR tree-optimization/65053
21467         * tree-ssa-phiopt.c (value_replacement): When moving assign before
21468         cond, either reset VR on lhs or set it to phi result VR.
21470 2015-02-13  Jeff Law  <law@redhat.com>
21472         PR tree-optimization/64823
21473         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
21474         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
21475         threading through blocks with PHIs, but no statements.
21476         (thread_through_normal_block): Distinguish between blocks where
21477         we did not process all the statements and blocks with no statements.
21479         PR rtl-optimization/47477
21480         * match.pd (convert (plus/minus (convert @0) (convert @1): New
21481         simplifier to narrow arithmetic.
21483 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
21485         PR ipa/65028
21486         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
21487         polymorphic call info when type is not known to be preserved.
21489 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
21491         PR ipa/65028
21492         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
21493         (inline_call): Use it.
21495 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
21497         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
21498         GOMP_DEVICE_NVIDIA_PTX.
21500 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
21502         PR ipa/65034
21503         * stmt.c (emit_case_nodes): Use void_type_node instead of
21504         NULL_TREE as LABEL_DECL type.
21506 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
21508         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
21509         constraints.
21510         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
21511         symbolic references to data to be forced to constant memory on the
21512         SOM target.
21514 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
21516         PR tree-optimization/65002
21517         * tree-cfg.c (pass_data_fixup_cfg): Don't update
21518         SSA on start.
21519         * tree-sra.c (some_callers_have_no_vuse_p): New.
21520         (ipa_early_sra): Reject functions whose callers
21521         assume function is read only.
21523 2015-02-13  Richard Biener  <rguenther@suse.de>
21525         PR lto/65015
21526         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
21527         for LTO produced CUs.
21529 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
21531         PR tree-optimization/64705
21532         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
21533         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
21534         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
21535         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
21536         expand_simple_operations.
21538 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
21539             Richard Henderson  <rth@redhat.com>
21541         PR rtl/32219
21542         * cgraphunit.c (cgraph_node::finalize_function): Set definition
21543         before notice_global_symbol.
21544         (varpool_node::finalize_decl): Likewise.
21545         * varasm.c (default_binds_local_p_2): Rename from
21546         default_binds_local_p_1, add weak_dominate argument.  Use direct
21547         returns instead of assigning to local variable.  Unify varpool and
21548         cgraph paths via symtab_node.  Reject undef weak variables before
21549         testing visibility.  Reorder tests for simplicity.
21550         (default_binds_local_p): Use default_binds_local_p_2.
21551         (default_binds_local_p_1): Likewise.
21552         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
21553         via symtab_node.
21554         (default_elf_asm_output_external): Emit visibility when specified.
21556 2015-02-13  Alan Modra  <amodra@gmail.com>
21558         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
21559         code setting up r11 for out-of-line fp restore.
21561 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
21563         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
21564         (muser-mode): Likewise.
21566 2015-02-13  Alan Modra  <amodra@gmail.com>
21568         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
21569         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
21571 2015-02-12  David Howells  <dhowells@redhat.com>
21573         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
21574         warning.
21575         * tree-ssa-uninit.c (dump_predicates): Likewise.
21576         * opts.c (print_filtered_help): Likewise.
21578 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
21580         * dwarf2out.c (output_die): Use "%s", name instead of name to
21581         avoid -Wformat-security warning.
21583         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
21584         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
21585         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
21586         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
21588 2015-02-12  Jason Merrill  <jason@redhat.com>
21590         * common.opt (-flifetime-dse): New.
21592 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
21594         PR sanitizer/65019
21595         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
21597         PR tree-optimization/65014
21598         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
21599         use original second operand of arg0 or arg1 instead of
21600         that adjusted by STRIP_NOPS.
21602 2015-02-11  Jeff Law  <law@redhat.com>
21604         PR target/63347
21605         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
21606         that needs to be queued, just queue it for a single cycle.
21608 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
21610         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
21611         bodies of thunks; comment on why.
21612         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
21613         symbols are extern.
21615 2015-02-11  Richard Henderson  <rth@redhat.com>
21617         PR sanitize/65000
21618         * tree-eh.c (mark_reachable_handlers): Mark source and destination
21619         regions of __builtin_eh_copy_values.
21621 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
21623         PR middle-end/65003
21624         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
21625         ultimate alias is MEM with SYMBOL_REF satisfying
21626         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
21627         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
21629 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
21631         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
21632         "diagnostic-core.h".
21633         (main): Initialize progname, and call diagnostic_initialize.
21635         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
21636         instead of __OPENMP_TARGET__.
21638         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
21639         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
21640         hard-coding PTX_ID.
21642 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
21644         * doc/sourcebuild.texi (pie_enabled): Document.
21646 2015-02-11  Martin Liska  <mliska@suse.cz>
21648         PR ipa/64813
21649         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
21650         a return value for call to a function that is noreturn.
21652 2015-02-11  Richard Biener  <rguenther@suse.de>
21654         PR lto/65015
21655         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
21656         and -fresolution.
21658 2015-02-11  Andrew Pinski  <apinski@cavium.com>
21660         PR target/64893
21661         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
21662         Change the first argument type to size_type_node and add another
21663         size_type_node.
21664         (aarch64_simd_expand_builtin): Handle the new argument to
21665         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
21666         print an out when the first two arguments are not
21667         nonzero integer constants.
21668         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
21669         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
21671 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
21673         PR target/61925
21674         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
21675         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
21676         (ix86_set_current_function): Rewritten.
21677         (ix86_add_new_builtins): Temporarily clear current_target_pragma
21678         when creating builtin fndecls.
21680 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
21682         PR ipa/65005
21683         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
21684         function.
21685         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
21686         have no comdat group.
21687         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
21688         (lto_output_varpool_node): Always output alias info.
21689         (output_refs): Output refs of boundary aliases, too.
21690         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
21691         (output_symtab): Output call eges in thunks in boundary.
21692         (get_alias_symbol): Remove.
21693         (input_node, input_varpool_node): Do not special case weakrefs.
21694         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
21695         alias and thunks targets in the boundary; do not take removed symbols
21696         from their comdat groups.
21697         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
21698         (cgraph_node::global_info): Remove.
21699         (cgraph_node::rtl_info): Look through aliases and thunks.
21700         * cgrpah.h (global_info): Remove.
21701         (non_local_p): Remove.
21703 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
21704             Sandra Loosemore  <sandra@codesourcery.com>
21706         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
21707         to inline asm.  List dialects in proper order.
21709 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
21710             Sandra Loosemore  <sandra@codesourcery.com>
21712         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
21714 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
21716         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
21717         modified) reference to Solaris.
21719 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
21721         * doc/extend.texi (Extended Asm): Fix typos.
21723 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
21725         PR sanitizer/65004
21726         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
21728 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
21730         PR target/64661
21731         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
21732         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
21733         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
21734         * config/sh/constraints.md (Ara, Add): New constraints.
21735         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
21736         predicates.
21737         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
21738         atomic_mem_operand_0.  Don't use force_reg on the memory address.
21739         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
21740         Sra constraint.  Convert to insn_and_split.  Add workaround for
21741         PR 64974.
21742         (atomic_compare_and_swap<mode>_hard): Copy to
21743         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
21744         Use atomic_mem_operand_0 predicate.
21745         (atomic_compare_and_swap<mode>_soft_gusa,
21746         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
21747         AraAdd constraints.
21748         (atomic_compare_and_swap<mode>_soft_tcb,
21749         atomic_compare_and_swap<mode>_soft_imask,
21750         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
21751         atomic_mem_operand_0 predicate and SraSdd constraints.
21752         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
21753         constraint.
21754         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
21755         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
21756         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
21757         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
21758         force_reg on the memory address.
21759         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
21760         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
21761         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
21762         atomic_mem_operand_1 predicate and Sra constraint.
21763         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
21764         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
21765         Use atomic_mem_operand_1 predicate.
21766         (atomic_<fetchop_name><mode>_hard): Copy to
21767         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
21768         Use atomic_mem_operand_1 predicate.
21769         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
21770         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
21771         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
21772         insn_and_split.  Use atomic_mem_operand_1 predicate.
21773         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
21774         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
21775         Use atomic_mem_operand_1 predicate.
21776         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
21777         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
21778         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
21779         in generated insn with original mem operand before emitting the insn.
21780         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
21781         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
21782         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
21783         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
21784         Use atomic_mem_operand_1 predicate and AraAdd constraints.
21785         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
21786         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
21787         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
21788         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
21789         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
21790         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
21791         atomic_not_fetch<mode>_soft_tcb,
21792         atomic_<fetchop_name>_fetch<mode>_soft_imask,
21793         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
21794         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
21795         Use atomic_mem_operand_1 predicate and SraSdd constraints.
21797 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
21799         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
21800         and 3 earlyclobber operands.
21802 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
21804         * common.opt (fstack-reuse): Mark as optimization.
21806 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
21808         PR ipa/64982
21809         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
21811 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
21813         PR tree-optimization/64326
21814         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
21816 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
21818         PR gcov-profile/61889
21819         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
21821 2015-02-10  Richard Biener  <rguenther@suse.de>
21823         PR tree-optimization/64995
21824         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
21825         value we use is final.
21826         (visit_reference_op_store): Always valueize op.
21827         (visit_use): Properly valueize vuses.
21829 2015-02-10  Richard Biener  <rguenther@suse.de>
21831         PR tree-optimization/64909
21832         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
21833         pass a scalar-stmt count estimate to the cost model.
21834         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
21836 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
21838         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
21839         enabled by default together with var-tracking.
21841 2015-02-10  Nick Clifton  <nickc@redhat.com>
21843         * config/rl78/rl78.c: Remove DIV attribute code accidentally
21844         included in previous rl78 commit.
21846 2015-02-10  Richard Biener  <rguenther@suse.de>
21848         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
21849         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
21850         return the bitpack.
21852 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
21854         PR gcov-profile/61889
21855         * config.in: regenerate.
21856         * configure.in: Likewise.
21857         * configure.ac: Check for ftw.h.
21858         * gcov-tool.c: Check for ftw.h before using nftw.
21860 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
21862         PR lto/64076
21863         * ipa-visibility.c (update_visibility_by_resolution_info): Only
21864         assert when not in lto mode.
21866 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
21868         * ira-color.c (setup_left_conflict_sizes_p): Simplify
21869         initialization/assignment of conflict_size.
21871 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
21873         PR ipa/64978
21874         * ipa-cp.c (gather_caller_stats): Skip thunks.
21875         (propagate_constants_topo): Skip aliases.
21877 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
21879         PR target/64761
21880         * config/sh/sh.c (sh_option_override): Don't change
21881         -freorder-blocks-and-partition to -freorder-blocks even when
21882         unwinding is enabled.
21883         (sh_can_follow_jump): Return false if the followee jump is
21884         a crossing jump when -freorder-blocks-and-partition is specified.
21885         * config/sh/sh.md (*jump_compact_crossing): New insn.
21887 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
21888             Kaz Kojima  <kkojima@gcc.gnu.org>
21890         PR target/64761
21891         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
21892         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
21893         (sh_can_redirect_branch): Rename to ...
21894         (sh_can_follow_jump): ... this.  Constify argument types.
21895         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
21896         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
21897         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
21898         * doc/tm.texi: Regenerate.
21900 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
21902         PR sanitizer/64981
21903         * builtins.c (expand_builtin): Call targetm.expand_builtin
21904         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
21906 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
21908         PR ipa/61548
21909         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
21911 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
21913         PR ipa/63566
21914         * ipa-icf.c (set_local): New function.
21915         (sem_function::merge): Use it.
21917 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
21919         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
21920         (add_type_duplicate): Fix comparison of BINFOs.
21922 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
21924         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
21925         on getting VOID pointer.
21927 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
21929         PR target/64979
21930         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
21931         va_list escapes.
21933 2015-02-09  Richard Biener  <rguenther@suse.de>
21935         * genmatch.c (replace_id): Copy expr_type.
21937 2015-02-09  Richard Biener  <rguenther@suse.de>
21939         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
21940         (streamer_write_tree_bitfields): Declare.
21941         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
21942         properly unpack padding.
21943         (unpack_value_fields): Inline ...
21944         (streamer_read_tree_bitfields): ... here.
21945         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
21946         and properly add padding bits.
21947         (streamer_pack_tree_bitfields): Fold into ...
21948         (streamer_write_tree_bitfields): ... this new function,
21949         exposing the bitpack object.
21950         * lto-streamer-out.c (lto_write_tree_1): Call
21951         streamer_write_tree_bitfields.
21953 2015-02-09  Richard Biener  <rguenther@suse.de>
21955         PR tree-optimization/54000
21956         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
21957         (struct ivopts_data): Add loop_loc member.
21958         (tree_ssa_iv_optimize_loop): Dump loop location.
21959         (create_new_ivs): Likewise, also dump number of IVs generated.
21961 2015-02-09  Martin Liska  <mliska@suse.cz>
21963         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
21964         just if not yet registered.
21965         (ipa_icf_generate_summary): Register callgraph hooks.
21967 2015-02-08  Andrew Pinski  <apinski@cavium.com>
21969         * config/aarch64/aarch64.c (gty_dummy): Delete.
21971 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
21973         PR ipa/63566
21974         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
21975         (cgraph_node::local_p): Remove thunk related FIXME.
21977 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
21979         PR ipa/63566
21980         * i386.c (ix86_function_regparm): Look through aliases to see if callee
21981         is local and optimized.
21982         (ix86_function_sseregparm): Likewise; also use target's SSE math
21983         settings; error out instead of silently generating wrong code
21984         on mismatches.
21985         (init_cumulative_args): Look through aliases.
21987 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
21989         PR ipa/63566
21990         * ipa-split.c (execute_split_functions): Split if function has aliases.
21992 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
21994         PR ipa/63566
21995         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
21996         aliases before trying to expand it.
21997         (cgraph_node::expand_thunk): Fix formating.
21999 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
22001         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
22002         (Using Assembly Language with C): Expand introduction.
22003         (Basic Asm): Copy-edit.  Add more information about uses of
22004         basic asm.
22005         (Extended Asm): Copy-edit.  Document new escape syntax and
22006         %l[label] syntax.
22007         (Global Reg Vars): Copy-edit.
22008         (Local Reg Vars): Likewise.
22010 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
22012         PR debug/2714
22013         PR bootstrap/64256
22014         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
22015         (DBX_CONTIN_CHAR): Define.
22017 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
22018             Brian Rzycki  <b.rzycki@samsung.com>
22020         PR tree-optimization/64878
22021         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
22022         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
22023         Stop recursion at loop phi nodes after having visited a loop phi node.
22025 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
22027         * toplev.c (process_options): Change flag_ipa_ra before creating
22028         optimization_{default,current}_node.
22030         PR ipa/64896
22031         * cgraphunit.c (cgraph_node::expand_thunk): If
22032         restype is not is_gimple_reg_type nor the thunk_fndecl
22033         returns aggregate_value_p, set restmp to a temporary variable
22034         instead of resdecl.
22036 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
22038         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
22040 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
22042         PR target/64205
22043         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
22044         add a general secondary reload handler for SDmode, unless we have
22045         both read/write support for SDmode.
22047 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
22049         PR middle-end/64937
22050         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
22051         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
22052         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
22053         1 before, push it to abstract_vec.
22054         (dwarf2out_abstract_function): Adjust caller.  Don't call
22055         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
22056         DECL_ABSTRACT_P flags for all abstract_vec elts.
22058 2015-02-06  Renlin Li  <renlin.li@arm.com>
22060         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
22061         complex gimple.
22062         * tree-ssa.c (execute_update_addresses_taken): Likewise.
22064 2015-02-06  Jeff Law  <law@redhat.com>
22066         PR target/64889
22067         * config/h8300/h8300.c (push): New argument "in_prologue".
22068         Pass "in_prologue" along to "F".
22069         (h8300_push_pop): Corresponding changes.
22070         (h8300_expand_prologue): Likewise.
22071         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
22073 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
22075         PR rtl-optimization/64957
22076         PR debug/64817
22077         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
22078         IOR rather than for AND.
22080 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
22082         PR target/62631
22083         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
22084         of shift-add and (add + shift) operations.  Rename local variable.
22086 2015-02-05  Jeff Law  <law@redhat.com>
22088         PR target/17306
22089         * config/h8300/constraints.md (U): Correctly dectect
22090         "eightbit_data" memory addresses.
22091         * config/h8300/h8300.c (eightbit_constant_address_p): Also
22092         handle (const (plus (symbol_ref (x)))) where x is declared
22093         as an 8-bit data memory address.
22094         * config/h8300/h8300.md (call, call_value): Correctly detect
22095         "funcvec" functions.
22097         PR target/43264
22098         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
22099         24 to 28 bits for the H8/300.
22101 2015-02-06  Alan Modra  <amodra@gmail.com>
22103         PR target/64876
22104         * config/rs6000/rs6000.c (chain_already_loaded): New function.
22105         (rs6000_call_aix): Use it.
22107 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
22109         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
22110         check.
22112 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
22114         * config/h8300/constraints.md ("U" constraint): Use strict
22115         variant of REG_OK_FOR_BASE_P after reload has started.
22117 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
22119         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
22120         define to zero if !TARGET_NEON.
22121         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
22123 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
22124             Trevor Saunders  <tsaunders@mozilla.com>
22126         PR ipa/61548
22127         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
22129 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
22131         PR ipa/61548
22132         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
22133         when removing varpool nodes.
22135 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
22137         PR ipa/61548
22138         * varpool.c (varpool_node::remove): Fix order of variables.
22140 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
22142         PR ipa/64686
22143         * ipa-inline.c (inline_small_functions): Fix ordering issue between
22144         speculation resolution and key updates.
22146 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
22148         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
22149         about not letting any speculative edges unupdated.
22151 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
22153         PR gcov/64123
22154         * gcov-io.c (gcov_var): Export.
22156 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
22158         PR middle-end/64922
22159         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
22160         edges that become speculative.
22162 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
22164         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
22165         or DW_LANG_Fortran08.
22166         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
22167         DW_LANG_Fortran08.
22168         (gen_compile_unit_die): Handle "GNU Fortran2003" and
22169         "GNU Fortran2008" language strings.
22170         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
22171         * langhooks.h (lang_GNU_Fortran): New prototype.
22172         * langhooks.c (lang_GNU_Fortran): New function.
22173         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
22174         lang_GNU_Fortran.
22176 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
22178         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
22179         (RTX_OK_FOR_OLO10_P): Likewise.
22181 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
22183         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
22185 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
22187         PR middle-end/64922
22188         * gimple.c: Include gimple-ssa.h.
22189         (maybe_remove_unused_call_args): New function.
22190         * gimple.h (maybe_remove_unused_call_args): Declare.
22191         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
22192         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
22193         * gimple-fold.c (gimple_fold_call): Likewise.
22195 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
22197         PR rtl-optimization/64905
22198         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
22199         pointer alignment if it isn't needed.
22201 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
22203         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
22204         cortex-a72.cortex-a53.
22205         * config/aarch64/aarch64-tune.md: Regenerate.
22206         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
22208 2015-02-04  Nick Clifton  <nickc@redhat.com>
22210         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
22211         inside a MEM.
22213 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
22215         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
22216         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
22217         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
22218         of DEF_BUILTIN.
22219         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
22220         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
22221         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
22222         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
22223         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
22224         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
22225         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
22226         * tree-core.h (enum built_in_function): In between
22227         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
22228         for builtins that use DEF_BUILTIN_CHKP macro.
22230 2015-02-04  Alexandre Oliva <aoliva@redhat.com>
22232         PR debug/64817
22233         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
22234         operands for tcc_comparison exprs.  Fix typos.
22236         PR debug/64817
22237         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
22238         of two XORs that have an intervening AND or IOR.
22240         PR debug/64817
22241         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
22242         simplification of XOR of AND to not allocate new rtx before
22243         committing to a simplification.
22245 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22247         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
22248         manual swaps in all peepholes.
22250 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22252         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
22253         of manual swapping implementation.
22254         (aarch64_expand_vec_perm_const_1): Likewise.
22256 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
22258         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
22259         (generic_addrcost_table): Remove NAMED_PARAM.
22260         (cortexa57_addrcost_table): Likewise.
22261         (xgene1_addrcost_table): Likewise.
22262         (generic_regmove_table): Likewise.
22263         (cortexa53_regmove_table): Likewise.
22264         (xgene1_regmove_table): Likewise.
22265         (generic_vector_table): Likewise.
22266         (cortexa57_vector_table): Likewise.
22267         (xgene1_vector_table): Likewise.
22268         (generic_tunings): Likewise.
22269         (cortexa53_tunings): Likewise.
22270         (cortexa57_tunings): Likewise.
22271         (xgene1_tunings): Likewise.
22273 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
22275         * config/arm/arm-cores.def: Add cortex-a72 and
22276         cortex-a72.cortex-a53.
22277         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
22278         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
22279         * config/arm/arm-tune.md: Regenerate.
22280         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
22281         "cortex-a72.cortex-a53".
22282         * doc/invoke.texi (ARM Options/-mtune): Likewise.
22284 2015-02-04  Nick Clifton  <nickc@redhat.com>
22286         PR target/64408
22287         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
22288         of accepted codes.
22289         (nonimmediate_di_operand): Likewise.
22291         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
22292         prefixes of known F5 using MSP430 MCUs.
22294 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22296         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
22297         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
22298         instead of __builtin_sqrt.
22300 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
22302         * varasm.c (do_assemble_alias): Follow transparent alias
22303         chain for target.
22304         (default_assemble_visibility): Follow transparent alias
22305         chain for decl name.
22307 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22309         PR middle-end/62103
22310         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
22311         to compute size of referenced value in the constant case.
22313 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
22315         PR rtl-optimization/64756
22316         * cse.c (invalidate_dest): New function.
22317         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
22318         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
22319         invalidate and do not record it.
22321 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
22323         PR target/64660
22324         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
22325         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
22326         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
22327         atomic_nand<mode>_soft_tcb): New insns.
22328         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
22329         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
22330         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
22331         Split into atomic_not_fetchsi_hard if operands[0] is unused.
22332         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
22333         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
22334         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
22335         atomic_not<mode>_hard if operands[0] is unused.
22336         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
22337         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
22338         if operands[0] is unused.
22339         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
22340         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
22341         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
22342         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
22343         unused.
22344         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
22345         into atomic_not<mode>_soft_tcb if operands[0] is unused.
22346         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
22347         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
22348         if operands[0] is unused.
22349         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
22350         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
22351         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
22352         atomic_nand_fetchsi_hard if operands[0] is unused.
22353         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
22354         atomic_nand<mode>_hard if operands[0] is unused.
22355         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
22356         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
22357         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
22358         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
22359         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
22360         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
22361         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
22362         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
22363         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
22364         atomic_not<mode>_hard if operands[0] is unused.
22365         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
22366         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
22367         unused.
22368         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
22369         into atomic_not<mode>_soft_tcb if operands[0] is unused.
22370         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
22371         atomic_nand<mode>_hard if operands[0] is unused.
22372         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
22373         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
22375 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
22377         PR jit/64810
22378         * Makefile.in (GCC_OBJS): Add gcc-main.o.
22379         * gcc-main.c: New file, containing "main" taken from gcc.c.
22380         * gcc.c (do_self_spec): Free decoded_options.
22381         (class driver): Move declaration to gcc.h.
22382         (main): Move declaration and implementation to new file
22383         gcc-main.c.
22384         (driver_get_configure_time_options): New function.
22385         * gcc.h (class driver): Move this declaration here, from
22386         gcc.c.
22387         (driver_get_configure_time_options): New declaration.
22389 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
22391         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
22392         cross-module inlining.
22393         * cgraph.h (cgraph_node): Add flag merged.
22394         * ipa-icf.c (sem_function::merge): Maintain it.
22396 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
22398         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
22399         instead of OBJECT_P.
22401 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
22403         PR target/62631
22404         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
22405         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
22406         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
22407         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
22409 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
22411         PR other/63504
22412         * combine.c (reg_n_sets_max): New variable.
22413         (can_change_dest_mode, reg_nonzero_bits_for_combine,
22414         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
22415         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
22416         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
22417         (rest_of_handle_combine): Initialize reg_n_sets_max.
22419 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
22421         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
22422         if some always_inline was inlined, apply changes before inlining
22423         heuristically.
22425 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
22427         PR jit/64810
22428         * config/arm/arm.c (arm_option_override): Set
22429         arm_selected_arch/cpu/tune to NULL on entry.
22431 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
22432             Andrew Pinski  <pinskia@gcc.gnu.org>
22433             Jakub Jelinek  <jakub@gcc.gnu.org>
22435         PR target/64231
22436         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
22437         integer typing for small model. Use IN_RANGE.
22439 2015-02-02  Richard Biener  <rguenther@suse.de>
22441         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
22442         * tree-vrp.c (vrp_valueize_1): Likewise.
22444 2015-02-02  Alan Modra  <amodra@gmail.com>
22446         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
22447         than mem for toc_restore.
22448         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
22449         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
22450         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
22452 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
22454         PR target/64047
22455         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
22456         explicit default options.
22458 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
22460         PR ipa/64872
22461         * ipa-utils.c (ipa_merge_profiles): Add release argument.
22462         * ipa-icf.c (sem_function::merge): Do not release body when merging.
22463         * ipa-utils.h (ipa_merge_profiles): Update prototype.
22465 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
22467         PR debug/64817
22468         * cfgexpand.c (deep_ter_debug_map): New variable.
22469         (avoid_deep_ter_for_debug): New function.
22470         (expand_debug_expr): If TERed SSA_NAME is in
22471         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
22472         instead of trying to expand SSA_NAME's def stmt.
22473         (expand_debug_locations): When expanding debug bind
22474         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
22475         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
22476         value.
22477         (pass_expand::execute): Call avoid_deep_ter_for_debug on
22478         all debug bind stmts.  Delete deep_ter_debug_map after
22479         expand_debug_location if non-NULL and clear it.
22481 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
22483         PR target/64851
22484         * config/sh/sync.md (atomic_fetch_notsi_hard,
22485         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
22486         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
22487         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
22488         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
22489         atomic_not_fetch<mode>_soft_imask): New insns.
22491 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
22493         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
22494         (rank_for_schedule_debug): Split from ...
22495         (rank_for_schedule): ... this.
22496         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
22497         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
22499 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
22501         * doc/md.texi (Machine Constraints): Alphabetize table by target.
22502         * doc/extend.texi (x86 Variable Attributes): Move section to
22503         correct alphabetization after renaming.
22504         (x86 Type Attributes): Likewise.
22505         (Target Builtins): Re-alphabetize menu.
22506         (x86 Built-in Functions): Move section to correct alphabetization
22507         after renaming.
22508         (x86 transactional memory intrinsics): Likewise.
22509         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
22510         and x86 Windows Options in table and menu.
22511         (x86 Options): Move section to correct alphabetization after
22512         renaming.
22513         (x86 Windows Options): Likewise.
22515 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
22517         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
22518         preferred names of the architecture and its 32- and 64-bit
22519         variants.
22520         * doc/invoke.texi: Likewise.
22521         * doc/md.texi: Likewise.
22523 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
22525         PR target/64882
22526         * config/i386/predicates.md (address_no_seg_operand): Reject
22527         non-CONST_INT_P operands in invalid mode.
22529 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
22531         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
22532         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
22533         * config/i386/predicates.md (address_no_seg_operand): Call
22534         address_operand with VOIDmode.
22535         (vsib_address_operand): Ditto.
22536         (address_mpx_no_base_operand): Ditto.
22537         (address_mpx_no_index_operand): Ditto.
22539 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
22541         PR target/64688
22542         * lra-constraints.c (original_subreg_reg_mode): New.
22543         (simplify_operand_subreg): Try to simplify subreg of const.  Use
22544         original_subreg_reg_mode for it.
22545         (swap_operands): Update original_subreg_reg_mode.
22546         (curr_insn_transform): Set up original_subreg_reg_mode.
22548 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
22550         PR target/64617
22551         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
22552         function.
22553         (process_alt_operands): Use it.
22554         (curr_insn_transform): Check the optional reload pseudo class is
22555         ok for the mode.
22557 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
22559         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
22560         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
22561         prototype.
22562         * toplev.h (init_asm_output): Update comment on use of
22563         UNKNOWN_LOCATION with fatal_error.
22564         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
22565         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
22566         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
22567         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
22568         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
22569         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
22570         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
22571         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
22572         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
22573         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
22574         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
22575         fatal_error changed to pass input_location as first argument.
22577 2015-01-30  Martin Liska  <mliska@suse.cz>
22579         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
22580         in #pragma GCC diagnostic guards.
22582 2015-01-30  Richard Biener  <rguenther@suse.de>
22584         PR tree-optimization/64829
22585         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
22586         not add a widening conversion pattern but hand off extra
22587         widenings to callers.
22588         (vect_recog_widen_mult_pattern): Handle extra widening produced
22589         by vect_handle_widen_op_by_const.
22590         (vect_recog_widen_shift_pattern): Likewise.
22591         (vect_pattern_recog_1): Remove excess vertical space in dumping.
22592         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
22593         (vect_init_vector_1): Likewise.
22594         (vect_get_vec_def_for_operand): Likewise.
22595         (vect_finish_stmt_generation): Likewise.
22596         (vectorizable_load): Likewise.
22597         (vect_analyze_stmt): Likewise.
22598         (vect_is_simple_use): Likewise.
22600 2015-01-29  Jeff Law  <law@redhat.com>
22602         * combine.c (try_combine): Fix typo in comment.
22604 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
22606         PR target/64580
22607         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
22608         (rs6000_stack_info): Add assert.
22609         (rs6000_output_savres_externs): New function, split off from...
22610         (rs6000_output_function_prologue): ... here.  Do not call it for
22611         thunks.
22613 2015-01-29  Jeff Law  <law@redhat.com>
22615         PR target/15184
22616         * combine.c (try_combine): If I0 is a memory load and I3 a store
22617         to a related address, increase the "goodness" of doing a 4-insn
22618         combination with I0-I3.
22619         (make_field_assignment): Handle SUBREGs in the ior+and case.
22621 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
22623         PR tree-optimization/64746
22624         * tree-if-conv.c (mask_exists): New function.
22625         (predicate_mem_writes): Save created mask with given size for further
22626         use.
22627         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
22628         (ifcvt_repair_bool_pattern): Collect all statements that are root
22629         of bool pattern and use iterative algorithm to remove multiple uses
22630         of predicates, display number of required iterations.
22632 2015-01-29  Richard Biener  <rguenther@suse.de>
22634         PR tree-optimization/64853
22635         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
22636         stmt will get simulated again.
22637         * tree-ssa-ccp.c (valueize_op_1): Likewise.
22639 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22641         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
22642         return_in_pc.  Remove redundant assignments.
22643         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
22644         (arm_expand_epilogue): Don't compare boolean with true in if condition.
22646 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
22648         * config/i386/i386.c (ix86_mode_after): Make static.
22650 2015-01-29  Richard Biener  <rguenther@suse.de>
22652         PR tree-optimization/64844
22653         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
22654         dump cost model analysis.
22655         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
22656         Do not register adjusted load/store costs here.
22658 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
22659             Uros Bizjak  <ubizjak@gmail.com>
22661         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
22662         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
22663         using x86_use_pseudo_pic_reg.
22664         * config/i386/i386.c (ix86_conditional_register_usage): Remove
22665         support for fixed PIC register.
22666         (ix86_use_pseudo_pic_reg): Not static any more.
22668 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
22670         PR middle-end/64805
22671         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
22672         to avoid error in cgraph node verification.
22674 2015-01-29  Marek Polacek  <polacek@redhat.com>
22676         * doc/standards.texi: Reflect that the default for C is gnu11.
22678 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
22680         PR target/64761
22681         * reorg.c (switch_text_sections_between_p): New function.
22682         (relax_delay_slots): Call it when testing if the jump insn
22683         is removable.  Use targetm.can_follow_jump when testing if
22684         the conditional branch can follow an unconditional jump.
22686 2015-01-27  Caroline Tice  <cmtice@google.com>
22688         Committing VTV Cywin/Ming patch for Patrick Wollgast
22689         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
22690         if -fvtable-verify=preinit/std is used.
22691         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
22692         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
22693         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
22694         if -fvtable-verify=preinit/std is used.
22695         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
22696         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
22697         if -fvtable-verify=preinit/std is used.
22698         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
22699         * config/i386/mingw32.h (LIB_SPEC): Likewise.
22700         * varasm.c (assemble_variable): Add code to properly set the comdat
22701         section and name for the .vtable_map_vars section in case the
22702         target is PE or COFF.
22704 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
22706         PR ipa/64801
22707         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
22708         make sane BB profile.
22709         (cgraph_node::expand_thunk): Make sane BB profile.
22710         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
22711         * cgraph.h (init_lowered_empty_function): Update prototype.
22712         * config/i386/i386.c (make_resolver_func): Update call.
22713         * predict.c (gate): Disable branch prediction pass if
22714         profile is already there.
22716 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
22718         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
22719         * opth-gen.awk: Likewise.
22720         * common.opt: Mark flag_fp_contract_mode as Optimization.
22722 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22724         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
22725         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
22727 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
22729         PR target/64659
22730         * config/sh/predicates.md (atomic_arith_operand,
22731         atomic_logical_operand): Remove.
22732         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
22733         (atomic_arith_operand_0): New predicate.
22734         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
22735         Use atomic_arith_operand_0 for input values.
22736         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
22737         atomic_compare_and_swap<mode>_soft_gusa,
22738         atomic_compare_and_swap<mode>_soft_tcb,
22739         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
22740         arith_reg_operand instead of register_operand.
22741         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
22742         atomic_arith_operand_0 for newval input.
22743         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
22744         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
22745         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
22746         arith_reg_operand instead of register_operand.
22747         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
22748         fetchop_predicate_1, fetchop_constraint_1_llcs,
22749         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
22750         fetchop_constraint_1_imask): New code iterator attributes.
22751         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
22752         register_operand.  Use fetchop_predicate_1.
22753         (atomic_fetch_<fetchop_name>si_hard,
22754         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
22755         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
22756         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
22757         and arith_reg_operand instead of register_operand.  Use
22758         fetchop_predicate_1, fetchop_constraint_1_gusa.
22759         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
22760         and arith_reg_operand instead of register_operand.  Use
22761         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
22762         to allow R0 usage.
22763         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
22764         and arith_reg_operand instead of register_operand.  Use
22765         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
22766         to allow R0 usage.
22767         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
22768         register_operand.  Use atomic_logical_operand_1.
22769         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
22770         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
22771         arith_reg_operand instead of register_operand.
22772         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
22773         Use arith_reg_dest and arith_reg_operand instead of register_operand.
22774         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
22775         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
22776         register_operand.  Use fetchop_predicate_1.
22777         (atomic_<fetchop_name>_fetchsi_hard,
22778         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
22779         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
22780         fetchop_constraint_1_llcs.
22781         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
22782         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
22783         fetchop_constraint_1_gusa.
22784         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
22785         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
22786         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
22787         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
22788         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
22789         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
22790         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
22791         register_operand.  Use atomic_logical_operand_1.
22792         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
22793         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
22794         arith_reg_operand instead of register_operand.
22795         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
22796         arith_reg_operand instead of register_operand.  Use logical_operand
22797         and K08.  Adjust asm sequence to allow R0 usage.
22798         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
22799         arith_reg_operand instead of register_operand.  Use logical_operand
22800         and K08.
22802 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
22804         PR other/63504
22805         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
22806         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
22807         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
22808         only get_full_len HOST_WIDE_INTs from get_val () array rather than
22809         all bits in *val_wide.
22811 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
22813         * varpool.c (tls_model_names): Fix names.
22814         (varpool_node::dump): Dump tls- prefix for tls models.
22816 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
22817             Bernd Schmidt  <bernds@codesourcery.com>
22818             Nathan Sidwell  <nathan@codesourcery.com>
22820         * config/nvptx/mkoffload.c: New file.
22821         * config/nvptx/t-nvptx: Add build rules for it.
22822         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
22823         (extra_programs): Add mkoffload.
22824         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
22825         function.
22826         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
22828 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
22830         PR middle-end/64809
22831         * cfgexpand.c (reorder_operands): Skip debug gimples.
22833 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
22835         PR tree-optimization/64277
22836         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
22837         range info when possible to refine estimation.
22839 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22841         PR tree-optimization/64718
22842         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
22843         be a 16bit unsigned integer when n->range is 16.
22844         (bswap_replace): Convert src to that type if necessary for all bswap
22845         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
22846         set in pass_optimize_bswap::execute ().
22848 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
22850         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
22851         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
22852         integer and floating point variants.
22853         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
22855 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
22857         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
22858         for all vector modes.
22860 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
22862         PR bootstrap/64612
22863         * doc/sourcebuild.texi (comdat_group): Document.
22865 2015-01-28  Terry Guo  <terry.guo@arm.com>
22867         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
22869 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
22871         * toplev.c (print_version): Add param "show_global_state", and
22872         only print GGC and plugin information if it is true.
22873         (init_asm_output): Pass in "true" for the new param when calling
22874         print_version.
22875         (process_options): Likewise.
22876         (toplev::main): Likewise.
22877         * toplev.h (print_version): Add new param to decl.
22879 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
22881         PR ipa/60871
22882         PR ipa/64139
22883         * tree.c (lookup_binfo_at_offset): New function.
22884         (get_binfo_at_offset): Use it.
22886 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
22888         PR ipa/64282
22889         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
22890         on vtable being vtable.
22892 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
22894         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
22895         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
22896         -mhotpatch= option.
22897         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
22898         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
22899         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
22900         Renamed.
22901         (s390_hotpatch_trampoline_halfwords_max): Renamed.
22902         (s390_hotpatch_hw_max): New name.
22903         (s390_hotpatch_trampoline_halfwords): Renamed.
22904         (s390_hotpatch_hw_before_label): New name.
22905         (get_hotpatch_attribute): Removed.
22906         (s390_hotpatch_hw_after_label): New name.
22907         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
22908         attribute.
22909         (s390_attribute_table): Ditto.
22910         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
22911         (s390_function_num_hotpatch_hw): New name.
22912         Remove special handling of inline functions and hotpatching.
22913         Return number of nops before and after the function label.
22914         (s390_can_inline_p): Removed.
22915         (s390_asm_output_function_label): Emit a configurable number of nops
22916         after the function label.
22917         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
22918         (TARGET_CAN_INLINE_P) Removed.
22919         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
22921 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22922             Jiong Wang  <jiong.wang@arm.com>
22924         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
22925         of scratch reg.
22926         (cb<optab><mode>1): Likewise.
22927         * config/aarch64/iterators.md (bcond): New define_code_attr.
22929 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22931         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
22932         memory accesses.
22934 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22936         * config/s390/s390.c (s390_register_move_cost): Increase costs for
22937         FPR->GPR moves.
22939 2015-01-27  Richard Biener  <rguenther@suse.de>
22941         * tree-vrp.c (update_value_range): Intersect the range with
22942         old recorded SSA name range information.
22944 2015-01-27  Nick Clifton  <nickc@redhat.com>
22946         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
22947         BC, DE and HL registers directly, not via AX.
22948         When decrementing the stack pointer by a large amount, transfer SP
22949         into AX and perform the subtraction there.
22950         (rl78_expand_epilogue): Perform the inverse of the above
22951         enhancements.
22953 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22955         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
22957 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
22958             Yury Gribov  <y.gribov@samsung.com>
22960         PR ubsan/64741
22961         * ubsan.c (ubsan_source_location): Refactor code.
22962         (ubsan_type_descriptor): Update type size. Refactor code.
22964 2015-01-27  Richard Biener  <rguenther@suse.de>
22966         PR tree-optimization/56273
22967         PR tree-optimization/59124
22968         PR tree-optimization/64277
22969         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
22970         from the first VRP pass.
22972 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
22974         PR ipa/64776
22975         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
22976         handle the first argument in the same loop as all the other arguments.
22978         PR rtl-optimization/61058
22979         * jump.c (cleanup_barriers): Update basic block boundaries
22980         if BLOCK_FOR_INSN is non-NULL on PREV.
22982 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
22984         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
22985         bounds narrowing, already instrumented calls and calls to
22986         not instrumentable functions.
22988 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
22990         PR tree-optimization/64807
22991         * wide-int.cc (wi::divmod_internal): Clear
22992         b_dividend[dividend_blocks_needed].
22994 2015-01-26  DJ Delorie  <dj@redhat.com>
22996         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
22997         volatile memory references.
22999 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
23001         PR target/49263
23002         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
23003         remove_insn.
23004         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
23005         shifts if it already fits into K08.
23007 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
23009         PR ipa/64730
23010         * ipa-inline.c (inline_small_functions): Print "unknown" even
23011         if edge->call_stmt is non-NULL, but has builtins or unknown
23012         location.
23014         PR middle-end/64421
23015         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
23016         with asterisk, skip the first character.
23018 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
23020         PR target/64806
23021         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
23022         order change.
23024 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
23026         PR target/64795
23027         * config/i386/i386.md (*movdi_internal): Also check operand 0
23028         to determine TYPE_LEA operand.
23029         (*movsi_internal): Ditto.
23031 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
23033         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
23034         OPTION_MASK_QUAD_MEMORY_ATOMIC.
23036 2015-01-26  Renlin Li  <renlin.li@arm.com>
23038         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
23039         the comment.
23040         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
23041         for higher part.
23043 2015-01-26  Richard Biener  <rguenther@suse.de>
23045         PR middle-end/64764
23046         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
23047         combining two BIT_AND_EXPR predicates.
23049 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
23051         PR bootstrap/64754
23052         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
23054 2015-01-26  Terry Guo  <terry.guo@arm.com>
23056         * config/arm/arm.c (arm_file_start): Update the assignment of
23057         Tag_ABI_HardFP_use.
23059 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
23061         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
23062         pipeline model.
23063         config/arm/arm.md: Include the new Cortex-A57 model.
23064         (generic_sched): Don't use generic_sched when tuning for
23065         Cortex-A57.
23067 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
23068             Uros Bizjak  <ubizjak@gmail.com>
23070         * config/i386/i386.c (get_builtin_code_for_version): Add
23071         support for BMI and BMI2 multiversion functions.
23073 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
23075         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
23076         (extract_bit_field): Likewise.
23077         (extract_low_bits): Likewise.
23078         (expand_mult): Likewise.
23079         (expand_mult_highpart_adjust): Likewise.
23081 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
23083         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
23084         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
23085         * config/i386/i386.c (processor_model): Add
23086         M_INTEL_COREI7_BROADWELL.
23087         (arch_names_table): Add "broadwell".
23089 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
23091         PR target/49263
23092         PR target/53987
23093         PR target/64345
23094         PR target/59533
23095         PR target/52933
23096         PR target/54236
23097         PR target/51244
23098         * config/sh/sh-protos.h
23099         (sh_extending_set_of_reg::can_use_as_unextended_reg,
23100         sh_extending_set_of_reg::use_as_unextended_reg,
23101         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
23102         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
23103         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
23104         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
23105         (sh_treg_insns): New class.
23106         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
23107         (scope_counter): New class.
23108         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
23109         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
23110         sh_extending_set_of_reg::can_use_as_unextended_reg,
23111         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
23112         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
23113         sh_split_treg_set_expr): New functions.
23114         (addsubcosts): Handle treg_set_expr.
23115         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
23116         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
23117         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
23118         (sh_insn_operands_modified_between_p): Make non-static.
23119         * config/sh/predicates.md (zero_extend_movu_operand): Allow
23120         simple_mem_operand in addition to displacement_mem_operand.
23121         (zero_extend_operand): Don't allow zero_extend_movu_operand.
23122         (treg_set_expr, treg_set_expr_not_const01,
23123         arith_reg_or_treg_set_expr): New predicates.
23124         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
23125         arith_or_int_operand instead of logical_operand.  Convert to
23126         insn_and_split.  Try to optimize constant operand in splitter.
23127         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
23128         (*tstqi_t_zero): Delete.
23129         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
23130         (tstsi_t_and_not): Delete.
23131         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
23132         Convert to insn_and_split.
23133         (unnamed split, tstsi_t_zero_extract_xor,
23134         tstsi_t_zero_extract_subreg_xor_little,
23135         tstsi_t_zero_extract_subreg_xor_big): Delete.
23136         (*tstsi_t_shift_mask): New insn_and_split.
23137         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
23138         to recombine with surrounding insns when splitting.
23139         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
23140         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
23141         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
23142         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
23143         (*cbranch_div0s: Delete.
23144         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
23145         Try to recombine with surrounding insns when splitting.  Add operand
23146         order variants.
23147         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
23148         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
23149         *addc_r_r_msb, *addc_2r_msb): Delete.
23150         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
23151         order variant.
23152         (*addc_negreg_t): New insn_and_split.
23153         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
23154         Try to recombine with surrounding insns when splitting.
23155         Add operand order variants.
23156         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
23157         insn_and_split patterns.
23158         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
23159         surrounding insns when splitting.
23160         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
23161         (*rotcl): Likewise.  Add zero_extract variant.
23162         (*ashrsi2_31): New insn_and_split.
23163         (*negc): Convert to insn_and_split.  Use treg_set_expr.
23164         (*zero_extend<mode>si2_disp_mem): Update comment.
23165         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
23166         condition.
23167         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
23168         with surrounding insns when splitting.
23169         (any_treg_expr_to_reg): New insn_and_split.
23170         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
23171         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
23172         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
23173         *zero_extract_2): New single bit zero extract patterns.
23174         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
23175         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
23176         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
23177         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
23178         set destination.
23179         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
23180         register_operand for set source.
23182 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
23184         * i386.opt (prefetch_sse): New targetsave.
23185         * i386.c (ix86_function_specific_save): Save prefetch_sse.
23186         (ix86_function_specific_restore): Restore prefetch_sse and initialize
23187         ix86_cost/ix86_tune_cost.
23189 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
23191         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
23192         Support the JIT by using 0 as the language type.
23194 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
23196         PR target/64317
23197         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
23198         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
23199         (mark_regno_live, process_bb_lives): Pass new parameter value to
23200         make_hard_regno_born.
23202 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
23204         PR rtl-optimization/63637
23205         PR rtl-optimization/60663
23206         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
23207         if elt->cost is MAX_COST for ASM_OPERANDS.
23208         (find_sets_in_insn): Fix up comment typo.
23209         (cse_insn): Don't set src_volatile for all non-volatile
23210         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
23211         or with "memory" clobber.  Set elt->cost to MAX_COST
23212         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
23213         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
23215 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
23217         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
23218         alternative 1.
23220 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
23222         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
23223         libgcc/config/i386/elf-lib.h.
23225 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
23227         PR driver/64737
23228         * gcc.c (print_configuration): Don't print a blank line at the end
23229         here...
23230         (run_attempt): ... but here unstead.
23232         PR middle-end/64734
23233         * omp-low.c (scan_sharing_clauses): Don't ignore
23234         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
23235         on target data/update constructs.
23237 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
23239         PR target/50928
23240         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
23241         (DEBUG_RELOAD): Removed define.
23242         (m32c_limit_reload_class): Enable traces with if DEBUG0.
23243         (m32c_function_arg): Added a type cast.
23244         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
23245         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
23246         * config/m32c/bitops.md (andqi3_16): Likewise.
23247         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
23248         (push_a01_l): Likewise.
23250 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
23252         PR jit/64721
23253         * main.c (main): Construct toplev instances with init_signals=true.
23254         * toplev.c (general_init): Add param "init_signals", and use it to
23255         conditionalize the calls to signal and host_hooks.extra_signals.
23256         (toplev::toplev): Add param "init_signals".
23257         (toplev::main): When invoking general_init, pass m_init_signals
23258         to control whether signal-handlers are installed.
23259         * toplev.h (toplev::toplev): Add param "init_signals".
23260         (toplev::m_init_signals): New field.
23262 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
23264         PR jit/64722
23265         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
23266         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
23267         latter may be affected by the former (e.g. on i686).
23269 2015-01-23  Martin Liska  <mliska@suse.cz>
23271         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
23272         false positive during profiledbootstrap.
23274 2015-01-23  Tom de Vries  <tom@codesourcery.com>
23276         PR libgomp/64672
23277         * lto-opts.c (lto_write_options): Output non-explicit conservative
23278         -fno-openacc.
23279         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
23280         (append_compiler_options): Pass -fopenacc through.
23282 2015-01-23  Tom de Vries  <tom@codesourcery.com>
23284         PR libgomp/64707
23285         * lto-opts.c (lto_write_options): Output non-explicit conservative
23286         -fno-openmp.
23287         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
23288         (append_compiler_options): Pass -fopenmp through.
23290 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
23292         PR debug/64511
23293         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
23294         GTY markup.
23296         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
23297         * diagnostic.def (DK_ICE_NOBT): New kind.
23298         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
23299         like DK_ICE, but never print backtrace.
23300         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
23301         (internal_error_no_backtrace): New function.
23302         * gcc.c (execute): Use internal_error_no_backtrace instead of
23303         internal_error.
23305 2015-01-22  Jeff Law  <law@redhat.com>
23307         PR target/52076
23308         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
23309         improve code density for small immediate to memory case.
23310         (insv): Better handle bitfield assignments when the field is
23311         being set to all ones.
23312         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
23313         operand predicate.
23315 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23316             Jakub Jelinek  <jakub@redhat.com>
23318         PR middle-end/64729
23319         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
23320         for !TARGET_LIBC_PROVIDES_SSP version and
23321         -fstack-protector-{all,strong,explicit} otherwise.
23322         * config/freebsd.h (LINK_SSP_SPEC): Handle
23323         -fstack-protector-{strong,explicit}.
23325 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
23326             H.J. Lu  <hongjiu.lu@intel.com>
23328         PR ipa/64694
23329         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
23330         heap.
23332 2015-01-22  Wei Mi  <wmi@google.com>
23334         PR rtl-optimization/64557
23335         * dse.c (record_store): Call get_addr for mem_addr.
23336         (check_mem_read_rtx): Likewise.
23338 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
23340         * fold-const.c (const_binop): Add early return for non-tcc_binary.
23342 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
23344         * toplev.c (init_local_tick): Process the failure when read
23345         fails for random_seed.
23347         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
23348         'pretty_name' to avoid memory overflow.
23350 2015-01-22  Richard Biener  <rguenther@suse.de>
23352         PR middle-end/64728
23353         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
23354         abnormal coalescing on undefined SSA names.
23356 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
23358         PR target/64688
23359         PR target/64477
23360         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
23361         for alternative 3.
23362         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
23364 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
23366         PR middle-end/63325
23367         * fold-const.c (fold_checksum_tree): Don't include value of
23368         expr->decl_with_vis.symtab_node in the checksum.
23370 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23372         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
23374 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
23376         PR driver/64690
23377         * gcc.c (insert_comments): New function.
23378         (try_generate_repro): Call it.
23379         (append_text): Removed.
23381 2015-01-22  Richard Biener  <rguenther@suse.de>
23383         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
23384         with IL incompatible options.  Properly honor user optimize
23385         attributes.
23387 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
23389         PR rtl-optimization/64682
23390         * combine.c (distribute_notes): When moving a death note for
23391         a register that is set in the new I2, make sure to put it
23392         before that new I2.
23394 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
23396         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
23397         not TARGET_DEFAULT.
23399 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
23401         PR debug/64511
23402         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
23403         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
23404         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
23406         PR sanitizer/64706
23407         * doc/invoke.texi (-fsanitize=vptr): Document.
23409         PR rtl-optimization/62078
23410         * dse.c: Include cfgcleanup.h.
23411         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
23412         anything call purge_all_dead_edges and cleanup_cfg at the end
23413         of the pass.
23415 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
23417         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
23418         edges.
23420 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
23422         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
23423         decl attribute.
23425 2015-01-21  David Sherwood  <david.sherwood@arm.com>
23426             Tejas Belagod <Tejas.Belagod@arm.com>
23428         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
23429         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
23430         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
23431         Removed.
23433 2015-01-21  David Sherwood  <david.sherwood@arm.com>
23434             Tejas Belagod <Tejas.Belagod@arm.com>
23436         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
23437         (aarch64_reverse_mask): New decls.
23438         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
23439         (insn_count): New mode_attr.
23440         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
23441         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
23442         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
23443         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
23444         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
23445         (aarch64_simd_st4): New patterns.
23446         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
23447         (aarch64_reverse_mask): New functions.
23449 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
23451         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
23452         Declare.
23453         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
23454         addressing modes for BE.
23455         (aarch64_print_operand): Add 'R' specifier.
23456         (aarch64_simd_disambiguate_copy): Delete.
23457         (aarch64_simd_emit_reg_reg_move): New function.
23458         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
23459         in define_splits for structural moves.
23460         (mov<mode>): Use less restrictive predicates.
23461         (*aarch64_mov<mode>): Simplify and only allow for LE.
23462         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
23464 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
23466         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
23468 2015-01-21  Richard Henderson  <rth@redhat.com>
23470         PR target/64669
23471         * ccmp.c (used_in_cond_stmt_p): Remove.
23472         (expand_ccmp_expr): Don't use it.
23474 2015-01-21  Nick Clifton  <nickc@redhat.com>
23476         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
23477         PARALLELs.
23479 2015-01-21  Richard Biener  <rguenther@suse.de>
23481         PR middle-end/64313
23482         * tree-core.h (builtin_info, builtin_info_type): Turn from
23483         an object with two arrays into an array of an object with
23484         decl and two flags, implicit_p and declared_p.
23485         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
23486         set_builtin_decl, set_builtin_decl_implicit_p,
23487         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
23488         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
23489         * builtins.c (builtin_info): Adjust.
23490         * gimplify.c (gimplify_addr_expr): References to builtins
23491         that have been declared by the user makes them eligible for
23492         use by the compiler.  Call set_builtin_decl_implicit_p on them.
23494 2015-01-20  Jeff Law  <law@redhat.com>
23496         PR target/59946
23497         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
23498         allow pc-relative addresses in operand predicates or constraints.
23500 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
23502         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
23503         neon on aarch32 processors for stringops.
23505 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
23507         PR ipa/63576
23508         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
23510 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
23512         PR lto/45375
23513         * ipa-inline.c: Include lto-streamer.h
23514         (report_inline_failed_reason): Output source file differences and
23515         flags on optimization/target node mismatch.
23516         (can_inline_edge_p): Consider caller to be the outer inline function;
23517         be less restrictive about matching opimize and optimize_size attributes.
23518         (inline_account_function_p): Break out from ...
23519         (inline_small_functions): ... here.
23520         * ipa-inline-transform.c (clone_inlined_nodes): Use
23521         inline_account_function_p.
23522         (inline_call): Use optimize attribution; use inline_account_function_p.
23523         (inline_transform): Use opt_for_fn.
23524         * ipa-inline.h (inline_account_function_p): Declare.
23526 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
23528         PR debug/64663
23529         * dwarf2out.c (decl_piece_node): Don't put bitsize into
23530         mode if bitsize <= 0.
23531         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
23532         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
23533         sizes and positions.
23535 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
23537         * config/nios2/nios2.c (nios2_asm_file_end): Implement
23538         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
23539         needed.
23540         (TARGET_ASM_FILE_END): Define.
23542 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
23544         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
23545         (struct tune_params): Use the enum.
23546         * arm.c (arm_*_tune): Update.
23547         (arm_option_override): Update.
23549 2015-01-20  Richard Biener  <rguenther@suse.de>
23551         PR ipa/64684
23552         * ipa-reference.c (add_static_var): Inline ...
23553         (analyze_function): ... here after splitting out from ...
23554         (is_proper_for_analysis): ... this.
23556 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
23558         PR target/64149
23559         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
23560         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
23561         replace the conditional with it's true branch.
23562         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
23563         (arm_lra_p): Remove.
23565 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
23567         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
23569 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
23571         * config/tilegx/mul-tables.c: Move symtab.h include after
23572         coretypes.h include.
23573         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
23574         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
23575         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
23576         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
23577         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
23579 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
23581         PR bootstrap/64676
23582         Revert:
23583         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
23585         PR rtl-optimization/64081
23586         * loop-iv.c (def_pred_latch_p): New function.
23587         (latch_dominating_def): Allow specific cases with non-single
23588         definitions.
23589         (iv_get_reaching_def): Likewise.
23590         (check_complex_exit_p): New function.
23591         (check_simple_exit): Use check_complex_exit_p to allow certain cases
23592         with exits not executing on any iteration.
23594 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
23596         PR lto/45375
23597         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
23598         to set branch cost.
23600 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
23602         PR lto/45375
23603         * i386.c (gate): Check flag_expensive_optimizations and
23604         optimize_size.
23605         (ix86_option_override_internal): Drop optimize_size condition
23606         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
23607         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
23608         MASK_PREFER_AVX128.
23609         (ix86_avx256_split_vector_move_misalign,
23610         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
23611         * sse.md (all uses of TARGET_PREFER_AVX128): Add
23612         optimize_insn_for_speed_p check.
23614 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
23616         * config/mips/mips.h (FP_ASM_SPEC): New define.
23617         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
23618         instead.
23620 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
23622         PR target/53988
23623         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
23624         nullptr for insn when reaching the first insn.
23625         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
23626         (sh_insn_operands_modified_between_p): Add nullptr check.
23627         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
23628         sign extending mem load if the insn contains any UNSPEC or
23629         UNSPEC_VOLATILE.
23631 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
23633         * params.def (inline-unit-growth): Drop to 15%.
23634         * invoke.texi (inline-unit-growth): Document change.
23636 2015-01-19  Martin Liska  <mliska@suse.cz>
23638         PR ipa/64668
23639         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
23640         function for second argument of OBJ_TYPE_REF.
23642 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
23644         PR ipa/64218
23645         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
23646         whether function is an alias.
23648 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
23650         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
23651         cases.
23653 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
23655         PR rtl-optimization/64671
23656         * lra-remat.c (operand_to_remat): Don't consider jump and call
23657         insns.
23659 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
23661         PR target/59828
23662         * config/rs6000/default64.h: Include rs6000-cpus.def.
23663         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
23664         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
23665         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
23666         and POWER8.
23667         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
23668         POWER8.
23669         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
23670         pseudo-op to specify assembler dialect.
23672 2015-01-19  Martin Liska  <mliska@suse.cz>
23674         PR ipa/64664
23675         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
23676         Handle safe potentially removed nodes during filtering.
23678 2015-01-19  Martin Liska  <mliska@suse.cz>
23680         * doc/extend.texi (no_icf): Add new attribute description.
23681         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
23682         where the pass attempts to merge a function with no_icf attribute.
23684 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23686         PR target/64532
23687         * doc/md.texi (ARM Options): Document register constraints.
23689 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
23690             Andrew Pinski  <apinski@cavium.com>
23692         PR target/64304
23693         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
23694         (ashl<mode>3): Don't expand if operands[2] is not constant.
23696 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23698         PR target/64448
23699         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
23700         Match xor-and-xor RTL pattern.
23702 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
23704         PR rtl-optimization/64081
23705         * loop-iv.c (def_pred_latch_p): New function.
23706         (latch_dominating_def): Allow specific cases with non-single
23707         definitions.
23708         (iv_get_reaching_def): Likewise.
23709         (check_complex_exit_p): New function.
23710         (check_simple_exit): Use check_complex_exit_p to allow certain cases
23711         with exits not executing on any iteration.
23713 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
23715         * common.opt (fgraphite): Fix a typo.
23717 2015-01-19  Felix Yang  <felix.yang@huawei.com>
23719         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
23720         pattern.
23721         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
23722         uminp, smax_nanp, smin_nanp): New builtins.
23723         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
23724         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
23725         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
23726         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
23727         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
23728         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
23729         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
23730         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
23731         vpminnms_f32): Rewrite using builtin functions.
23733 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
23735         PR libgomp/64625
23736         * omp-low.c (offload_symbol_decl): Remove variable.
23737         (get_offload_symbol_decl): Remove function.
23738         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
23739         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
23740         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
23741         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
23742         BUILT_IN_GOACC_UPDATE don't pass it at all.
23744 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
23746         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
23747         callers.
23749 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
23751         * ipa-chkp.c (chkp_produce_thunks): Add early param
23752         to split thunks production into two passes.  Keep
23753         'always_inline' function bodies after the first pass.
23754         (pass_data_ipa_chkp_early_produce_thunks): New.
23755         (pass_ipa_chkp_early_produce_thunks): New.
23756         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
23757         chkp_produce_thunks signature.
23758         (make_pass_ipa_chkp_early_produce_thunks): New.
23759         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
23760         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
23761         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
23763 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
23765         * cgraph.c (cgraph_node::dump): Dump profile flags.
23767 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
23769         PR target/64652
23770         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
23771         reg appear first in the parallel.
23773 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
23775         * ipa-reference.c (set_reference_optimization_summary,
23776         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
23777         disabled.
23778         (ignore_module_statics): New static var.
23779         (propagate_bits): If ipa-reference is disabled, do not look into local
23780         properties.
23781         (analyze_function): Disable analysis when ipa_reference is disabled.
23782         (generate_summary): Do not dump when reference is disabled;
23783         collect vars accessed from functions with ipa-reference disabled.
23784         (get_read_write_all_from_node): When ipa-reference is disabled, use the
23785         node flags.
23786         (gate): Enable for LTO.
23787         (ignore_edge_p): New function.
23788         (propagate): Skip functions w/o ipa-reference analysis.
23789         * optc-save-gen.awk: Handle optimize_debug correctly.
23790         * opth-gen.awk: Likewise.
23791         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
23792         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
23793         fira-share-save-slots, fira-share-spill-slots,
23794         fmodulo-sched-allow-regmoves, fpartial-inlining,
23795         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
23796         ftracer, ftree-parallelize-loops, fassociative-math,
23797         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
23798         Optimization
23799         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
23800         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
23801         Optimization.
23802         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
23803         Fix for IPA.
23805 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
23807         PR ipa/64378
23808         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
23809         flag correctly.
23810         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
23812 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
23814         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
23815         Remove duplicate option listings.
23817 2015-01-18  Felix Yang  <felix.yang@huawei.com>
23819         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
23820         (autofdo_source_profile::get_callsite_total_count,
23821         function_instance::get_function_instance_by_decl,
23822         string_table::get_index, string_table::get_index_by_decl,
23823         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
23824         Fix comment typos. Reformatting and minor code rearrangement.
23826 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
23828         * config/rs6000/rs6000.md (probe_stack): Delete.
23829         (probe_stack_address): New.
23831 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
23833         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
23834         to test for 32-bit ABIs, not !TARGET_POWERPC64.
23836 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
23838         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
23839         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
23840         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
23841         snafu.
23842         (rs6000_libcall_value): Use the new function.
23844 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
23846         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
23848 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
23850         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
23851         implement a more precise life analysis for it during backward scan.
23853 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
23855         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
23857 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
23859         PR rtl-optimization/52773
23860         * calls.c (emit_library_call_value): When pushing arguments use
23861         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
23862         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
23863         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
23865 2015-01-17  Jeff Law  <law@redhat.com>
23867         PR rtl-optimization/32790
23868         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
23869         not ZERO_EXTEND in SET_DESTs.
23871 2015-01-17  Alan Modra  <amodra@gmail.com>
23873         * cprop.c (do_local_cprop): Revert last change.
23875 2015-01-16  DJ Delorie  <dj@redhat.com>
23876             Nick Clifton  <nickc@redhat.com>
23878         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
23879         (addhi3_real): Likewise.  Fix [HL+0] syntax.
23880         (subqi3_real): Likewise.
23881         (subhi3_real): Likewise.
23882         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
23883         (cbranchhi4_real): Likewise.
23884         (cbranchhi4_real_inverted): Likewise.
23885         (cbranchsi4_real_lt): Likewise.
23886         (cbranchsi4_real_ge): Likewise.
23887         (cbranchsi4_real_ge): Likewise.
23888         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
23889         (sub<mode>3_virt): Likewise.
23890         (cbranchqi4_virt): Likewise.
23891         (cbranchhi4_virt): Likewise.
23892         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
23893         always use '[reg+imm]' even when imm is zero.
23894         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
23895         (rl78_general_operand): New.
23896         (rl78_nonimmediate_operand): New.
23897         (rl78_nonfar_operand): Use them.
23898         (rl78_nonfar_nonimm_operand): Likewise.
23899         (rl78_stack_based_mem): Fix.
23900         * config/rl78/constraints.md (Ibqi): New.
23901         (IBqi): New.
23902         (Wsa): New.
23903         (Wsf): New.
23904         (Cs1): Fix.
23905         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
23906         (iorqi3): Likewise.
23907         (xorqi3): Likewise.
23908         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
23910         * config/rl78/constrains (Qs8): New constraint.
23911         * config/rl78/rl78.c (rl78_flags_already_set): New function.
23912         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
23913         * config/rl78/rl78-real.md (update_Z): New attribute.
23914         Update patterns to set it.
23915         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
23916         shorter compare and branch sequence can be used.
23917         (cbranchhi4_real): Likewise.
23918         (cbranchhi4_real_inverted): Likewise.
23920         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
23921         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
23922         address space.
23923         * config/rl78/rl78.c (rl78_get_name_encoding): New.
23924         (rl78_option_override): Allow -mes0 only if C.
23925         (characterize_address): Support subregs of symbol_refs.
23926         (rl78_addr_space_address_mode): Move.  Add __near.
23927         (rl78_far_p): Likewise.
23928         (rl78_addr_space_pointer_mode): Likewise.
23929         (rl78_as_legitimate_address): Likewise.
23930         (rl78_addr_space_subset_p): Likewise.
23931         (rl78_addr_space_convert): Likewise.
23932         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
23933         symbols with -mes0.
23934         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
23935         addressing.
23936         (rl78_alloc_physical_registers_op1): Change logic to prefer
23937         symbol[BC] addressing.
23938         (frodata_section): New.
23939         (rl78_asm_init_sections): Initialize it.
23940         (rl78_select_section): Put __far readonly symbols in .frodata.
23941         (rl78_make_type_far): New.
23942         (rl78_insert_attributes): Force all readonly symbols to be
23943         __far when -mes0.
23944         (rl78_asm_out_integer): New.
23945         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
23946         * config/rl78/rl78.opt (-mes0): New.
23948         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
23949         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
23950         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
23951         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
23952         (rl78_saddr_p): New.
23953         (rl78_output_aligned_common): New.
23954         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
23955         (rl78_handle_saddr_attribute): New.
23956         (rl78_handle_naked_attribute): New.
23957         (rl78_attribute_table): Add saddr.
23958         (rl78_print_operand_1): Don't print '!' on saddr operands.
23959         (rl78_print_operand_1): Strip encodings.
23960         (rl78_sfr_p): New.
23961         (rl78_strip_name_encoding): New.
23962         (rl78_attrlist_to_encoding): New.
23963         (rl78_encode_section_info): New.
23964         (rl78_asm_init_sections): New.
23965         (rl78_select_section): New.
23966         (rl78_output_labelref): New.
23967         (rl78_output_aligned_common): New.
23968         (rl78_asm_out_integer): New.
23969         (rl78_asm_ctor_dtor): New.
23970         (rl78_asm_constructor): New.
23971         (rl78_asm_destructor): New.
23973         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
23974         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
23975         (transcode_memory_rtx): Update.
23976         (rl78_expand_epilogue): Use A_REG instead of 0.
23978 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
23980         * config/arm/arm-protos.h (struct tune_params): New field
23981         sched_autopref_queue_depth.
23982         * config/arm/arm.c (sched-int.h): Include header.
23983         (arm_first_cycle_multipass_dfa_lookahead_guard,)
23984         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
23985         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
23986         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
23987         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
23988         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
23989         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
23990         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
23991         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
23992         * config/arm/t-arm (arm.o): Update.
23993         * haifa-sched.c (update_insn_after_change): Update.
23994         (rank_for_schedule): Use auto-prefetcher model, if requested.
23995         (autopref_multipass_init): New static function.
23996         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
23997         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
23998         variable for debug dumps.
23999         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
24000         (autopref_multipass_dfa_lookahead_guard): New global function that
24001         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
24002         (init_h_i_d): Update.
24003         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
24004         * sched-int.h (enum autopref_multipass_data_status): New const enum.
24005         (autopref_multipass_data_): Structure for auto-prefetcher data.
24006         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
24007         (struct _haifa_insn_data:autopref_multipass_data): New field.
24008         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
24009         (autopref_multipass_dfa_lookahead_guard): Declare.
24011 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24013         * rtlanal.c (get_base_term): Handle SCRATCH.
24015 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24017         * config/aarch64/aarch64.c
24018         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
24019         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
24020         * config/arm/arm.c
24021         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
24022         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
24024 2015-01-17  Alan Modra  <amodra@gmail.com>
24026         * cprop.c (do_local_cprop): Disallow replacement of fixed
24027         hard registers.
24029 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24031         PR target/62066
24032         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
24033         early return 0.
24035 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
24037         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
24038         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
24040 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24042         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
24043         * config/arm/thumb1.md: ... Here.
24045 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
24047         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
24048         TImode for TARGET_32BIT.
24050 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
24052         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
24053         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
24054         as ...
24055         (rs6000_abi_word_mode): New function.
24057 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
24059         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
24060         instead of UNITS_PER_WORD to describe the size of stack slots.
24062 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
24064         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
24065         as rs6000_promote_function_mode.  Move comment to there.
24066         (rs6000_promote_function_mode): New function.
24068 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
24070         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
24071         -mpowerpc64 is active.
24073 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
24075         PR middle-end/64353
24076         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
24077         virtuals on start.
24079 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
24081         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
24082         introduced in revision 219724.
24084 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24085             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24087         PR target/64263
24088         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
24089         destination is not a GP reg.
24090         (*movdi_aarch64): Likewise.
24092 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
24094         PR target/64623
24095         * config/rs6000/default64.h: Revert ISA change.
24097 2015-01-16  Richard Biener  <rguenther@suse.de>
24099         PR middle-end/64614
24100         * tree-ssa-uninit.c: Include tree-cfg.h.
24101         (MAX_SWITCH_CASES): New define.
24102         (convert_control_dep_chain_into_preds): Handle switch statements.
24103         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
24104         (normalize_one_pred_1): Do not split bit-manipulations.
24105         Record (x & CST).
24107 2015-01-16  Richard Biener  <rguenther@suse.de>
24109         PR tree-optimization/64568
24110         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
24111         complex load rewriting for TARGET_MEM_REFs.
24113 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
24115         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
24117 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
24119         PR target/64149
24120         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
24121         variable.
24122         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
24123         (aarch64_lra_p): Remove.
24125 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
24127         PR target/64363
24128         * ipa-chkp.h (chkp_instrumentable_p): New.
24129         * ipa-chkp.c: Include tree-inline.h.
24130         (chkp_instrumentable_p): New.
24131         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
24132         Fix processing of not instrumentable functions.
24133         (chkp_versioning): Use chkp_instrumentable_p. Warn about
24134         not instrumentable functions.
24135         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
24136         chkp_instrumentable_p.
24137         * tree-inline.h (copy_forbidden): New.
24138         * tree-inline.c (copy_forbidden): Not static anymore.
24140 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24142         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
24143         ptr1, ptr2 unused.
24145 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
24147         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
24148         type OP_OUT to OP_INOUT.
24150 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
24152         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
24153         (high x) y) to y if x and y have the same base.
24155 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
24157         * config/arm/cortex-a57.md: New.
24158         * config/aarch64/aarch64.md: Include it.
24159         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
24160         * config/aarch64/aarch64-tune.md: Regenerate.
24162 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
24164         PR target/64015
24165         * ccmp.c (expand_ccmp_next): New function.
24166         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
24167         and compare insn sequence.
24168         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
24169         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
24170         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
24171         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
24172         (*ccmp_ior): Changed to ccmp_ior<mode>.
24173         (cmp<mode>): New pattern.
24174         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
24175         parameters.
24176         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
24178 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
24180         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
24181         _mm256_bsrli_epi128): New.
24182         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
24184 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
24186         * expmed.c (store_bit_field_using_insv): Improve warning message.
24187         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
24189 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
24191         PR rtl-optimization/64011
24192         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
24193         there is partial overflow.
24195 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
24197         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
24198         prototype.
24199         (nds32_expand_epilogue_v3pop): Likewise.
24200         * config/nds32/nds32.md (sibcall): Define this for sibling call
24201         optimization.
24202         (sibcall_register): Likewise.
24203         (sibcall_immediate): Likewise.
24204         (sibcall_value): Likewise.
24205         (sibcall_value_register): Likewise.
24206         (sibcall_value_immediate): Likewise.
24207         (sibcall_epilogue): Likewise.
24208         (epilogue): Pass false to indicate this is not a sibcall epilogue.
24209         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
24210         (nds32_expand_epilogue_v3pop): Likewise.
24212 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
24214         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
24215         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
24216         (return_internal): New.
24217         (return): Define this named pattern.
24218         (simple_return): Define this named pattern.
24219         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
24220         pattern instead of unspec_volatile_func_return.
24221         (nds32_expand_epilogue_v3pop): Likewise.
24222         (nds32_can_use_return_insn): New function.
24224 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
24226         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
24227         * config/nds32/nds32.md (pop25return): New.
24228         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
24229         pop25return pattern.
24231 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
24233         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
24234         -mforbid-fp-as-gp, and -mex9 options.
24236 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
24238         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
24239         remove -mgp-direct option.
24241 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
24243         * doc/invoke.texi (--param early-inlining-insns): Update default value.
24244         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
24246 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
24248         * ipa-inline.c (inline_small_functions): Work around hints
24249         cache issue.
24251 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
24253         PR target/59710
24254         * doc/invoke.texi (Option Summary): Document new Nios II
24255         -mgpopt= syntax.
24256         (Nios II Options): Likewise.
24257         * config/nios2/nios2.opt: Add -mgpopt= option support.
24258         Modify existing -mgpopt and -mno-gpopt options to be aliases.
24259         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
24260         * config/nios2/nios2.c (nios2_option_override): Adjust
24261         -mgpopt defaulting.
24262         (nios2_in_small_data_p): Return true for explicit small data
24263         sections even with -G0.
24264         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
24265         option choices.
24267 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
24269         PR ipa/64612
24270         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
24271         of comdat locals.
24272         (inline_call): Fix removal of aliases.
24274 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
24276         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
24277         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
24278         * opts.c (common_handle_option): Add -fsanitize=vptr.
24279         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
24280         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
24281         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
24282         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
24283         (ubsan_expand_vptr_ifn): New prototype.
24284         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
24285         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
24286         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
24287         expand_LOOP_VECTORIZED): Make argument nameless, remove
24288         ATTRIBUTE_UNUSED.
24289         (expand_UBSAN_VPTR): New function.
24290         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
24291         in fn spec.
24292         (UBSAN_VPTR): New internal function.
24293         * sanopt.c (tree_map_traits): Renamed to ...
24294         (sanopt_tree_map_traits): ... this.
24295         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
24296         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
24297         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
24298         (maybe_optimize_ubsan_vptr_ifn): New function.
24299         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
24300         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
24301         -fsanitize=vptr.
24302         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
24303         internal calls like pure functions for aliasing, even when they
24304         have other side-effects that prevent making them ECF_PURE.
24305         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
24306         (ubsan_expand_vptr_ifn): New function.
24308 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
24310         PR rtl-optimization/64110
24311         * stmt.c (parse_output_constraint): Process '^' and '$'.
24312         (parse_input_constraint): Ditto.
24313         * lra-constraints.c (process_alt_operands): Process the new
24314         constraints.
24315         * ira-costs.c (record_reg_classes): Process the new constraint
24316         '^'.
24317         * genoutput.c (indep_constraints): Add '^' and '$'.
24318         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
24319         * doc/md.texi: Add description of the new constraints.
24321 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
24322             Bernd Schmidt  <bernds@codesourcery.com>
24323             Cesar Philippidis  <cesar@codesourcery.com>
24324             James Norris  <jnorris@codesourcery.com>
24325             Tom de Vries  <tom@codesourcery.com>
24326             Ilmir Usmanov  <i.usmanov@samsung.com>
24327             Dmitry Bocharnikov  <dmitry.b@samsung.com>
24328             Evgeny Gavrin  <e.gavrin@samsung.com>
24329             Jakub Jelinek  <jakub@redhat.com>
24331         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
24332         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
24333         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
24334         New function types.
24335         * builtins.c: Include "gomp-constants.h".
24336         (expand_builtin_acc_on_device): New function.
24337         (expand_builtin, is_inexpensive_builtin): Handle
24338         BUILT_IN_ACC_ON_DEVICE.
24339         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
24340         New macros.
24341         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
24342         flag_openmp.
24343         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
24344         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
24345         i386/intelmic-offload.h.
24346         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
24347         to libgomp and its dependencies.
24348         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
24349         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
24350         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
24351         * config/ia64/hpux.h (LIB_SPEC): Likewise.
24352         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
24353         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
24354         * doc/generic.texi: Update for OpenACC changes.
24355         * doc/gimple.texi: Likewise.
24356         * doc/invoke.texi: Likewise.
24357         * doc/sourcebuild.texi: Likewise.
24358         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
24359         GF_OMP_FOR_KIND_OACC_LOOP.
24360         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
24361         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
24362         GF_OMP_TARGET_KIND_OACC_UPDATE,
24363         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
24364         Dump more data.
24365         * gimple.c: Update comments for OpenACC changes.
24366         * gimple.def: Likewise.
24367         * gimple.h: Likewise.
24368         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
24369         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
24370         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
24371         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
24372         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
24373         appropriate place.
24374         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
24375         * gimplify.c: Include "gomp-constants.h".
24376         Update comments for OpenACC changes.
24377         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
24378         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
24379         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
24380         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
24381         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
24382         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
24383         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
24384         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
24385         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
24386         OMP_CLAUSE_SEQ.
24387         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
24388         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
24389         OMP_CLAUSE_SET_MAP_KIND.
24390         (gimplify_oacc_cache): New function.
24391         (gimplify_omp_for): Handle OACC_LOOP.
24392         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
24393         OACC_DATA.
24394         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
24395         OACC_EXIT_DATA, OACC_UPDATE.
24396         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
24397         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
24398         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
24399         (gimplify_body): Consider flag_openacc next to flag_openmp.
24400         * lto-streamer-out.c: Include "gomp-constants.h".
24401         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
24402         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
24403         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
24404         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
24405         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
24406         (BUILT_IN_ACC_ON_DEVICE): New builtins.
24407         * omp-low.c: Include "gomp-constants.h".
24408         Update comments for OpenACC changes.
24409         (struct omp_context): Add reduction_map, gwv_below, gwv_this
24410         members.
24411         (extract_omp_for_data, use_pointer_for_field, install_var_field)
24412         (new_omp_context, delete_omp_context, scan_sharing_clauses)
24413         (create_omp_child_function, scan_omp_for, scan_omp_target)
24414         (check_omp_nesting_restrictions, lower_reduction_clauses)
24415         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
24416         Update for OpenACC changes.
24417         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
24418         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
24419         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
24420         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
24421         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
24422         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
24423         OMP_CLAUSE_MAP_*.
24424         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
24425         Handle GF_OMP_FOR_KIND_OACC_LOOP.
24426         (expand_omp_target, lower_omp_target): Handle
24427         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
24428         GF_OMP_TARGET_KIND_OACC_UPDATE,
24429         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
24430         GF_OMP_TARGET_KIND_OACC_DATA.
24431         (pass_expand_omp::execute, execute_lower_omp)
24432         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
24433         flag_openmp.
24434         (offload_symbol_decl): New variable.
24435         (oacc_get_reduction_array_id, oacc_max_threads)
24436         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
24437         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
24438         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
24439         (oacc_gimple_assign, oacc_initialize_reduction_data)
24440         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
24441         functions.
24442         (is_targetreg_ctx): Remove function.
24443         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
24444         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
24445         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
24446         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
24447         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
24448         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
24449         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
24450         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
24451         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
24452         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
24453         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
24454         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
24455         * tree-core.h: Update comments for OpenACC changes.
24456         (enum omp_clause_map_kind): Remove.
24457         (struct tree_omp_clause): Change type of map_kind member from enum
24458         omp_clause_map_kind to unsigned char.
24459         * tree-inline.c: Update comments for OpenACC changes.
24460         * tree-nested.c: Likewise.  Include "gomp-constants.h".
24461         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
24462         (convert_tramp_reference_stmt, convert_gimple_call): Update for
24463         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
24464         OMP_CLAUSE_SET_MAP_KIND.
24465         * tree-pretty-print.c: Include "gomp-constants.h".
24466         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
24467         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
24468         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
24469         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
24470         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
24471         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
24472         instead of OMP_CLAUSE_MAP_*.
24473         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
24474         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
24475         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
24476         * tree-streamer-in.c: Include "gomp-constants.h".
24477         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
24478         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
24479         * tree-streamer-out.c: Include "gomp-constants.h".
24480         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
24481         OMP_CLAUSE_MAP_*.
24482         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
24483         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
24484         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
24485         * tree.c (omp_clause_num_ops): Update accordingly.
24486         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
24487         Likewise.
24488         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
24489         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
24490         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
24491         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
24492         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
24493         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
24494         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
24495         (OMP_CLAUSE_SET_MAP_KIND): New macro.
24496         * varpool.c (varpool_node::get_create): Consider flag_openacc next
24497         to flag_openmp.
24498         * config/i386/intelmic-offload.h: New file.
24499         * config/nvptx/offload.h: Likewise.
24501 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
24503         * explow.h: Remove duplicate contents.
24504         * dojump.h: Likewise.
24506 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
24508         * arm.c (arm_xgene_tune): Add default initializer for instruction
24509         fusion.
24511 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
24513         PR ipa/64068
24514         PR ipa/64559
24515         * ipa.c (symbol_table::remove_unreachable_nodes):
24516         Do not put abstract origins into boundary.
24518 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
24520         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
24521         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
24523 2015-01-15  Steve Ellcey  <sellcey@mips.com>
24525         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
24526         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
24527         builtins.def, and chkp-builtins.def.
24529 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
24531         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
24532         ISA 2.7 (POWER8).
24534 2015-01-15  Richard Biener  <rguenther@suse.de>
24536         PR tree-optimization/61743
24537         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
24538         information on PHIs for some simple cases.
24540 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
24542         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
24543         Include xgene1.md.
24544         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
24545         * config/arm/arm-cores.def (xgene1): New entry.
24546         * config/arm/arm-tables.opt: Regenerate.
24547         * config/arm/arm-tune.md: Regenerate.
24548         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
24550 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
24552         * tree-if-conv.c: Include hash-map.h.
24553         (aggressive_if_conv): New variable.
24554         (fold_build_cond_expr): Add simplification of non-zero condition.
24555         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
24556         destination block is not always executed.
24557         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
24558         than two predecessors if AGGRESSIVE_IF_CONV is true.
24559         (if_convertible_stmt_p): Fix commentary.
24560         (all_preds_critical_p): New function.
24561         (has_pred_critical_p): New function.
24562         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
24563         BB can have more than two predecessors and all incoming edges can be
24564         critical.
24565         (predicate_bbs): Skip predication for loop exit block, use build2_loc
24566         to compute predicate for true edge.
24567         (find_phi_replacement_condition): Delete this function.
24568         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
24569         Allow interchange PHI arguments if EXTENDED is false.
24570         Change check that block containing reduction statement candidate
24571         is predecessor of phi-block since phi may have more than two arguments.
24572         (phi_args_hash_traits): New helper structure.
24573         (struct phi_args_hash_traits): New type.
24574         (phi_args_hash_traits::hash): New function.
24575         (phi_args_hash_traits::equal_keys): New function.
24576         (gen_phi_arg_condition): New function.
24577         (predicate_scalar_phi): Add handling of phi nodes with more than two
24578         arguments, delete COND and TRUE_BB arguments, insert body of
24579         find_phi_replacement_condition to predicate ordinary phi nodes.
24580         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
24581         delete call of find_phi_replacement_condition and invoke
24582         predicate_scalar_phi with two arguments.
24583         (insert_gimplified_predicates): Add assert that non-predicated block
24584         don't have statements to insert.
24585         (ifcvt_split_critical_edges): New function.
24586         (ifcvt_split_def_stmt): Likewise.
24587         (ifcvt_walk_pattern_tree): Likewise.
24588         (stmt_is_root_of_bool_pattern): Likewise.
24589         (ifcvt_repair_bool_pattern): Likewise.
24590         (ifcvt_local_dce): Likewise.
24591         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
24592         is copy of inner or outer loop force_vectorize field, invoke
24593         ifcvt_split_critical_edges, ifcvt_local_dce and
24594         ifcvt_repair_bool_pattern for aggressive if-conversion.
24596 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
24598         * config/aarch64/aarch64.md: Include xgene1.md.
24599         * config/aarch64/xgene1.md: New file.
24601 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
24603         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
24604         xgene1 (APM XGene-1) core definition.
24605         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
24606         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
24607         * doc/invoke.texi: Document -mcpu=xgene1.
24609 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
24611         * dojump.h: New header file.
24612         * explow.h: Likewise.
24613         * expr.h: Remove includes.
24614         Move expmed.c prototypes to expmed.h.
24615         Move dojump.c prototypes to dojump.h.
24616         Move alias.c prototypes to alias.h.
24617         Move explow.c prototypes to explow.h.
24618         Move calls.c prototypes to calls.h.
24619         Move emit-rtl.c prototypes to emit-rtl.h.
24620         Move varasm.c prototypes to varasm.h.
24621         Move stmt.c prototypes to stmt.h.
24622         (saved_pending_stack_adjust): Move to dojump.h.
24623         (adjust_address): Move to explow.h.
24624         (adjust_address_nv): Move to emit-rtl.h.
24625         (adjust_bitfield_address): Likewise.
24626         (adjust_bitfield_address_size): Likewise.
24627         (adjust_bitfield_address_nv): Likewise.
24628         (adjust_automodify_address_nv): Likewise.
24629         * explow.c (expr_size): Move to expr.c.
24630         (int_expr_size): Likewise.
24631         (tree_expr_size): Likewise.
24632         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24633         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
24634         * genemit.c (main): Generate includes statistics.h, real.h,
24635         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
24636         stmt.h.
24637         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
24638         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
24639         explow.h, emit-rtl.h, stmt.h.
24640         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
24641         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
24642         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
24643         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
24644         emit-rtl.h, varasm.h, stmt.h.
24645         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
24646         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
24647         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
24648         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
24649         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
24650         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
24651         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
24652         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
24653         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
24654         tm.h tree.h varasm.h vec.h wide-int.h.
24655         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
24656         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
24657         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
24658         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
24659         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
24660         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
24661         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
24662         * loop-iv.c: Likewise.
24663         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
24664         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
24665         statistics.h stmt.h tree.h varasm.h wide-int.h.
24666         * lra-constraints.c: Likewise.
24667         * lra-eliminations.c: Likewise.
24668         * lra-lives.c: Likewise.
24669         * lra-remat.c: Likewise.
24670         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
24671         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
24672         statistics.h stmt.h tree.h varasm.h wide-int.h.
24673         * hw-doloop.c: Likewise.
24674         * ira-color.c: Likewise.
24675         * ira-emit.c: Likewise.
24676         * loop-doloop.c: Likewise.
24677         * loop-invariant.c: Likewise.
24678         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
24679         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
24680         statistics.h stmt.h tree.h varasm.h wide-int.h.
24681         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
24682         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
24683         statistics.h stmt.h tree.h varasm.h wide-int.h.
24684         * combine-stack-adj.c: Likewise.
24685         * cse.c: Likewise.
24686         * ddg.c: Likewise.
24687         * ifcvt.c: Likewise.
24688         * ira-costs.c: Likewise.
24689         * jump.c: Likewise.
24690         * lra-coalesce.c: Likewise.
24691         * lra-spills.c: Likewise.
24692         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
24693         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
24694         stmt.h varasm.h wide-int.h.
24695         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
24696         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
24697         varasm.h.
24698         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
24699         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
24700         statistics.h stmt.h varasm.h wide-int.h.
24701         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
24702         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
24703         varasm.h wide-int.h.
24704         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
24705         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
24706         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
24707         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
24708         statistics.h stmt.h.
24709         * config/tilepro/tilepro.c: Likewise.
24710         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
24711         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
24712         * config/pdp11/pdp11.c: Likewise.
24713         * config/xtensa/xtensa.c: Likewise.
24714         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
24715         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
24716         varasm.h.
24717         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24718         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
24719         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
24720         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24721         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
24722         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
24723         * rtl-chkp.c: Likewise.
24724         * tree-chkp-opt.c: Likewise.
24725         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
24726         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
24727         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
24728         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24729         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
24730         statistics.h stmt.h.
24731         * tree-vect-data-refs.c: Likewise.
24732         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
24733         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
24734         rtl.h statistics.h stmt.h varasm.h.
24735         * internal-fn.c: Likewise.
24736         * ipa-icf-gimple.c: Likewise.
24737         * lto-section-out.c: Likewise.
24738         * tree-data-ref.c: Likewise.
24739         * tree-nested.c: Likewise.
24740         * tree-outof-ssa.c: Likewise.
24741         * tree-predcom.c: Likewise.
24742         * tree-pretty-print.c: Likewise.
24743         * tree-scalar-evolution.c: Likewise.
24744         * tree-ssa-strlen.c: Likewise.
24745         * tree-vect-loop.c: Likewise.
24746         * tree-vect-patterns.c: Likewise.
24747         * tree-vect-slp.c: Likewise.
24748         * tree-vect-stmts.c: Likewise.
24749         * tsan.c: Likewise.
24750         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24751         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
24752         stmt.h.
24753         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
24754         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
24755         statistics.h stmt.h varasm.h.
24756         * loop-unroll.c: Likewise.
24757         * ubsan.c: Likewise.
24758         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
24759         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
24760         stmt.h varasm.h.
24761         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24762         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
24763         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
24764         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
24765         statistics.h stmt.h.
24766         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
24767         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
24768         statistics.h stmt.h varasm.h.
24769         * gimple-match-head.c: Likewise.
24770         * lto-cgraph.c: Likewise.
24771         * lto-section-in.c: Likewise.
24772         * lto-streamer-in.c: Likewise.
24773         * lto-streamer-out.c: Likewise.
24774         * tree-affine.c: Likewise.
24775         * tree-cfg.c: Likewise.
24776         * tree-cfgcleanup.c: Likewise.
24777         * tree-if-conv.c: Likewise.
24778         * tree-into-ssa.c: Likewise.
24779         * tree-ssa-alias.c: Likewise.
24780         * tree-ssa-copyrename.c: Likewise.
24781         * tree-ssa-dse.c: Likewise.
24782         * tree-ssa-forwprop.c: Likewise.
24783         * tree-ssa-live.c: Likewise.
24784         * tree-ssa-math-opts.c: Likewise.
24785         * tree-ssa-pre.c: Likewise.
24786         * tree-ssa-sccvn.c: Likewise.
24787         * tree-tailcall.c: Likewise.
24788         * tree-vect-generic.c: Likewise.
24789         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24790         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
24791         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24792         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
24793         * varasm.c: Likewise.
24794         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24795         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
24796         varasm.h.
24797         * init-regs.c: Likewise.
24798         * ira.c: Likewise.
24799         * omp-low.c: Likewise.
24800         * stack-ptr-mod.c: Likewise.
24801         * tree-ssa-reassoc.c: Likewise.
24802         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24803         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
24804         varasm.h.
24805         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24806         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
24807         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24808         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
24809         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24810         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
24811         * tree-ssa-phiopt.c: Likewise.
24812         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24813         fixed-value.h hashtab.h real.h statistics.h stmt.h.
24814         * config/fr30/fr30.c: Likewise.
24815         * config/frv/frv.c: Likewise.
24816         * expr.c: Likewise.
24817         * final.c: Likewise.
24818         * optabs.c: Likewise.
24819         * passes.c: Likewise.
24820         * simplify-rtx.c: Likewise.
24821         * stmt.c: Likewise.
24822         * toplev.c: Likewise.
24823         * var-tracking.c: Likewise.
24824         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24825         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
24826         * lower-subreg.c: Likewise.
24827         * postreload-gcse.c: Likewise.
24828         * ree.c: Likewise.
24829         * reginfo.c: Likewise.
24830         * store-motion.c: Likewise.
24831         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24832         fixed-value.h hashtab.h real.h stmt.h varasm.h.
24833         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24834         fixed-value.h hashtab.h statistics.h stmt.h.
24835         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24836         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
24837         * except.c: Likewise.
24838         * explow.c: Likewise.
24839         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24840         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
24841         varasm.h.
24842         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24843         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
24844         * tree-ssa-structalias.c: Likewise.
24845         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24846         fixed-value.h insn-config.h real.h statistics.h.
24847         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24848         fixed-value.h insn-config.h real.h statistics.h stmt.h.
24849         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24850         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
24851         * cfgbuild.c: Likewise.
24852         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24853         fixed-value.h real.h rtl.h statistics.h stmt.h.
24854         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24855         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
24856         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24857         fixed-value.h real.h statistics.h stmt.h.
24858         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
24859         fixed-value.h real.h statistics.h stmt.h varasm.h.
24860         * cprop.c: Likewise.
24861         * modulo-sched.c: Likewise.
24862         * postreload.c: Likewise.
24863         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
24864         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
24865         statistics.h stmt.h varasm.h.
24866         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
24867         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
24868         rtl.h statistics.h stmt.h varasm.h.
24869         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
24870         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
24871         varasm.h.
24872         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
24873         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
24874         varasm.h.
24875         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
24876         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
24877         varasm.h.
24878         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
24879         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
24880         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
24881         function.h real.h statistics.h stmt.h varasm.h.
24882         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
24883         insn-config.h real.h statistics.h stmt.h.
24884         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
24885         statistics.h stmt.h.
24886         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
24887         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
24888         statistics.h stmt.h varasm.h.
24889         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
24890         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
24891         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
24892         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
24893         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
24894         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
24895         statistics.h stmt.h varasm.h.
24896         * ipa-polymorphic-call.c: Likewise.
24897         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
24898         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
24899         statistics.h stmt.h.
24900         * config/c6x/c6x.c: Likewise.
24901         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
24902         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
24903         statistics.h stmt.h varasm.h.
24904         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
24905         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
24906         stmt.h varasm.h.
24907         * ipa-split.c: Likewise.
24908         * tree-eh.c: Likewise.
24909         * tree-ssa-dce.c: Likewise.
24910         * tree-ssa-loop-niter.c: Likewise.
24911         * tree-vrp.c: Likewise.
24912         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
24913         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
24914         stmt.h.
24915         * config/nds32/nds32-fp-as-gp.c: Likewise.
24916         * config/nds32/nds32-intrinsic.c: Likewise.
24917         * config/nds32/nds32-isr.c: Likewise.
24918         * config/nds32/nds32-md-auxiliary.c: Likewise.
24919         * config/nds32/nds32-memory-manipulation.c: Likewise.
24920         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
24921         * config/nds32/nds32-predicates.c: Likewise.
24922         * config/nds32/nds32.c: Likewise.
24923         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
24924         fixed-value.h hashtab.h real.h statistics.h.
24925         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
24926         fixed-value.h hashtab.h real.h statistics.h stmt.h.
24927         * config/arm/arm.c: Likewise.
24928         * config/avr/avr.c: Likewise.
24929         * config/bfin/bfin.c: Likewise.
24930         * config/h8300/h8300.c: Likewise.
24931         * config/i386/i386.c: Likewise.
24932         * config/ia64/ia64.c: Likewise.
24933         * config/iq2000/iq2000.c: Likewise.
24934         * config/m32c/m32c.c: Likewise.
24935         * config/m32r/m32r.c: Likewise.
24936         * config/m68k/m68k.c: Likewise.
24937         * config/mcore/mcore.c: Likewise.
24938         * config/mep/mep.c: Likewise.
24939         * config/mips/mips.c: Likewise.
24940         * config/mn10300/mn10300.c: Likewise.
24941         * config/moxie/moxie.c: Likewise.
24942         * config/pa/pa.c: Likewise.
24943         * config/rl78/rl78.c: Likewise.
24944         * config/rx/rx.c: Likewise.
24945         * config/s390/s390.c: Likewise.
24946         * config/sh/sh.c: Likewise.
24947         * config/sparc/sparc.c: Likewise.
24948         * config/spu/spu.c: Likewise.
24949         * config/stormy16/stormy16.c: Likewise.
24950         * config/v850/v850.c: Likewise.
24951         * config/vax/vax.c: Likewise.
24952         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
24953         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
24954         * config/msp430/msp430.c: Likewise.
24955         * predict.c: Likewise.
24956         * value-prof.c: Likewise.
24957         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
24958         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
24959         * config/microblaze/microblaze.c: Likewise.
24960         * config/nios2/nios2.c: Likewise.
24961         * config/rs6000/rs6000.c: Likewise.
24962         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
24963         insn-config.h real.h rtl.h statistics.h stmt.h.
24964         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
24965         insn-config.h real.h statistics.h stmt.h.
24966         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
24967         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
24968         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
24969         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
24970         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
24971         fixed-value.h real.h statistics.h stmt.h.
24972         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
24973         fixed-value.h statistics.h stmt.h.
24974         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
24975         stmt.h.
24977 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
24979         * gengtype.c (create_user_defined_type): Workaround
24980         -Wmaybe-uninitialized false positives.
24981         * cse.c (fold_rtx): Likewise.
24982         * loop-invariant.c (gain_for_invariant): Likewise.
24984 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
24986         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
24987         set the memory attributes in all cases but clear MEM_EXPR if need be.
24989 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
24991         PR tree-optimization/64434
24992         * cfgexpand.c (reorder_operands): New function.
24993         (expand_gimple_basic_block): Insert call of reorder_operands if
24994         optimized is true.
24996 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
24998         * config/mips/micromips.md (*swp): Remove explicit parallel.
24999         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
25000         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
25001         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
25002         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
25003         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
25004         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
25005         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
25006         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
25007         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
25008         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
25009         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
25010         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
25011         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
25012         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
25013         (mips_wrdsp): Likewise.
25014         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
25015         parallel.
25016         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
25017         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
25018         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
25019         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
25020         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
25021         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
25022         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
25023         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
25024         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
25026 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
25028         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
25029         (mips_print_operand): Support 'y' to print exact log2 in decimal
25030         of a const_int.
25031         * config/mips/mips.h (ISA_HAS_LSA): New define.
25032         (ISA_HAS_DLSA): Likewise.
25033         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
25034         * config/mips/predicates.md (const_immlsa_operand): New predicate.
25036 2015-01-15  Martin Liska  <mliska@suse.cz>
25038         PR target/64377
25039         * optc-save-gen.awk: Add support for array types.
25041 2015-01-15  Richard Biener  <rguenther@suse.de>
25043         PR middle-end/64365
25044         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
25045         for MEM_REF access functions with the same base can never partially
25046         overlap.
25048 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
25050         * common.opt: New option -fstack-protector-explicit.
25051         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
25052         (stack_protect_decl_phase): Handle stack_protect attribute for
25053         explicit stack protection requests.
25054         (expand_used_vars): Similarly.
25055         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
25056         * doc/extend.texi: Add documentation for "stack_protect" attribute.
25057         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
25059 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
25061         PR target/53988
25062         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
25063         reg-reg copies.
25064         (sh_extending_set_of_reg): New struct.
25065         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
25066         sh_remove_reg_dead_or_unused_notes): New Declarations.
25067         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
25068         sh_find_extending_set_of_reg, sh_split_tst_subregs,
25069         sh_extending_set_of_reg::use_as_extended_reg): New functions.
25070         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
25071         convert to insn_and_split and use new function sh_split_tst_subregs.
25073 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
25075         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
25076         option.
25077         (Optimization Options): Move -fuse-ld documentation to...
25078         (Link Options): ...here.
25080 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
25082         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
25083         offsets.
25084         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
25085         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
25086         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
25087         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
25088         instead of ZR for the memory operand of LL/SC.
25089         (compare_and_swap_12, sync_add<mode>): Likewise.
25090         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
25091         (sync_new_<optab>_12, sync_nand_12): Likewise.
25092         (sync_old_nand_12, sync_new_nand_12): Likewise.
25093         (sync_sub<mode>, sync_old_add<mode>): Likewise.
25094         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
25095         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
25096         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
25097         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
25098         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
25099         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
25100         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
25101         * doc/md.texi (ZC): Update description.
25103 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
25105         * builtins.c (expand_builtin_atomic_exchange): Remove error when
25106         memory model is CONSUME.
25107         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
25108         expand_builtin_atomic_store): Change invalid memory model errors to
25109         warnings.
25110         (expand_builtin_atomic_clear): Change invalid model errors to warnings
25111         and issue warning for CONSUME.
25113 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
25115         * lto-cgraph: Update function comments for
25116         lto_symtab_encoder_encode_*.
25118 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
25120         * Makefile.in (site.exp): Do not set ENABLE_LTO.
25122 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
25124         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
25125         * lto-cgraph.c (select_what_to_stream): Remove argument, use
25126         lto_stream_offload_p instead.
25127         * lto-streamer.h (select_what_to_stream): Remove argument.
25128         * passes.c (ipa_write_summaries): Likewise.
25129         * tree-pass.h (ipa_write_summaries): Likewise.
25131 2015-01-14  Richard Biener  <rguenther@suse.de>
25133         PR tree-optimization/59354
25134         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
25135         groups larger than the slp group size as having gaps.
25137 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
25139         PR middle-end/59448
25140         * builtins.c (get_memmodel): Promote consume to acquire always.
25142 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
25144         PR target/64386
25145         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
25146         V32HImode.
25148 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
25150         PR target/64393
25151         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
25152         Enable AVX512BW.
25153         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
25154         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
25155         AVX512VBMI, as it implies AVX512BW.
25157 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
25159         PR target/64387
25160         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
25161         (vec_unpacks_hi_v16sf): Ditto.
25163 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25165         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
25166         is not available.
25168 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25170         * doc/invoke.texi (mapcs): Mention deprecation.
25171         (mapcs-frame): Likewise.
25173 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25175         PR target/64453
25176         * config/arm/arm.c (callee_saved_reg_p): Define.
25177         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
25178         register is callee saved instead of !call_used_regs[reg].
25179         (thumb1_compute_save_reg_mask): Likewise.
25181 2015-01-14  Hale Wang  <hale.wang@arm.com>
25183         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
25184         Cortex-M7.
25186 2015-01-14  Richard Biener  <rguenther@suse.de>
25188         PR lto/64415
25189         * tree-inline.c (insert_debug_decl_map): Check destination
25190         function MAY_HAVE_DEBUG_STMTS.
25191         (insert_init_debug_bind): Likewise.
25192         (insert_init_stmt): Remove redundant check.
25193         (remap_gimple_stmt): Drop debug stmts if the destination
25194         function has var-tracking assignments disabled.
25196 2015-01-14  Martin Liska  <mliska@suse.cz>
25198         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
25199         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
25201 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25203         PR target/64460
25204         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
25205         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
25207 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
25209         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
25210         level from an ARCH; do not inject the default.
25211         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
25212         MIPS_ISA_LEVEL_SPEC.
25213         (MIPS_ISA_NAN2008_SPEC): Update comment.
25214         (BASE_DRIVER_SELF_SPECS): Likewise.
25215         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
25216         MIPS_DEFAULT_ISA_LEVEL_SPEC.
25217         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
25218         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
25219         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
25221 2015-01-14  Richard Biener  <rguenther@suse.de>
25223         PR tree-optimization/64493
25224         PR tree-optimization/64495
25225         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
25226         assign the proper vectorized PHI to the inner loop exit PHIs.
25228 2015-01-14  Joey Ye  <joey.ye@arm.com>
25230         * config/arm/arm.c (arm_compute_save_reg_mask):
25231         Do not save lr in case of tail call.
25232         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
25234 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
25236         * tree-vrp.c (check_array_ref): Emit more warnings
25237         for warn_array_bounds >= 2.
25238         * common.opt: New option -Warray-bounds=.
25239         * doc/invoke.texi: Document -Warray-bounds=.
25241 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
25243         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
25244         (mforbid-fp-as-gp): Remove.
25245         (mex9): Remove.
25246         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
25247         (nds32_symbol_load_store_p): Remove.
25248         (nds32_fp_as_gp_check_available): Clean up implementation.
25249         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
25250         cases.
25251         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
25252         fp-as-gp and ex9 cases.
25254 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
25256         * tree-profile.c (init_ic_make_global_vars): Drop workaround
25257         for bintuils bug 14342.
25258         (init_ic_make_global_vars): Likewise.
25259         (gimple_init_edge_profiler): Likewise.
25260         (gimple_gen_ic_func_profiler): Likewise.
25262 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
25264         * ipa-inline.c (inline_small_functions): Swap the operands in
25265         enum.
25267 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
25269         PR ipa/64481
25270         * ipa-inline-analysis.c (node_growth_cache): Remove.
25271         (initialize_growth_caches): Do not initialize it.
25272         (free_growth_caches): Do not free it.
25273         (do_estimate_growth): Rename to ...
25274         (estimate_growth): ... this one; drop growth cache code.
25275         (growth_likely_positive): Always go the heuristics way.
25276         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
25277         (reset_edge_caches): Do not reset node growth.
25278         (heap_edge_removal_hook): Do not maintain cache.
25279         (inline_small_functions): Likewise; strenghten sanity check.
25280         (ipa_inline): Do not maintain caches.
25281         * ipa-inline.h (node_growth_cache): Remove.
25282         (do_estimate_growth): Remove to ...
25283         (estimate_growth): this one; remove inline version.
25284         (reset_node_growth_cache): Remove.
25286 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
25288         PR ipa/64565
25289         * ipa-inline.c (inline_small_functions): Update callee keys after
25290         resolving speculation
25291         (inline_small_functions): Always check monotonicity of the queue.
25293 2015-01-13  Marek Polacek  <polacek@redhat.com>
25295         PR middle-end/64391
25296         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
25298 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
25300         PR rtl-optimization/64286
25301         * ree.c (combine_reaching_defs): Move part of comment earlier,
25302         remove !SCALAR_INT_MODE_P check.
25303         (add_removable_extension): Don't add vector mode
25304         extensions if all uses of the source register aren't the same
25305         vector extensions.
25307 2015-01-13  Renlin Li  <renlin.li@arm.com>
25309         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
25310         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
25312 2015-01-13  Martin Liska  <mliska@suse.cz>
25314         * ipa-icf.c (sem_function::equals_private): Call new functions
25315         cl_target_option_print_diff and cl_optimization_print_diff.
25316         * optc-save-gen.awk (cl_target_option_print_diff): New function.
25317         (cl_optimization_print_diff): Likewise.
25318         * opth-gen.awk: Likewise.
25320 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
25322         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
25323         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
25324         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
25325         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
25326         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
25327         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
25329 2015-01-13  Andrew Pinski  <apinski@cavium.com>
25331         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
25332         instead of src mode.
25334 2015-01-13  Richard Biener  <rguenther@suse.de>
25336         PR lto/64373
25337         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
25338         DECL_CONTEXT.
25340 2015-01-13  Andrew Pinski  <apinski@cavium.com>
25342         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
25343         volatile mems.
25344         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
25346 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
25348         PR middle-end/63974
25349         * cfgexpand.c (expand_computed_goto): Don't call
25350         convert_memory_address here.
25352 2015-01-13  Richard Biener  <rguenther@suse.de>
25354         PR tree-optimization/64406
25355         * tree-loop-distibution.c (pass_loop_distribution::execute):
25356         Reset the SCEV hashtable if we distributed anything.
25358 2015-01-13  Richard Biener  <rguenther@suse.de>
25360         PR tree-optimization/64404
25361         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
25362         SLP types for CSEd loads.
25364 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25366         PR tree-optimization/64436
25367         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
25368         merge of two symbolic numbers for a bitwise OR to ...
25369         (perform_symbolic_merge): This. Also fix computation of the range and
25370         end of the symbolic number corresponding to the result of a bitwise OR.
25372 2015-01-13  Richard Biener  <rguenther@suse.de>
25374         PR tree-optimization/64568
25375         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
25376         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
25378 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
25380         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
25381         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
25383 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
25385         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
25386         target-specific symbol_ref flag.
25387         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
25388         resides in rodata section.
25389         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
25390         (nds32_encode_section_info): New function.
25392 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
25394         * config/nds32/nds32.md (call): Use pseudo instruction bal which
25395         clobbers TA_REGNUM if large code model is specified.
25396         (call_register): Likewise.
25397         (call_immediate): Likewise.
25398         (call_value): Likewise.
25399         (call_value_register): Likewise.
25400         (call_value_immediate): Likewise.
25402 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
25404         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
25405         (TARGET_CMODEL_MEDIUM): New macro.
25406         (TARGET_CMODEL_LARGE): New macro.
25407         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
25408         code model setting in assembly code.
25410 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
25412         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
25413         Remove MASK_GP_DIRECT flag.
25414         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
25415         one of the multilib default options.
25416         * config/nds32/nds32.opt (mgp-direct): Remove.
25417         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
25418         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
25420 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
25422         * config/nds32/nds32.opt (mcmodel): Add new option.
25423         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
25424         to describe code model.
25426 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
25428         PR target/64479
25429         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
25431 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
25433         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
25434         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
25435         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
25436         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
25437         __builtin_sh_set_fpscr.
25439 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
25441         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
25442         after a funtion name just to indicate it is a function.
25443         ([-fsanitize-undefined-trap-on-error]): Likewise.
25444         ([-fdbg-cnt=]): Likewise.
25445         ([-mmemcpy]): Likewise.
25446         ([-mflush-func]): Likewise.
25447         ([-msynci]): Likewise.
25449 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
25451         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
25452         example.
25454 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
25456         PR tree-optimization/64563
25457         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
25458         instead of != VR_VARYING.
25460         PR target/64513
25461         * config/i386/i386.c (ix86_expand_prologue): Add
25462         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
25464         PR tree-optimization/64454
25465         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
25466         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
25467         for signed or [0, op1 - 1] for unsigned modulo.
25468         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
25469         even if op1 does not satisfy integer_pow2p.
25471         PR other/64370
25472         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
25474 2015-01-12  Jeff Law  <law@redhat.com>
25476         PR target/64461
25477         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
25478         (trunchiqi2, truncsihi2): Similarly.
25480         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
25481         rather than calling F.
25483 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
25485         * tsan.c (instrument_expr): Use force_gimple_operand.
25486         Use may_be_nonaddressable_p instead of is_gimple_addressable.
25488 2015-01-12  Richard Biener  <rguenther@suse.de>
25490         PR tree-optimization/64530
25491         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
25492         back dr1.
25494 2015-01-12  Richard Biener  <rguenther@suse.de>
25496         PR middle-end/64357
25497         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
25498         latches properly.
25500 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25502         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
25503         Cortex-A17 tuning parameters.
25504         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
25506 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25508         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
25509         * config/arm/arm.c (arm_macro_fusion_p): New function.
25510         (arm_macro_fusion_pair_p): Likewise.
25511         (TARGET_SCHED_MACRO_FUSION_P): Define.
25512         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
25513         (ARM_FUSE_NOTHING): Likewise.
25514         (ARM_FUSE_MOVW_MOVT): Likewise.
25515         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
25516         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
25517         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
25518         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
25519         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
25520         arm_cortex_a5_tune): Specify fuseable_ops value.
25522 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
25524         PR bootstrap/64561
25525         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
25526         test for PIE with copy reloc.
25527         * configure: Regenerated.
25529 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25531         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
25532         in gen_rtx_REG.
25533         (arm_tls_descseq_addr): Likewise.
25534         (arm_gen_movmemqi): Likewise.
25535         (arm_expand_epilogue_apcs_frame): Likewise.
25536         (arm_expand_epilogue): Likewise.
25537         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
25538         in gen_rtx_REG.
25540 2015-01-12  Martin Liska  <mliska@suse.cz>
25542         PR ipa/64550
25543         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
25544         volatility for correct operands.
25546 2015-01-12  Martin Liska  <mliska@suse.cz>
25548         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
25549         indication that a function is not leaf.
25550         (sem_function::compare_polymorphic_p): Likewise.
25552 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
25554         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
25555         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
25556         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
25557         fold-const.h, tree-check.h.
25559 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
25561         PR ipa/63967
25562         PR ipa/64425
25563         * ipa-inline.c (compute_uninlined_call_time,
25564         compute_inlined_call_time): Use counts for extra precision when
25565         needed possible.
25566         (big_speedup_p): Fix formating.
25567         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
25568         (relative_time_benefit): Remove.
25569         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
25570         merge guessed and read profile paths.
25571         (inline_small_functions): Count only !optimize_size functions into
25572         initial size; be more lax about sanity check when profile is used;
25573         be sure to update inlined function profile when profile is read.
25575 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
25577         PR ipa/63470
25578         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
25579         cost when edge becomes direct.
25580         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
25581         is resolved or when introducing new speculation.
25583 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
25585         PR ipa/64551
25586         PR ipa/64552
25587         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
25588         '||' to fix typo issue.
25590         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
25591         accept and return NULL.
25593 2015-01-12  Martin Liska  <mliska@suse.cz>
25595         * cgraph.c (cgraph_edge::remove_callee): Move function to header
25596         file for being inlined.
25597         (cgraph_set_edge_callee): Delete.
25598         (cgraph_edge::redirect_callee): Move function to header file
25599         for being inlined.
25600         (cgraph_edge::make_direct): Use new function.
25601         (cgraph_edge::dump_edge_flags): New function created from
25602         static dump_edge_flags function.
25603         (cgraph_node::dump): Use new function.
25604         (cgraph_edge::verify_count_and_frequency): New function created
25605         from verify_edge_count_and_frequency.
25606         (cgraph_edge::verify_corresponds_to_fndecl): New function created
25607         from verify_edge_corresponds_to_fndecl.
25608         (verify_edge_corresponds_to_fndecl): Delete.
25609         (cgraph_node::verify_node): Use new function.
25610         * cgraph.h (cgraph_edge::set_callee): New function.
25611         (cgraph_edge::dump_edge_flags): Likewise.
25612         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
25614 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
25616         * ipa-utils.c (estimate_function_body_sizes): Do not
25617         free node params when called late with early=true.
25619 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
25621         * doc/md.texi (Instruction Patterns): Rewrite text for
25622         clarity.
25623         (Example): Likewise.
25625 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
25627         * doc/invoke.texi (Option Summary): Break long lines.
25628         [(-fdiagnostics-color)]: Put long literal in @smallexample
25629         instead of inline.
25630         [(-fsanitize-recover)]: Likewise.
25631         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
25632         [(-ffast-math)]: Likewise.
25633         [(--param max-inline-insns-recursive)]: Likewise.
25634         [(--param max-inline-recursive-depth)]: Likewise.
25635         [(-mno-text-section-literals)]: Likewise.
25637 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
25639         * doc/install.texi: Update for libgomp being renamed from "GNU
25640         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
25641         Runtime Library".
25642         * doc/sourcebuild.texi: Likewise.
25644 2015-01-10  Anthony Green  <green@moxielogic.com>
25646         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
25647         mul.x availability for moxiebox configuration.
25649 2015-01-09  Anthony Green  <green@moxielogic.com>
25651         * config/moxie/moxie.md: Tabify assembly output.
25653 2015-01-09  Anthony Green  <green@moxielogic.com>
25655         * config/moxie/moxie.md (CC_REG): Correct register definition.
25657 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
25659         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
25660         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
25661         of log files.
25663 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
25665         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
25667 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
25668             Jakub Jelinek  <jakub@redhat.com>
25670         PR middle-end/64412
25671         * lto-streamer.h (lto_stream_offload_p): New declaration.
25672         * lto-streamer.c (lto_stream_offload_p): New variable.
25673         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
25674         at the same time as section_name_prefix.
25675         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
25676         if lto_stream_offload_p.
25677         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
25678         stream TREE_TARGET_OPTION if lto_stream_offload_p.
25679         (write_ts_function_decl_tree_pointers): Don't
25680         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
25681         * tree-streamer-in.c (unpack_value_fields): Don't stream
25682         TREE_TARGET_OPTION in if ACCEL_COMPILER.
25683         (lto_input_ts_function_decl_tree_pointers): Don't stream
25684         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
25685         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
25686         instead of section_name_prefix string comparisons.
25688 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
25690         PR rtl-optimization/64536
25691         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
25692         tablejumps.
25694 2015-01-09  Michael Collison  <michael.collison@linaro.org>
25696         PR tree-optimization/64322
25697         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
25698         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
25700 2015-01-09  Tom de Vries  <tom@codesourcery.com>
25702         PR rtl-optimization/64539
25703         * regcprop.c (kill_clobbered_values): Factor out of ...
25704         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
25705         instead of note_stores with kill_clobbered_value.
25707 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
25709          * ginclude/unwind-arm-common.h: Revert previous commit.
25711 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
25713         * config.gcc (arm*-*-freebsd*): New configuration.
25714         * config/arm/freebsd.h: New file.
25715         * config.host: Add extra components for arm*-*-freebsd*.
25716         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
25717         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
25719 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
25721         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
25722         for -mcpu=e6500.
25723         * config/rs6000/t-rtems: Add e6500 multilibs.
25725 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
25727         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
25728         MPC8540.
25730 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
25732         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
25733         MULTILIB_EXCEPTIONS.
25735 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
25737         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
25738         MULTILIB_EXCEPTIONS.
25740 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
25742         * config/arm/t-rtems-eabi: Rename to...
25743         * config/arm/t-rtems: ...this.
25744         * config/arm/rtems-eabi.h: Rename to...
25745         * config/arm/rtems.h: ...this.
25746         * config.gcc (arm*-*-rtems*): Reflect changes above.
25748 2015-01-09  Richard Biener  <rguenther@suse.de>
25750         PR tree-optimization/64410
25751         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
25752         on the LHS.
25753         (execute_update_addresses_taken): Deal with that.
25754         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
25755         loads/stores for complex variables.
25757 2015-01-09  Martin Liska  <mliska@suse.cz>
25759         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
25760         name comparison.
25761         (func_checker::compare_memory_operand): New function.
25762         (func_checker::compare_operand): Split case to newly
25763         added functions.
25764         (func_checker::compare_cst_or_decl): New function.
25765         (func_checker::compare_gimple_call): Identify
25766         memory operands.
25767         (func_checker::compare_gimple_assign): Likewise.
25768         * ipa-icf-gimple.h: New function.
25770 2015-01-09  Martin Liska  <mliska@suse.cz>
25772         PR ipa/64503
25773         * sreal.c (sreal::dump): Change unsigned format to signed for
25774         m_exp value.
25775         (sreal::to_double): Replace exp2 with scalbln.
25777 2015-01-09  Martin Liska  <mliska@suse.cz>
25779         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
25780         * ipa-icf.c (sem_function::equals_private): Add support for target and
25781         (sem_item_optimizer::merge_classes): Remove redundant function
25782         optimization flags comparison.
25783         * tree.h (target_opts_for_fn): New function.
25785 2015-01-09  Tom de Vries  <tom@codesourcery.com>
25787         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
25789 2015-01-09  Kito Cheng  <kito@0xlab.org>
25791         PR rtl-optimization/64348
25792         * lra-constraints.c (split_reg): Fix caller-save store/restore
25793         instruction generation.
25795 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
25797         PR gcov-profile/61790
25798         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
25799         long long.  Fallback to int64_t if host doesn't have long long and
25800         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
25802 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
25804         PR tree-optimization/63989
25805         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
25806         from 1000 to 10000.
25807         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
25808         (get_stridx): If we don't have a record for certain SSA_NAME,
25809         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
25810         constant offset, call get_stridx_plus_constant.
25811         (get_stridx_plus_constant): New function.
25812         (zero_length_string): Don't use get_stridx here.
25814         PR target/55023
25815         PR middle-end/64388
25816         * dse.c (struct insn_info): Mention frame_read set also
25817         before reload for tail calls on some targets.
25818         (scan_insn): Revert 2014-12-22 change.  Set frame_read
25819         also before reload for tail calls if
25820         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
25821         instead of add_non_frame_wild_read for non-const/memset
25822         tail calls after reload.
25824 2015-01-08  Jason Merrill  <jason@redhat.com>
25826         * ubsan.c (do_ubsan_in_current_function): New.
25827         (pass_ubsan::gate): Use it.
25828         * ubsan.h: Declare it.
25829         * convert.c (convert_to_integer): Use it.
25831 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
25833         PR target/64338
25834         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
25835         compare_code when it is unconditionally overwritten afterwards.
25836         Use ix86_reverse_condition instead of reverse_condition.  Don't
25837         change code if *reverse_condition* returned UNKNOWN and don't
25838         swap ct/cf and negate diff in that case.
25840 2015-01-08  Mike Stump  <mikestump@comcast.net>
25842         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
25843         (pass_tsan_O0::gate): Likewise.
25844         * extend.texi (Function Attributes): Add no_sanitize_thread
25845         documentation.
25847 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
25849         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
25850         for registering builtins.
25851         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
25852         add -fopenmp to the argv_obstack used when invoking
25853         compile_for_target.
25855         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
25856         add "-m32" or "-m64" to argv_obstack.
25857         (generate_host_descr_file): Likewise, when invoking host_compiler.
25858         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
25859         ld.
25861 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
25863         * config/sh/sh-mem.cc: Use constant as second operand when emitting
25864         tstsi_t insns.
25866 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
25868         PR target/55212
25869         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
25870         constant load if constant operand fits into I08.
25872 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
25874         PR sanitizer/64336
25875         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
25876         and TREE_THIS_VOLATILE for MEM_REFs.
25877         (build5_stat): Fix up initialization of TREE_READONLY and
25878         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
25880 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
25882         PR target/64533
25883         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
25884         of r for the second alternative of the destination operand.
25886 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
25888         PR target/36557
25889         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
25891 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
25893         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
25894         keywords.
25895         ([-fivar-visibility], [-fvisibility]): Likewise.
25897 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
25899         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
25900         the file where @code, @command, etc is more appropriate.
25902 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
25904         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
25905         of -mrecip= documentation.
25907 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
25909         PR target/64505
25910         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
25911         correct reload handler if -m32 -mpowerpc64 is used.
25913 2015-01-06  Tom de Vries  <tom@codesourcery.com>
25915         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
25917 2015-01-08  Christian Bruel  <christian.bruel@st.com>
25919         PR target/64507
25920         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
25922 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25924         PR tree-optimization/63259
25925         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
25926         if optab exists for 16bit byteswap.
25928 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
25930         * opts.c (common_handle_option): Add support for
25931         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
25932         * doc/invoke.texi: Document -fno-sanitize=all,
25933         -f{,no-}sanitize-recover=all.  Document that
25934         -fsanitize=float-cast-overflow is not enabled
25935         by -fsanitize=undefined.  Fix up documentation
25936         of -f{,no-}sanitize-recover.
25938 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
25940         * config.gcc: Add Visium support.
25941         * configure.ac: Likewise.
25942         * configure: Regenerate.
25943         * doc/extend.texi (interrupt attribute): Add Visium.
25944         * doc/invoke.texi: Document Visium options.
25945         * doc/install.texi: Document Visium target.
25946         * doc/md.texi: Document Visium constraints.
25947         * common/config/visium: New directory.
25948         * config/visium: Likewise.
25950 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
25952         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
25953         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
25955 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
25957         * combine.c (combine_validate_cost): Do not count the cost of a
25958         split I2 twice.  Do not display it twice in the dump, either.
25960 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
25962         Revert parts of r219199.
25963         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
25964         <inttypes.h>.
25965         ([-Wtraditional]): Restore markup on <limits.h>.
25967 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
25969         PR c++/31397
25970         * doc/invoke.texi: Document -Wsuggest-override.
25972 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
25974         PR rtl-optimization/64287
25975         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
25976         (process_options): Disable flag_ipa_ra if profiling.
25978 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
25980         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
25982 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
25984         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
25985         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
25986         put under #if TARGET_LOOPS guard.
25988 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
25990         * config/i386/i386.c (output_387_binary_op): Use std::swap.
25992 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
25994         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
25995         * rtl.h (refers_to_regno_p): Add overload.
25996         * cse.c: Use it.
25997         * bt-load.c: Likewise.
25998         * combine.c: Likewise.
25999         * df-scan.c: Likewise.
26000         * sched-deps.c: Likewise.
26001         * config/s390/s390.c: Likewise.
26002         * config/m32r/m32r.c: Likewise.
26003         * config/rs6000/spe.md: Likewise.
26004         * config/rs6000/rs6000.c: Likewise.
26005         * config/pa/pa.c: Likewise.
26006         * config/stormy16/stormy16.c: Likewise.
26007         * config/cris/cris.c: Likewise.
26008         * config/arc/arc.md: Likewise.
26009         * config/arc/arc.c: Likewise.
26010         * config/sh/sh.md: Likewise.
26011         * config/sh/sh.c: Likewise.
26012         * config/frv/frv.c: Likewise.
26014 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
26016         PR sanitizer/64265
26017         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
26018         call as cleanup of the whole body.
26019         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
26020         * tsan.c (replace_func_exit): New function.
26021         (instrument_func_exit): Moved earlier.
26022         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
26023         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
26024         been found.
26025         (tsan_pass): Don't call instrument_func_exit.
26026         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
26027         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
26028         inlining.
26030         PR sanitizer/64344
26031         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
26032         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
26033         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
26034         if the result is integer_zerop, return NULL_TREE.
26035         * convert.c (convert_to_integer): Pass expr as ARG.
26037         PR tree-optimization/64465
26038         * tree-inline.c (redirect_all_calls): During inlining
26039         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
26040         changed the stmt to a non-throwing call.
26042 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
26044         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
26045         etc markup throughout the file.
26047 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26049         Enable experimental TSAN support for Ada.
26050         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
26052 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
26054         PR tree-optimization/64494
26055         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
26056         clear SSA_NAME_ANTI_RANGE_P flag.
26058 2015-01-05  Marek Polacek  <polacek@redhat.com>
26060         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
26062 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
26064         Update copyright years.
26066         * gcc.c (process_command): Update copyright notice dates.
26067         * gcov-dump.c: Ditto.
26068         * gcov.c: Ditto.
26069         * doc/cpp.texi: Bump @copying's copyright year.
26070         * doc/cppinternals.texi: Ditto.
26071         * doc/gcc.texi: Ditto.
26072         * doc/gccint.texi: Ditto.
26073         * doc/gcov.texi: Ditto.
26074         * doc/install.texi: Ditto.
26075         * doc/invoke.texi: Ditto.
26077         * auto-profile.c, auto-profile.h: Fix up Copyright line.
26079 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
26081         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
26082         verb tense, etc.
26083         ([-fvtable-verify], [-fvtv-debug]): Likewise.
26084         ([-Wabi]): Likewise.
26085         ([-fmessage-length]): Likewise.
26086         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
26087         ([-Wno-discarded-qualifiers]): Likewise.
26088         ([-Wnodiscarded-array-qualifiers]): Likewise.
26089         ([-Wno-virtual-move-assign]): Likewise.
26090         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
26091         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
26092         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
26093         ([-fsanitize-undefined-trap-on-error]): Likewise.
26094         ([-floop-interchange]): Likewise.
26095         ([-ftree-coalesce-inlined-vars]): Likewise.
26096         ([-fvect-cost-model]): Likewise.
26097         ([-flto]): Likewise.
26098         ([--param]): Likewise.
26099         (Spec Files): Likewise.
26100         ([-mstrict-align]): Likewise.
26101         ([-mfix-cortex-a53-835769]): Likewise.
26102         ([-march], [-mtune]): Likewise.
26103         ([-mpic-register]): Likewise.
26104         ([-munaligned-access]): Likewise.
26105         ([-msp8]): Likewise.
26106         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
26107         (AVR Built-in Macros): Likewise.
26108         ([-mpreferred-stack-boundary]): Likewise.
26109         ([-mtune-crtl]): Likewise.
26110         ([-mashf]): Likewise.
26111         ([-mmcu=]): Likewise.
26112         ([-minrt]): Likewise.
26113         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
26114         ([-mupper-regs]): Likewise.
26115         ([-matomic-model]): Likewise.
26116         ([-mdiv]): Likewise.
26117         ([-mzdcbranch]): Likewise.
26118         ([-mdisable-callt]): Likewise.
26119         ([-msoft-float]): Likewise.
26120         ([-m8byte-align]): Likewise.
26121         ([-fstack-reuse]): Likewise.
26123 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
26125         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
26126         Fix markup, light copy-editing.
26127         ([-fauto-profile]): Rewrite to fix formatting and content
26128         problems.
26130 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
26132         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
26133         Copy-edit description.
26134         ([-fisolate-erroneous-paths-attribute]): Likewise.
26135         * common.opt (fisolate-erroneous-paths-dereference):
26136         Copy-edit description.
26137         (fisolate-erroneous-paths-attribute): Likewise.
26139 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
26141         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
26142         tidy grammar.
26144 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
26146         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
26147         ([-fvtv-debug]): Likewise.
26148         ([-Wc++-compat]): Likewise.
26149         ([-Wc++11-compat]): Likewise.
26150         ([-Wc++14-compat]): Likewise.
26151         ([-Wno-sized-deallocation]): Likewise.
26152         ([-femit-class-debug-always]): Likewise.
26153         ([-femit-struct-debug-detailed]): Likewise.
26154         ([-fno-keep-inline-dllexport]): Likewise.
26155         ([-fira-algorithm]): Likewise.
26156         ([-fira-region]): Likewise.
26157         ([-flra-remat]): Likewise.
26158         ([-fipa-ra]): Likewise.
26159         ([-fhoist-adjacent-loads]): Likewise.
26160         ([-fisolate-erroneous-paths-dereference]): Likewise.
26161         ([-fisolate-erroneous-paths-attribute]): Likewise.
26162         ([-ftree-switch-conversion]): Likewise.
26163         ([-ftree-tail-merge]): Likewise.
26164         ([-ftree-loop-if-convert]): Likewise.
26165         ([-ftree-loop-if-convert-stores]): Likewise.
26166         ([-ftree-loop-distribution]): Likewise.
26167         ([-ftree-loop-distribute-patterns]): Likewise.
26168         ([-flto-compression-level]): Likewise.
26169         ([-flto-report]): Likewise.
26170         ([-flto-report-wpa]): Likewise.
26171         ([-fuse-linker-plugin]): Likewise.
26172         ([-mfix-cortex-a53-835769]): Likewise.
26173         ([-mno-fix-cortex-a53-835769]): Likewise.
26174         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
26175         explicit listing; add a note to the discussion indicating they
26176         exist.  Reorder table to group similar options.  Add missing
26177         @opindex entries.  Add @need commands throughout the table to
26178         allow it to be split across multiple pages.
26179         ([-m8bit-idiv]): Fix @opindex.
26180         ([-mavx256-split-unaligned-load]): Likewise.
26181         ([-mavx256-split-unaligned-store]): Likewise.
26182         ([-mstack-protector-guard]): Likewise.
26183         ([-mcpu=]): Likewise.
26184         ([-mcpu]): Likewise.
26185         ([-mpointer-size=]): Likewise.
26187 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
26189         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
26190         instead of `m' constraint.  Likewise for unnamed movb comparison
26191         patterns using reg_before_reload_operand predicate.
26192         * config/pa/predicates.md (reg_before_reload_operand): Tighten
26193         predicate to reject register index and LO_SUM DLT memory forms
26194         after reload.
26196 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
26198         * doc/invoke.texi (Option Summary): Fix spelling of
26199         -fdevirtualize-at-ltrans.
26200         ([-fdevirtualize]): Fix markup.
26201         ([-fdevirtualize-speculatively]): Fix typo.
26202         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
26203         implementor-speaky.
26204         * common.opt (fdevirtualize-at-ltrans): Likewise.
26205         * ipa-devirt.c: Fix typos in comments throughout the file.
26206         (ipa_devirt): Fix typos in format strings for dump output.
26208 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
26210         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
26211         discussion of defaults, light copy-editing.
26213 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26215         * tsan.c (instrument_expr): corrected previous checkin.
26217 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26219         Instrument bit field and unaligned accesses for TSAN.
26220         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
26221         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
26222         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
26223         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
26224         unaligned memory regions.
26226 2015-01-01  Anthony Green  <green@moxielogic.com>
26228         * config/moxie/predicates.md (moxie_general_movsrc_operand):
26229         Restrict move source register offsets to 16 bits.
26231 Copyright (C) 2015 Free Software Foundation, Inc.
26233 Copying and distribution of this file, with or without modification,
26234 are permitted in any medium without royalty provided the copyright
26235 notice and this notice are preserved.